扒开腿挺进岳湿润的花苞视频|将军边走边挺进她H树林|挺进朋友人妻张婉莹身体|岳脱得精光让我挺进去视频|第一次挺进莹莹的身体里视频|脱岳裙子从后面挺进去视频

新疆軟件開發(fā)

本站首頁(yè) 軟件開發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> 數(shù)據(jù)庫(kù)開發(fā) >> 文章正文

丟失日志文件后數(shù)據(jù)庫(kù)還能不能恢復(fù)了

          本文主要介紹了如何從一個(gè)不能正常打開的數(shù)據(jù)庫(kù)(由于一個(gè)/多個(gè)數(shù)據(jù)庫(kù)文件與其他文件不一致)中提取數(shù)據(jù)的具體示例,詳細(xì)內(nèi)容請(qǐng)大家參考下文。
具體案例:
一個(gè)磁盤損壞了并且丟失了一個(gè)數(shù)據(jù)庫(kù)文件。從一周前的熱備轉(zhuǎn)儲(chǔ)數(shù)據(jù)文件,可是丟失了幾個(gè)歸檔日志文件。但是有問題的數(shù)據(jù)文件包含了最重要的表,采用什么辦法才能挽救數(shù)據(jù)呢?
解決方法:
每個(gè)數(shù)據(jù)庫(kù)管理員都知道這是有問題的,一定會(huì)丟失數(shù)據(jù),因?yàn)槟承┦聞?wù)丟失了,問題是會(huì)丟失多少數(shù)據(jù)?Oracle使用硬線路位置并且由于存在完整性約束問題,因此不允許正常打開數(shù)據(jù)。但是如果使用非常規(guī)的方法讓Oracle刪除其硬線路屬性,那么應(yīng)該能夠提取盡可能多的數(shù)據(jù)。而通常這會(huì)比損失全部數(shù)據(jù)要好很多。
通常假如僅僅丟失了堆表的索引,或者某些能夠很容易重建的數(shù)據(jù),那么最好的方法應(yīng)該是刪除表空間并重建這些對(duì)象然后重新輸入。但是如果丟失的數(shù)據(jù)文件包含了重要數(shù)據(jù)并且很難恢復(fù),而且只有前一次的備份卻又丟失了某些歸檔日志,那么用戶可能希望能夠盡可能多的從有問題的表空間恢復(fù)數(shù)據(jù)并且刪除和重建表空間。
具體步驟如下:

1.對(duì)當(dāng)前擁有的數(shù)據(jù)進(jìn)行一個(gè)冷備;
2.轉(zhuǎn)儲(chǔ)丟失的數(shù)據(jù)庫(kù)文件備份并應(yīng)用可以應(yīng)用的日志;
3.設(shè)置未文檔化的初始化參數(shù),其允許你在當(dāng)前狀態(tài)打開數(shù)據(jù)庫(kù);
4.執(zhí)行exp并提取全部可以從有問題的表空間提取的數(shù)據(jù);
5.從先前的冷備轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù);
6.使毀壞的數(shù)據(jù)文件offline;
7.執(zhí)行exp并提取第4步?jīng)]有提取的額外數(shù)據(jù);
8.在一次從冷備轉(zhuǎn)儲(chǔ);
9.刪除有問題的表空間;
10.重建有問題的表空間;
11.使用第四步和第七步提取的數(shù)據(jù)重建數(shù)據(jù);
使用案例描述:ORDTAB表空間的一個(gè)數(shù)據(jù)文件ordtab03.dbf毀壞,其包含很多
ORDERS表的分區(qū),數(shù)據(jù)文件熱備于July 4, 2004,July 4—至今的某些歸檔日志丟失。

