国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle備份與恢復(fù)案例一

2024-08-29 13:38:22
字體:
供稿:網(wǎng)友

  一. 理解什么是數(shù)據(jù)庫恢復(fù)
  
  當(dāng)我們使用一個數(shù)據(jù)庫時,總希望數(shù)據(jù)庫的內(nèi)容是可靠的、正確的,但由于計算機(jī)系統(tǒng)的故障(硬件故障、軟件故障、網(wǎng)絡(luò)故障、進(jìn)程故障和系統(tǒng)故障)影響數(shù)據(jù)庫系統(tǒng)的操作,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失。因此當(dāng)發(fā)生上述故障后,希望能重構(gòu)這個完整的數(shù)據(jù)庫,該處理稱為數(shù)據(jù)庫恢復(fù)。恢復(fù)過程大致可以分為復(fù)原(Restore)與恢復(fù)(Recover)過程。
  
  數(shù)據(jù)庫恢復(fù)可以分為以下兩類:
  
  1.1實例故障的一致性恢復(fù)
  
  當(dāng)實例意外地(如掉電、后臺進(jìn)程故障等)或預(yù)料地(發(fā)出SHUTDOUM ABORT語句)中止時出現(xiàn)實例故障,此時需要實例恢復(fù)。實例恢復(fù)將數(shù)據(jù)庫恢復(fù)到故障之前的事務(wù)一致狀態(tài)。假如在在線后備發(fā)現(xiàn)實例故障,則需介質(zhì)恢復(fù)。在其它情況Oracle在下次數(shù)據(jù)庫起動時(對新實例裝配和打開),自動地執(zhí)行實例恢復(fù)。假如需要,從裝配狀態(tài)變?yōu)榇蜷_狀態(tài),自動地激發(fā)實例恢復(fù),由下列處理:
  
  (1) 為了解恢復(fù)數(shù)據(jù)文件中沒有記錄的數(shù)據(jù),進(jìn)行向前滾。該數(shù)據(jù)記錄在在線日志,
  
  包括對回滾段的內(nèi)容恢復(fù)。
  
  (2) 回滾未提交的事務(wù),按步1重新生成回滾段所指定的操作。
  
  (3) 釋放在故障時正在處理事務(wù)所持有的資源。
  
  (4) 解決在故障時正經(jīng)歷一階段提交的任何懸而未決的分布事務(wù)。
  
  1.2介質(zhì)故障或文件錯誤的不一致恢復(fù)
  
  介質(zhì)故障是當(dāng)一個文件、一個文件的部分或磁盤不能讀或不能寫時出現(xiàn)的故障。文件錯誤一般指意外的錯誤導(dǎo)致文件被刪除或意外事故導(dǎo)致文件的不一致。這種狀態(tài)下的數(shù)據(jù)庫都是不一致的,需要DBA手工來進(jìn)行數(shù)據(jù)庫的恢復(fù),這種恢復(fù)有兩種形式,決定于數(shù)據(jù)庫運(yùn)行的歸檔方式和備份方式。
  
  (1) 完全介質(zhì)恢復(fù)可恢復(fù)全部丟失的修改。一般情況下需要有數(shù)據(jù)庫的備份且數(shù)據(jù)庫運(yùn)行在歸檔狀態(tài)下并且有可用歸檔日志時才可能。對于不同類型的錯誤,有不同類型的完全恢復(fù)可使用,其決定于毀壞文件和數(shù)據(jù)庫的可用性。
  
  (2) 不完全介質(zhì)恢復(fù)是在完全介質(zhì)恢復(fù)不可能或不要求時進(jìn)行的介質(zhì)恢復(fù)。重構(gòu)受損的數(shù)據(jù)庫,使其恢復(fù)介質(zhì)故障前或用戶出錯之前的一個事務(wù)一致性狀態(tài)。不完全介質(zhì)恢復(fù)有不同類型的使用,決定于需要不完全介質(zhì)恢復(fù)的情況,有下列類型:基于撤消、基于時間和基于修改的不完全恢復(fù)。
  
  基于撤消(CANCEL)恢復(fù):在某種情況,不完全介質(zhì)恢復(fù)必須被控制,DBA可撤消在指定點的操作。基于撤消的恢復(fù)地在一個或多個日志組(在線的或歸檔的)已被介質(zhì)故障所破壞,不能用于恢復(fù)過程時使用,所以介質(zhì)恢復(fù)必須控制,以致在使用最近的、未損的日志組于數(shù)據(jù)文件后中止恢復(fù)操作。
  
  基于時間(TIME)和基于修改(SCN)的恢復(fù):假如DBA希望恢復(fù)到過去的某個指定點,是一種理想的不完全介質(zhì)恢復(fù),一般發(fā)生在恢復(fù)到某個特定操作之前,恢復(fù)到如意外刪除某個數(shù)據(jù)表之前。
  
  第二章. 數(shù)據(jù)庫恢復(fù)案例測試環(huán)境
  
  2.1 數(shù)據(jù)庫環(huán)境
  
  以下的所有案例都是通過測試經(jīng)過,環(huán)境為:
  
  OS:windows 2000 Server
  
  DB:Oracle 816
  
  DBNAME:TEST
  
  數(shù)據(jù)文件:
  
  SQL> select file#,status,enabled,name from v$datafile;
  
  FILE# STATUS ENABLED   NAME
  
  ----------------------------------------------------------------
  
  1 SYSTEM READ WRITE D:/Oracle/ORADATA/TEST/SYSTEM01.DBF
  
  2 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/RBS01.DBF
  
  3 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/USERS01.DBF
  
  4 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/TEMP01.DBF
  
  5 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/TOOLS01.DBF
  
  6 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/INDX01.DBF
  
  控制文件:
  
  SQL> select * from v$controlfile;
  
  STATUS NAME
  
  ---------------------------------------------------------------------
  
  D:/Oracle/ORADATA/TEST/CONTROL01.CTL
  
  D:/Oracle/ORADATA/TEST/CONTROL02.CTL
  
  D:/Oracle/ORADATA/TEST/CONTROL03.CTL
  
  聯(lián)機(jī)日志:
  
  SQL> select * from v$logfile;
  
  GROUP# STATUS   MEMBER
  
  ---------------------------------------------------------------------
  
  1   STALE   D:/Oracle/ORADATA/TEST/REDO01.LOG
  
  2        D:/Oracle/ORADATA/TEST/REDO02.LOG
  
  3   STALE   D:/Oracle/ORADATA/TEST/REDO03.LOG
  
  2.2 數(shù)據(jù)庫備份腳本
  
  冷備份腳本:
  
  rem   script:coldbak.sql
  
  rem   creater:chenjiping
  
  rem   date:5.8.2003
  
  rem   desc:offline full backup database
  
  --connect database
  
  connect internal/passWord;
  
  --shutdown database
  
  shutdown immediate;
  
  --Copy Data file
  
  !xcopy d:/Oracle/oradata/test/*.dbf d:/database/H/R;
  
  --Copy Control file
  
  !xcopy d:/Oracle/oradata/test/*.ctl d:/database/H/R;
  
  --Copy Log file
  
  !xcopy d:/Oracle/oradata/test/*.log d:/database/H/R;
  
  --startup database
  
  startup;
  
  說明:
  
  1、以上腳本在數(shù)據(jù)庫關(guān)閉狀態(tài)下備份數(shù)據(jù)庫所有的數(shù)據(jù)文件,聯(lián)機(jī)日志,控制文件(在一個目
  
  錄下),假如成功備份,所有文件是一致的;
  
  2、沒有備份參數(shù)文件,參數(shù)文件可以另外備份,沒有必要每次都備份,只需要在改變設(shè)置后備份一次;
  
  3、假如以上命令沒有成功依次執(zhí)行,那么備份將是無效的,如連接數(shù)據(jù)庫不成功,那么肯定關(guān)閉數(shù)據(jù)庫也不成功,那么備份則無效;
  
  4、冷備份建議下人工干預(yù)下執(zhí)行。

  
  數(shù)據(jù)庫OS熱全備份腳本
  
  rem   script:hotbak.sql
  
  rem   creater:chenjiping
  
  rem   date:5.8.2003
  
  rem   desc:backup all database datafile in archive
  
  --connect database
  
  connect internal/password;
  
  --archive
  
  alter system archive log current;
  
  --start
  
  alter tablespace system begin backup;
  
  !xcopy d:/Oracle/oradata/test/system01.dbf d:/databak/H/R;
  
  alter tablespace system end backup;
  
  alter tablespace rbs begin backup;
  
  !xcopy d:/Oracle/oradata/test/rbs01.dbf d:/databak/H/R;
  
  alter tablespace rbs end backup;
  
  alter tablespace users begin backup;
  
  !xcopy d:/Oracle/oradata/test/users01.dbf d:/databak/H/R;
  
  alter tablespace users end backup;
  
  alter tablespace tools begin backup;
  
  !xcopy d:/Oracle/oradata/test/tools01.dbf d:/databak/H/R;
  
  alter tablespace tools end backup;
  
  alter tablespace indx begin backup;
  
  !xcopy d:/Oracle/oradata/test/indx01.dbf d:/databak/H/R;
  
  alter tablespace indx end backup;
  
  --end
  
  --bak control file
  
  --binary
  
  alter database backup controlfile to 'd:/databak/controlbinbak.000';
  
  --ascii
  
  alter database backup controlfile to trace;
  
  alter system archive log current;
  
  說明:
  
  1、熱備份必須在數(shù)據(jù)庫歸檔方式下才可以運(yùn)行;
  
  2、以上腳本可以在數(shù)據(jù)庫運(yùn)行狀態(tài)下備份數(shù)據(jù)庫所有的數(shù)據(jù)文件(除了臨時數(shù)據(jù)文件),沒有必要備份聯(lián)機(jī)日志;
  
  3、歸檔日志至少需要一次完整備份之后的所有日志;
  
  4、假如以上命令沒有成功依次執(zhí)行,那么備份也是無效的,如連接數(shù)據(jù)庫不成功,那么備份則無效。
  
  RMAN備份只講敘有恢復(fù)目錄的情況,假如沒有恢復(fù)目錄,情形大致相似。以下是RMAN的熱備份全備份的腳本:
  
  #  script:bakup.rcv
  
  #  creater:chenjiping
  
  #  date:5.8.2003
  
  #  desc:backup all database datafile in archive with rman
  
  # connect database
  
  connect rcvcat rman/rman@back;
  
  connect target internal/virpure;
  
  # start backup database
  
  run{
  
  allocate channel c1 type disk;
  
  backup full tag 'dbfull' format 'd:/backup/full%u_%s_%p' database
  
  include current controlfile;
  
  sql 'alter system archive log current';
  
  release channel c1;
  
  }
  
  # end

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 绵竹市| 奈曼旗| 汽车| 和平区| 正阳县| 名山县| 隆德县| 怀安县| 桐乡市| 龙州县| 高唐县| 海阳市| 故城县| 海阳市| 大邑县| 容城县| 张家口市| 兴城市| 永福县| 察哈| 桃园市| 杨浦区| 尉氏县| 夏邑县| 潢川县| 彰武县| 秀山| 隆昌县| 湖南省| 芜湖县| 普陀区| 濮阳县| 喜德县| 通辽市| 灵宝市| 涡阳县| 屏南县| 弥勒县| 六枝特区| 永和县| 内江市|