物理Data Guard的日常维护

关闭顺序

1. 首先关闭primary数据库

[oracle@Master admin]$ sqlplus / as sysdba
SQL> shutdown immediate

2. 关闭standby数据库

[oracle@Salve ~]$ sqlplus / as sysdba
--查看备库是否在应用日志进行恢复
SQL>select process, status from v$managed_standby; 
-- 取消日志应用
SQL> alter database recover managed standby database cancel; 
SQL> shutdown immediate

 

开启主库和备库

1.开启standby数据库

SQL> STARTUP MOUNT;
SQL> alter database recover managed standby database disconnect from session;

2.开启主库

SQL> startup

 

备库 Read-Only Read-Only模式打开 

 

复制代码
---在备库停止日志传送 
SQL> recover managed standby database cancel; 
完成介质恢复。

---备库 Read-only 模式打开 
SQL> alter database open read only;

数据库已更改。

---备库回到日志传送模式 
SQL> recover managed standby database disconnect from session; 
完成介质恢复。
复制代码

 

 

日志传送状态监控 

备库察看 RFS(Remote File Service) 接收日志情况和 MRP 应用日志同步主库状况

复制代码
SQL> select process,client_process,sequence#,status from v$managed_standby;

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH           67   CLOSING
ARCH      ARCH           69   CLOSING
ARCH      ARCH            0   CONNECTED
ARCH      ARCH            0   CONNECTED
MRP0      N/A            71   WAIT_FOR_LOG
RFS       N/A            0    IDLE
RFS       LGWR           71   IDLE
复制代码

PROCESS列显示进程信息
CLIENT_PROCESS列显示对应的主数据库中的进程
SEQUENCE#列显示归档redo的序列号
STATUS列显示的进程状态

从上可以看出主库开启了4个归档进程,使用lgwr同步传输方式与standby通信,已经接收完70的日志,正等待71。

 

 察看备库是否和主库同步 

 备库查询,如果没有现明显的gap现象,则同步

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

未选定行

 

察看备库已经归档的redo 
SQL> SELECT REGISTRAR, CREATOR, THREAD#, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE# FROM V$ARCHIVED_LOG; 
察看备库已经应用的 redo 
SQL> SELECT THREAD#, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE# FROM V$LOG_HISTORY; 
察看备库接收 , 应用redo数据过程 
SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS; 
查看从库上的日志接收情况
SQL> select status,target,archiver,error,process from v$archive_dest;

 

primary数据库 open resetlogs时的 standby恢复 

Standby数据库状态 Standby服务器操作 解决方案
没有应用resetlog之前的redo数据 自动应用新的redo数据 无须手工介入
应用了resetlog之后的redo数据,不过standby打开了flashback。 可以应用,不过需要dba手工介入 1. 手工flashback到应用之前
2. 重启redo应用,以重新接收新的redo数据。
应用了resetlog之 后 的redo数据,而且没有flashback。 完全无法应用 重建物理standby是唯一的选择
posted @   头痛不头痛  阅读(229)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