Oracle
1.Oracle安装配置
Oracle修改Awr快照保存策略
Oracle使用DataGuard
Oracle数据文件相关操作
Oracle安装/优化脚本11g-oel68
Oracle安装/优化脚本11g-oel79
spfile/pfile
2.权限管理
Oracle创建用户
为新用户授权视图权限
为用户创建trigger修改默认schema
创建不限制密码时间的profile
为用户授权某一个表空间
4.日常管理
scanip管理
sqlplus登陆配置
Oracle连接信息查看
Oracle创建awr性能报告
Oracle Rman异地恢复数据
Oracle根据sqlid查看执行客户端
Oracle查看链接数及最大链接数
Oracle归档日志管理
Oralce查看表空间占用
OracleRac中ASM磁盘扩容
Oracle管理DBLink信息
OracleRAC修改字符集
oracle用户相关操作
crs_stat扩展脚本
98.常用命令
Oracle中关于expdp和impdp的使用
adrci日志管理工具
expdp
srvctl
crsctl
99.Oracle异常处理
Oracle内置的查看异常说明的命令
ORA02063
ORA04063
ORA28547
ORA02020
安装Oracle时提示框显示不全
ORA00020
ORA00257
ORA19809
Oracle DG 归档日志间隙问题
一些未标记的sql语句
本文档使用 MrDoc 发布
-
+
首页
Oracle DG 归档日志间隙问题
# Oracle DG 归档日志间隙问题 ## 原因 有部分归档日志文件没有同步到dg上,导致有间隙。 ## 可能引起的故障 \- 主库:ORA00257 归档日志满 因为DG备库有间隙,所以主库的归档日志即使已经到达了过期时间依然会保存在磁盘上无法清理,会持续的占用归档日志的空间,导致故障的发生。 ## 处理方式 首先到DG数据库上查询有哪些归档日志丢失 ``` SQL> SELECT * FROM V$ARCHIVE_GAP; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# ---------- ------------- -------------- 1 2259 2282 ``` 或直接查看是否有未写入的归档日志 ``` select sequence#,applied from v$archived_log where APPLIED='NO'; ``` 从第一种方式结果可以看出,从2259开始到2282的归档日志都是缺失的,可以去主库上查询一下日志文件的位置,然后拷贝到备库;可以通过第二种方式确认一下如果缺失了很多日志文件的话可以一并拷贝到备库,然后恢复。 ``` SQL> select name ,sequence# from v$archived_log where sequence# = 2259; NAME ------------------------------------------------------------------------ SEQUENCE# ---------- /oracle/app/oracle/recovery_area/orcl/archivelog/2021_10_21/o1_mf_1_2259_jq0hvh2h_.arc 2259 ``` 拷贝到备库以后,可以通过下面的方式来恢复归档日志文件。注意主库和备库的日志文件位置是不一样的,可以通过查询主库日志文件位置的方式来查询到备库的日志文件位置。 ``` SQL> alter database register logfile '/oracle/app/oracle/recovery_area/DG/archivelog/2021_10_21/o1_mf_1_2259_jq0hvh2h_.arc' ``` 然后等一段时间以后再查看归档日志间隙的情况,在应用日志后数据库会重新扫描是否还有间隙,如果有的话会给出新的结果。 ``` SQL> SELECT * FROM V$ARCHIVE_GAP; no rows selected ``` 在查询语句给出的结果如上后,就可以着手使用rman清理主库的归档日志了。 ``` RMAN> crosscheck archivelog all; RMAN> RMAN> delete archivelog all completed before 'sysdate-7'; ``` ## 偷懒使用的shell 进入到归档日志所在的文件夹 ``` cd /oracle/app/oracle/recovery_area/DG/archivelog/2021_10_26 for i in $(ls) ; do echo "alter database register logfile '$PWD/$i';" >> /home/oracle/25.sql ; done ``` 这样就生成了一个sql文件\`/home/oracle/25.sql\`,可以通过sqlplus直接运行,然后批量注册日志文件。 ``` SQL> @/home/oracle/25.sql ```
zhangky
2022年1月13日 00:57
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码