当前位置:网站首页>DataGuard日常维护常见问题之数据同步异常
DataGuard日常维护常见问题之数据同步异常
2022-08-02 22:54:00 【DBA大董】
造成日志无法传到standby 的原因有:
- standby 服务器异常
- standby 相应的进程异常
- standby 监听器服务异常
日志传输问题
1、一般通过以下语句查看primary数据库和standby数据库的归档日志的sequence是否一样。
先在primary数据库执行
SQL> alter system switch logfile;
System altered.
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
38
如果一样说明没有问题,
如果不一样说明日志没有归档。
首先确认standby是否开启了日志应用
SQL> alter database recover managed standby database disconnect from session;
如果已经开启。再确认归档位置是否可用。
SQL> select dest_name,status,error from v$archive_dest;
DEST_NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
STATUS ERROR
------------------ -----------------------------------------------------------------
LOG_ARCHIVE_DEST_1
VALID
LOG_ARCHIVE_DEST_2
VALID
我遇到过这种情况:监听器没有监听到数据库
在操作系统Oracle用户登录查看监听器是否启动,lsnrctl stauts , lsnrctl start
用tnsping两个数据库是否正常,如果没有问题,在primary 数据库日志切换一次,看standby是否接收到归档日志了。
这几步没有问题就考虑数据库启动参数文件配置的问题了。
具体问题具体解决了。
排查思路
当 DG 出现故障时,第一时间检测 alert 日志,服务器 OS 日志,网络是否通畅。
当DG出现日志不能传输到备库:
一、查看是不是TNS配置错误和监听配置错误。
二、主备库初始化参数文件配置错误(如archive_log_dest文件位置错误)。
三、备库控制文件过旧,从主库生成一个STANDBY CONTROL过去。SQL> alter database create standby controlfile as '/bnerp_data1/bnerp/cntrl01.dbf';
。
四、备库是否应用了Failovers 。
GAP处理
下面就简单说说手工处理日志GAP的步骤:
1、在备库检查是否有日志缺失
SQL> select * from V$ARCHIVE_GAP;
2、在主库中查询缺失的日志的所在路径和名称
SQL> SELECT NAME FROM V$ARCHIVED_LOG
如果把日志移动到其他路径,则把日志所在路径换成当前实际所在路径。
3、把日志拷贝到备库上
4、在备库上手工注册上一步中从主库拷贝来的日志
SQL> ALTER DATABASE REGISTER LOGFILE '路径';
5、观察备库的alert日志信息
6、检查备库是否还有日志GAP
SQL> select * from V$ARCHIVE_GAP;
no rows selected
如果有行返回,则重复2-5步,直到查询结果是"no rows selected"。
如果日志只是临时移动到其他地方,过后会再移回原路径,则不用这么大费周折手工去手工处理了,把日志拷回原处后FAL会自动处理GAP。
常用SQL
---查询线程号
SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;
SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
---查询未应用日志(仅备库)
select thread#,sequence#,first_time,next_time,applied from v$archived_log where applied='NO';
select name,open_mode,protection_mode,database_role,switchover_status from v$database;
select DEST_NAME,STATUS,ERROR from v$archive_dest;
select PROCESS,CLIENT_PROCESS,SEQUENCE# ,STATUS from v$managed_standby;
archive log list;
边栏推荐
- B站回应HR称用户是Loser:涉事面试官去年底已被劝退
- APT level comprehensive free kill with Shell
- CTF命令执行题目解题思路
- Nlog自定义时间
- 程序员常说的“左手锟斤拷,右手烫烫烫”是怎么回事?
- 令人心动的AI综述(1)
- MySQL 与InnoDB 下的锁做朋友 (四)行锁/记录锁
- FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup
- The latest real software test interview questions are shared. Are you afraid that you will not be able to enter the big factory after collecting them?
- 无代码开发平台数据ID入门教程
猜你喜欢
浅读一下dotenv的主干逻辑的源码
mysql根据多字段分组——group by带两个或多个参数
学习Autodock分子对接
Let's talk about the charm of code language
同一份数据,Redis为什么要存两次?
CIO修炼手册:成功晋升CIO的七个秘诀
centos7安装mysql8
Rebound shell principle and implementation
2022第十一届财经峰会:优炫软件斩获双项大奖
I have been in the software testing industry for nearly 20 years, let me talk to you about today's software testing
随机推荐
What is the matter that programmers often say "the left hand is knuckled and the right hand is hot"?
停止使用 Storyboards 和 Interface Builder
2022杭电多校第一场(K/L/B/C)
js基础知识整理之 —— 变量和数据类型
执子手,到永恒
centos7安装mysql8
记一次mysql查询慢的优化历程
Nlog自定义时间
2022中国眼博会,山东眼健康展,视力矫正仪器展,护眼产品展
IDEA 重复代码的黄色波浪线取消设置
【代码扫描修复】MD5加密弱HASH漏洞
语音合成模型小抄(1)
scala 集合通用方法
Merge two excel spreadsheet tools
js基础知识整理之 —— 判断语句和三元运算符
秒懂网络拓扑中的下一跳地址
No code development platform data ID introductory tutorial
漫画:怎么证明sleep不释放锁,而wait释放锁?
js基础知识整理之 —— 全局作用域
Directing a non-relational database introduction and deployment