设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

Oracle DBCA高级玩法:从模板选择、脚本调用到多租户(3)

发布时间:2021-01-07 06:10 所属栏目:53 来源:网络整理
导读:那么,在这个基础上怎么继续理解DBCA的过程呢? 五、解析DBCA的调用脚本 毫无疑问就是看到一些详细的调用方式,比如脚本之类的,参数文件的处理等,这些Oracle处理起来还是有一些方法论的. 得到DBCA的静默创建脚本很简单

那么,在这个基础上怎么继续理解DBCA的过程呢?

五、解析DBCA的调用脚本

毫无疑问就是看到一些详细的调用方式,比如脚本之类的,参数文件的处理等,这些Oracle处理起来还是有一些方法论的.

得到DBCA的静默创建脚本很简单,就是添加一个generateScripts选项即可.

比如下面的方式,输出会告诉你一个路径.假设db name为testdb1:

dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname testdb1 -sid testdb1? -characterSet ZHS16GBK? -sysPassword oracle -systemPassword oracle -generateScripts

那么RMAN还原的过程呢,本质上RMAN的核心就是dbms_backup_restore,dbms_rcvman的包.我们可以在得到的脚本中看到.

重点工作就是下面的这句:

dbms_backup_restore.restoreBackupPiece(‘/U01/app/oracle/product/10.2/assistants/dbca/templates/Seed_Database.dfb’,done);

我们分析生成的脚本可以让自己的理解更上一个层次.生成的脚本如下:

-rw-r—– 1 oracle oinstall 2165 Dec? 3 22:04 cloneDBCreation.sql
-rw-r—– 1 oracle oinstall? 286 Dec? 3 22:04 CloneRmanRestore.sql
-rw-r—– 1 oracle oinstall 2061 Dec? 3 22:04 init.ora
-rw-r—– 1 oracle oinstall 2155 Dec? 3 22:04 inittestdb1Temp.ora
-rw-r—– 1 oracle oinstall? 510 Dec? 3 22:04 lockAccount.sql
-rw-r—– 1 oracle oinstall? 726 Dec? 3 22:04 postDBCreation.sql
-rw-r—– 1 oracle oinstall? 649 Dec? 3 22:04 postScripts.sql
-rw-r—– 1 oracle oinstall 1373 Dec? 3 22:04 rmanRestoreDatafiles.sql
-rw-r—– 1 oracle oinstall? 399 Dec? 3 22:04 testdb1.log
-rwxr-xr-x 1 oracle oinstall? 704 Dec? 3 22:04 testdb1.sh
-rwxr-xr-x 1 oracle oinstall? 554 Dec? 3 22:04 testdb1.sql

运行的主体是testdb1.sh这个shell脚本,而脚本里调用的SQL脚本是testdb1.sql,我们就不兜圈子了,调用的顺序如下:

@/U01/app/oracle/admin/testdb1/scripts/CloneRmanRestore.sql
@/U01/app/oracle/admin/testdb1/scripts/cloneDBCreation.sql
@/U01/app/oracle/admin/testdb1/scripts/postScripts.sql
@/U01/app/oracle/admin/testdb1/scripts/lockAccount.sql
@/U01/app/oracle/admin/testdb1/scripts/postDBCreation.sql

  • CloneRmanRestore.sql的工作是完成备份的还原
  • cloneDBCreation.sql的工作是重建控制文件,重建临时表空间,修改db_name,修改字符集.
  • postScripts.sql是初始化一些目录结构.
  • lockAccount.sql是对一些非系统用户做锁定操作.
  • postDBCreation.sql是做一些数据库创建后的基本补充,做一些编译的工作.

学习了这个过程,突然发现我们熟悉的DBCA其实还是有一些持续学习的必要.看起来简单的工具能够掌握本质,本身就是一种无形的进步.

六、DBCA和技术趋势发展的关系

这里我们分两个方面来看,一个是DBCA和多租户的关系,看似不大起眼的DBCA其实和12c的架构设计密不可分.另外一个是12.2的一个新特性,绝对会让人眼前一亮.

1、DBCA和多租户的关系

而结合技术趋势来看DBCA其实发现它还是有很大的改进,我们简单说说.

首先是12c引入的多租用户特性(Multitenant Environment),它允许一个数据库容器(CDB)承载多个可插拔数据库(PDB),通俗点说就是库中库,或者说是数据库里的Docker.在即将推出的12.2中支持的PDB数从252增加到了4096个,下面这个经典的架构图来自官方.

这个和DBCA有什么关系呢?里面有一个SEED的PDB,是容器架构的一个重点部分.

Seed又叫PDB$SEED,创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象(因为是这个PDB是只读的).一个CDB中有且只能有一个Seed.

这里的这个PDB其实就是一个”活”的模板库,它有自己独立的系统表空间.如图左下所示.

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读