備份是將資料庫中的資料資訊儲存起來,而恢復則是將已經備份的資料庫資訊還原到資料庫系統中。
一、資料庫的備份型別
oracle資料庫的備份有3種標準形式:匯出、離線備份和聯機備份。
匯出方式是資料庫的邏輯備份,離線備份和聯機備份都是物理備份。
1、邏輯備份
匯出有以下3種模式:
(1)使用者(user)模式:匯出使用者所有物件以及物件中的資料。
(2)表(table)模式:匯出使用者的所有表或者使用者指定的表。
(3)全域性(full)模式:匯出資料庫中的所有物件,包括資料、資料定義和用於重建資料庫的儲存物件。
在匯出期間,可以選擇是否匯出與表相關的資料字典的資訊,如許可權、索引和約束條件等。匯出備份有3種型別:
(1)完全型(complete export):對所有表執行全資料庫匯出,或僅對上次匯出後修改過的表執行全資料庫匯出。
(2)積累型(cumulative):備份上一次積累型備份所改變的資料。
(3)增量型(incremental):備份上一次備份後改變的資料。
2、物理備份
物理備份是複製資料庫檔案而不是其邏輯內容。
(1)離線備份。離線備份是在資料庫正常關閉的情況下進行。資料庫正常關閉後會提供給使用者乙個完整的資料庫。當資料庫處於離線備份狀態時,備份的檔案包括所有資料檔案、控制檔案、聯機重做日誌和伺服器引數檔案。
(2)聯機備份。聯機備份可以在資料庫開啟的情況下進行。進行聯機備份時要求資料庫必須在歸檔方式下操作,在資料庫不使用或者使用率低的情況下,同時要有大量的儲存空間。資料庫可從乙個聯機備份中完全恢復,並且可以通過歸檔的重做日誌,前滾到任一時刻。聯機備份的主要檔案包括所有資料檔案、歸檔的重做日誌檔案和乙個控制檔案。
c:\users\andy>exp /*在命令提示符下輸入exp命令,接下來按提示操作*/
export: release 11.1.0.6.0 - production on 星期五 6月 1 10:48:19 2012
使用者名稱: andy /*輸入登入資料庫的使用者名稱*/
口令: /*輸入登入口令*/
連線到: oracle database 11g release 11.1.0.6.0 - production
輸入陣列提取緩衝區大小: 4096 > /*這裡選擇預設值,直接回車*/
匯出檔案: expdat.dmp > d:\andy.dmp /*輸入匯出檔案的位置*/
(1)e(完整的資料庫), (2)u(使用者) 或 (3)t(表): (2)u > t /*選擇匯出型別,這裡選錶(t)*/
匯出表資料 (yes/no): yes > /*這裡選擇預設值,直接回車*/
壓縮區 (yes/no): yes > /*這裡選擇預設值,直接回車*/
已匯出 zhs16gbk 字符集和 al16utf16 nchar 字符集
即將匯出指定的表通過常規路徑...
要匯出的表 (t) 或分割槽 (t: p): (按 return 退出) > t_module /*輸入要匯出的表名*/
. . 正在匯出表 t_module匯出了 47 行
要匯出的表 (t) 或分割槽 (t: p): (按 return 退出) > t_employee /*輸入要匯出的表名*/
. . 正在匯出表 t_employee匯出了 1 行
要匯出的表 (t) 或分割槽 (t: p): (按 return 退出) > t_sysauthority /*輸入要匯出的表名*/
. . 正在匯出表 t_sysauthority匯出了 137 行
要匯出的表 (t) 或分割槽 (t: p): (按 return 退出) > /*導完之後可以直接按回車退出*/
命令列模式:
exp username/password@host:port/service file=exportfilepath當匯出資料庫是本地資料庫,或者在本地的network中配置了對應的別名後可以講host和port省略,如:
exp abc/abc@orcl file=d:\oracle\abc.dmp下列關鍵字僅用於可傳輸的表空間
transport_tablespace 匯入可傳輸的表空間元資料 (n)
tablespaces 將要傳輸到資料庫的表空間
datafiles 將要傳輸到資料庫的資料檔案
tts_owners 擁有可傳輸表空間集中資料的使用者
匯入常用如下指令:
imp username/password@host:port/service fromuser=fromuser touser=touser file=importfilepath當匯入資料庫是本地資料庫,或者在本地的network中配置了對應的別名後可以講host和port省略,如:
imp abc/abc@orcl fromuser=def touser=abc file=d:\oracle\def.dmp
三、離線備份
離線備份是一種物理備份,通常在資料庫通過乙個shutdown normal或shutdown immediate命令正常關閉後進行。當資料庫關閉時,其使用的各個檔案都可以
進行備份。離線備份一般在sql/plus中進行。步驟如下:
(1)正常關閉要備份的例項,在登入資料庫後,使用shutdown normal命令關閉資料庫
(2)備份資料庫。關閉資料庫後可以使用各種備份工具備份所有的資料檔案、重做日誌檔案、控制檔案和引數檔案。
(3)啟動資料庫。備份完成後可以使用startup mount命令啟動資料庫。
四、聯機備份
聯機備份又稱為archivelog備份,它要求資料庫執行在archivelog方式下。
1、以archivelog方式執行資料庫
步驟如下:
(1)首先以管理員身份連線資料庫
(2)在sql/plus中執行如下語句:
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
注:利用archive log list語句可以檢視資料庫的archive log狀態。
2、執行資料庫備份
一旦資料庫在archivelog方式下開啟並對使用者可用時就可以進行備份。儘管聯機備份可以在工作期間進行,但最好安排在使用者活動比較少的時間進行。
資料庫的備份可以方便的通過企業管理器進行,開啟企業管理器,選擇排程備份開始備份操作。
Oracle資料庫備份與恢復的方法 (2) 冷備份
二 冷備份 冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們乙個完整的資料庫。冷備份時將關鍵性檔案拷貝到另外的位置的一種說法。對於備份oracle資訊而言,冷備份時最快和最安全的方法。冷備份的優點是 是非常快速的備份方法 只需拷檔案 容易歸檔 簡單拷貝即可 容易恢復到某個時間點上 只...
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...