非歸檔模式下如何手工備份和恢復整個oracle資料庫?
非歸檔模式下如何手工備份和恢復oracle資料庫? 1.確定資料庫處於非歸檔模式 2.一致性關閉資料庫後,手工copy備份資料檔案、聯機重做日誌檔案、控制檔案 3.啟動資料庫,操作一段時間後,模擬資料檔案、聯機重做日誌檔案、控制檔案全部丟失 4.關閉資料庫後,手工copy備份的資料檔案、聯機重做日誌檔案、控制檔案到原始位置 5.啟動資料庫
相關實驗: 1.確定資料庫處於非歸檔模式 SQL> shutdown immediate; SQL> startup mount; SQL> alter database noarchivelog;
SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 24 Current log sequence 26
SQL> alter database open;
2.test使用者登入後,查看錶test_tab; SQL> conn test/test Connected. SQL> select * from test_tab;
ID ---------- 1 2
2.一致性關閉資料庫後,手工copy備份資料檔案、聯機重做日誌檔案、控制檔案 SQL> conn / as sysdba Connected. SQL> shutdown immediate;
[[email protected] orcl]$ cd /u01/app/oracle/oradata/orcl
[
3.啟動資料庫,操作一段時間後,模擬資料檔案、聯機重做日誌檔案、控制檔案全部丟失
SQL> conn test/test SQL> insert into test_tab values (3); SQL> insert into test_tab values (4); SQL> commit; SQL> select * from test_tab;
ID ---------- 1 2 3 4
[[email protected] orcl]$ rm *.dbf [[email protected] orcl]$ rm *.ctl [[email protected] orcl]$ rm *.log
SQL> shutdown abort ORACLE instance shut down.
SQL> startup ORACLE instance started.
Total System Global Area 780824576 bytes Fixed Size 2217424 bytes Variable Size 536873520 bytes Database Buffers 234881024 bytes Redo Buffers 6852608 bytes Database mounted. ORA-01157: cannot identify/lock data file 7 - see DBWR trace file ORA-01110: data file 7: '/u01/app/oracle/oradata/orcl/test_ts.dbf'
4.關閉資料庫後,手工copy備份的資料檔案、聯機重做日誌檔案、控制檔案到原始位置 SQL> shutdown immediate;
[[email protected] orcl]$ cp osbak/*.* /u01/app/oracle/oradata/orcl/
5.啟動資料庫 SQL> startup
SQL> conn test/test Connected. SQL> select * from test_tab;
ID ---------- 1 2
相關知識點: 備份常用的術語解釋:
冷備份(離線備份): 資料庫處於關閉狀態下所做的物理拷貝。資料庫處於非歸檔模式下只能使用這種方法備份。
資料庫全備份:備份所有資料檔案和控制檔案,在全備份時,資料庫可以處在關閉或開啟狀態,但在非歸檔模式下必須處於關閉狀態。
資料檔案備份:備份單個的資料檔案,在非歸檔模式下,只能備份只讀資料檔案或者正常離線的資料檔案。
本實驗所有檔案在同一目錄,生產系統不是如此,所以生產系統實際操作冷備份(離線備份)的具體步驟:
1.使用select * from v$controlfile 查出所有控制檔案。
2.使用select * from v$logfile 找出所有重做日誌檔案。
3.使用select * from dba_data_files;找出所有資料檔案。
4.使用select * from v$tempfile;找出所有臨時檔案。
5.正常關閉資料庫,將所有檔案拷貝到備份磁碟。
6.重啟資料庫。
注意:一定是所有的控制檔案和資料檔案都要備份。
恢復的步驟:
1.正常關閉資料庫
2.將所有的備份檔案放到原來的位置,(重做日誌檔案,引數檔案和口令檔案並不是必須的)
3.重啟資料庫