Oracle數據庫的運行是需要二十四個小時,而且在運行的過程中隨時都會有新的相關數據加入.如果數據丟失,將會影響整個公司.所以采用archivelog mode的物理備份. 設置Oracle數據庫為automatic archivelog mode,
- #su - Oracle
- %svrmgrl
- svrmgrl>connect internal
- svrmgrl>startup mount
- svrmgrl>alter database archivelog
- svrmgrl>shutdown
- svrmgrl>exit
- %vi initOracle7.ora
加入
- log_archive_start = true # if you want automatic archiving
- log_archive_dest = $Oracle_HOME/dbs/arch
- loglog_archive_format = log%s.arc
- %dbstart
- %ps -ef|grep arch
- oracle 1743 1 0 15:20:20 ? 0:00 ora_arch_Oracle7
注:
- Oracle database is in automatic archivelog mode
- ?full offline entire database backup,
當數據庫初始完成後 這份備份是將來備份的基礎。它提供了所有與數據庫有關的拷貝.
熱備份可以在數據庫打開打情況下進行,一般通過使用Alter命令改變表空間的狀態來開始進行備份的,備份完成後,要恢其原來狀態,否則redo log 會錯配,引起Oracle數據庫下次啟動時對受影響的表空間進行完全覆蓋。熱備份的要求是:
1.熱備份工作必需要求數據庫在Archivelog 方式下操作,在SQLDBA狀態下用alter database archivelog|noarchivelog命令可改變備份的模式。
2.熱備份只能在Oracle數據庫不使用或使用率低的情況下進行。
3.熱備份需要大量的檔案空間。
一般情況,Oracle 以循環的方式寫入Online redo log 文件,當填滿第一個redo log文件後寫第二個,直至最後一個,最後一個被填滿後,後台進程LGWR就覆蓋第一個,在Archivelog方式下,後台進程ARCH在每一個redo log 文件被覆蓋前,給它作一個拷貝,一般,這些文檔的redo log 文件被寫入磁盤或磁帶中。如果磁盤空間夠用,建議使用磁盤,這樣可大大減少完成備份所需的時間。
在作熱備份之前,要將config.ora文件中的log_archive_start 設為true 將log_archive_dest
規定archive redo log 文件的位置:
- log_archive_dest=/wwwdg/Oracle/arch/arch
- log_archive_start=true
一旦Oracle數據庫運行在archivelog狀態下,就可以作備份了。熱備份的命令文件由三部分組成:
1、數據文件一個表空間一個空間地備份:
a.設置表空間為備份狀態。
b.備份表空間的數據文件。
c.恢復表空間為正常狀態。
2、備份歸檔要作log 文件:
a.臨時停止歸檔進程
b.log下那些在archive redo log目標目錄中的文件
c.重新啟動archive進程
d.備份歸檔的redo log 文件
3、用alter database backup controlfile命令來備份拷貝文件
在熱備份運行之前log_archive_dest目錄可能已滿,這時就要備份目錄,然後刪除文件,釋放空間,這個過程有如下步驟:
1、暫時停止archive進程。
2、記錄在log_archive_dest目錄下的文件。
3、重新啟動archive 進程。
4、備份archive redo log 文件。
5、刪除目錄中的文件。