12c CDB和PDB启动和关闭操作
来源:互联网 发布:招聘美工要求 编辑:程序博客网 时间:2024/05/09 14:40
1.前言
CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。
一个CDB数据库容器包含了下面一些组件:
ROOT组件
ROOT又叫CDB$ROOT,存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。
SEED组件
Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能有一个Seed.这个感念,个人感觉非常类似SQL SERVER中的model数据库。
PDBS
CDB中可以有一个或多个PDBS,PDBS向后兼容,可以像以前在数据库中那样操作PDBS,这里指大多数常规操作。
这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,Seed(种子)是一个容器,每个PDB是一个容器。每个容器在CDB中都有一个独一无二的的ID和名称
2.CDB和PDB数据库的启动和关闭
对于CDB,启动和关闭与之前传统的方式一样,具体语法如下:
启动:STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
关闭:SHUTDOWN [IMMEDIATE | ABORT]
要注意,在12c数据库创建完成后,默认情况下使用sqlplus / as sysdba 登录连接的是CDB。注意这里的PDB,在CDB 启动之后,PDB 是自动启动到mount状态,而不是OPEN。 所以我们还需要手工去open它,当然,也可以通过在CDB中配置触发器来自动open.
在下列范例中我们用SQL*Plus工具启动PDB,查看实例启动后的状态。通过在DATABASE视图和show con_name命令查看打开数据库是否为CDB数据库,本节示例在SQL*Plus中启动和关闭CDB。
2.1启动和关闭CDB
[oracle@localhost ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on 星期二 3月 15 11:05:01 2016Copyright (c) 1982, 2014, Oracle. All rights reserved.已连接到空闲例程。SQL> startupORACLE 例程已经启动。Total System Global Area 754974720 bytesFixed Size 2928968 bytesVariable Size 524291768 bytesDatabase Buffers 222298112 bytesRedo Buffers 5455872 bytes数据库装载完毕。数据库已经打开。SQL> set linesize 120SQL> select instance_name,status from v$instance;INSTANCE_NAME STATUS-------------------------------- ------------------------CDB OPENSQL> select name,cdb from v$database;NAME CDB------------------ ------CDB YESSQL> show con_nameCON_NAME------------------------------CDB$ROOT
关闭CDB
<pre class="sql" name="code">SQL> SHUTDOWN IMMEDIATE 数据库已经关闭。已经卸载数据库。 ORACLE 例程已经关闭。
2.2启动和关闭PDB
在CDB环境中,我们在SQL*Plus工具不用切换到PDB数据库管理模式,可以使用ALTER PLUGGABLE DATABASE命令打开单个数据PDB数据库、打开所有PDB数据库、除以外数据库,具体方法如下:
2.2.1 ALTER PLUGGABLE DATABASE命令启动PDB
oracle@localhost ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on 星期二 3月 15 11:55:42 2016Copyright (c) 1982, 2014, Oracle. All rights reserved.连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 MOUNTED 4 PDB2 MOUNTED 5 ORCL MOUNTEDSQL> alter pluggable database pdb1 open;插接式数据库已变更。SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB2 MOUNTED 5 ORCL MOUNTED关闭PDBSQL> alter pluggable database pdb1 close;插接式数据库已变更。SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 MOUNTED 4 PDB2 READ WRITE NO 5 ORCL READ WRITE NO
2.2.2 SQL*Plus启动PDB
在SQL*Plus中使用传统的STARTUP命令启动PDB数据库,需要我们连接到的CDB数据库切换到要被启动的PDB数据库,执行STARTUP命令。在执行STARTUP命令之前需要我们执行ALTER SESSION SET CONTAINER命令从CDB模式切换到PDB模式。
SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB2 MOUNTED 5 ORCL MOUNTEDSQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> alter session set container=pdb2;会话已更改。SQL> startup插接式数据库已打开。SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 4 PDB2 READ WRITE NO
2.2.3 随CDB启动PDB数据库
默认情况下,在CDB 启动的时候,所有的PDB 都是mount状态,也没有默认的机制,在CDB启动时自动启动PDB,我们可以在CDB数据库中创建触发器来实现PDB的自动打开。
SQL> SHOW CON_NAMECON_NAME------------------------------CDB$ROOTSQL> CREATE OR REPLACE TRIGGER open_pdbsAFTER STARTUP ON DATABASE BEGINEXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; END open_pdbs;触发器已创建SQL> SHUTDOWN IMMEDIATE数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> STARTUPORACLE 例程已经启动。Total System Global Area 754974720 bytesFixed Size 2928968 bytesVariable Size 524291768 bytesDatabase Buffers 222298112 bytesRedo Buffers 5455872 bytes数据库装载完毕。数据库已经打开。SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB2 READ WRITE NO 5 ORCL READ WRITE NO
- 12c CDB和PDB启动和关闭操作
- 在cdb中启动和关闭pdb
- Oracle 12c CDB 和PDB 数据库的启动与关闭 说明
- Oracle12c CDB和PDB数据库的启动与关闭说明
- Oracle12c CDB和PDB数据库的启动与关闭说明
- 12c pdb基础-手工创建cdb和pdb
- Oracle 12c 配置和修改 CDB 和 PDB 参数
- 12C New Feature 之一 cdb 和pdb
- Oracle 12c 如何连接到 CDB 和 PDB
- Oracle 12c CDB和PDB的切换
- Oracle 12c pdb/cdb 监听和tns 配置
- Oracle 12c创建用户和切换CDB、PDB
- Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭
- 12c中保持 启动CDB后PDB的状态
- 12c pdb & cdb (1)
- oracle 12c pdb&cdb
- Oracle 12c CDB 和 PDB 表空间管理和配置 说明
- Oracle 12c 多租户配置和修改 CDB 和 PDB 参数
- 如何在Beyond Compare中同步压缩文件夹
- 如何使用Retrofit写一个Android的REST客户端的小教程
- Remove Duplicates from Sorted Array I、II解题报告
- HDU 5230 (计算几何 圆和多边形面积交)
- Spring拾遗
- 12c CDB和PDB启动和关闭操作
- python处理字符串数据容易犯错的几个地方
- canvas之图形的变化(保存,平移,缩放,旋转)
- win to go在移动硬盘上制作windows系统
- C++如何生成随机数
- win7+cuda7.5+caffe配置及实例演示及训练自己的图片
- JAVA传值与传引用
- 001——缺少标签指令
- 一个简单的PHP文件上传示例程序