溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle數(shù)據(jù)庫如何備份恢復

發(fā)布時間:2021-11-11 10:26:14 來源:億速云 閱讀:199 作者:小新 欄目:關系型數(shù)據(jù)庫

這篇文章給大家分享的是有關oracle數(shù)據(jù)庫如何備份恢復的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

問題:

1.邏輯備份是否包含表結構                                             

答案包含表結構

2.Rman是邏輯備份還是物理備份,屬于也備份嗎      

答案物理備,屬于熱備份

3.熱備份的方式是什么                                                      

答案:SQL下的命令備份或是Rman備份

4.熱備份能備份哪些文件

5.聯(lián)機重做文件有什么作用                                               

答案:在Oracle數(shù)據(jù)庫中,執(zhí)行數(shù)據(jù)修改操作后,并不是馬上寫入數(shù)據(jù)文件,而是首先生成重做信息,并寫入SGA中的一塊叫LOG_BUFFER的固定區(qū)域,LOG_BUFFER有一定的觸發(fā)條件,當滿足觸發(fā)條件后,會有相應進程將LOG_BUFFER中的內(nèi)容寫入數(shù)據(jù)塊中。oracle聯(lián)機日志作用:1、主要用來記錄對數(shù)據(jù)庫的改變,防止數(shù)據(jù)丟失。2、為了數(shù)據(jù)庫操作快速反應。

備份的類型

按照備份方式的不同,可以把備份分為兩類:  

邏輯備份:指通過邏輯導出對數(shù)據(jù)進行備份。邏輯備份使用導入導出工具:EXPDP/IMPDP或EXP/IMP,邏輯備份是物理備份的方式的一種補充,由于邏輯備份具有平臺無關性,邏輯備份被作為數(shù)據(jù)遷移及移動的主要手段。  

物理備份: 指通過物理文件拷貝的方式對數(shù)據(jù)庫進行備份,物理備份又可以分為冷備份和熱備份。  

冷備份:是指對數(shù)據(jù)庫進行關閉后的拷貝備份,這樣的備份具有一致和完整的時間點數(shù)據(jù),恢復時只需要恢復所有文件就可以啟動數(shù)據(jù)庫。  

熱備份:在生產(chǎn)系統(tǒng)中最常見的備份方式是熱備份,進行熱備份的數(shù)據(jù)庫需要運行在歸檔模式,熱備份時不需要關閉數(shù)據(jù)庫,從而能夠保證系統(tǒng)的持續(xù)運行,在進行恢復時,通過備份的數(shù)據(jù)文件及歸檔日志文件,數(shù)據(jù)庫可以進行完全恢復。熱備份包括Rman備份,熱備份也被稱為聯(lián)機備份。  

邏輯備份:

導出

shell>exp 用戶名/密碼   file=/home/backup/ymq.dmp

導入

shell>imp 用戶名/密碼  full=y file=/home/backup/ymq.dmp ignore=y

物理備份

熱備份

SQL下的命令備份

1.查看是否開啟歸檔

ARCHIVE LOG LIST

2. 將需要備份的表空間(如user)設置為備份方式

shell>Alter tablespace user begin backup;

3.拷貝參數(shù)文件

shell>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora

shell>cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora

1.為目錄創(chuàng)建一個單獨的表空間

SQL>Create tablespace tools datafile ‘fielname’ size 50m;

2.創(chuàng)建RMAN用戶

SQL>Create user RMAN identified by RMAN default tablespace tools temporary tablespace temp;

3.給RMAN授予權限

SQL>Grant connect , resource , recovery_catalog_owner to rman;

4.打開RMAN

$>RMAN

5.連接數(shù)據(jù)庫

RMAN>connect catalog rman/rman

6.創(chuàng)建恢復目錄

RMAN>Create catalog tablespace tools

注冊目標數(shù)據(jù)庫,恢復目錄創(chuàng)建成功后,就可以注冊目標數(shù)據(jù)庫了,目標數(shù)據(jù)庫就是需要備份的數(shù)據(jù)庫,一個恢復目錄可以注冊多個目標數(shù)據(jù)庫,注冊目標數(shù)據(jù)庫的命令為:

$>RMAN target internal/password catalog rman/rman@rcdb;

