冷備份
冷備份具有很多優良特性
以上的步驟可以用一個腳本來完成操作
su
connect / as sysdba
shutdown immediate;
!cp 文件 備份位置(所有的日志
startup;
exit;
恢復的時候
熱備份
當需要做一個精度比較高的備份
SQL> select log_mode from v$database;
如果不是Archive模式
則設定數據庫運行於歸檔模式下
SQL>startup mount
SQL> alter database archivelog;
SQL> alter database open;
如果Automaticarchival顯示為
正常shutdown數據庫
SQL>shutdown immediate
修改init
LOG_ARCHIVE_START=TRUE
LOG_ARCHIVE_DEST
SQL>startup
然後
注意
a
b
c
停止歸檔進程-->備份歸檔日志文件-->啟動歸檔進程
如果日志文檔比較多
SQL> alter database backup controlfile to
當然
腳本范例
su
connect / as sysdba
ALTER TABLESPACE tablespace_name BEGIN BACKUP
!CP tablespace_name D_PATH
ALTER TABLESPACE tablespace_name END BACKUP
alter database backup controlfile to
!files `ls <歸檔文件路徑>/arch*
熱備份的恢復
恢復步驟
shutdown數據庫
將全備份的數據文件放到原來系統的目錄中
將全備份到失敗點的所有歸檔日志放到參數LOG_ARCHIVE_DEST_
利用sqlplus登陸到空實例
然後 startup mount
set autorecovery on
recover database;
alter database open;
這樣
Windows平台的oracle備份(Veritas BE)
通過Backup Exec實施Oracle災難恢復很簡單
shutdown數據庫(不要用shutdown abort強行關閉)
這個冷備份對於快速恢復Oracle數據庫系統非常關鍵
每當數據庫或表單的物理結構或邏輯結構有變化時都應該重新創建這個冷備份
這個備份要通過Backup Exec Agent for Oracle Server來完成
此時Windows系統
shutdown immediate + < enter >
要想成功的恢復數據庫
通過Oracle的alert log可以看到數據庫的恢復需要哪些歸檔日志
startup mount + < enter >
recover database using backup controlfile + < enter >
數據庫會提示你需要哪些日志
ORA
ORA
ORA
最簡單的方法是選自動恢復
auto + < enter >
系統會在init
ORA
E
ORA
OSD
O/S
為此輸入以下命令(until cancel參數使我們可以在需要的時候中止恢復過程)
recover database until cancel using backup controlfile +
這樣在數據庫恢復的最後階段再次提示前面的錯誤時
cancel + < enter >
這時除了最後一個online redo log以外
Media recovery canceled
實際上恢復過程已經正常完成了
最後是打開數據庫並同步日志序列號
alter database open resetlogs + < enter >
至此
說明
具體示例
為了檢驗我為公司開發的Oracle數據庫在線自動備份系統
一
本次測試所使用的系統環境如下
服務器
操作系統
數據庫
Oracle安裝路徑
備份文件
二
下面根據從用戶處帶回來的備份數據
在新的Dell服務器上
啟動新數據庫服務器上的Oracle
$ sqlplus system/manager
SQL> spool file_name
SQL> select file_name from sys
SQL> spool end
SQL>exit
關閉新服務器的Oracle
注
把備份的所有數據庫文件用Ftp上傳新的數據庫服務器中的相同路徑下
把備份的initSID
把備份的ControlFile
control_files = (
其路徑如有變動
把數據庫備份後的歸檔日志用Ftp上傳到新數據庫服務器的相同路徑下
log_archive_dest_
經過以上
$svrmgrl
SVRMGR>connect internal
SVRMGR>startup mount
<
如果原來的數據庫配置了口令文件
ORA
可以到/home/oracle/app/oracle/product/
orapwd
其用法如下
Usage
where
file
password
entries
There are no spaces around the equal
例如
然後重新執行如下語句mount數據庫
SVRMGR>startup mount
<
如果在上述的步驟
alter database rename file
如把原來路徑/home/oracle/app/oracle/oradata/ora
SVRMGR>alter database rename file
to
按照上面的方法把所有修改路徑的數據庫文件重新命名
<
下面開始用控制文件和歸檔日志文件恢復數據庫
SVRMGR>recover database using backup controlfile until cancel;
出現如下提示
ORA
ORA
ORA
Specify log: {=suggested | filename | AUTO | CANCEL}輸入
auto
如果有如下提示
ORA
ORA
ORA
ORA
Log applied
意外處理
直到出現如下提示
ORA
ORA
ORA
ORA
ORA
/arch_
ORA
Intel SVR
Additional information:
<
SVRMGR>alter database open resetlogs;
意外處理
<
SVRMGR>shutdown immediate
SVRMGR>startup
ORACLE instance started
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted
Database opened
數據庫正常打開
在這裡沒有討論多麼深入的RMAN技術
%sqlplus /nolog (啟動sqlplus)
SQL> conn / as sysdba (以DBA身份連接數據庫)
SQL> shutdown immediate; (立即關閉數據庫)
SQL> startup mount (啟動實例並加載數據庫
SQL> alter database archivelog; (更改數據庫為歸檔模式)
SQL> alter database open; (打開數據庫)
SQL> alter system archive log start; (啟用自動歸檔)
SQL> exit (退出)
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> configure default device type to disk; (設置默認的備份設備為磁盤)
RMAN> configure device type disk parallelism
RMAN> configure channel
RMAN> configure channel
RMAN> configure controlfile autobackup on; (打開控制文件與服務器參數文件的自動備份)
RMAN> configure controlfile autobackup format for device type disk to
RMAN> show all
RMAN> report schema;
RMAN> backup database plus archivelog delete input; (備份全庫及控制文件
RMAN> backup tablespace system plus archivelog delete input; (備份指定表空間及歸檔的重做日志
RMAN> backup archivelog all delete input;
RMAN> copy datafile
RMAN> list backup;
RMAN> validate backupset
RMAN> shutdown immediate; (立即關閉數據庫)
RMAN> startup nomount; (啟動實例)
RMAN> restore spfile to pfile
RMAN> shutdown immediate; (立即關閉數據庫)
RMAN> startup nomount; (啟動實例)
RMAN> restore controlfile to
RMAN> shutdown immediate; (立即關閉數據庫)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_
%mv /oracle/dbs/tbs_
%mv /oracle/dbs/tbs_
%mv /oracle/dbs/tbs_
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb
RMAN> restore database; (還原數據庫)
RMAN> recover database; (恢復數據庫)
RMAN> alter database open; (打開數據庫)
RMAN> sql
RMAN> exit (退出恢復管理器)
%mv /oracle/dbs/users
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> restore tablespace users; (還原表空間)
RMAN> recover tablespace users; (恢復表空間)
RMAN> sql
第一天的增量基本備份
RMAN> backup incremental level=
第二天的增量差異備份
RMAN> backup incremental level=
第三天的增量差異備份
RMAN> backup incremental level=
第四天的增量差異備份
RMAN> backup incremental level=
第五天的增量差異備份
RMAN> backup incremental level=
第六天的增量差異備份
RMAN> backup incremental level=
第七天的增量差異備份
RMAN> backup incremental level=
增量恢復
RMAN> shutdown immediate;
RMAN> exit
%mv /oracle/dbs/tbs_
%mv /oracle/dbs/tbs_
%mv /oracle/dbs/tbs_
%mv /oracle/dbs/tbs_
%rman target=rman/rman@mydb
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open;
From:http://tw.wingwit.com/Article/program/Oracle/201311/18584.html