ITPub博客

首页 > 数据库 > 数据库开发技术 > Oracle数据库工程师手记:探究 Oracle PDB Application Container (一)

Oracle数据库工程师手记:探究 Oracle PDB Application Container (一)

原创 数据库开发技术 作者:lukeunique 时间:2021-05-03 08:08:00 0 删除 编辑

编者按:

本文作者系大连健哥, POSTGRESQL、ORACLE 数据库资深从业人员、IT 技术的深度爱好者。相信科学改变人类、技术创造未来。个人主页:https://www.cnblogs.com/gaojian/,经其本人授权发布。


【免责声明】本公众号文章仅代表个人观点,与任何公司无关。

生成 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_dataSELECT level, 'Description of ' || levelFROM dualCONNECT 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 A20COLUMN app_version FORMAT A10SQL>SQL>SQL>SQL> SELECT app_name, app_version, app_statusFROM dba_applicationsWHERE app_name = 'REF_APP'; APP_NAME APP_VERSIO APP_STATUS-------------------- ---------- ------------REF_APP 1.0 NORMAL SQL>

后续文章更加精彩,欢迎关注本公众号或访问【阅读原文】。

——End——


专注于技术不限于技术!

用碎片化的时间,一点一滴地提高数据库技术和个人能力。

欢迎关注!

浅谈RAC系列:

浅谈Oracle RAC (1)--概要

浅谈Oracle RAC (2)--集群管理软件GI基本架构

浅谈Oracle RAC(3)--GI的启动

浅谈Oracle RAC(4)– OHAS组件

浅谈Oracle RAC(5)– CSS组件

浅谈Oracle RAC(6) 之实战:节点reboot问题的调查方法


备份恢复系列:

Oracle数据库工程师手记:备份恢复双城记(一)

Oracle数据库工程师手记:备份恢复双城记(二)

Oracle数据库工程师手记:备份恢复双城记(三)


原文作者:SQL和数据库技术;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-07-21

  • 博文量
    107
  • 访问量
    63571