网站出现404,网站建设dream,WordPress播放h265,网站开发平台开发公司一、简介
Oracle 12c引入了多租户架构#xff0c;允许一个容器数据库#xff08;Container Database, CDB#xff09;托管多个独立的可插拔数据库#xff08;Pluggable Database, PDB#xff09;。本文档旨在详细描述如何启动和关闭CDB及PDB。 二、容器数据库 (CDB)
2.1…一、简介
Oracle 12c引入了多租户架构允许一个容器数据库Container Database, CDB托管多个独立的可插拔数据库Pluggable Database, PDB。本文档旨在详细描述如何启动和关闭CDB及PDB。 二、容器数据库 (CDB)
2.1 启动和关闭CDB
启动和关闭容器数据库的操作与传统的实例相同。通过SQL*Plus中的STARTUP和SHUTDOWN命令来完成这些操作当以特权用户身份连接到CDB时可以使用以下命令
STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | TRANSACTIONAL | NORMAL | ABORT]
例如
STARTUP NOMOUNT;
STARTUP MOUNT;
STARTUP RESTRICT;
STARTUP UPGRADE;
STARTUP FORCE;
STARTUP READ ONLY;SHUTDOWN IMMEDIATE;
SHUTDOWN TRANSACTIONAL;
SHUTDOWN NORMAL;
SHUTDOWN ABORT; 二、 可插拔数据库 (PDB)
2.1 使用SQL*Plus命令启动和停止PDB
当以特权用户身份连接到特定的PDB时可以使用以下SQL*Plus命令来启动或停止该PDB
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE | TRANSACTIONAL | NORMAL | ABORT];
示例
STARTUP FORCE;
SHUTDOWN IMMEDIATE;
STARTUP OPEN READ WRITE RESTRICT;
SHUTDOWN;
STARTUP;
SHUTDOWN IMMEDIATE; 2.2 使用ALTER PLUGGABLE DATABASE命令启动和停止PDB 在PDB中执行
当以特权用户身份连接到PDB时可以使用以下命令来打开或关闭当前PDB
ALTER PLUGGABLE DATABASE OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE CLOSE [IMMEDIATE];
示例
ALTER PLUGGABLE DATABASE OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ WRITE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE; 在CDB中执行
当以特权用户身份连接到CDB时可以使用以下命令来打开或关闭一个或多个PDB
ALTER PLUGGABLE DATABASE pdb-name-clause OPEN READ WRITE [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE pdb-name-clause OPEN READ ONLY [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE pdb-name-clause OPEN UPGRADE [RESTRICTED];
ALTER PLUGGABLE DATABASE pdb-name-clause CLOSE [IMMEDIATE];
pdb-name-clause可以是
一个或多个PDB名称以逗号分隔的列表。
ALL关键字表示所有PDB。
ALL EXCEPT关键字后跟一个或多个PDB名称以逗号分隔的列表表示一组PDB的子集。
示例
ALTER PLUGGABLE DATABASE pdb1, pdb2 OPEN READ ONLY FORCE;
ALTER PLUGGABLE DATABASE pdb1, pdb2 CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE; 2.3 PDB 自动启动
在Oracle 12.1.0.2补丁集之后引入了保存PDB启动状态的能力因此不再需要为自动启动PDB而实现触发器。
在12.1.0.2之前的版本中当CDB启动时所有的PDB会保持挂载状态。默认情况下没有机制可以在CDB启动时自动启动它们。要实现这一点可以创建一个系统触发器在CDB启动后打开一些或全部PDB。
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE ALTER PLUGGABLE DATABASE ALL OPEN;
END open_pdbs;
/
您可以根据需求自定义此触发器以便不是所有的PDB都会启动。 2.4 保存和丢弃PDB启动状态12.1.0.2 及以后
从12.1.0.2补丁集开始可以通过ALTER PLUGGABLE DATABASE命令保存PDB的启动状态使其在CDB重启后仍然有效。我们先来看一下正常CDB重启后的结果。
注意在重启前PDB处于READ WRITE模式但在重启后变为MOUNTED模式。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
---- ----------
PDB$SEED READ ONLY
PDB1 READ WRITE
PDB2 READ WRITE 然后我们重启CDB
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
---- ----------
PDB$SEED READ ONLY
PDB1 MOUNTED
PDB2 MOUNTED 接下来我们打开两个可插拔数据库但只保存其中一个的状态
ALTER PLUGGABLE DATABASE pdb1 OPEN;
ALTER PLUGGABLE DATABASE pdb2 OPEN;
ALTER PLUGGABLE DATABASE pdb1 SAVE STATE; DBA_PDB_SAVED_STATES视图显示有关容器保存状态的信息
COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20
SELECT con_name, instance_name, state FROM dba_pdb_saved_states;
CON_NAME INSTANCE_NAME STATE
-------- -------------- -----
PDB1 cdb1 OPEN 现在重启CDB将给出不同的结果
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
---- ----------
PDB$SEED READ ONLY
PDB1 READ WRITE
PDB2 MOUNTED
请注意状态仅在容器处于READ ONLY或READ WRITE模式时被保存并在DBA_PDB_SAVED_STATES视图中可见。对于处于MOUNTED模式的容器ALTER PLUGGABLE DATABASE ... SAVE STATE命令不会报错但也不会记录任何内容因为这是CDB重启后的默认状态。
此外像其他ALTER PLUGGABLE DATABASE命令一样PDB可以通过单独指定、逗号分隔列表、ALL或ALL EXCEPT关键词来标识。在RAC环境中还可以添加INSTANCES子句来指定实例但是无论INSTANCES子句如何SAVE/DISCARD STATE命令仅影响当前实例。 三、结论
通过遵循上述指导您可以安全高效地管理Oracle 12c环境中的CDB和PDB的启动和关闭过程从而更好地利用多租户架构的优势。随着技术的进步预计未来版本中这项功能将会更加完善为用户提供更佳的操作体验。