oracle 10g資料庫備份與還原總結
1.資料庫歸檔模式:
* 非歸檔模式:當資料庫資料只讀不會改變時,資料不會改變,資料庫適合用非歸檔模式, 這樣提高效能
* 歸檔模式:對於資料庫資料經常變動,資料庫最好用歸檔模式,這樣可以儘量避免資料庫 資料丟失,使出現問題時災害降到最低
[@more@]2.非歸檔模式與歸檔模式間的切換(在命令視窗下):
@檢查當前日誌操作模式
f:>sqlplus sys/dba as sysdba
連線資料庫
sql>select log_mode from v$database;
@關閉資料庫,後裝載資料庫,只能在mount狀態下改變日誌操作模式
sql>startup mount
@改變日誌模式
sql>alter database achivelog;(變為歸檔方式,否則為nochivelog)
sql>alter database open;
3.檢視歸檔模式相關資訊:
@若採用預設設定,歸檔日誌位置在快速恢復區
@配置歸檔日誌位置 log_archive_dest_n (n=[1:10])
sql>alter system set
log_archive_dest_1 = 'location =c:demoarchive [optional]';
sql>alter system set
log_archive_dest_2 = 'service =standby [mandatory] [reopen]';
其中:location 是本地
service 是遠端
optional 無論歸檔是否成功,都會覆蓋重做日誌
mandatory只有成功歸檔才會覆蓋重做日誌
reopen 重新歸檔時間間隔 預設是300s
@顯示歸檔資訊,即顯示顯示日誌操作模式
sql>select name,log_mode from v$database;
@顯示歸檔日誌資訊
sql>select name,seqnce#,first_change# from v$archive_log;
seqnce#: 歸檔序列號
first_change# : 起始SCN值
@顯示歸檔日誌位置
sql>select dest_name,destination,status from v$archive_dest;
dest_name 歸檔位置引數名
destination 位置
@顯示日誌歷史資訊
sql>select * from v$loghist;
threade# : 重做執行緒號
seqnce# : 日誌序列號
first_change# : 起始SCN值
first_time : 起始SCN發生時間
switch_change : 切換SCN值
二.非歸檔模式下的備份與還原
. 日誌採用覆蓋原有日誌的方式儲存
. 出現介質失敗時,只能恢復到過去的完全備份點
. 資料庫OPEN狀態是,不能備份資料庫
. 必須先關閉資料庫,再備份,且必須備份所有資料,控制檔案
1.備份==冷備份
@ 先關閉資料庫
sql>shutdown immediate
@ 複製所有資料檔案,和控制檔案
2.恢復
* 資料檔案出現丟失,但備份以來的重做日誌內容尚未被覆蓋,此時可以完全恢復
@裝載資料庫
sql>startup force mount
@複製資料檔案備份
@恢復資料檔案
sql>recover datafile 1
@開啟資料庫
sql>alter database open;
* 備份檔案的重做日誌內容已經被覆蓋,則只能還原到備份點
@關閉資料庫
@複製所有資料和控制備份檔案至原位置
@裝載資料庫,執行恢復命令
sql>startup mount
sql>recover database until cancel
提示控制檔案不再使用原有重做日誌
@用resetlogs選項開啟資料庫
sql>alter database open resetlogs;
三.歸檔模式
. 可以防止資料丟失
. 資料處於OPEN狀態時可以進行備份
. 當出現介質失敗時,除了SYSTEM表空間中的資料檔案外其他的都可以在open狀態下恢復
. 可執行完全恢復,也可以恢復到備份點與失敗點之間的某時刻
1.備份
1)冷備份
shutdown後複製所需資料檔案和控制檔案
2)熱備份
@將資料庫設定為歸檔模式
@在資料庫上發出全域性檢查點,在所有的資料檔案頭塊上加鎖
sql>alter database begin backup ;
@備份資料檔案及控制檔案
資料檔案直接複製至其他目錄
控制檔案需使用alter database backup controlfile
sql>alter database backup controlfile to 'd:backupdemo.ctl';
@結束資料備份,為確保資料檔案備份的同步性,還應該歸檔當前日誌組
sql>alter database end backup;
sql>alter system archive log cuurent;
3)備份表空間
*離線備份(表空間處於OFFLINE狀態,SYSTEM表空間和正在使用的UNDO空間不能離線)
@確定表空間包涵的資料檔案,如空間USERS
sql>select file_name from dba_data_files
where tablespace_name = 'users';
@設定表空間為離線狀態
sql>alter tablespace users offline;
@複製資料檔案
@設定表空間聯機
sql>alter tablespace users online;
*聯機備份
@確定對應關係
@設定表空間為備份模式
sql>alter tablespace users begin backup ;
@複製資料檔案
@設定表空間為正常模式
sql>alter tablespace users end backup ;
*處理聯機備份失敗
當執行聯機備份時,若出現例程失敗,再次開啟資料庫時,如果資料檔案仍處於備 份狀態,則會出錯,此時需要結束備份
@裝載資料庫
sql>startup force mount
@檢視處於聯機備份狀態的所有資料檔案
sql>select file# from v$backup where status = 'active';
@結束聯機備份狀態
sql>alter tablespace end backup
或alter tablespace datafile backup;
或recover datafile 序號
@開啟資料庫
sql>alter database open;
2.還原
1)完全恢復
相關命令:
recover database :恢復資料庫的多個資料檔案(在MOUNT狀態下執行)
recover tadaspace :恢復多個表空間的所有資料檔案(在open狀態下執行)
recover datafile :恢復一個或多個資料檔案(在mount,open狀態下都可)
*在mount狀態下恢復資料檔案(用於SYSTEM表空間恢復)
@裝載資料庫 mount狀態
@確定需要恢復的資料檔案
sql>select file#,error from v$recover_file
@複製備份至原位置
@恢復資料庫 recover..上述命令
@開啟資料庫 alter database open;
*在open狀態下恢復關閉後意外對視的資料檔案,此時資料庫將無法開啟
@裝載資料庫 mount
@確定需要恢復的資料檔案
@使相應的資料檔案離線
sql>alter database datafile 4 offline;
@開啟資料庫
sql>alter database open
@複製資料備份檔案
@恢復資料檔案
@是資料檔案聯機 alter database datafile 4 online;
*在open狀態下恢復開啟時意外丟失的資料檔案
@確定要恢復的資料檔案
@使資料檔案離線
@複製資料檔案
@恢復相應的表空間或資料檔案
@使相應的表空間或資料檔案聯機
*在open狀態下恢復未備份的資料檔案(要求在歸檔模式下,新建資料檔案,其從簡歷 開始的所有歸檔日誌必須全部存在)
@裝載資料庫
@確定要恢復的資料檔案
@是資料檔案離線
@開啟資料庫
@重新建立資料檔案
sql>alter database create datafile 'd:demousers01.dbf';
@恢復資料檔案
@使資料檔案聯機
2)不完全恢復
使用已備份的資料檔案,歸檔日誌,和重做日誌,將資料庫恢復到備份點與失敗點之間 某個時刻的狀態
*恢復分類
基於時間的恢復:誤刪除表,誤截斷表,提交了錯誤的資料
基於取笑恢復:恢復到某個日誌序列號之前的狀態
基於SCN的恢復:恢復到特定SCN值的狀態
基於備份控制檔案恢復:表空間被意外刪除,或所有控制檔案全部損壞
*不完全恢復指令
recover database until time
recover database until change
recover database until cancel
recover database .. using backup controlfile
*基於時間的恢復
@關閉資料庫(為防止備份失敗,應備份當前資料庫所有檔案
@裝載資料庫 startup mount
@複製所有備份資料檔案,並確定備份檔案的時間點
sql>select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss)
from v$recover_file;
@執行recover database until time
sql>recover database until time "2006-09-26 16:40:33'
@以resetlogs方式開啟資料庫,並檢查恢復結果
sql>alter database open resetlogs;
@備份資料庫所有資料檔案和控制檔案,因為當以resetlogs方式開啟資料庫後 會重新建立重做日誌,清空原有重做日誌的所有內容,並將日誌序列號復位為1
sql>select name from v$datafile;
sql>alter database begin backup;
複製資料檔案
sql>alter database end backup;
sql>alter database backup controlfile
to 'd:backupdemo.ctl' reuse;
sql>alter system archive log cuurent;
*基於SCN恢復
@關閉資料庫
@裝載資料庫 mount
@複製所有備份資料檔案,確定備份檔案SCN值
sql>select file#,change#, from v$recover_file;
@執行recover database until change
sql>recover database until change 675978;
@以resetlogs方式開啟資料庫
@備份資料庫所有資料檔案和控制檔案
*基於取消恢復
@關閉資料庫
@裝載資料庫
@複製所有備份的資料檔案,確定備份檔案的SCN值
sql>select file#,change# from v$recover_file;
@執行recover database until cancle
sql>recover database until cancel
@以resetlogs方式開啟資料庫
@備份所有資料檔案和控制檔案
*基於備份控制檔案的恢復
@透過檢視alert檔案,確定誤操作時間
@關閉資料庫
@複製所有備份的資料檔案,控制檔案
@裝載資料庫
@執行recover database ..using backup controlfile
sql>recover database until time '2004-09-26 19:51:06'
using backup controlfile
@以resetlogs 方式開啟資料庫
@備份所有資料檔案和控制檔案
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/85957/viewspace-1045890/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- 【Mongodb】資料庫備份與還原MongoDB資料庫
- Oracle資料庫備份還原詳解XKUSOracle資料庫
- 達夢資料庫的備份與還原資料庫
- mysql資料庫-備份與還原實操MySql資料庫
- sqlserver資料庫的備份還原SQLServer資料庫
- sqlserver資料庫備份,還原操作SQLServer資料庫
- 「MySQL」資料庫備份和還原MySql資料庫
- MySQL的資料備份與還原MySql
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- 資料庫單表備份還原shell資料庫
- Oracle匯出資料庫與還原Oracle資料庫
- java mysql 資料庫備份和還原操作JavaMySql資料庫
- 詳解SQL Server 2012資料庫備份與還原的教程SQLServer資料庫
- 經典資料庫備份與還原處理(轉鄒建)資料庫
- Centos-Mysql複製備份還原資料庫CentOSMySql資料庫
- 資料庫的備份和還原不成功資料庫
- oracle資料庫備份之exp增量備份Oracle資料庫
- Mysql資料備份和還原MySql
- 雲伺服器mysql備份與還原資料庫命令詳解伺服器MySql資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- SQL Server2019資料庫備份與還原指令碼,資料庫可批量備份SQLServer資料庫指令碼
- oracle 還原 .dmp 格式備份檔案Oracle
- 【乾貨】MySQL 資料庫定時備份總結MySql資料庫
- Ubuntu Desktop: 備份與還原Ubuntu
- 華納雲 sqlserver資料庫備份及還原的方法SQLServer資料庫
- sql運算元據庫(2)--->DQL、資料庫備份和還原SQL資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- oracle uncatalog資料庫備份檔案Oracle資料庫
- KOSQL Server2019資料庫備份與還原指令碼(批量備份)zrbSQLServer資料庫指令碼
- 恆訊科技:雲伺服器資料備份與還原伺服器
- Redis 通過 RDB 方式進行資料備份與還原Redis
- 在Ubuntu 14.04上備份,還原和遷移MongoDB資料庫UbuntuMongoDB資料庫
- DM8資料庫備份還原的原理及應用資料庫
- MySQL資料庫的備份還原方案——不同伺服器間MySql資料庫伺服器
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- 備份與恢復:polardb資料庫備份與恢復資料庫
- SQL學習-資料庫的備份和還原 分離和附加SQL資料庫
- 批量備份還原匯入與匯出MongoDB資料方式昝璽MongoDB