問題:sql
1.邏輯備份是否包含表結構 shell
答案包含表結構數據庫
2.Rman是邏輯備份仍是物理備份,屬於也備份嗎 oracle
答案物理備,屬於熱備份ide
3.熱備份的方式是什麼 工具
答案:SQL下的命令備份或是Rman備份spa
4.熱備份能備份哪些文件日誌
5.聯機重作文件有什麼做用 orm
答案:在Oracle數據庫中,執行數據修改操做後,並非立刻寫入數據文件,而是首先生成重作信息,並寫入SGA中的一塊叫LOG_BUFFER的固定區域,LOG_BUFFER有必定的觸發條件,當知足觸發條件後,會有相應進程將LOG_BUFFER中的內容寫入數據塊中。oracle聯機日誌做用:一、主要用來記錄對數據庫的改變,防止數據丟失。二、爲了數據庫操做快速反應。對象
備份的類型
按照備份方式的不一樣,能夠把備份分爲兩類:
邏輯備份:指經過邏輯導出對數據進行備份。邏輯備份使用導入導出工具:EXPDP/IMPDP或EXP/IMP,邏輯備份是物理備份的方式的一種補充,因爲邏輯備份具備平臺無關性,邏輯備份被做爲數據遷移及移動的主要手段。
物理備份: 指經過物理文件拷貝的方式對數據庫進行備份,物理備份又能夠分爲冷備份和熱備份。
冷備份:是指對數據庫進行關閉後的拷貝備份,這樣的備份具備一致和完整的時間點數據,恢復時只須要恢復全部文件就能夠啓動數據庫。
熱備份:在生產系統中最多見的備份方式是熱備份,進行熱備份的數據庫須要運行在歸檔模式,熱備份時不須要關閉數據庫,從而可以保證系統的持續運行,在進行恢復時,經過備份的數據文件及歸檔日誌文件,數據庫能夠進行徹底恢復。熱備份包括Rman備份,熱備份也被稱爲聯機備份。
邏輯備份:
導出
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.拷貝參數文件
shell>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
shell>cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
1.爲目錄建立一個單獨的表空間
SQL>Create tablespace tools datafile ‘fielname’ size 50m;
2.建立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.鏈接數據庫
RMAN>connect catalog rman/rman
6.建立恢復目錄
RMAN>Create catalog tablespace tools
註冊目標數據庫,恢復目錄建立成功後,就能夠註冊目標數據庫了,目標數據庫就是須要備份的數據庫,一個恢復目錄能夠註冊多個目標數據庫,註冊目標數據庫的命令爲:
$>RMAN target internal/password catalog rman/rman@rcdb;
RMAN>Register database;
數據庫註冊完成,就能夠用RMAN來進行備份了,更多命令請參考ORACLE聯機手冊或《ORACLE8i備份與恢復手冊》。
註銷數據庫不是簡單的在RMAN提示下反註冊就能夠了,須要運行一個程序包,過程以下:
1. 鏈接目標數據庫,得到目標數據庫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註銷數據庫,如
SQL> EXECUTE dbms_rcvcat.unregisterdatabase(1 , 1237603294)
RMAN使用腳原本備份數據庫,如下是RMAN進行備份的幾個例子。
1.備份整個數據庫
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 ‘alog’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;
檢查現有備份
RMAN>list backup
列出過時備份
RMAN>report obsolete
刪除過時的備份
RMAN>allocate channel for maintenance type disk;
RMAN>change backupset id delete;
RMAN>release channel;
同步或重置Rman
若是目標數據庫物理對象發生了變化,如添加了一個數據文件,須要用以下命令同步:
RMAN>resync catalog;
若是目標數據庫reset了數據庫,須要用以下命令同步
RMAN>reset database;
當手工刪除了數據庫的歸檔文件後,要執行如下腳本同步
RMAN>allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck;
RMAN>release channel;
當手工刪除了數據庫的RMAN備份後,要執行如下腳原本同步
RMAN>allocate channel for maintenance type disk;
RMAN>crosscheck backup;
RMAN>delete expire backup;
RMAN>release channel;
每半年作一個數據庫的全備份(包括全部的數據和只讀表空間)
每個月作一次零級備份(不包含只讀表空間)
每一個星期作一次一級備份
天天作一次二級備份
任何數據庫的更改須要從新同步CATALOG目錄並從新備份(如添加數據文件)或從新備份(如修改表空間爲只讀)
每次備份後均可以備份歸檔日誌或按期備份歸檔日誌。
若是可能,能夠直接備份到磁帶上。
數據庫全備份的腳本
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 ‘alter 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 ‘alter 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 ‘alter 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;
}