多租户Lesson 04. Managing a Multitenant Container Database and Pluggable Databases
1. 写出使用 SQL*Plus 连接 CDB 和 PDB 的命令。4-4
CDB,根
本地OS验证
将ORACLE_SID设置为CDB实例名并使用命令 connect / as sysdba,则会授予系统权限的公用sys用户的身份连接至根,以管理和维护所有PDB。
使用服务名
EasyConnect语法中的别名
SQL> connect username@hostname:portnumber/service_name
tnsnames.ora中的别名
SQL> connect username@localhost:portnumber/service_name
PDB
EasyConnect或者tnsnames.ora文件中的别名
tnsnames.ora中的net_service_name与服务名匹配
2. 启动 CDB 时,会经过哪几个阶段,各阶段会有哪些系统状态的改变? 4-9
nomount -> mount -> open
nomount()
实例启动
mount()
CDB控制文件已为实例打开
根已装载
PDB已装载
open()
根已打开
PDB仍然处于装载状态,但处于只读模式的种子除外
或者PDB open
PDB在读写模式下打开,但处于只读模式的种子除外
No-CDB
Nomount
实例启动,SGA内存已经分配,必须的后台进程已经运行,同时预警日志和跟踪文件打开。
预警日志文件:按照时间顺序记录整个数据库状态改变和错误信息
跟踪文件:针对每个服务器和后台进程检测到的内部错误进行单独记录
Mount
控制文件打开,系统进行数据库文件的完整性验证,对数据库本身不进行任何操作
Open
后台服务根据控制文件的记录,打开每一个数据文件,读取该文件开头的SCN字段值并且与控制文件的SCN值进行对比,用以判断数据库的一致性。如有必要会由SMON自动执行实例恢复,最后把所有联机重做日志文件打开,此时用户就可以正常访问数据库了。
术语
控制文件:数据库物理结构信息
数据文件:表行数据信息,索引等
联机重做日志文件:持久化重做日志缓冲区中的重做条目
SMON:System Moniter Process 系统监控器进程
在实例重启时,检查数据库的一致性,如果需要由SMON负责执行实例恢复。
另外它也负责清理不需要的临时段
3. 请描述关闭 CDB 时系统状态的变化。 4-14
所有PDB均已关闭(无新的具体消息)
CDB已关闭 closed
CDB已装载 dismount
实例已关闭 shut down
4. 要在 CDB 打开时自动打开 PDBs,应该怎么做? 4-15
触发器
create trigger Open_All_PDBs
after startup on database
begin
execute immediate 'alter pluggable database all open';
end Open_All_PDBs;
/
(使用alter pluggable database命令的save state子句)
5. PDB 的打开模式有哪几种? 4-16
3种 Restricted、Read only、Read write
Restricted 受限模式
Restricted read write 受限读写
允许拥有Restricted Session权限的用户进行连接
允许PDB的本地管理员管理文件移动、备份以及阻止会话访问数据
Read only 只读模式
打开PDB,任何连接到PDB的会话都只能执行只读事务
Read write 读写模式
正常状态
6. CDB 如何管理各 PDBs 的初始化参数值? 4-19
每个CDB有一个SPFILE用于存储参数。参数值与根相关联,并应用于根,并且可用作所有其他容器的默认值
7.举例说明在 PDB 上执行 ALTER SYSTEM 语句对 PDB 和 CDB 的不同影响。 4-21
强制检查点