Oracle資料庫的備份方法-冷備份(轉)
Oracle資料庫的備份方法-冷備份(轉)[@more@]冷備份是Oracle最簡單的一種備份;執行冷備份前必須關閉資料庫;然後使用作業系統實用工具或者第三方工具備份所有相關的資料庫檔案。
能簡單快速地備份。能簡單快速地恢復。執行簡單。
必須關閉資料庫。
不能進行點恢復。
熱備份
熱備份是當資料庫正在執行時進行資料備份的過程。執行熱備份的前提是:資料庫執行在可歸檔日誌模式。適用於24X7不間斷執行的關鍵應用系統。
備份時資料庫可以是開啟的。熱備份可以用來進行點恢復。初始化引數檔案、歸檔日誌在資料庫正常執行時是關閉的,可用作業系統命令複製。
執行過程複雜。由於資料庫不間斷執行,測試比較困難。不能用作業系統實用工具複製開啟的檔案。必須使用Oracle提供的ocopy工具來複製開啟的檔案。熱備份可能造成CPU、I/O過載,應在資料庫不太忙時進行。
Export匯出資料庫物件
冷備份和熱備份都備份物理資料庫檔案,因而被稱為物理備份。而export備份的是資料庫物件,因此被稱為邏輯備份。
能執行物件或者行恢復。備份和恢復速度更快。能夠跨作業系統平臺遷移資料庫。資料庫可一直執行。
export並不是冷備份和熱備份的替代工具。冷、熱備份可保護介質失效。export備份可保護使用者或應用錯誤。
3、冷備份方案的實施
3.1 冷備份資料庫的步驟
(1)關閉資料庫;
(2)備份所有相關的資料庫檔案:初始化引數檔案、控制檔案(可用select name from v$controlfile;列出所有控制檔案)、資料檔案(可用select name from v$datafile;列出所有資料檔案)、Redo日誌(可用select member from v$logfile;列出所有redo日誌檔案)、歸檔的Redo日誌(可用select sequence#,first_time from v$loghist;列出所有歸檔redo日誌檔案的順序號和產生時間)。
3.2 冷備份資料庫的指令碼檔案coldbak.cmd
rem Oracle資料庫冷備份指令碼檔名coldbak.cmd
rem 用於Windows NT/2000 平臺,已經過嚴密的測試,大家可以試驗!!!
rem 該指令碼執行後,在c: emp目錄中產生db_restrict.sql、db_shut.sql、db_start.sql、
rem cold.sql、cold.cmd等5個指令碼檔案,冷備份的核心命令在cold.cmd中。
rem 設定SID
set oracle_sid=tmq
rem 設定初始化引數檔案
set my_pfile=e:oracleora81databaseinittmq.ora
set my_ifile=E:OracleADMIN mqpfileinit.ora
rem 設定歸檔日誌目錄
set my_archive_dir=E:OracleORADATA mqarchive
rem 設定internal帳戶的密碼
set my_password=oracle
rem 建立臨時目錄
mkdir c: emp
set my_temp=c: emp
rem 建立備份目錄,該目錄必須有足夠大的空間用於存放資料庫的備份檔案
mkdir e:ackup
set my_bakdir=e:ackup
rem ==== (1) create script file db_restrict.sql=====
echo connect internal/%my_password%; > %my_temp%db_restrict.sql
echo shutdown immediate; >> %my_temp%db_restrict.sql
echo startup restrict pfile=%my_pfile%; >>%my_temp%db_restrict.sql
echo exit >> %my_temp%db_restrict.sql
rem ==== (2) create script file db_shut.sql =====
echo connect internal/%my_password%; >%my_temp%db_shut.sql
echo shutdown immediate; >>%my_temp%db_shut.sql
echo exit >>%my_temp%db_shut.sql
rem ==== (3) create script file db_start.sql =====
echo connect internal/%my_password%; >%my_temp%db_start.sql
echo startup pfile=%my_pfile%; >>%my_temp%db_start.sql
echo exit >>%my_temp%db_start.sql
svrmgrl @%my_temp%db_restrict.sql
rem ==== (4) create script file cold.sql =====
echo set heading off; >%my_temp%cold.sql
echo set feedback off; >>%my_temp%cold.sql
echo spool %my_temp%cold.cmd; >>%my_temp%cold.sql
echo 在這裡設計冷備份的命令,備份控制檔案、資料檔案和日誌檔案
echo select 'copy ' ^|^| name ^|^| ' %my_bakdir%' from v$controlfile; >>%my_temp%cold.sql
echo select 'copy ' ^|^| member ^|^| ' %my_bakdir%' from v$logfile; >>%my_temp%cold.sql
echo select 'copy ' ^|^| file_name ^|^| ' %my_bakdir%' from dba_data_files; >>%my_temp%cold.sql
echo spool off; >>%my_temp%cold.sql
echo exit >>%my_temp%cold.sql
rem ===== (5) run cold.sql to genrate cold.cmd ========
sqlplus internal/%my_password% @%my_temp%cold.sql
echo 在這裡設計冷備份的命令,備份引數檔案、歸檔日誌檔案
echo. >> %my_temp%cold.cmd
echo copy %my_pfile% %my_bakdir% >> %my_temp%cold.cmd
echo copy %my_ifile% %my_bakdir% >> %my_temp%cold.cmd
echo. >> %my_temp%cold.cmd
echo copy %my_archive_dir%*.* %my_bakdir% >> %my_temp%cold.cmd
rem ===== shut down database ========
svrmgrl @%my_temp%db_shut.sql
rem ====== run cold.cmd to perform the cold backup 開始執行冷備份 ======
call %my_temp%cold.cmd
rem ====== start up the database =======
svrmgrl @%my_temp%db_start.sql
echo ===== the cold backup is completed!!! ======
能簡單快速地備份。能簡單快速地恢復。執行簡單。
必須關閉資料庫。
不能進行點恢復。
熱備份
熱備份是當資料庫正在執行時進行資料備份的過程。執行熱備份的前提是:資料庫執行在可歸檔日誌模式。適用於24X7不間斷執行的關鍵應用系統。
備份時資料庫可以是開啟的。熱備份可以用來進行點恢復。初始化引數檔案、歸檔日誌在資料庫正常執行時是關閉的,可用作業系統命令複製。
執行過程複雜。由於資料庫不間斷執行,測試比較困難。不能用作業系統實用工具複製開啟的檔案。必須使用Oracle提供的ocopy工具來複製開啟的檔案。熱備份可能造成CPU、I/O過載,應在資料庫不太忙時進行。
Export匯出資料庫物件
冷備份和熱備份都備份物理資料庫檔案,因而被稱為物理備份。而export備份的是資料庫物件,因此被稱為邏輯備份。
能執行物件或者行恢復。備份和恢復速度更快。能夠跨作業系統平臺遷移資料庫。資料庫可一直執行。
export並不是冷備份和熱備份的替代工具。冷、熱備份可保護介質失效。export備份可保護使用者或應用錯誤。
3、冷備份方案的實施
3.1 冷備份資料庫的步驟
(1)關閉資料庫;
(2)備份所有相關的資料庫檔案:初始化引數檔案、控制檔案(可用select name from v$controlfile;列出所有控制檔案)、資料檔案(可用select name from v$datafile;列出所有資料檔案)、Redo日誌(可用select member from v$logfile;列出所有redo日誌檔案)、歸檔的Redo日誌(可用select sequence#,first_time from v$loghist;列出所有歸檔redo日誌檔案的順序號和產生時間)。
3.2 冷備份資料庫的指令碼檔案coldbak.cmd
rem Oracle資料庫冷備份指令碼檔名coldbak.cmd
rem 用於Windows NT/2000 平臺,已經過嚴密的測試,大家可以試驗!!!
rem 該指令碼執行後,在c: emp目錄中產生db_restrict.sql、db_shut.sql、db_start.sql、
rem cold.sql、cold.cmd等5個指令碼檔案,冷備份的核心命令在cold.cmd中。
rem 設定SID
set oracle_sid=tmq
rem 設定初始化引數檔案
set my_pfile=e:oracleora81databaseinittmq.ora
set my_ifile=E:OracleADMIN mqpfileinit.ora
rem 設定歸檔日誌目錄
set my_archive_dir=E:OracleORADATA mqarchive
rem 設定internal帳戶的密碼
set my_password=oracle
rem 建立臨時目錄
mkdir c: emp
set my_temp=c: emp
rem 建立備份目錄,該目錄必須有足夠大的空間用於存放資料庫的備份檔案
mkdir e:ackup
set my_bakdir=e:ackup
rem ==== (1) create script file db_restrict.sql=====
echo connect internal/%my_password%; > %my_temp%db_restrict.sql
echo shutdown immediate; >> %my_temp%db_restrict.sql
echo startup restrict pfile=%my_pfile%; >>%my_temp%db_restrict.sql
echo exit >> %my_temp%db_restrict.sql
rem ==== (2) create script file db_shut.sql =====
echo connect internal/%my_password%; >%my_temp%db_shut.sql
echo shutdown immediate; >>%my_temp%db_shut.sql
echo exit >>%my_temp%db_shut.sql
rem ==== (3) create script file db_start.sql =====
echo connect internal/%my_password%; >%my_temp%db_start.sql
echo startup pfile=%my_pfile%; >>%my_temp%db_start.sql
echo exit >>%my_temp%db_start.sql
svrmgrl @%my_temp%db_restrict.sql
rem ==== (4) create script file cold.sql =====
echo set heading off; >%my_temp%cold.sql
echo set feedback off; >>%my_temp%cold.sql
echo spool %my_temp%cold.cmd; >>%my_temp%cold.sql
echo 在這裡設計冷備份的命令,備份控制檔案、資料檔案和日誌檔案
echo select 'copy ' ^|^| name ^|^| ' %my_bakdir%' from v$controlfile; >>%my_temp%cold.sql
echo select 'copy ' ^|^| member ^|^| ' %my_bakdir%' from v$logfile; >>%my_temp%cold.sql
echo select 'copy ' ^|^| file_name ^|^| ' %my_bakdir%' from dba_data_files; >>%my_temp%cold.sql
echo spool off; >>%my_temp%cold.sql
echo exit >>%my_temp%cold.sql
rem ===== (5) run cold.sql to genrate cold.cmd ========
sqlplus internal/%my_password% @%my_temp%cold.sql
echo 在這裡設計冷備份的命令,備份引數檔案、歸檔日誌檔案
echo. >> %my_temp%cold.cmd
echo copy %my_pfile% %my_bakdir% >> %my_temp%cold.cmd
echo copy %my_ifile% %my_bakdir% >> %my_temp%cold.cmd
echo. >> %my_temp%cold.cmd
echo copy %my_archive_dir%*.* %my_bakdir% >> %my_temp%cold.cmd
rem ===== shut down database ========
svrmgrl @%my_temp%db_shut.sql
rem ====== run cold.cmd to perform the cold backup 開始執行冷備份 ======
call %my_temp%cold.cmd
rem ====== start up the database =======
svrmgrl @%my_temp%db_start.sql
echo ===== the cold backup is completed!!! ======
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962366/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫的冷備份及冷備份異地恢復方法Oracle資料庫
- Oracle資料庫冷備份與熱備份操作梳理Oracle資料庫
- oracle的熱備份和冷備份Oracle
- 資料庫冷備份內容資料庫
- Oracle 冷備份Oracle
- 資料庫的冷備份遷移資料庫
- Oracle資料庫冷備份的異地恢復Oracle資料庫
- Oracle資料庫備份與恢復之匯出/匯入(EXP/IMP)、熱備份和冷備份Oracle資料庫
- Oracle冷備份級冷備份的不完全恢復Oracle
- Oracle冷備份和熱備份的處理Oracle
- Oracle 熱備份和冷備份的區別Oracle
- 啟動/關閉與冷備份Oracle資料庫Oracle資料庫
- oracle資料庫備份之exp增量備份Oracle資料庫
- 揭祕ORACLE備份之--冷備份(也叫離線備份)Oracle
- MySQL的冷備份和熱備份概念理解(轉)MySql
- ORACLE資料庫的邏輯備份(轉)Oracle資料庫
- ORACLE 資料庫備份技術(轉)Oracle資料庫
- Oracle冷備份(一致備份)指令碼Oracle指令碼
- Oracle學習系列—資料庫備份—熱備份Oracle資料庫
- mysql的冷備份與熱備份MySql
- Oracle OCP(60):冷備份Oracle
- Oracle冷備份練習Oracle
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- oracle 自動冷備份指令碼(轉)Oracle指令碼
- 【原】Oracle學習系列—資料庫備份—RMAN備份Oracle資料庫
- Oracle資料庫備份與恢復的三種方法(轉)Oracle資料庫
- Oracle資料庫的備份與恢復(轉)Oracle資料庫
- Oracle 資料庫的備份與恢復(轉)Oracle資料庫
- Oracle冷備份的通常步驟Oracle
- 【原】Oracle學習系列—資料庫備份—離線備份Oracle資料庫
- Oracle物理冷備份指令碼Oracle指令碼
- 使用冷備份與冷備份後的資料庫歸檔日誌檔案進行資料庫不完整恢復資料庫
- MySQL資料庫常用的備份方法MySql資料庫
- 最簡便的備份MySql資料庫方法(轉)MySql資料庫
- 自動備份Oracle資料庫Oracle資料庫
- 講解Oracle資料庫冷備份恢復的具體步驟Oracle資料庫
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- 資料庫備份資料庫