深圳网站建设深正互联,404源码网html,中国最好的网站建设,太原网站建设招聘数据库管理141期 2024-01-29 第141期 DG PDB - Oracle DB 23c#xff08;20240129#xff09;1 概念2 环境说明3 操作3.1 数据库配置3.2 配置tnsname3.3 配置强制日志3.4 DG配置3.5 DG配置建立联系3.6 启用所有DG配置3.7 启用DG PDB3.8 创建源PDB的DG配置3.9 拷贝pdbprod1文件… 数据库管理141期 2024-01-29 第141期 DG PDB - Oracle DB 23c202401291 概念2 环境说明3 操作3.1 数据库配置3.2 配置tnsname3.3 配置强制日志3.4 DG配置3.5 DG配置建立联系3.6 启用所有DG配置3.7 启用DG PDB3.8 创建源PDB的DG配置3.9 拷贝pdbprod1文件至proddg3.10 目标PDB添加standby log3.11 验证并启动DG PDB3.12 切换PDB角色3.13 源库PDB添加standby log3.14 开启备库查询3.15 回切测试 总结 第141期 DG PDB - Oracle DB 23c20240129 作者胖头鱼的鱼缸尹海文 Oracle ACE Associate: DatabaseOracle与MySQL 网思科技 DBA总监 10年数据库行业经验现主要从事数据库服务工作 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP、认证技术专家ITPUB认证专家OCM讲师 圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号非著名社恐社交恐怖分子 公众号胖头鱼的鱼缸CSDN胖头鱼的鱼缸尹海文墨天轮胖头鱼的鱼缸ITPUByhw1809。 除授权转载并标明出处外均为“非法”抄袭。 首先这应该是我一月份最后一片文章了不保证本期回归一下技术重新转头把去年Oracle 23c系列文章中高可用这部分的坑给填了深入捯饬一下DG PDB。
1 概念
从Oracle DB 23c开始引入了DG PDB即在原来CDB级别DG的基础上增加了PDB级别的DG这种配置下CDB彻底沦为PDB的底座PDB可以在任意CDB之间构建DG架构而不用考虑CDB的角色问题相较于21c的功能现在PDB备库可以为只读状态了。 DG PDB的好处可以充分利用主备端的硬件资源让每个CDB都能承载生产PDB和灾备PDB。
2 环境说明
这里选择了最新版本的Oracle Linux9.3作为操作系统俩CDB均已开启归档模式
本次操作会根据实际情况进行其中pdbprod1将在对端做DG PDB。
3 操作
3.1 数据库配置
俩CDB均执行
alter system set dg_broker_starttrue;
alter system set standby_file_managementauto;
alter database flashback on;prodcdb
alter system set log_archive_dest_1LOCATIONUSE_DB_RECOVERY_FILE_DEST VALID_FOR(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAMEprodcdb scopeboth;proddg:
alter system set log_archive_dest_1LOCATIONUSE_DB_RECOVERY_FILE_DEST VALID_FOR(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAMEproddg scopeboth;俩CDB需要使用同样的密码文件。
3.2 配置tnsname
/u01/app/oracle/product/23.0.0/dbhome_1/network/admin/tnsnames.ora
PRODCDB (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 10.10.10.101)(PORT 1521))(CONNECT_DATA (SERVER DEDICATED)(SERVICE_NAME prodcdb)))PRODDG (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 10.10.10.201)(PORT 1521))(CONNECT_DATA (SERVER DEDICATED)(SERVICE_NAME proddg)))3.3 配置强制日志
alter database force logging;3.4 DG配置 dgmgrl sys/oracleprodcdb
dgmgrl
CREATE CONFIGURATION dgconf_1 AS PRIMARY DATABASE IS prodcdb CONNECT IDENTIFIER IS prodcdb;dgmgrl sys/oracleproddg
dgmgrl
CREATE CONFIGURATION dgconf_2 AS PRIMARY DATABASE IS proddg CONNECT IDENTIFIER IS proddg;3.5 DG配置建立联系
dgmgrl sys/oracleprodcdb
dgmgrl
ADD CONFIGURATION dgconf_2 CONNECT IDENTIFIER IS proddg;
show configuration;dgmgrl sys/oracleproddg
dgmgrl
show configuration;3.6 启用所有DG配置
dgmgrl sys/oracleprodcdb
dgmgrl
enable configuration all;
show configuration;dgmgrl sys/oracleproddg
dgmgrl
show configuration;3.7 启用DG PDB
dgmgrl sys/oracleprodcdb
dgmgrl
EDIT CONFIGURATION PREPARE DGPDB;3.8 创建源PDB的DG配置
dgmgrl sys/oracleproddg
dgmgrl
add pluggable database pdbdg1 at proddg source is pdbprod1 at prodcdb PDBFileNameConvert is /u01/app/oracle/oradata/PRODCDB,/u01/app/oracle/oradata/PRODDG;3.9 拷贝pdbprod1文件至proddg
prodcdb:
alter session set containerpdbprod1;
alter database begin backup;scp -r /u01/app/oracle/oradata/PRODCDB/100D0E78F6B3C90AE063650A0A0ACA90/ db23cdg:/u01/app/oracle/oradata/PRODDG/prodcdb:
alter session set containerpdbprod1;
alter database end backup;这里同样可以使用rman duplicate pluggable database来复制文件这里不做演示。
3.10 目标PDB添加standby log
alter session set containerpdbdg1;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;3.11 验证并启动DG PDB
dgmgrl sys/oracleproddg
dgmgrl
VALIDATE PLUGGABLE DATABASE pdbdg1 at proddg;dgmgrl sys/oracleproddg
dgmgrl
edit PLUGGABLE DATABASE pdbdg1 at proddg set stateAPPLY-ON;
show configuration;
show pluggable database pdbdg1 at proddg;
show pluggable database pdbprod1 at prodcdb;3.12 切换PDB角色
dgmgrl sys/oracleproddg
dgmgrl
VALIDATE PLUGGABLE DATABASE pdbdg1 at proddg;
switchover to pluggable database pdbdg1 at proddg;这时候新的备库会出现异常因为没有添加standby log需要处理。
3.13 源库PDB添加standby log
dgmgrl sys/oracleproddg
dgmgrl
edit PLUGGABLE DATABASE pdbprod1 at prodcdb set stateAPPLY-OFF;alter session set containerpdbprod1;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;
alter database add standby logfile size 200m;dgmgrl sys/oracleproddg
dgmgrl
edit PLUGGABLE DATABASE pdbprod1 at prodcdb set stateAPPLY-ON;
show pluggable database pdbprod1 at prodcdb;3.14 开启备库查询
alter session set containerpdbprod1;
alter pluggable database open;dgmgrl
show pluggable database pdbprod1 at prodcdb;3.15 回切测试
dgmgrl
switchover to pluggable database pdbprod1 at prodcdb;show pluggable database pdbprod1 at prodcdb;
show pluggable database pdbdg1 at proddg;
show configuration;至此DG PDB搭建完成。
总结
使用DG PDB初始化搭建还是比较繁琐的但是不需要全量CDB级别同步数据还是比较方便切换也很方便。 老规矩知道写了些啥。 参考文档Scenarios for Using DGMGRL with a DG PDB Configuration (23c)(ttps://docs.oracle.com/en/database/oracle/oracle-database/23/dgbkr/scenarios-using-dgmgrl-dg-pdb-configuration-23c.html)