博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Datagard產生gap
阅读量:6206 次
发布时间:2019-06-21

本文共 1313 字,大约阅读时间需要 4 分钟。

本文轉載自無雙的小寶的博客:

有時候因為網路或備份故障等原因,主機所產生的歸檔日誌無法傳到備機上,這個時候備機就產生了gap。對於這種情況,應該如何解決?

需要注意的是,一旦產生gap,即使gap之後的archive log能正常傳到standby庫中,standby庫並不會對後繼傳來的日誌檔做apply。只有通過對standby做recover把從產生gap的第一個檔到最新的archive log檔都apply了才能做到2個庫一致。

1.在primary庫中重新創建standby controlfile。並將它拷貝到standby庫中。位置與以前同。ALTER DATABASE CREATE STANDBY CONTROLFILE AS '[path][ctl_file_name].CTL';

2.進入備庫,select * from v$archive_gap;看產生gap的檔都有哪些?

2.shutdown standby庫(shutdown immediate)

3.將產生gap的那些歸檔檔拷貝到standby庫中。(如果主庫重新做過,如恢復,則將對主庫在resetlog之後的熱備檔及所有新產生的archive log倒回原來的位置.)

4.啟動standby庫到mount狀態,並進行手工同步:

$startup nomount
$alter database mount standby database;
$recover standby database; --(如果archive log產生 gap也是這麼做:把缺的archive log倒到standby庫種,然後執行。)

這裡注意如果歸檔日誌不存在的一定要去找回歸檔日誌,執行上面的命令后,我們選擇AUTO選項,讓standby自動去apply所有未apply的日誌

5.主輔庫一致後,將standby庫置回管理狀態:

alter database recover managed standby database disconnect from session;

檢查:

select * from v$archive_gap --看standby有沒有gap 如果有gap,看standby機器上是不是少了這些sequence#的log。如果需要做monitoring,可以採用以下sql語句:

select decode((select count(*) from (select low_sequence# from v$archive_gap union select 9999 from dual)) ,2,'Found Gaps,contact DBA as soon as possible!','No Gaps,Take it Easy') "Gap Status" from dual;

select * from v$archived_log where applied='NO' 表示沒有applied

转载于:https://www.cnblogs.com/guilingyang/p/5290832.html

你可能感兴趣的文章
BDD实战篇 - 在.NET Core下安装Specflow
查看>>
Scrapy用Cookie实现模拟登录
查看>>
[Python3网络爬虫开发实战] 1.5.4-RedisDump的安装
查看>>
1004 成绩排名
查看>>
2016.01.05 DOM笔记(一) 查找元素
查看>>
P4700 算
查看>>
ping失败的结果分析
查看>>
如何提高缓存命中率
查看>>
python3 requests获取某网站折线图上数据
查看>>
文件存储之-内存文件系统tmpfs
查看>>
ORACLE--分区表数据清理
查看>>
序列化
查看>>
Windows user login validation
查看>>
django mod_wsgi
查看>>
企业级工作流解决方案(十七)--工作流--工作流插件模型
查看>>
每架飞机只有一个油箱,一箱油可供一架飞机绕地球飞半圈,空中没有加油机,但飞机之间可以相互加油。...
查看>>
LeetCode:Max Points on a Line
查看>>
Orcal学习
查看>>
AttributeError: 'str' object has no attribute 'decode'
查看>>
oracle 存储过程的一个小问题
查看>>