代码改变世界

ORACLE 11gR2 DG(Physical Standby)日常维护01

  AlfredZhao  阅读(4644)  评论(0编辑  收藏  举报

环境:RHEL 6.4 + Oracle 11.2.0.4

一、主备手工切换

二、重命名数据文件

Reference

一、主备手工切换

1.1 主库,切换成备库并启动到mount

1.1.1 查看主库状态
SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

1.1.2 切换到备库

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

1.1.3 启动到mount状态

SQL> STARTUP MOUNT

1.2 备库,切换成主库并启动到open

1.2.1 查看备库状态
SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

1.2.2 切换到主库

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

1.2.3 数据库open

SQL> ALTER DATABASE OPEN;

1.3 新的备库启动日志应用

1.3.1 备库mount状态直接启动日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

1.3.2 备库切换到open状态,启用Real-time query
A physical standby database instance cannot be opened if Redo Apply is active on a mounted instance of that database. Use the following SQL statements to stop Redo Apply, open a standby instance read-only, and restart Redo Apply:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

二、重命名数据文件

2.1 主库,对应的数据文件或者表空间offline

SQL> ALTER TABLESPACE DBS_D_JINGYU OFFLINE;

2.2 主库,操作系统层面重命名数据文件

$ mv /u01/oradata01/JINGYU/datafile/o1_mf_dbs_d_ji_byqy17ph_.dbf /u01/oradata01/JINGYU/datafile/DBS_D_JINGYU01.dbf

2.3 主库,重命名数据文件,表空间online

SQL> ALTER TABLESPACE DBS_D_JINGYU RENAME DATAFILE '/u01/oradata01/JINGYU/datafile/o1_mf_dbs_d_ji_byqy17ph_.dbf' TO '/u01/oradata01/JINGYU/datafile/DBS_D_JINGYU01.dbf';
SQL> ALTER TABLESPACE DBS_D_JINGYU ONLINE;

2.4 备库,停止redo应用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

2.5 备库,关闭数据库

SQL> SHUTDOWN IMMEDIATE;

2.6 备库,操作系统层面重命名数据文件

$ mv /u01/oradata01/BOSTON/datafile/o1_mf_dbs_d_ji_22qjsbps_.dbf /u01/oradata01/BOSTON/datafile/DBS_D_JINGYU01.dbf

2.7 备库,启动到mount状态

SQL> STARTUP MOUNT

2.8 备库,重命名数据文件

2.8.1 需要先调整参数STANDBY_FILE_MANAGEMENT为MANUAL 否则重命名数据文件时会报错`ORA-01275: Operation RENAME is not allowed if standby file management is automatic.`
SQL> SHOW PARAMETER STANDBY_FILE_MANAGEMENT
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = MANUAL;

2.8.2 重命名数据文件

SQL> ALTER DATABASE RENAME FILE '/u01/oradata01/BOSTON/datafile/o1_mf_dbs_d_ji_22qjsbps_.dbf' TO '/u01/oradata01/BOSTON/datafile/DBS_D_JINGYU01.dbf';

2.8.3 参数调整为AUTO

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO;

2.9 备库,重新启动redo应用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

Reference

  • Oracle® Data Guard Concepts and Administration 11g Release 2 (11.2)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示