参考与:《三思笔记》此书 物理standby的 failover 注意几点: 1 failover 之后, 原primary 数据库默认不再是data guard 配置的一部分。 2 多数情况下,其它逻辑/物理standby 数据库不直接参与failover的过程,因此这些数据库不需要做任何操作。 3 某些情况
参考与:《三思笔记》此书
物理standby的 failover
注意几点:
1 failover 之后,原primary 数据库默认不再是data guard 配置的一部分。
2 多数情况下,其它逻辑/物理standby 数据库不直接参与failover的过程,因此这些数据库不需要做任何操作。
3 某些情况下,新的primary 数据库配置之后,需要重新创建其它所有的standby 数据库。
另外,如果待转换角色的standby 处于maximum protection 或maximum availability 模式的话,归档日志应该是连续存在的,这种情况下你可以直接从第3 步执行,否则建议你按照操作步骤从第1 步开始执行。
一般情况下failover 都是表示primary 数据库瘫痪,最起码也是起不来了,因此这种类型的切换基本上不需要primary 数据库做什么操作。所以下列步骤中如果有提到primary 和standby 执行的,只是建议你如果primary还可以用,那就执行一下,即使它能用你却不执行,也没关系,不影响standby 数据库的切换:)
1、检查归档文件是否连续
查询待转换standby 数据库的V$ARCHIVE_GAP 视图,确认归档文件是否连接:
SQL>SELECT THREAD#, LOW_SEQUENCE#,HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
no rows selected
如果返回的有记录,按照列出的记录号复制对应的归档文件到待转换的standby 服务器。这一步非常重要,必须确保所有已生成的归档文件均已存在于standby 服务器,不然可能会数据不一致造成转换时报错。文件复制之后,通过下列命令将其加入数据字典:
注册:gap文件:
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
2、检查归档文件是否完整
分别在primary/standby 执行下列语句:
该语句取得当前数据库各线程已归档文件最大序号,如果primary 与standby 最大序号不相同,必须将多出的序号对应的归档文件复制到待转换的standby 服务器。不过既然是failover,有可能primary 数据库此时已经无法打开,甚至无法访问。
3、启动failover执行下列语句
15:30:42 scott@felix SQL>conn / assysdba
Connected.
15:30:51 sys@felix SQL>alter database recover managedstandby database finishforce;
Database altered.
FORCE 关键字将会停止当前活动的RFS 进程,以便立刻执行failover。
15:30:58 sys@felix SQL>select swtichover_status from v$database;
select swtichover_status from v$database
*
ERROR at line 1:
ORA-00904: "SWTICHOVER_STATUS":invalid identifier
15:31:21 sys@felix SQL>select status from v$instance;
STATUS
------------------------
MOUNTED
我们可以发现备库已经由open变成mount状态;
15:42:07 sys@felix SQL>alter database open;
Database altered.
15:42:18 sys@felix SQL>
剩下的步骤就与前面switchover 很相似了
4、切换物理standby 角色为primary
15:42:18 sys@felix SQL>alter database commit to switchover to primary;
Database altered.
15:45:18 sys@felix SQL>select switchover_status from v$database;
SWITCHOVER_STATUS
----------------------------------------
NOT ALLOWED
15:45:38 sys@felix SQL>select open_mode from v$database;
OPEN_MODE
----------------------------------------
MOUNTED
15:48:16 sys@felix SQL>alter database open;
Database altered.
15:48:36 sys@felix SQL>select open_mode from v$database;
OPEN_MODE
----------------------------------------
READ WRITE
此时primary 数据库已经不再是data guard 配置的一部分,我们需要做的就是尝试看看能否恢复原primary 数据库,将其改造为新的standby服务器。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号