<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 71  文章 - 15  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    因為口渴,上帝創造了水;
    因為黑暗,上帝創造了火;
    因為我需要朋友,所以上帝讓你來到我身邊
    Click for Shaanxi xi'an, Shaanxi Forecast
    ╱◥█◣
      |田|田|
    ╬╬╬╬╬╬╬╬╬╬╬
    If only I have such a house!
    〖總在爬山 所以艱辛〗
    Email:myesjoy@yahoo.com.cn
    NickName:yesjoy
    MSN:myesjoy@hotmail.com
    QQ:150230516

    〖總在尋夢 所以苦痛〗

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    Hibernate在線

    Java友情

    Java認證

    linux經典

    OA系統

    Spring在線

    Structs在線

    專家專欄

    企業信息化

    大型設備共享系統

    工作流

    工作流產品

    網上購書

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    Oracle數據庫的備份與恢復方案

    出處:互聯網

      數據庫的備份和恢復是指為保護一個數據庫免于數據損失或者在發生數據損失后進行數據重新創建的各種策略和步驟、方法。數據備份幾乎是任何計算機系統中絕對必需的組成部分。意外斷電、系統或服務器崩潰、用戶失誤、磁盤損壞甚至數據中心的災難性丟失都可能造成數據庫文件的破壞或丟失。而這些文件往往包含著珍貴的數據,經不得任何損失。數據庫管理員必須對此有所準備。在這種情況下,備份與恢復占了舉足輕重的位置。

     

    1.1 如何啟動ARCHIVELOG模式?

    系統環境:

    1、操作系統:Windows 2000 Server,機器內存128M

    2、數據庫: Oracle 8i R2 (8.1.6) for NT 企業版

    3、安裝路徑:C:ORACLE

    實現步驟:

    1、管理器

    SVRMGR> connect internal

    SVRMGR> shutdown

    SVRMGR> startup mount [dbname]

    SVRMGR> alter database [dbname] archivelog; --起用歸檔模式

    SVRMGR> archive log start --啟動自動歸檔模式,重起數據庫后,按init.ora配置

    SVRMGR> alter database [dbname] open; --打開數據庫

    SVRMGR> exit

    2、修改數據庫初始化參數文件,定義歸檔模式(自動)、歸檔日志文件保存路徑、歸檔日志文件命名方法

    3、重新啟動數據庫

    具體實例:

    C:>svrmgrl

    Oracle Server Manager Release 3.1.6.0.0 - Production

    版權所有 (c) 19971999Oracle Corporation。保留所有權利。

    Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production

    With the Partitioning option

    JServer Release 8.1.6.0.0 - Production

    SVRMGR> connect internal

    連接成功。

    SVRMGR> shutdown

    已關閉數據庫。

    已卸下數據庫。

    已關閉 ORACLE 實例。

    SVRMGR> startup mount

    已啟動 ORACLE 實例。

    系統全局區域合計有 57124108個字節

    Fixed Size 70924個字節

    Variable Size 40198144個字節

    Database Buffers 16777216個字節

    Redo Buffers 77824個字節

    已裝入數據庫。

    SVRMGR> alter database archivelog;

    語句已處理。

    SVRMGR> archive log start

    語句已處理。

    SVRMGR> alter database open;

    語句已處理。

    SVRMGR> alter system switch logfile; --強制系統進行日志切換,可馬上觀察到歸檔日志的產生語句已處理。

    SVRMGR> exit

    服務器管理程序結束。

    修改數據庫參數文件c:oracleadminoradbpfileinit.ora

    取消以下語句的#注釋

    log_archive_start = true

    log_archive_dest_1 = "location=C:Oracleoradataoradbarchive"

    log_archive_format = %%ORACLE_SID%%T%TS%S.ARC

    關閉數據庫,重新啟動

    查看C:Oracleoradataoradbarchive目錄下,可以看到類似ORADBT001S01201.ARC的文件,說明歸檔成功

    解釋init.ora參數文件中關于歸檔重做日志參數項的含義:

    歸檔模式是自動還是手工,true為自動,false為手工

    log_archive_start = true

    歸檔日志文件所保存的路徑

    log_archive_dest_1 = "location=C:Oracleoradataoradbarchive"

    歸檔日志文件的命名方法

    log_archive_format = %%ORACLE_SID%%T%TS%S.ARC

    歸檔命令:

    啟動自動歸檔模式,系統重起后,將按init.ora中的參數log_archive_start的值設置歸檔方式

    SVRMGR> archive log start

    啟動手工歸檔模式

    SVRMGR> archive log stop

    查看歸檔信息:重做日志是否歸檔方式、是自動歸檔還是手工歸檔、歸檔路徑、最舊的聯機日志循序號...

    SVRMGR> archive log list

    歸檔一個已滿,但沒有歸檔的聯機重做日志

    SVRMGR> archive log next

    歸檔所有已滿,但沒有歸檔的聯機重做日志

    SVRMGR> archive log all

    注意:一個事務即使不被提交,也會被寫入到重做日志中

    1.2 如何使用歸檔日志進行完全恢復?

    系統環境:

    1、操作系統:Windows 2000 Server,機器內存128M

    2、數據庫: Oracle 8i R2 (8.1.6) for NT 企業版

    3、安裝路徑:C:ORACLE

    模擬現象:

    先將數據庫設置為歸檔模式

    SQL*Plus

    --創建實驗表空間

    create tablespace test datafile

    "c:test.ora" size 5M

    AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED

    default storage (initial 128K next 1M pctincrease 0)

    /

    --創建實驗用戶

    drop user test cascade;

    create user test identified by test default tablespace test;

    grant connect,resource to test;

    conn test/test

    create table a(a number);

    insert into a values(1);

    insert into a select * from a; --反復插入,達到10萬條

    commit;

    拷貝test.oratest1.ora文件

    insert into a select * from a; --20萬條

    commit;

    關閉數據庫

    shutdown

    刪除test.ora文件,把test1.ora拷貝為test.ora

    重新啟動數據庫

    這時,可以mount上,但無法打開,因為現在使用的數據文件是舊的

    只有10萬條記錄,與控制文件中記載的log number不一樣

    startup mount

    需要recover database,使數據庫記錄重新恢復到當前的20萬條

    C:>svrmgrl

    svrmgrl>connect internal

    svrmgrl>shutdown

    svrmgrl>startup mount

    svrmgrl>set autorecovery on

    svrmgrl>recover database;

    svrmgrl>alter database open;

    conn test/test

    select count(*) from a; --數據又恢復到20萬條

    conn system/manager

    --刪除實驗表空間

    alter tablespace test offline;

    drop tablespace test INCLUDING CONTENTS;

    1.3 沒有備份、只有歸檔日志,如何恢復數據文件?

    系統環境:

    1、操作系統:Windows 2000 Server,機器內存128M

    2、數據庫: Oracle 8i R2 (8.1.6) for NT 企業版

    3、安裝路徑:C:ORACLE

    模擬現象:

    可通過重建數據文件來恢復,前提是歸檔日志文件保存完整

    先將數據庫設置為歸檔模式

    SQL*Plus

    conn system/manager

    --創建實驗表空間

    create tablespace test datafile

    "c:test.ora" size 5M

    AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED

    default storage (initial 128K next 1M pctincrease 0)

    /

    --創建實驗用戶

    drop user test cascade;

    create user test identified by test default tablespace test;

    grant connect,resource to test;

    conn test/test

    create table a(a number);

    insert into a values(1);

    insert into a select * from a; --反復插入,達到100萬條

    commit;

    --關閉數據庫

    SVRMGR> connect internal

    SVRMGR> alter system switch logfile; --強制歸檔

    SVRMGR> alter system switch logfile;

    SVRMGR> alter system switch logfile;

    SVRMGR> shutdown

    --操作系統下刪除test.ora文件

    --重新啟動數據庫

    SVRMGR> connect internal

    SVRMGR> startup

    這時,可以mount上,但無法打開,因為數據文件test.ora不存在,

    顯示錯誤如下:

    ORA-01157: ????/?????? 8 - ??? DBWR ????

    ORA-01110: ???? 8: "C:TEST.ORA"

    SVRMGR> connect internal

    SVRMGR> startup mount

    SVRMGR> alter database create datafile "c:test.ora";

    SVRMGR> set autorecovery on

    SVRMGR> recover datafile "c:test.ora";

    SVRMGR> alter database open;

    conn test/test

    select count(*) from a; --數據又恢復到100萬條

    --刪除實驗表空間

    conn system/manager

    alter tablespace test offline;

    drop tablespace test INCLUDING CONTENTS;

    drop user test;

    如果是非歸檔模式,也可以運用以上方法,

    前提是:輸入記錄所占空間的大小不超過所有聯機日志文件的大小

    即:用聯機日志文件來恢復

    1.4 聯機熱備份失敗后,如何打開數據庫?

    系統環境:

    1、操作系統:Windows 2000

    2、數據庫: Oracle 8i R2 (8.1.6) for NT 企業版

    3、安裝路徑:C:ORACLE

    錯誤現象:

    進行聯機熱備份時,服務器發生故障,如掉電,重新啟動服務器,

    啟動數據庫時,無法打開數據庫,Oracle要求進行介質恢復,

    因為表空間還處在熱備份狀態。

    模擬現象及解決方法:

    先將數據庫設置為歸檔模式

    C:>svrmgrl

    svrmgrl>connect internal

    svrmgrl>alter tablespace 表空間名 begin backup;

    --表空間熱備模式沒結束就強行關閉數據庫,造成錯誤

    svrmgrl>shutdown abort

    svrmgrl>startup mount

    --將此表空間的數據文件在沒打開數據庫時置成end backup模式

    svrmgrl>alter database datafile "表空間的數據文件名" end backup;

    --或執行表空間介質恢復

    svrmgrl>recover tablespace 表空間名;

    svrmgrl>alter database open;

    1.5 某個數據文件損壞,如何打開數據庫?

    系統環境:

    1、操作系統:Windows 2000 Server,機器內存128M

    2、數據庫: Oracle 8i R2 (8.1.6) for NT 企業版

    3、安裝路徑:C:ORACLE

    錯誤現象:

    因誤操作,數據庫中某一數據文件被誤刪,

    控制面板的Oracle相關服務顯示已啟動,但用SQL*Plus無法連接,

    顯示以下錯誤

    ORA-01033: ORACLE initialization or shutdown in progress

    模擬現象:

    create tablespace test datafile

    "c:test.ora" size 5M

    AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED

    default storage (initial 128K next 1M pctincrease 0)

    /

    關閉所有服務stop.bat

    net stop "OracleWebAssistant0"

    net stop "OracleOraHome81TNSListener"

    net stop "OracleServiceORADB"

    shutdown

    c

    在操作系統中刪除test.ora文件

    重新啟動服務start.bat

    net start "OracleWebAssistant0"

    net start "OracleOraHome81TNSListener"

    net start "OracleServiceORADB"

    服務里OracleServiceORADB顯示已啟動,但用SQL*Plus無法連接,

    顯示ORA-01033: ORACLE initialization or shutdown in progress

    解決方法:

    先讓該數據文件脫機,就可以打開數據庫

    C:>svrmgrl

    svrmgrl>connect internal

    svrmgrl>shutdown

    svrmgrl>startup mount

    d

    --ARCHIVELOG模式命令,文件名要大寫

    svrmgrl>alter database datafile "C:TEST.ORA" offline;

    --NOARCHIVELOG模式命令

    svrmgrl>alter database datafile "C:TEST.ORA" offline drop;

    svrmgrl>alter database open;

    --查詢數據文件聯、脫機狀態

    SQL> select file#,name,status from v$datafile;

    SQL> drop tablespace test;

    表空間已丟棄。

    _allow_resetlogs_corruption=true

    本文來自各大博客,版權歸原作者所有!
    文章信息如下:
    引用源博文網址:http://maxz.itpub.net/post/17787/188561
    發布日期:Tue, 08 08 2006 13:18:55
    返回首頁  注冊成為博客

    Copyright © 1990-2006

    posted on 2007-05-12 20:39 ★yesjoy★ 閱讀(1076) 評論(0)  編輯  收藏 所屬分類: 數據庫備份/恢復方案

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产亚洲精品资在线| 永久黄网站色视频免费| 国产成人精品曰本亚洲79ren| 亚洲AV日韩AV永久无码色欲| 国产网站免费观看| 美女视频黄频a免费观看| 亚洲国产一区视频| 国产99精品一区二区三区免费| 国产日韩成人亚洲丁香婷婷| 国产福利免费视频 | 又爽又黄无遮挡高清免费视频| 亚洲偷偷自拍高清| 国产精品成人免费综合| 免费国产草莓视频在线观看黄| 中文字幕中韩乱码亚洲大片| 黄网站色视频免费在线观看的a站最新 | 亚洲人成电影亚洲人成9999网| 亚洲美女免费视频| 亚洲色精品VR一区区三区 | 日本视频免费在线| h在线看免费视频网站男男| 久久久久亚洲AV无码专区首| 香蕉97超级碰碰碰免费公| 午夜亚洲WWW湿好爽| 在线a亚洲v天堂网2019无码| 99免费观看视频| 久久精品国产亚洲av瑜伽| 色噜噜亚洲精品中文字幕| 久久成人国产精品免费软件| 理论亚洲区美一区二区三区| 亚洲日韩国产精品第一页一区| 午夜国产精品免费观看| 免费高清A级毛片在线播放| 亚洲一区二区三区电影| 日本免费网站观看| 日本不卡免费新一区二区三区| 亚洲男同gay片| 国产成A人亚洲精V品无码| 永久免费av无码网站韩国毛片| a级毛片免费高清视频| 亚洲a级成人片在线观看|