• [Oracle 工程师手记]探究 Oracle PDB Application Container (一)



    生成 Application Container,以及  Application PDB 的作成方法:

    Oracle 的 CDB 中,本来就是可以有很多的 PDB,
    但是 Oracle 引入了一种特殊的 PDB,这种 PDB 被声明为:"AS APPLICATION CONTAINER"。

    这以后,我们可以连接到这个特殊的PDB(例如: alter session set container= 此PDB),
    此时我们再建立新的 PDB, 会从属于 此 Application Container PDB。

    好处到底是什么呢?

    比如我有一个 Application Container PDB, 有 三个 Application PDB(PDB#1, PDB#2, PDB#3)。

    奥妙之处在于 Application:

    我在这个 Application Container 中,建立一个 Application。此 Application 中建立的对象,
    比如表,可以被这三个 Application PDB 共享。

    我只要修改 Application 中的表一次,多个 Application PDB 就都可以看到这个修改的结果了。

    下面是第一个例子(建立 application container 和 application pdb 和 application):


    <<<<< 建立 application container:
    
    SQL> alter system set db_create_file_dest='/refresh/home/cpdest';
    SQL> CREATE PLUGGABLE DATABASE appcon1 AS APPLICATION CONTAINER ADMIN USER app_admin IDENTIFIED BY Password1;
    
    
    <<<<< 建立 application pdb:
    
    SQL> ALTER PLUGGABLE DATABASE appcon1 OPEN;
    SQL> ALTER SESSION SET container = appcon1;
    
    SQL> CREATE PLUGGABLE DATABASE apppdb1 ADMIN USER pdb_admin IDENTIFIED BY Password1;
    SQL> ALTER PLUGGABLE DATABASE apppdb1 OPEN;
    
    
    <<<< 建立 application (请注意 下面的 SHARING=DATA,一共有三种方式)
    
    SQL> ALTER SESSION SET container = appcon1;
    
    
    SQL> ALTER PLUGGABLE DATABASE APPLICATION ref_app BEGIN INSTALL '1.0';
    
    
    SQL> CREATE TABLESPACE ref_app_ts DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;
    
    
    SQL> CREATE USER ref_app_user IDENTIFIED BY ref_app_user
      DEFAULT TABLESPACE ref_app_ts
      QUOTA UNLIMITED ON ref_app_ts
      CONTAINER=ALL;
    
    SQL> GRANT CREATE SESSION, CREATE TABLE TO ref_app_user;
    
    SQL> CREATE TABLE ref_app_user.reference_data SHARING=DATA (
      id          NUMBER,
      description VARCHAR2(50),
      CONSTRAINT t1_pk PRIMARY KEY (id)
    );
    
    SQL> INSERT INTO ref_app_user.reference_data
    SELECT level,
           'Description of ' || level
    FROM   dual
    CONNECT by level <= 5;
    COMMIT;
    
    SQL> select * from ref_app_user.reference_data;
    
            ID DESCRIPTION
    ---------- --------------------------------------------------
             1 Description of 1
             2 Description of 2
             3 Description of 3
             4 Description of 4
             5 Description of 5
    
    SQL> ALTER PLUGGABLE DATABASE APPLICATION ref_app END INSTALL;
    
    
    <<<<< 可以用如下的查询,查看 application 的版本信息:
    
    SQL> COLUMN app_name FORMAT A20
    COLUMN app_version FORMAT A10SQL>
    SQL>
    SQL>
    SQL> SELECT app_name,
           app_version,
           app_status
    FROM   dba_applications
    WHERE  app_name = 'REF_APP';
    
    APP_NAME             APP_VERSIO APP_STATUS
    -------------------- ---------- ------------
    REF_APP              1.0        NORMAL
    
    SQL> 
    
  • 相关阅读:
    css3常见水平垂直居中的方法
    小程序iPhonex适配
    css3实现常用效果
    匿名函数自调用函数
    parseInt ()和parseFloat()
    作用域
    可变传参
    函数调用实例:学生管理系统(前面的优化版),可以弹出窗口。
    java基础:学员状态查询
    java基础:模拟ATM取款机
  • 原文地址:https://www.cnblogs.com/gaojian/p/14584072.html
Copyright © 2020-2023  润新知