ITPub博客

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

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

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

编者按:

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


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

Application Container 中 application 的升级:


需要执行:


ALTER PLUGGABLE DATABASE APPLICATION ref_app BEGIN UPGRADE '1.0' TO '1.1';


对数据的增减、对结构的改动语句等


ALTER PLUGGABLE DATABASE APPLICATION ref_app END UPGRADE;

验证过程:如同Oracle数据库工程师手记:探究 Oracle PDB Application Container (一)的那样,


先来做出 application container 和 application pdb ,以及 application:

alter system set db_create_file_dest='/refresh/home/';CREATE PLUGGABLE DATABASE appcon1 AS APPLICATION CONTAINER ADMIN USER app_admin IDENTIFIED BY Password1; ALTER PLUGGABLE DATABASE appcon1 OPEN;ALTER SESSION SET container = appcon1; CREATE PLUGGABLE DATABASE apppdb1 ADMIN USER pdb_admin IDENTIFIED BY Password1;ALTER PLUGGABLE DATABASE apppdb1 OPEN;  ALTER SESSION SET container = appcon1;ALTER PLUGGABLE DATABASE APPLICATION ref_app BEGIN INSTALL '1.0';  CREATE TABLESPACE ref_app_ts DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M; CREATE USER ref_app_user IDENTIFIED BY ref_app_user  DEFAULT TABLESPACE ref_app_ts  QUOTA UNLIMITED ON ref_app_ts  CONTAINER=ALL; GRANT CREATE SESSION, CREATE TABLE TO ref_app_user; CREATE TABLE ref_app_user.reference_data SHARING=DATA (  id          NUMBER,  description VARCHAR2(50),  CONSTRAINT t1_pk PRIMARY KEY (id)); INSERT INTO ref_app_user.reference_dataSELECT level,       'Description of ' || levelFROM   dualCONNECT by level <= 5;COMMIT;  ALTER PLUGGABLE DATABASE APPLICATION ref_app END INSTALL;


 然后执行 application 的升级:

ALTER SESSION SET container = appcon1; ALTER PLUGGABLE DATABASE APPLICATION ref_app BEGIN UPGRADE '1.0' TO '1.1'; alter table ref_app_user.reference_data drop column description; ALTER PLUGGABLE DATABASE APPLICATION ref_app END UPGRADE;


回到 cdb$root;


可以发现: 除了这几个PDB 之外,还生成了一个特殊的 PDB:

SQL> alter session set container=cdb$root; Session altered. SQL> show pdbs;     CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------         2 PDB$SEED                       READ ONLY  NO         3 PDB1                           MOUNTED         4 APPCON1                        READ WRITE NO         5 APPPDB1                        READ WRITE NO         6 F289887660_3_1                 READ ONLY  NOSQL>


如果container 是 appcon1 ,则看不到这个 F289887660_3_1, 在 cdb$root 时,可以看到。


这个PDB 无法直接删除,可以这样删除:


先删除 APPPDB1, 再删除 APPCON1:

alter pluggable database appcon1 close; drop pluggable database apppdb1 including datafiles; drop pluggable database appcon1 including datafiles;

 

这是,可以看到 F289887660_3_1 也随着 application container 一起消失了。

 

SQL> show pdbs;     CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------         2 PDB$SEED                       READ ONLY  NO         3 PDB1                           MOUNTEDSQL>


 补充一点, 这个特殊的 PDB 是何时生成的呢?


SQL> ALTER SESSION SET container = appcon1; Session altered. SQL> ALTER PLUGGABLE DATABASE APPLICATION ref_app BEGIN UPGRADE '1.0' TO '1.1'; Pluggable database altered. SQL>


 

从另外的一个窗口,执行 show pdbs, 就已经可以发现有一个特殊的 PDB (F103021535_3_1)被生成。

在 19c 也是这样的。


SQL> show pdbs;     CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------         2 PDB$SEED                       READ ONLY  NO         3 PDB193                         MOUNTED         4 APPCON1                        READ WRITE NO         5 APPPDB1                        READ WRITE NO         7 F103021535_3_1                 READ WRITE NOSQL>


也就是 BEGIN UPGRADE 语句,就有这个作用。


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

——End——


专注于技术不限于技术!

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

欢迎关注!


备份恢复系列:

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

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

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

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

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

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

注册时间:2017-07-21

  • 博文量
    107
  • 访问量
    63577