Oracle12cCDB和PDB数据库的启动与关闭说明
在Oracle 12c中,分CDB 和PDB,他们的启动和关闭操作整理如下。
1 Container Database (CDB)
对于CDB,启动和关闭与之前传统的方式一样,具体语法如下:
STARTUP[NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
SHUTDOWN[IMMEDIATE | ABORT]
要注意,在12c数据库创建完成后,默认情况下使用sqlplus / as sysdba 登录连接的是CDB。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[oracle @Ora12c ~]$ SQL*Plus:Release 12.1 . 0.1 . 0
24
: 50 : 34
Copyright(c) 1982 , 2013 , Connectedto: OracleDatabase 12.1 . 0.1 . 0
Withthe SQL>show CON_NAME ------------------------------ CDB$ROOT SQL> SQL>select CON_ID ---------- 2
3
|
我们现在连接的是CDB,即root container。
我们关闭CDB:
1
2
3
4
5
6
7
|
SQL>shutdown Databaseclosed. Databasedismounted. ORACLEinstance |
我们关闭CDB之前PDB 是没有关闭的,所以这个操作也会把PDB 关闭掉。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
SQL>startup ORACLEinstance TotalSystem 1269366784
FixedSize 2287912
VariableSize 788530904
DatabaseBuffers 469762048
RedoBuffers 8785920
Databasemounted. Databaseopened. SQL> CON_ID ---------- 2
3
|
注意这里的PDB,在CDB 启动之,PDB 是自动启动到mount状态,而不是OPEN。 所以我们还需要手工去open它,当然,也可以通过在CDB中配置触发器来自动open。
2 Pluggable Database (PDB)
PDB 的操作可以通过SQL*PLUS 来操作,也可以通过ALTER PLUGGABLE DATABASE 命令操作。
2.1 使用SQL*Plus 命令
因为默认连接的是CDB,所以必须先指定PDB才可以通过sqlplus来启动和关闭PDB,
具体语法和普通实例一样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
STARTUPFORCE; STARTUPOPEN STARTUPOPEN STARTUPUPGRADE; SHUTDOWN[IMMEDIATE]; SQL>show CON_NAME ------------------------------ CDB$ROOT SQL>selectcon_id, CON_ID -------------------- 2
3
注意这里是mount,表示PDB --指定PDB SQL>alter Sessionaltered. SQL>startup PluggableDatabase SQL>select CON_ID -------------------- 3
SQL> |
启动成功。 当我们切换到PDB之后,就看不到seed PDB的信息了。
2.2 使用ALTER PLUGGABLE DATABASE命令
如果在PDB中可以使用如下语法:
1
2
3
4
5
6
7
|
ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE |
如果是在CDB中,可以使用如下语法:
1
2
3
4
5
6
7
|
ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE |
<pdd-name-clause>表示的是多个PDB,如果有多个,用逗号分开。 也可以使用ALL或者ALL EXCEPT关键字来替代。
ALL:表示所有的PDBS。
ALLEXCEPT 表示需要排除的PDBS。
如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE ALTERPLUGGABLE |
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
SQL>alter Sessionaltered. SQL>select CON_ID -------------------- 2
3
SQL>ALTER Pluggabledatabase SQL>select CON_ID -------------------- 2
3
SQL>alter Sessionaltered. SQL>ALTER Pluggabledatabase SQL> CON_ID -------------------- 3
|
3 设置Pluggable Database (PDB) 的自动startup
默认情况下,在CDB 启动的时候,all 的PDB 都是mount状态,也没有默认的机制,在CDB启动时自动启动PDB。
但这里可以通过触发器来实现PDB的自动open:
1
2
3
4
5
6
7
8
9
10
11
|
CREATEOR AFTER BEGIN EXECUTE 'ALTERPLUGGABLE ; END / |
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
SQL>show CON_NAME ------------------------------ PDBCNDBA SQL>alter Sessionaltered. SQL>CREATE 2
3
4
'ALTER ; 5
6
Triggercreated. |
最新文章
- OPENCV配置 C1083: 无法打开包括文件:“opencv2/opencv.hpp”
- 应用程序调试工具gdb,王明学learn
- 坑爹的属性,android:descendantFocusability用法简析
- GridView控件中加自动排列序号
- MSSQL 2008错误提示:更改对于登录sa失败
- python-day6 常见算法 python内置模块
- [转]C#取得内网IP、外网IP、客户端IP方法
- JS通用方法总结(一)
- CentOS中TFTP配置
- Maven直接部署Web应用Tomcat
- Servlet的理解
- android PM2.5监控demo开发
- Response内置对象
- es6中的双箭头函数
- Calico搭建配置
- python基础循环
- RedHat6.5安装zookeeper单机
- oracle常用加解密函数
- intellij idea 配置web 项目
- 阿里云-DRDS(转)
热门文章
- WebServer_参考
- React Native pod install报错 `Yoga (= 0.44.3.React)` required by `React/Core (0.44.3)`
- Python 常用模块(1) -- collections模块,time模块,random模块,os模块,sys模块
- vue如何获取并操作DOM元素
- 1.React中的虚拟DOM
- 随笔--第一次使用crontab linux选择编辑器问题
- 二叉树(Java实现)
- 洛谷P2622 关灯问题II (二进制枚举+bfs
- 后缀数组练习4:Life Forms
- 小白学习django第一站-环境配置