基於tsm的oracle資料庫備份及恢復
1.檔案系統備份恢復操作
1.1 使用備份命令來備份檔案系統
命令使用方法如下:
全備份/tmp下的所有檔案:
dsmc selective /tmp/* -subdir=yes
增量備份/tmp下的所有檔案:
dsmc incremental /tmp/* -subdir=yes
1.2 使用命令列來恢復檔案系統
命令使用方法如下:
恢復/tmp下的所有檔案:
dsmc restore /tmp/* –subdir=yes
將/tmp/test1目錄下的內容恢復到/tmp/test2/test1這個目錄下
dsmc restore /tmp/test1/* /tmp/test2/ -subdir=yes
顯示某一檔案的所有可恢復版本:
dsmc restore /tmp/test.out –pick –inactive
恢復某一目錄在某一時間點狀態:
dsmc restore –pitd=12/31/2006 –pitt=13:00:00 /tmp/
dsmc restore GVSHX504_virtual_jukebox_53154ff0.iso –pick –inactive
1.3 現階段檔案系統備份指令碼
現階段採用伺服器上/ptfs/fs/script/下的
full_hostname.sh,incre_hostname.sh
使用tivoli帳號登入伺服器後執行以下命令進行備份。
全備命令如下:
$sudo full_hostname.sh
增量備份命令如下:
$sudo incre_hostname.sh
2.資料庫備份操作
2.1 備份Oracle資料檔案
通過rman執行備份指令碼如下:
RMAN> run 2> { 3> allocate channel t1 type 'sbt_tape' parms 4> 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; 5> backup 6> filesperset 5 7> format 'df_%t_%s_%p' 8> (database); 9> } |
2.2 資料庫全備份
資料庫全備份包括資料檔案,控制檔案,spfile檔案,歸檔日誌檔案,執行備份指令碼如下:
run{ allocate channel t1 type 'sbt_tape' parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; allocate channel t2 type 'sbt_tape' parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; backup full tag 'dbfull' format 'dbfull_%t_%s_%p' diskratio=0 database include current controlfile; sql 'alter system archive log current'; backup format 'arch%t_%s_%p' diskratio=0 archivelog all delete input; release channel t1; release channel t2; } |
2.3 刪除過期備份
刪除90天以前的備份,執行指令碼如下:
Run{ allocate channel for maintenance type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; crosscheck backup; crosscheck archivelog all; report obsolete; delete noprompt obsolete recovery window of 90 days; delete noprompt expired backup; release channel; } |
2.4 資料庫增量備份
備份指令碼如下:
run{ allocate channel t1 type 'sbt_tape' parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; allocate channel t2 type 'sbt_tape' parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; backup incremental level 1 tag 'dbincr' format '%d_full_%s_%p' filesperset 5 diskratio=0 database include current controlfile; sql 'alter system archive log current'; backup format 'arch%t_%s_%p' diskratio=0 archivelog all delete input; release channel t1; release channel t2; } |
2.5 檢視已備份的資料
檢視資料庫備份:
RMAN>list backup of database;
檢視歸檔日誌備份:
RMAN>list backup of archivelog all;
2.6 現階段資料庫備份指令碼s
現階段指令碼採用伺服器上/ptfs/oracle/script/full或arch或incre)下的
full_hostname.sh,incre_hostname.sh,arch_hostname.sh
使用tivoli帳號登入伺服器後執行以下命令進行備份。
全備命令如下:
$sudo full_hostname.sh
增量備份命令如下:
$sudo incre_hostname.sh
歸檔日誌備份命令如下:
$sudo arch_hostname.sh
3.資料庫恢復操作
3.1 恢復前準備
輸入dsmadmc進入TSM管理介面
查詢資料庫備份所在儲存池的磁帶
TSMSERVER> q vol stg=hreccp_pool f=d
查詢磁帶中離所需恢復的時間最近的全備以及全備之後的增量備份和歸檔日誌檔案
TSMSERVER> q cont 912abfl5
檢查驅動器是否備佔用
TSMSERVER> q mount
3.2 恢復spfile檔案
設定資料庫DBID
RMAN> set dbid=123456789
使用預設pfile啟動資料庫到nomount狀態
RMAN>startup nomont;
從備份集中恢復spfile,執行命令如下:
run { allocate channel c1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; restore spfile to '/oracle/HHQ/102_64/dbs/ctl_restore.bak' from 'c-3146837030'; release channel c1; } |
重新啟動資料庫到nomount狀態
3.3 恢復控制檔案
從備份集中恢復控制檔案,執行指令碼如下:
run { allocate channel c1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; restore controlfile to '/oracle/HHQ/102_64/dbs/ctl_restore.bak' from 'c-3146837030'; release channel c1; } |
使用SQLPLUS,將資料庫狀態修改為MOUNT
SQL>alter database open;
3.4 恢復資料檔案
從備份集中恢復資料檔案,執行指令碼如下:
run { allocate channel c1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; restore database from 'c-3146837030'; release channel c1; } |
3.5 以resetlogs方式開啟資料庫
使用recover對資料進行恢復到某一時點,開啟資料庫
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL TIME
'2013-06-05 16:57:31'
SQL> ALTER DATABASE OPEN RESETLOGS;
使用recover將資料恢復到最後一個歸檔日誌結束,開啟資料庫
SQL> RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE;
SQL> ALTER DATABASE OPEN RESETLOGS;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28673746/viewspace-1156103/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫的備份及恢復策略研究(轉)Oracle資料庫
- Mysql資料庫備份及恢復MySql資料庫
- Oracle資料庫的冷備份及冷備份異地恢復方法Oracle資料庫
- oracle資料庫的備份與恢復Oracle資料庫
- 【備份恢復】從備份恢復資料庫資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- Oracle資料庫的備份與恢復(轉)Oracle資料庫
- Oracle 資料庫的備份與恢復(轉)Oracle資料庫
- Oracle資料庫冷備份的異地恢復Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(6)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(5)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(4)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(3)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(2)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(1)Oracle資料庫
- oracle資料庫備份和恢復的內容Oracle資料庫
- 【備份恢復】閃回資料庫(二) 基於 SCN 閃回資料庫資料庫
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- 備份與恢復:polardb資料庫備份與恢復資料庫
- Oracle資料庫備份與恢復之RMANOracle資料庫
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- Oracle資料庫備份與恢復之三:OS備份/使用者管理的備份與恢復Oracle資料庫
- 資料庫的備份與恢復資料庫
- 資料庫的備份與恢復分析及例項資料庫
- 資料庫資料的恢復和備份資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- [資料庫] Navicat for MySQL定時備份資料庫及資料恢復資料庫MySql資料恢復
- Oracle資料庫的備份與恢復方式比較Oracle資料庫
- Oracle資料庫備份與恢復的三種方法Oracle資料庫
- 磁碟資料恢復及備份工具資料恢復
- PostgreSql資料庫的備份和恢復SQL資料庫
- mysql的資料庫備份與恢復MySql資料庫
- Oracle資料泵的備份與恢復Oracle
- 【備份恢復】閃回資料庫(三)基於時間戳閃回資料庫資料庫時間戳
- ClickHouse資料庫單機安裝及備份恢復資料庫
- 達夢資料庫備份恢復資料庫
- postgresql備份與恢復資料庫SQL資料庫