RMAN>Register database;

數(shù)據(jù)庫注冊完成,就可以用RMAN來進行備份了,更多命令請參考ORACLE聯(lián)機手冊或《ORACLE8i備份與恢復手冊》。

注銷數(shù)據(jù)庫不是簡單的在RMAN提示下反注冊就可以了,需要運行一個程序包,過程如下:

1. 連接目標數(shù)據(jù)庫,獲得目標數(shù)據(jù)庫ID

$> RMAN target internal/password catalog rman/rman@rcdb;

RMAN-06005: connected to target database: RMAN (DBID=1231209694)

2. 查詢恢復目錄,得到更詳細的信息

SQL> SELECT db_key, db_id FROM db WHERE db_id = 1231209694;

DB_KEY     DB_ID     

---------- ---------------

      1 1237603294

1 row selected.

3. 運行過程dbms_rcvcat.unregisterdatabase注銷數(shù)據(jù)庫,如

SQL> EXECUTE dbms_rcvcat.unregisterdatabase(1 , 1237603294)

4.3.1.3 采用RMAN進行備份

RMAN使用腳本來備份數(shù)據(jù)庫,以下是RMAN進行備份的幾個例子。

1.備份整個數(shù)據(jù)庫

backup full tag ‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;

2.備份一個表空間

backup tag ‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;

3.備份歸檔日志

backup tag ‘a(chǎn)log’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;

4.3.2 維護RMAN
4.3.2.1 查看RMAN的信息

檢查現(xiàn)有備份

RMAN>list backup

列出過期備份

RMAN>report obsolete

刪除過期的備份

RMAN>allocate channel for maintenance type disk;

RMAN>change backupset id delete;

RMAN>release channel;

同步或重置Rman

如果目標數(shù)據(jù)庫物理對象發(fā)生了變化,如添加了一個數(shù)據(jù)文件,需要用如下命令同步:

RMAN>resync catalog;

如果目標數(shù)據(jù)庫reset了數(shù)據(jù)庫,需要用如下命令同步

RMAN>reset database;

當手工刪除了數(shù)據(jù)庫的歸檔文件后,要執(zhí)行以下腳本同步

RMAN>allocate channel for maintenance type disk;

RMAN> change archivelog all crosscheck;

RMAN>release channel;

當手工刪除了數(shù)據(jù)庫的RMAN備份后,要執(zhí)行以下腳本來同步

RMAN>allocate channel for maintenance type disk;

RMAN>crosscheck backup;

RMAN>delete expire backup;

RMAN>release channel;

定制恰當?shù)膫浞莶呗?/h4>

定制正確的策略

每半年做一個數(shù)據(jù)庫的全備份(包括所有的數(shù)據(jù)和只讀表空間)

每一個月做一次零級備份(不包含只讀表空間)

每個星期做一次一級備份

每天做一次二級備份

任何數(shù)據(jù)庫的更改需要重新同步CATALOG目錄并重新備份(如添加數(shù)據(jù)文件)或重新備份(如修改表空間為只讀)

每次備份后都可以備份歸檔日志或定期備份歸檔日志。

如果可能,可以直接備份到磁帶上。

數(shù)據(jù)庫全備份的腳本

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database

include current controlfile;

sql ‘a(chǎn)lter system archive log current’;

backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’

archivelog all delete input;   #備份歸檔可選,可以單獨定期備份

release channel c1;

release channel c2;

release channel c3;

}

零級備份的腳本

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’

database skip readonly;

sql ‘a(chǎn)lter system archive log current’;

backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’

archivelog all delete input;   #備份歸檔可選,可以單獨定期備份

release channel c1;

release channel c2;

release channel c3;

}

同理,我們可以得到一級備份,二級備份的腳本,如一級備份的腳本

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

backup incremental level 1 tag ‘db1’ format ‘/u01/oradata/backup/db1%u_%s_%p’

database skip readonly;

sql ‘a(chǎn)lter system archive log current’;

backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’

archivelog all delete input;   #備份歸檔可選,可以單獨定期備份

release channel c1;

release channel c2;

release channel c3;

}

感謝各位的閱讀!關于“oracle數(shù)據(jù)庫如何備份恢復”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI