赵公口网站建设公司,企业网站制作正规公司,如何部置网站到iis,php快速建站系统多租户容器数据库架构图总览 多租户容器数据库组成部分#xff1a;
1.有且仅有一个CDB Root(CDB$ROOT)#xff0c;它包含了Root和所有PDB数据库的元数据和数据字典信息。
2.有且仅有一个Seed PDB(PDB$SEED),它的作用是创建其他PDB的模板#xff0c;它是只读库#xff0c;…多租户容器数据库架构图总览 多租户容器数据库组成部分
1.有且仅有一个CDB Root(CDB$ROOT)它包含了Root和所有PDB数据库的元数据和数据字典信息。
2.有且仅有一个Seed PDB(PDB$SEED),它的作用是创建其他PDB的模板它是只读库不能做任何修改。
3.0个或多个应用程序容器Application Container每个Application Container包含一个Application Root以及插在这个root上的Application PDBsApplication Root属于CDB Root。
4.0个或多个用户创建的PDB每个PDB和12c之前的普通数据功能基本一样在CDB创建之初是没有PDB的PDB根据用户业务需求后创建。
5.0个或1个Application Seed它是应用程序容器里面用来创建Application PDBs的模板是可选的如果没有则Application PDBs可以以第2条的PDB$SEED为模板创建。 创建PDB的几种方式总览 技术方式描述Create a PDB from scratch通过pdb seed或者application seed作为模版创建 Clone an existing PDB or non-CDB 通过源pdb或者源non-cdb克隆。 源数据库可以是本地/远程cdb里面的普通pdb 或者本地/远程cdb里application container里面的application pdb 或者是non-cdb Relocate a PDB to a different CDB 从一个cdb里面搬迁pdb到另外一个cdb Plug an unplugged PDB into a CDB 通过源pdb的元数据xml文件来把pdb插入现有cdb Reference a PDB as a proxy PDB 通过本地/远程cdb里面的普通pdb 或者本地/远程cdb里application container里面的application pdb来创建一个代理pdb
一、 通过种子PDB创建标准PDBCreate a PDB from scratch 或者 需注意的几点
1.注意当前是在cdb root还是application root如果是cdb root创建的就是标准pdb如果在application root下创建的是application pdb。
2.通过命令CREATE PLUGGABLE DATABASE创建并指定本地pdb管理员账户如果还需要其他子句可以添加pdb刚创建完成后是mount模式要打开到read write模式默认会创建一个和pdb同名的服务注意在网络配置文件中配置好以供客户端正常访问。
操作命令
CREATE PLUGGABLE DATABASE salespdb
ADMIN USER salesadm
IDENTIFIED BY password
STORAGE (MAXSIZE 2G)
DEFAULT TABLESPACE sales
DATAFILE /disk1/oracle/dbs/salespdb/sales01.dbf SIZE 250M AUTOEXTEND ON
PATH_PREFIX /disk1/oracle/dbs/salespdb/
FILE_NAME_CONVERT (/disk1/oracle/dbs/pdbseed/,/disk1/oracle/dbs/salespdb/); 需注意pdbseed的大小写。
二、通过本地PDB复制新的PDB 或者 需满足的前提条件
用户得在根容器数据库和源PDB数据库中有CREATE PLUGGABLE DATABASE的系统权限。源PDB不能关闭。如果CDB不是local undo 模式源PDB得处于open read only模式。如果CDB是local undo源PDB没有这个限制,如下查询是否是local undo 模式 SYSPRODCDBSELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME LOCAL_UNDO_ENABLED;PROPERTY_NAME PROPERTY_VALUE
-------------------- --------------------
LOCAL_UNDO_ENABLED TRUE 如果CDB不是归档模式源PDB得处于open read only模式。如果CDB是归档模式源PDB没有这个限制,如下查询是否是归档模式 SYSPRODCDBarchive log list; Database log mode No Archive Mode Automatic archival Disabled 5.如果创建的是application pdb需要和application container保持一样的字符集
操作命令
以通过PDBPROD1复制一个PDBPROD3为例因为实验库没开归档需要源pdb read only创建完后确保两个库都是打开状态
SYSPRODCDBshow pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDBPROD1 READ WRITE NOSYSPRODCDBalter pluggable database PDBPROD1 close;Pluggable database altered.SYSPRODCDBalter pluggable database PDBPROD1 open read only;Pluggable database altered.SYSPRODCDBcreate pluggable database PDBPROD3 FROM PDBPROD1 FILE_NAME_CONVERT(PDBPROD1,PDBPROD3);Pluggable database created.SYSPRODCDBalter pluggable database PDBPROD1 close;Pluggable database altered.SYSPRODCDBshow pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDBPROD1 MOUNTED6 PDBPROD3 MOUNTEDSYSPRODCDBalter pluggable database all open;Pluggable database altered.SYSPRODCDBshow pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDBPROD1 READ WRITE NO6 PDBPROD3 READ WRITE NO可根据业务情况选择是否加其他子句 PATH_PREFIX 、STORAGE、 NO DATA等。
三、通过远程PDB复制新的PDB 需满足的前提条件
用户得在根容器数据库和源PDB数据库中有CREATE PLUGGABLE DATABASE的系统权限。源数据库安装平台和目标数据库安装平台须具有同样的字节序endianness源库安装选项必须和目标库安装选项相同或者是目标库的子集。如果创建的是application pdb源pdb的应用程序名称和版本须和目标application container的程序名称和版本保持一致。如果目标CDB字符集不是AL32UTF8则需要和源CDB兼容且目标CDB所有application pdb需要和application container保持一样的字符集如果CDB字符集是AL32UTF8则没有要求。源库不能关闭。如果目标CDB不是local undo 模式源PDB得处于open read only模式。如果目标CDB不是归档模式源PDB得处于open read only模式。如果创建的是refreshable pdb则源pdb得处于归档和local undo模式。创建的database link连接用户须具有CREATE PLUGGABLE DATABASE和sysoper权限。
操作命令
CREATE PLUGGABLE DATABASE pdb2 FROM pdb1pdb1_link;
四、通过19c非容器数据库复制新的PDB 需满足的前提条件
用户得在根容器数据库和源PDB数据库中有CREATE PLUGGABLE DATABASE的系统权限。源数据库安装平台和目标数据库安装平台须具有同样的字节序endianness源库安装选项必须和目标库安装选项相同或者是目标库的子集。两边版本要在12.1.0.2及以上且版本要一致。新建的PDB数据块大小要和cdb保持一致。如果non-cdb不是归档模式要打开为read only。字符集和dblink要求同上。
操作命令
CREATE PLUGGABLE DATABASE pdb2 FROM mydbmydb_link; --mydb是non-cdb的名字同CREATE PLUGGABLE DATABASE pdb2 FROM NON$CDBmydb_link;--用NON$CDB代替。执行后在打开新建的pdb之前需要执行转换脚本 ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
五、通过relocate迁移PDB
从一个CDB Root到另一个CDB Root 或从一个Application Root 到另一个Application Root 通过dblink复制源pdb的数据块undo块redo块到新的位置是一种几乎没有downtime的数据库迁移方式不需要更改网络连接串等新库打开后源库就会自动删除。
需满足的前提条件
1.源库处于local undo模式。
2.目标CDB如果不是归档模式需要处于read only状态。
3.用户dblink字符集的前提条件同上。
操作命令
CREATE PLUGGABLE DATABASE ... FROM src_pdb_namelink2src... RELOCATE AVAILABILITY [MAX | NORMAL]
使用AVAILABILITY NORMAL默认源和目标共享同一个LISTENER。 六、通过XML元数据文件或者.pdb压缩归档文件导入非插入PDB
在CDB Root创建PDB 在application root创建pdb 源库不能比新库版本更高当用.pdb的归档文件创建时不必指定源数据库的文件地址当用XML的文件创建时需指定SOURCE_FILE_NAME_CONVERT或 SOURCE_FILE_DIRECTORY
操作命令
CREATE PLUGGABLE DATABASE salespdb USING /disk1/usr/salespdb.xml SOURCE_FILE_NAME_CONVERT (/disk1/oracle/sales/, /disk2/oracle/sales/) NOCOPY STORAGE (MAXSIZE 2G) TEMPFILE REUSE;
用.pdb文件
CREATE PLUGGABLE DATABASE salespdb USING /disk1/usr/sales.pdb STORAGE (MAXSIZE 2G);
七、代理PDB
在CDB Root创建代理PDB 在Application Container创建代理PDB 代理PDB实现的是像访问本地CDB中的PDB一样访问远程的PDB只复制源PDB的 SYSTEM 和 SYSAUX 表空间。
需满足的前提条件
1.用户得在根容器数据库和源PDB数据库中有CREATE PLUGGABLE DATABASE的系统权限。 2.本地CDB必须为归档模式和LOCAL UNDO模式。 3.创建Proxy PDB时远程PDB必须为OPEN READ/WRITE 模式。
操作命令
CREATE PLUGGABLE DATABASE pdb1 AS PROXY FROM pdb1pdb1_link;