Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭
Oracle12c中引入的多宿主选项(multitenant option)允许一个容器数据库容纳多个独立的可插拔数据库(PDB)。本文将说明如何启动和关闭容器数据库(CDB)和可插拔数据库(PDB)。
1. 容器数据库(CDB)
启动和关闭容器数据库和以往一样。当作为授权用户连接到CDB时,SQL*Plus中可以使用STARTUP和SHUTDOWN命令。具体语法如下:
STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE| FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | ABORT]
2. 可插拔数据库(PDB)
可插拔数据库能用SQL*Plus命令或 ALTER PLUGGABLEDATABASE命令启动和关闭。
3. SQL*Plus命令
当作为授权用户连接至可插拔数据库时,如下命令可用来启动和关闭数据库:
STARTUP FORCE;
STARTUP OPEN READ WRITE [RESTRICT];
STARTUP OPEN READ ONLY [RESTRICT];
STARTUP UPGRADE;
SHUTDOWN [IMMEDIATE];
示例如下:
STARTUP FORCE;
SHUTDOWN IMMEDIATE;
STARTUP OPEN READ WRITE RESTRICT;
SHUTDOWN;
STARTUP;
SHUTDOWN IMMEDIATE;
4. ALTER PLUGGABLE DATABASE
ALTER PLUGGABLE DATABASE命令能在CDB或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 ONLYFORCE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ WRITE;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
当作为授权用户连接至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 READONLY FORCE;
ALTER PLUGGABLE DATABASE pdb1, pdb2 CLOSEIMMEDIATE;
ALTER PLUGGABLE DATABASE ALL OPEN;
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1OPEN;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1CLOSE IMMEDIATE;
5. 可插拔数据库(PDB)自动启动
Oracle12.1.0.2补丁集已引入了保持PDB启动状态的能力,因此,不用再通过下面的触发器方式来实现自动打开PDB。
Oracle12.1.0.2之前,CDB启动后,所有的PDB都处于加载状态。CDB启动时,没有默认机制自动启动PDB。只能通过在CDB上建立一个系统触发器来自动启动部分或所有PDB。
CREATE OR REPLACE TRIGGER open_pdbs
AFTERSTARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLEDATABASE ALL OPEN';
END open_pdbs;
/
如果你不想启动所有的PDB,可以定制修改该触发器。
6. 保持PDB处于启动状态(12.1.0.2之后)
Oracle12.1.0.2补丁集可以让PDB在CDB重启时保持启动状态。这可以通过ALTERPLUGGABLE DATABASE命令实现。
我们可以观察CDB重启的整个过程。注意,重启前,PDB都处于可读写模式,但重启后却处于加载模式。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDB1 READWRITE
PDB2 READWRITE
SQL>
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 MOUNTED
PDB2 MOUNTED
SQL>
接着,我们打开两个PDBS,但只保存PDB1的状态。
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 FROMdba_pdb_saved_states;
CON_NAME INSTANCE_NAME STATE
-------------------- ----------------------------------
PDB1 cdb1 OPEN
SQL>
重启CDB将会出现一个不同结果。
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 READWRITE
PDB2 READWRITE
SQL>
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READONLY
PDB1 READWRITE
PDB2 MOUNTED
SQL>
被保存的状态可以通过如下命令被废弃。
ALTER PLUGGABLE DATABASE pdb1 DISCARD STATE;
COLUMN con_name FORMAT A20
COLUMN instance_name FORMAT A20
SELECT con_name, instance_name, state FROMdba_pdb_saved_states;
no rows selected
SQL>
7. 注意:
Ø 只有容器处于只读或读写模式,状态才可以在视图DBA_PDB_SAVED_STATES中保存和显式。当对一个加载状态的容器运行ALTER PLUGGABLE DATABASE ... SAVE STATE命令时,既不报错,也不会记录状态,因为这是CDB重启后的默认状态。
Ø 像 ALTER PLUGGABLEDATABASE命令的其他例子一样, PDBs可以单独列出,也可以是逗号分隔的PDB列,或者用 ALL或 ALL EXCEPT关键字。
Ø RAC环境中,可以增加INSTANCES子句。该子句中可以写单个实例,逗号分隔的实例列,ALL或ALL EXCEPT关键字。不管INSTANCES 子句, SAVE/DISCARD STATE命令只影响当前的实例。
Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭的更多相关文章
- Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本
对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...
- oracle12c新特点之可插拔数据库(Pluggable Database,PDB)
1. 12c PDB新特点的优势 1) 可以把多个PDB集成进一个平台. 2) 可以快速提供一个新的PDB或一个已有PDB的克隆. 3) 通过拔插技术,可以快速把存在的数据库重 ...
- Oracle 12C 新特性 - “可插拔数据库”功能
Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积 ...
- Oracle12c中配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB)
Oracle12c中的多宿主选项允许一个容器数据库(CDB)容纳多个独立的可插拔数据库(PDB).本文将展示如何配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB).1. 配置CDB中的实例 ...
- 12c可插拔数据库CDB与PDB管理总结
12c可插拔数据库CDB与PDB管理总结 创建pdb1.直接创建 CREATE PLUGGABLE DATABASE pdb2 ADMIN USER boswll IDENTIFIED BY orac ...
- 如何连接oracle 12c可插拔数据库
启动根容器:[oracle@eric ~]$ export ORACLE_SID=cup[oracle@eric ~]$ sqlplus / as sysdbaSQL*Plus: Release 12 ...
- Oracle 12c的可插拔数据库PDB
1. 默认安装之后会有一个可插拔数据库:pdborcl 2. 启动根容器: [oracle@eric ~]$ export ORACLE_SID=orcl [oracle@eric ~]$ sqlpl ...
- Oracle可插拔数据库的jdbc连接串写法
我在服务器上部署某个第三方系统的数据库的时候,服务器数据库版本为oracle 12c.我采用的方式是新建了一个实例.访问正常. 后来项目的负责人告诉我,oracle12C支持所谓的可插拔数据库.可插拔 ...
- 详谈Oracle12c新特点容器数据库&可插拔数据库(CDB&PDB)
一般信息 数据字典 CDB_FILE$ DBA_PDBS PDB$SEED CDB_LOCAL_ADMINAUTH$ DBA_PDB_HISTORY PDB_HISTORY$ CDB_PDB_SAVE ...
随机推荐
- 20145106java实验四
实验名称:Java网络编程 实验内容: 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 结对小伙伴 20145109竺文君 博客地址: 在本次实验中,是以我作为服务 ...
- List集合实现简易学生管理
题目: 代码: package org.wlgzs; import java.util.ArrayList; import java.util.List; import java.util.Scann ...
- 《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 2 章 答案
判断对错1.编写程序的好方法是立即键入一些代码,然后调试它,直到它工作.2.可以在不使用编程语言的情况下编写算法.3.程序在写入和调试后不再需要修改.4.Python 标识符必须以字母或下划线开头.5 ...
- linux下如何使用命令行配置网络
答:一共分成以下几个步骤: 注:笔者使用的是ubuntu 1.设置ip sudo ifconfig eth0 192.168.1.121 2.设置网关 sudo route add default g ...
- ActiveMQ 集群配置 高可用
自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Pure Master Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数 ...
- 51Nod 1344 走格子(贪心
1344 走格子 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i ...
- hive学习4(hive的脚本执行)
hive的脚本执行 hive -e "SQL" hvie -f file 实例 [root@spark1 ~]# hive -e "show tables" # ...
- UVa 242 邮票和信封(完全背包)
https://vjudge.net/problem/UVA-242 题意: 输入s(每个信封能粘贴的最多邮票数量)和若干邮票组合,选出最大连续邮资最大的一个组合(最大连续邮资也就是用s张以内的邮票来 ...
- python后端工程师 数据爬虫
大数据挖掘分析平台和产品的建设. 工作职责: 独立完成软件系统代码的设计与实现: 根据需求完成设计,代码编写,调试,测试和维护: 使用Python 语言对后台业务逻辑进行开发以及维护: 能根据实际需求 ...
- GATK 一些资料
1. http://blog.sciencenet.cn/home.php?mod=space&uid=1469385&do=blog&classid=166694&v ...