oracle 12.2 pdb参数,Oracle 12.2 新特性 | PDB不同字符集变更深入解析

从12c版本12.1开始,就有了新特性——Pluggable Database,相比较之前通过schema的管理方式实现多用户管理,Pluggable Database实现了进一步的隔离,其中包含如下特点:

将业务用户元数据和数据库本身的元数据进行分离,减少核心数据字典的性能衰减,增加管理便捷性。

sga统一分配,各PDB通过各自的标识进行空间管理。

但在12.1中,PDB的字符集与root容器必须保持一致,这样无形中造成了PDB迁移或者克隆的限制性。从12.2开始,同一个cdb中的各个PDB字符集可以不相同。

对于最新版本12.2.0.1,在新创建PDB时并没有办法指定PDB 的字符集,因此只能和root容器字符集相同,而不同PDB可以使用hot clone,或Relocate PDB online 方式直接plug-in,还可使用internal_use进行转换。

测试环境

环境:Oracle 12.2.0.1 (REL 6.9 x86-64)

目标端数据库使用dbca创建容器数据库,默认cdb默认字符集是AL32UTF8:

9414982a19c60501f2da961e9486f59d.png

PDB字符集:

7e8caec6295d075177adc6ebef0ca278.png

源端数据库使用dbca创建容器数据库,默认CDB默认字符集是ZHS16GBK,同时自带ZHS16GBK的PDB,测试通过HOTCLONE PDB 和RELOCATE PDB插入到原字符集为AL32UTF8的CDB。

84e53912a8b03419370e8efc5f75fc51.png

测试条件确认

1.源环境与目标环境平台有相同的字节序(endianness)

78b5a9f4aa1f993e148e79a94efa863f.png

2.目标库是AL32UTF8,源库能为任意字符集(见环境准备)

3.对于options可选组件,源库安装的必须是目标库的子集或相同

4.源库和目标库都为归档模式

e6ba1d7bee065aa7ccd60f04875a6540.png

5.源库和目标库都使用LOCAL UNDO

e71310d55701b03986a30b4dcd652ae8.png

6、步骤5满足源端PDB在read write 状态下进行克隆或relocate

注:如一开始并未使用LOCAL UNDO和归档模式,则通过如下方式开启

确认当前操作会话为cdb,或者进行切换

cad87b28e31fc6c9c807534abab0add2.png

热克隆验证

1.源库CDB$ROOT创建common user

8e833fa8f374f67e54ea58bc68cd6e80.png

2.创建public dblink,连接到源库

3.目标库测试dblink

1bf2fc9df6f113d4859279ce76c048ad.png

4.修改FILE_NAME_CONVERT

b440e3c0d5ad46ea57ce820d5fc666f1.png

5.通过dblink克隆PDB

6.检查克隆PDB

fbb88e344addfa748403be367ce1b684.png

此时仍然是mount状态,open打开PDB

687d9ca61fb8359ea9ef6494c75ab8e9.png

relocate原理

热克隆+redo应用

准备条件同热克隆

克隆时源库可处于read write状态

目标库Create PDB完成,源库dml事务仍可继续

目标PDB open时源库中止会话并同步redo(或归档数据)

源端应用undo数据回滚

源库PDB会话自动切换到目标端

克隆语句使用AVALIABLITY选项nomal|high|max(见测试过程)

如有条件,还可以验证应用连接自动切换到relocate目标端。

relocate测试

使用PDB relocate(PDB hot move),条件、步骤基本与hot clone相同,且都可沿用Hot Clone的保留配置。

1.目标库参数转换

2.relocate

de908ec480bf0c6d75201f5879076d59.png

#在relocate过程中,理论上连接原库PDBGBK的dml事务并不中断。

3.relocate操作完成

b84c893a6fe7798b8ae904f2ccc7e103.png

4.此时源库库状态(仍然承载连接和应用):

6a06a905a71990db43dfe262f6c07b3d.png

通过v$diag_info视图获取12c alert日志的位置:

152d332fd741b48631f11b780087a009.png

其中从Diag Trace的位置中能够找到alert里记录关于relocate的操作内容:

6b7f44d72528c2d28561877cc9ba998f.png

5.目标CDB中打开PDB,切换PDB

SQL> alter pluggable database PDBGBK open;

Pluggable database altered.

当目标库PDBGBK打开,如应用连接配置没有到目标库,则直接连接原来源库的连接会断开且dml事务直接中断。如有条件配置应用连接可以尝试配置并验证源库和目标端的记录条数和目标端。

另外注意监听里已经注册上了pdbgbk的服务(instance属于目标库)

open过程中记录操作:

6f25476ac711a24485e64d6fb648734d.png

目标库中,relocate过来的库状态正常:

8f05379841fa12edd208d016842b4c45.png

在目标库的PDB open时候,源库的alert记录relocate结束,源PDB删除操作:

e206359b71126a1d10563c08ed18fe9f.png

内部转换字符集

使用internal_use:

adb32d340c95380725f8d8e055a0cc9d.png

直接修改字符集报错,说明新设字符集必须是老字符集的超集

0310c94d0d69be6519327f406ee855e1.png

使用INTERNAL_USE:

93ee08c5a167f6b6eb0d0879366de491.png

需要变更为限制会话模式再进行修改:

fd7815d5978f425becd4a50e012f7547.png

阅读原文

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值