第一部分 PDB Failover 方案
1.1 Failover pdb
12.2 之后的版本支持PDB 级别failover
方案流程:
1
、主库故障
2
、检查
GDS
服务
3
、
Broker
检查
4
、
PDB
物理备份
5
、
PDB Failover
6
、检查辅助
BROKER
环境
7
、
GDS
创建和启动服务
8
、删除
PDB
9
、
PDB
还原主环境!
1.
登陆主库,模拟
PDB
故障
SQL> alter pluggable database frankpdb close abort instances=all;
2.
登陆备库,检查
Broker
状态
DGMGRL> show configuration verbose
Configuration - dg_config
Protection Mode: MaxPerformance
Members:
frankdb - Primary database
frankdbfs - Far sync instance
frankdbdg - Physical standby database
frankdbdg - Physical standby database (alternate of frankdbfs)
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'frankdb_CFG'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
3.
登陆备库,执行
PDB failover
# su - oracle
$ sqlplus sys/xxxx@" 备库hostname1-vip:1521/frankdbfl" as sysdba;
SQL> select status from v$instance;
$ dgmgrl sys@cmddbdg as sysdba;
DGMGRL> migrate pluggable database frankpdb to container frankdb using '/tmp/frankpdb.xml' connect as sys/xxxx@" 备库hostname1-vip:1521/frankdbfl"
4.
GDS
重建服务
删除服务:
GDSCTL> remove service -gdspool frankdbpool -service frankpdb_s1,frankpdb_s2
添加服务:
GDSCTL> add service -gdspool frankdbpool -service frankpdb_s1 -pdbname frankpdb -preferred frankdbfl -role primary
GDSCTL> add service -gdspool frankdbpool -service frankpdb_s2 -pdbname frankpdb -preferred frankdbfl -role primary
修改服务:
GDSCTL> modify service -gdspool frankdbpool -service frankpdb_s1 -database frankdbfl -add_instances -preferred frankdbfl1,frankdbfl2
GDSCTL> modify service -gdspool frankdbpool -service frankpdb_s2 -database frankdbfl -add_instances -preferred frankdbfl1,frankdbfl2
启动服务:
GDSCTL> start service -gdspool frankdbpool -service frankpdb_s1
5. 登陆备库,备份PDB
6. 如果需要将PDB 切换回原先的主库,参考章节“3.2 Relocate PDB ”
参考:
How to relocate a PDB from one CDB to another with minimal down time -12.2 Release (Doc ID 2396518.1)
Data Guard Impact on Oracle Multitenant Environments (Doc ID 2049127.1)
PDB Failover in a Data Guard environment: Using Data Guard Broker to Unplug a Single Failed PDB from a Standby Database and Plugging into a New Container or Migrate a Single PDB into a New Container (Doc ID 2088201.1)