第1步:備份數(shù)據(jù)庫(kù)
第1步的任務(wù)是冷備當(dāng)前擁有的任何數(shù)據(jù)文件,在線重做日志,和控制文件。如果丟失了一個(gè)/多個(gè)數(shù)據(jù)文件但是數(shù)據(jù)庫(kù)仍然是open的,那么對(duì)每個(gè)剩余的數(shù)據(jù)文件進(jìn)行熱備并確保備份期間/之后的歸檔被安全保存。
創(chuàng)建備份后,在關(guān)閉數(shù)據(jù)庫(kù)之前,備份一下控制文件:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
然后打開備份的控制文件,刪除第一個(gè)#之上的所有行,并刪除“RECOVER DATABASE…”到文件結(jié)尾的全部。

 

第2步:轉(zhuǎn)儲(chǔ)丟失的數(shù)據(jù)庫(kù)文件備份并應(yīng)用日志;


這一步應(yīng)該轉(zhuǎn)儲(chǔ)備份,并應(yīng)用日志到直到無(wú)法在前向滾動(dòng),此時(shí)如果嘗試正常打開數(shù)據(jù)庫(kù),將會(huì)得到ORA-01589: must use RESETLOGS or NORESETLOGS option for database open錯(cuò)誤。


如果嘗試執(zhí)行ALTER DATABASE OPEN RESETLOGS,將會(huì)得到ORA-01195錯(cuò)誤:ORA-01195: online backup of file %s needs more recovery to be consistent。


這里是Oracle使用其硬線路的位置。由于轉(zhuǎn)儲(chǔ)的數(shù)據(jù)文件不能恢復(fù)到與其他文件一致的位置,所以可能存在中斷的數(shù)據(jù)并且Oracle不允許正常打開數(shù)據(jù)庫(kù)。

 

第3步:設(shè)置未文檔化的實(shí)例參數(shù)并打開數(shù)據(jù)庫(kù)


在初始化參數(shù)文件中首先需要將job_queue_processes設(shè)置為0,然后設(shè)置_allow_resetlogs_corruption=TRUE,更改該參數(shù)后,切換到保存新控制文件的目錄,第一步創(chuàng)建的位置。然后以SYSDBA連接并運(yùn)行新的控制文件創(chuàng)建腳本。


此時(shí)數(shù)據(jù)庫(kù)可以打開了。


SQL> SELECT COUNT(*) FROM OE.orders;

 


第4步:執(zhí)行導(dǎo)出并提取數(shù)據(jù)


在這一步可以很容易的看到那些表導(dǎo)出了全部的數(shù)據(jù)。


第5步:轉(zhuǎn)儲(chǔ)備份的數(shù)據(jù)庫(kù)


這一步,以及下面兩步可選。這三步結(jié)合在一起允許提取更多的數(shù)據(jù),這一步從備份的數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)可以高效的撤銷任何由于使用_allow_resetlogs_corruption參數(shù)造成的毀壞。因此,這一步不會(huì)恢復(fù)任何丟失的數(shù)據(jù)文件。

 


第6步:使毀壞的數(shù)據(jù)文件offline


ALTER DATABASE DATAFILE '/u07/oradata/PRD/ordtab03.dbf' OFFLINE;


這一步得到數(shù)據(jù)庫(kù)的完全一致性狀態(tài)。


第7步:執(zhí)行導(dǎo)出并提取額外的數(shù)據(jù)


這一步可能能夠提取從第四步不能提取的額外數(shù)據(jù),如索引中的數(shù)據(jù)。


第8步 :轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)


這是最后一次轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù),這一步正式回滾數(shù)據(jù)庫(kù)到使用隱含參數(shù)前那一刻,然后將數(shù)據(jù)庫(kù)返回到正常狀態(tài),如果從第五步轉(zhuǎn)儲(chǔ)以來沒有更新任何數(shù)據(jù),可以跳過這一步。


第9步:刪除有問題的表空間


首先需要查看是否有完整性約束限制,使用以下查詢:


SELECT CR.constraint_name

FROM dba_constraints CR, dba_constraints CP, dba_tables TP, dba_tables TR

