oracle 10g failover,Oracle 10g R2 DataGuard之物理standby的switchover和failover

一、物理standby的switchover

注:在做switchover前,需要将监听解析文件tnsnames.ora文件中的主机名对换一下,主备都要更改,并重启监听。

主库操作:

相关的参数文件要添加的参数,已经在之前创建的时候已经添加,具体请看前面的步骤,下面进行转换:

首先查看主库的转换状态:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

TO STANDBY

执行转换命令:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

状态是:TO STANDBY这是可以进行转换的。

注意如果,当前有用户连接到数据库其状态是如下:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

SESSIONS ACTIVE

这个时候的状态是会话连接状态的,在执行转换命令的时候会报错误ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected

此时可以加上witch session shutdown;

关闭数据库,启动到mount的状态;

7624fe4ee875b93ea4cbcdcd35dd448f.png

备库操作:

查看备库的转换状态:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

TO PRIMARY

状态是:TO PRIMARY这是可以进行转换的。

执行转换命令:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

日志:

94d2b5901df0ab61586ad55dc6c37c65.png

注意:

有时候状态是如下的:

就是没有实时应用归档的原因,此时执行:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

即可,改变状态为:TO PRIMARY

dd642e0e60388d4a604af7106e9daed3.png

然后在新备库上进行日志应用:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

验证结果:

0fca55b5ee187d9fc2f7c63f36c84393.png

ed4a68eaf040c074a10d690a18a4972f.png

1、检查归档文件是否连续

查询待转换standby数据库的V$ARCHIVE_GAP视图,确认归档文件是否连接:

SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

如果返回的有记录,按照列出的记录号复制对应的归档文件到待转换的standby服务器。这一步非常重要,必须确保所有已生成的归档文件均已存在于standby服务器,不然可能会数据不一致造成转换时报错。

文件复制之后,通过下列命令将其加入数据字典:

SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '归档文件名称';

2、检查归档文件是否完整

分别在primary/standby执行下列语句:

SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

该语句取得当前数据库各线程已归档文件最大序号,如果primary与standby最大序号不相同,必须将多出的序号对应的归档文件复制到待转换的standby服务器。

3、启动failover

执行下列语句:

SQL> alter database recover managed standby database finish ;

4、切换物理standby角色为primary

SQL> alter database commit to switchover to primary;

f0f4cd568fd44b4cc01c1887cda7a753.png

5、启动新的primary数据库。

SQL> alter database open;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle Data Guard 的 fast failover 是一种自动故障转移的机制,用于在主库宕机时快速地将备库提升为主库,从而实现数据库的高可用性。要设置 fast failover,您可以按照以下步骤进行操作: 1. 确保 Data Guard 配置正确,并且主库和备库之间的网络连接稳定。 2. 在备库上启用 fast-start failover,并设置故障转移的阈值和检测间隔。例如: ``` DGMGRL> enable fast_start failover; DGMGRL> edit fast_start failover; Set threshold = 30 seconds; Set pollinginterval = 5 seconds; Set observerreconnectinterval = 60 seconds; ``` 这里的 threshold 指定了主库宕机的最大容忍时间,如果在这个时间内无法恢复主库,备库会自动进行故障转移;而 pollinginterval 则指定了检测主库是否可用的时间间隔。 3. 配置 Observer,在备库服务器上启动 Observer 进程,并将它配置为自动启动。例如: ``` DGMGRL> add observer observer1 type "observer" enabled; DGMGRL> edit observer observer1 set property ConnectIdentifier= '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))'; DGMGRL> edit observer observer1 set property FastStartFailoverThreshold=30; DGMGRL> edit observer observer1 set property ObserverReconnectInterval=60; DGMGRL> enable observer observer1; ``` 这里的 ConnectIdentifier 指定了 Observer 连接的地址和服务名,而 FastStartFailoverThreshold 和 ObserverReconnectInterval 参数则与步骤 2 中的参数相同。 4. 配置主库和备库的监听器,确保它们能够接收来自 Observer 的连接请求。例如: ``` DGMGRL> edit database 'orcl' set property ListenerAddress='(ADDRESS=(PROTOCOL=tcp)(HOST=hostname)(PORT=1521))'; ``` 这里的 ListenerAddress 指定了监听器的地址和端口号。 5. 测试 fast failover 是否正常工作。您可以模拟主库宕机,观察备库是否能够自动进行故障转移,并且系统能否正常恢复。 以上就是设置 Oracle Data Guard fast failover 的基本步骤。需要注意的是,fast failover 需要一些复杂的配置和管理,建议在实际应用中慎重考虑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值