使用者管理的備份與恢復也稱 os物理備份,是指通過資料庫命令設定資料庫為備份 狀態,然後用作業系統命令,拷貝需要備份或恢復的檔案。這種備份與恢復需要使用者的 參與手工或自動完成。
對於使用 os拷貝備份的資料檔案,可以使用 dbvertify 進行檢驗。dbvertify是乙個外部工具,主要用於校驗資料檔案或備份的資料檔案的資料塊是否正確。 例:
dbv /u01/oradata/oracle/users01.dbf blocksize=8192
引數說明:
關鍵字 說明 (預設)
file 要檢驗的檔案 (none)
start 起始塊 (檔案的第乙個塊)
end 結束塊 (檔案的最後乙個塊)
blocksize 邏輯塊大小 (2048)
logfile 輸出日誌 (none)
feedback 顯示程序 (0)
recover 還可以進行測試,檢測恢復的錯誤,錯誤資訊記載在 alert_sid.log 檔案中,通過測試,我們可以知道該恢復操作是否能正常完成。
sql> recover tablespace sales test;
sql> recover database until cancel test;
3.1 相關設定
3.1.1 設定archivelog與nonarchivelog模式
重做日誌組是以迴圈方式使用的,重做日誌組會被覆蓋重做日誌資訊就會丟失。為了儲存歷史以來的重做日誌,資料庫可以執行在日誌歸檔模式下(archivelog mode)。 在日誌歸檔模式下,當日誌組撤換到下乙個組時後台程序 arcn 將上乙個日誌檔案複製到另乙個地方(oracle 10g 使用快速恢復區會歸檔到該區)儲存。資料庫預設為非歸檔模式(noarchivelog mode)。
設定archivelog模式步驟:
1. 關閉資料庫,備份已有的資料,改變資料庫的執行方式是對資料庫的重要改動,所以要對資料庫做備份,對可能出現的問題作出保護。
2. 修改初試化引數: 使用 pfile,修改初始化引數檔案 init[sid].ora log_archive_start=true #啟動自動歸檔 log_archive_format=arc%t%s.arc #歸檔檔案格式 log_archive_dest=/arch12/arch #歸檔路徑
3. 啟動 instance 到 mount狀態,即載入資料庫但不開啟資料庫:sql > startup mount;
4. 發出修改命令sql > alter database archivelog; sql > alter database open;設定 nonarchivelog模式步驟同上,只需修改相應引數值即可。
3.1.2 logging 與 nologging
表空間、表、索引、分割槽可以設定為 nologging,用於快速裝入資料(direct load)。 在插入資料時只寫入最小的重做日誌和回滾資料。在歸檔資料庫模式下,執行 direct load 操作後應立即進行備份,否則不能使用之前的備份進行恢復。另外,使用者可以設定資料庫的 強制日誌模式,使用所有操作都記入日誌。
logging 與 nologging 的區別:
logging nologging
所有的更改寫入 redo 最小寫入 redo log
從最近備份中完全恢復 不能從最近備份中完全恢復
不需要增加備份 需要增加備份
nologging 的操作:
create table … nologging as select 語句
insert /*+append*/ into 表》 nologging select 語句
insert /*+ parallel(表》,)達式*/ into 表》 nologging select 語句
sql*loader的direct 方法
例:sql>create table emp1 nologging as select * from emp; sql>select name,unrecoverable_time from v$datafile;
sql>insert /*+ append */ into emp1 nologging select* * from emp; sql>select name,unrecoverable_time from v$datafile;
sql>alter database no force logging;
3.1.3 歸檔路徑
在歸檔模式下進行自動歸檔時,或者在恢復時設定歸檔所在的位置,需要設定歸檔路徑初始化引數:
log_archive_dest_n=「location=path mandatory|optional reopen=n」
log_archive_dest_n=「service=standby mandatory|optional reopen=n
3.2 nonarchivelog 模式
3.2.1 離線冷備與恢復
冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們乙個完整的資料庫。冷備份是將關鍵性檔案拷貝到另外位置的一種說法。對於備份 oracle 資訊而言,冷備份是最快和最安全的方法。
冷備份的優點:
1.是非常快速的備份方法(只需拷貝檔案)
2.容易歸檔(簡單拷貝即可)
3.容易恢復到某個時間點上(只需將檔案再拷貝回去)
4.能與歸檔方法相結合,作資料庫「最新狀態」的恢復。
5.低度維護,高度安全。
冷備份的不足:
1.單獨使用時,只能提供到「某一時間點上」的恢復。
2.在實施備份的全過程中,資料庫必須要作備份而不能作其它工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
3.若磁碟空間有限,只能拷貝到磁帶等其它外部儲存裝置上,速度會很慢。
4.不能按表或按使用者恢復。
如果可能的話(主要看效率),應將資訊備份到磁碟上,然後啟動資料庫(使使用者可以 工作)並將所備份的資訊拷貝到磁帶上(拷貝的同時,資料庫也可以工作)。冷備份中必須 拷貝的檔案包括:1.所有資料檔案2.所有控制檔案3.所有聯機 redo log 檔案4.引數化引數 init.ora 檔案(可選)。
3.2.2 案例
1.9i 離線冷備/恢復的例子:
(1) 關閉資料庫
$ sqlplus /nolog
sql> connect /as sysdba
sql> shutdown normal;
(2) 用拷貝命令備份/恢復全部的時間檔案、重做日誌檔案、控制檔案、初始化引數 檔案sql > host cp xx xx;
可以使用以下冷備指令碼:
#!/bin/bash
## 名稱: coldback_gen.sh
## 功能: 本 shell 用於生成冷備份指令碼, 進行冷備份同時生成相應的恢復命令
## 可以修改後在生成後立即執行
## 編者:
## 日期: 2006.12.13.
##設定變數
##設定臨時檔名
tempsql=./backup.sql
##設定備份檔案存放路徑
backdate=`date -u +%y%m%d`
backupdir=/u04/oracle/coldback/$backdate
mkdir $backupdir
##設定備份指令碼檔名
backupsh=$backupdir/coldback.sh
rcvrsh=$backupdir/recovery.sh
echo "正在生成冷備份指令碼[$backupsh]……"
##檢查 oracle資料庫是否啟動
oraisrun=`ps -ef|grep -c ora_`
if [ "$oraisrun" = "0" ] || [ "$oraisrun" = "1" ]
then
echo "
oracle 資料庫尚未啟動,請先啟動 oracle"
echo ""
exit
fi##準備工作
echo "set heading off " > $tempsql
echo "set feedback off " >>$tempsql
echo "set tab off " >>$tempsql
echo "set verify off " >>$tempsql
echo "set pagesize 0" >>$tempsql
echo "set linesize 800 " >>$tempsql
echo "select #!/bin/bash from dual;" >> $tempsql
echo "select from dual;" >> $tempsql
echo "select ## 備份指令碼生成時間: " `date +%y 年%m月%d日-%h:%m:%s` "
from dual;" >> $tempsql
echo "select ## 備份目的路徑: $backupdir from dual; " >> $tempsql
echo "select from dual; " >> $tempsql
echo "" echo "select echo 開始進行離線冷備…… from dual; " >> $tempsql
echo "select echo 備份目的路徑: $backupdir from dual; " &nbs
oracle資料庫恢復與備份
一 oracle資料庫恢復 1.恢復剛才刪除的一條資料 delete from emp e where e.empname smith select from flashback transaction query f where f.table name emp undo sql下面的語句為剛才刪...
oracle資料庫備份與恢復
一 使用資料幫浦備份資料 1.建立目錄物件並授權 connect sys password as sysdba create directory dir1 as e dump1 create directory dir2 as e dump2 grant read,write on director...
Oracle資料庫備份與恢復 增量備份
rman乙個強大的功能是支援增量備份,增量備份中心思想就是減少備份的資料量,我們不需要在從頭開始備份了,只需要備份自上次已備份之後的資料塊即可。關於incremental增量備份級別 oracle 9i 共有五種級別 0 1 2 3 4,0級最高 4級最低,0級是1級的基礎以此類推。oracle 1...