oracle19c双机运维,Oracle 19C Data Guard基础运维-03 Failovers(物理)

Oracle 19C Data Guard

基础运维

-0

3 Failovers(

物理

)

原主库

原备库

Failovers

新主库

独立库

192.168.31.90

192.168.31.100

192.168.31.100

192.168.31.90

cjcdb

chendb

chendb

cjcdb

Failover

Figure 9-4 Failover to a Standby Database

4db5220d325295da9669bb8f48e0b623.png

Performing a Failover to a Physical Standby Database

主库意外宕机,并无法启动

场景一:没有归档间隙,零数据丢失

主库模拟故障:

重命名system

数据文件

[oracle@cjcos01 CJCDB]$ pwd

/u01/app/oracle/oradata/CJCDB

[oracle@cjcos01 CJCDB]$ mv system01.dbf system01.dbf.bak

SQL> alter system checkpoint;

alter system checkpoint

*

ERROR at line 1:

ORA-03113: end-of-file on communication channel

Process ID: 5309

Session ID: 45 Serial number: 38130

备库日志:

2020-04-18T08:49:26.394680+08:00

rfs (PID:6276): Possible network disconnect with primary database

启动主库失败:

SQL> startup

ORACLE instance started.

Total System Global Area 1375728192 bytes

Fixed Size

9134656 bytes

Variable Size

1107296256 bytes

Database Buffers

251658240 bytes

Redo Buffers

7639040 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

ORA-01110: data file 1: '/u01/app/oracle/oradata/CJCDB/system01.dbf'

SQL> select status from v$instance;

STATUS

------------

MOUNTED

备库:3.100

1.

检查

dg

恢复模式

SQL> select database_role,protection_level,protection_mode from v$database;

DATABASE_ROLE

PROTECTION_LEVEL     PROTECTION_MODE

---------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

2

检查

archive_gap

(

没有

gap

说明备库执行

failovers

不会丢失数据

)

SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;

no rows selected

检查没有归档gap后,最好在检查主从库归档日志是否完全同步,备库同步日志是否没有错误。

3

备库取消

DG

应用

(

关闭

MRP)

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

4

备库执行

failover

---谨慎操作,确保数据已完全同步后再切换,避免切换后数据丢失。

SQL> ALTER DATABASE FAILOVER TO chendb;

Database altered.

5

打开备库

SQL> select open_mode from v$database;

OPEN_MODE

--------------------

MOUNTED

SQL> alter database open;

Database altered.

6

新主库执行全备

7

新主库查看状态

SQL> select database_role,protection_level,protection_mode from v$database;

DATABASE_ROLE

PROTECTION_LEVEL     PROTECTION_MODE

---------------- -------------------- --------------------

PRIMARY

MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS

--------------------

FAILED DESTINATION

SQL> insert into test1 select * from test1;

1

rows created.

SQL> commit;

Commit complete.

修复原主库

SQL> shutdown immediate

[oracle@cjcos01 CJCDB]$ mv system01.dbf.bak system01.dbf

SQL> startup

ORACLE instance started.

Total System Global Area 1375728192 bytes

Fixed Size

9134656 bytes

Variable Size

1107296256 bytes

Database Buffers

251658240 bytes

Redo Buffers

7639040 bytes

Database mounted.

Database opened.

此时原主库变成的一个独立的数据库,可以读写方式打开

SQL> select database_role,protection_level,protection_mode from v$database;

DATABASE_ROLE

PROTECTION_LEVEL     PROTECTION_MODE

---------------- -------------------- --------------------

PRIMARY

MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

SQL> select open_mode from v$database;

OPEN_MODE

--------------------

READ WRITE

尝试将原主库切换为

physical standby

SQL> alter database commit to switchover to physical standby with session shutdown;

alter database commit to switchover to physical standby with session shutdown

*

ERROR at line 1:

ORA-16416: No viable Physical Standby switchover targets available

SQL> recover managed standby database using current logfile disconnect from session;

ORA-01665: control file is not a standby control file

此时原故障主库变成了一个独立的数据库,若想恢复成现有主库的

Physical Standby

,可以通过现有主库的数据进行重新搭建,或通过原故障主库failovers

之前的备份,进行恢复,在通过现有主库进行

rman

增量追加数据。

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值