WHERE CR.r_owner = CP.owner

AND CR.r_constraint_name = CP.constraint_name

AND CR.constraint_type = 'R'

AND CP.constraint_type IN ('P', 'U')

AND CP.table_name = TP.table_name

AND CP.owner = TP.owner

AND CR.table_name = TR.table_name

AND CR.owner = TR.owner

AND TR.tablespace_name <> 'ORDTAB'

AND TP.tablespace_name = 'ORDTAB';
如果有約束,可能需要?jiǎng)?chuàng)建重建腳本。如果使用export dump重建數(shù)據(jù),約束可以從導(dǎo)出文件轉(zhuǎn)儲(chǔ)。
DROP TABLESPACE ordtab INCLUDING CONTENTS CASCADE CONSTRAINTS;
第10步:重建表空間
第11步:重建數(shù)據(jù)
執(zhí)行導(dǎo)入后,結(jié)束。

作者:未知 | 文章來源:賽迪網(wǎng)技術(shù)社區(qū) | 更新時(shí)間:2008-4-17 0:32:55

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    Domino平臺(tái)的優(yōu)缺點(diǎn)分析
    使用經(jīng)驗(yàn)整理-TestDirector8.0數(shù)據(jù)庫(kù)備份和還原
    c#如何連接各類數(shù)據(jù)庫(kù)
    基礎(chǔ)學(xué)習(xí):基于SQL的sysColumns 數(shù)據(jù)庫(kù)字段表
    處理一個(gè)數(shù)據(jù)庫(kù)實(shí)例在登陸時(shí)報(bào)ORA-27140錯(cuò)誤
    利用CodeSmith生成sql
    如何解決MySQL數(shù)據(jù)庫(kù)中文問題
    在VC 程序中自定義Vista事件日志
    如何獲取Oracle當(dāng)前數(shù)據(jù)庫(kù)SCN值
    安全技術(shù):數(shù)據(jù)庫(kù)系統(tǒng)安全之漏洞解決方法
    軟件技術(shù)
    · 開發(fā)語(yǔ)言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫(kù)開發(fā)
    最新文章  
    ·Domino平臺(tái)的優(yōu)缺點(diǎn)分析
    ·oracle不能連接本地庫(kù)的解
    ·使用經(jīng)驗(yàn)整理-TestDirecto
    ·學(xué)習(xí)sqlserver數(shù)據(jù)庫(kù)的維度
    ·sqlserver 多用戶并發(fā)中如
    ·丟失日志文件后數(shù)據(jù)庫(kù)還能
    ·人工智能在數(shù)據(jù)庫(kù)sql語(yǔ)句編
    ·數(shù)據(jù)庫(kù)學(xué)習(xí):Oracle應(yīng)用程
    ·基礎(chǔ)知識(shí):軟件測(cè)試的要點(diǎn)
    ·技術(shù)文章:sqlserver 2008
    ·SQL Server虛擬內(nèi)存和物理
    ·在MySQL中 describe命令怎
    ·怎樣解決視圖刷新時(shí)出現(xiàn)的
    ·如果忘記了MySQL的root用戶
    ·基礎(chǔ)學(xué)習(xí):基于SQL的sysob
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) m.jdtbank.com All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    上饶市| 宝鸡市| 弥渡县| 威信县| 旺苍县| 东辽县| 涟源市| 运城市| 于都县| 龙门县| 永丰县| 称多县| 沙湾县| 阜宁县| 施甸县| 普兰县| 禄丰县| 星子县| 浑源县| 吐鲁番市| 贵德县| 盈江县| 湛江市| 南澳县| 清涧县| 海城市| 马边| 灯塔市| 阳泉市| 库尔勒市| 松桃| 安仁县| 河西区| 巴东县| 明光市| 抚州市| 无极县| 石景山区| 宾川县| 湖北省| 长垣县|