Oracle-11g 基于 NBU 的 rman 冷备份及恢复

时间:2022-01-16 17:34:02

html,body { font-size: 15px }
body { font-family: Helvetica, "Hiragino Sans GB", "微软雅黑", "Microsoft YaHei UI", SimSun, SimHei, arial, sans-serif; line-height: 1.6; margin: 0; padding: 1.33rem 1rem }
h1,h2,h3,h4,h5,h6 { margin: 1.33rem 0 0.667rem; padding: 0; font-weight: bold }
h1 { font-size: 1.4rem }
h2 { font-size: 1.33rem }
h3 { font-size: 1.2rem }
h4 { font-size: 1.13rem }
h5 { font-size: 1rem }
h6 { font-size: 1rem; color: #777777; margin: 1rem 0 }
div,p,ul,ol,dl,li { margin: 0 }
blockquote,table,pre,code { margin: 8px 0 }
ul,ol { padding-left: 2.13rem }
blockquote { padding: 0 0.8rem }
blockquote>:first-child { margin-top: 0 }
blockquote>:last-child { margin-bottom: 0 }
img { border: 0; max-width: 100%; height: auto !important; margin: 2px 0 }
table { border-collapse: collapse; border: 1px solid #bbbbbb }
td,th { padding: 4px 8px; border-collapse: collapse; border: 1px solid #bbbbbb }
html,body { font-size: 15px }
body { font-family: Arial, Helvetica, "Hiragino Sans GB", 微软雅黑, "Microsoft YaHei UI", SimSun, SimHei, arial, sans-serif; line-height: 1.5; color: ; background-color: ; margin: 0; padding: 1.33rem 1rem }
img { max-width: 100% }
html { height: 100% }
body { min-height: 100% }
.wiz-img-resize-handle { position: absolute; z-index: 1000; border: 1px solid black; background-color: white }
.wiz-img-resize-handle { width: 5px; height: 5px }
.wiz-img-resize-handle.lt { cursor: nw-resize }
.wiz-img-resize-handle.tm { cursor: n-resize }
.wiz-img-resize-handle.rt { cursor: ne-resize }
.wiz-img-resize-handle.lm { cursor: w-resize }
.wiz-img-resize-handle.rm { cursor: e-resize }
.wiz-img-resize-handle.lb { cursor: sw-resize }
.wiz-img-resize-handle.bm { cursor: s-resize }
.wiz-img-resize-handle.rb { cursor: se-resize }
.wiz-table-body.wiz-table-moving *,.wiz-table-body.wiz-table-moving *::before,.wiz-table-body.wiz-table-moving *::after { cursor: default !important }
td,th { position: relative }
#wiz-table-range-border { display: none; width: 0; height: 0; position: absolute; top: 0; left: 0; z-index: 105 }
#wiz-table-col-line,#wiz-table-row-line { display: none; background-color: #448aff; position: absolute; z-index: 120 }
#wiz-table-col-line { width: 1px; cursor: col-resize }
#wiz-table-row-line { height: 1px; cursor: row-resize }
#wiz-table-range-border_start,#wiz-table-range-border_range { display: none; width: 0; height: 0; position: absolute }
#wiz-table-range-border_start_top,#wiz-table-range-border_range_top { height: 2px; background-color: #448aff; position: absolute; top: 0; left: 0 }
#wiz-table-range-border_range_top { height: 1px }
#wiz-table-range-border_start_right,#wiz-table-range-border_range_right { width: 2px; background-color: #448aff; position: absolute; top: 0 }
#wiz-table-range-border_range_right { width: 1px }
#wiz-table-range-border_start_bottom,#wiz-table-range-border_range_bottom { height: 2px; background-color: #448aff; position: absolute; top: 0 }
#wiz-table-range-border_range_bottom { height: 1px }
#wiz-table-range-border_start_left,#wiz-table-range-border_range_left { width: 2px; background-color: #448aff; position: absolute; top: 0; left: 0 }
#wiz-table-range-border_range_left { width: 1px }
#wiz-table-range-border_start_dot,#wiz-table-range-border_range_dot { width: 5px; height: 5px; border: 2px solid rgb(255, 255, 255); background-color: #448aff; cursor: crosshair; position: absolute; z-index: 110 }
.wiz-table-tools { display: block; background-color: #fff; position: absolute; left: 0px; border: 1px solid #ddd; z-index: 130 }
.wiz-table-tools ul { list-style: none; padding: 0 }
.wiz-table-tools .wiz-table-menu-item { position: relative; float: left; margin: 5px 2px 5px 8px }
.wiz-table-tools .wiz-table-menu-item .wiz-table-menu-button { font-size: 15px; width: 20px; height: 20px; line-height: 20px; cursor: pointer; position: relative }
.wiz-table-tools i.editor-icon { font-size: 15px; color: #455a64 }
.wiz-table-tools .wiz-table-menu-item .wiz-table-menu-button i#wiz-menu-bg-demo { position: absolute; top: 1px; left: 0 }
.wiz-table-tools .wiz-table-menu-sub { position: absolute; display: none; width: 125px; padding: 5px 0; background: #fff; border: 1px solid #E0E0E0; top: 28px; left: -9px }
.wiz-table-tools .wiz-table-menu-sub>div { font-size: 15px }
.wiz-table-tools .wiz-table-menu-item.active .wiz-table-menu-sub { display: block }
.wiz-table-tools .wiz-table-menu-sub::before,.wiz-table-tools .wiz-table-menu-sub::after { position: absolute; content: " "; border-style: solid; border-color: transparent; border-bottom-color: #cccccc; left: 22px; margin-left: -14px; top: -8px; border-width: 0 8px 8px 8px; z-index: 10 }
.wiz-table-tools .wiz-table-menu-sub::after { border-bottom-color: #ffffff; top: -7px }
.wiz-table-tools .wiz-table-menu-sub-item { padding: 4px 12px; font-size: 14px }
.wiz-table-tools .wiz-table-menu-sub-item.split { border-top: 1px solid #E0E0E0 }
.wiz-table-tools .wiz-table-menu-sub-item:hover { background-color: #ececec }
.wiz-table-tools .wiz-table-menu-sub-item.disabled { color: #bbbbbb; cursor: default }
.wiz-table-tools .wiz-table-menu-sub-item.disabled:hover { background-color: transparent }
.wiz-table-tools .wiz-table-menu-item.wiz-table-cell-bg:hover .wiz-table-color-pad { display: block }
.wiz-table-tools .wiz-table-color-pad { display: none; padding: 10px; width: 85px; height: 88px; background-color: #fff; cursor: default }
.wiz-table-tools .wiz-table-color-pad>div { font-size: 15px }
.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item { display: inline-block; width: 15px; height: 15px; margin-right: 9px; position: relative }
.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item i.pad-demo { position: absolute; top: 3px; left: 0 }
.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item .icon-oblique_line { color: #cc0000 }
.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item:last-child { margin-right: 0 }
.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item.active i.editor-icon.icon-box { color: #448aff }
.wiz-table-tools .wiz-table-cell-align { display: none; padding: 10px; width: 85px; height: 65px; background-color: #fff; cursor: default }
.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item { display: inline-block; width: 15px; height: 15px; margin-right: 9px; position: relative }
.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item:last-child { margin-right: 0 }
.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item i.valign { position: absolute; top: 3px; left: 0; color: #d2d2d2 }
.wiz-table-tools .wiz-table-cell-align-item.active i.editor-icon.valign { color: #a1c4ff }
.wiz-table-tools .wiz-table-cell-align-item.active i.editor-icon.icon-box,.wiz-table-tools .wiz-table-cell-align-item.active i.editor-icon.align { color: #448aff }
.wiz-table-tools .wiz-table-color-pad .wiz-table-color-pad-item:last-child,.wiz-table-tools .wiz-table-cell-align .wiz-table-cell-align-item:last-child { margin-right: 0 }
th.wiz-selected-cell-multi,td.wiz-selected-cell-multi { background: rgba(0,102,255,.05) }
th::before,td::before,#wiz-table-col-line::before,#wiz-table-range-border_start_right::before,#wiz-table-range-border_range_right::before { content: " "; position: absolute; top: 0; bottom: 0; right: -5px; width: 9px; cursor: col-resize; background: transparent; z-index: 100 }
th::after,td::after,#wiz-table-row-line::before,#wiz-table-range-border_start_bottom::before,#wiz-table-range-border_range_bottom::before { content: " "; position: absolute; left: 0; right: 0; bottom: -5px; height: 9px; cursor: row-resize; background: transparent; z-index: 100 }
.wiz-table-container { }
.wiz-table-body { position: relative; padding: 0 0 10px }
.wiz-table-body table { margin: 0; outline: none }
td,th { height: 28px; outline: none }
body pre.prettyprint { padding: 0 }
body pre.prettyprint code { white-space: pre }
body pre.prettyprint.linenums { overflow: auto }
body pre.prettyprint.linenums ol.linenums { padding: 10px 10px 10px 40px !important }

备份恢复环境:

(1).源端:
SUSE Enterprise Linux 11
Oracle 11g 11.2.0.3.6(RAC)
(2).目标端:
SUSE Enterprise Linux 11
Oracle 11g 11.2.0.3.6(RAC)
 
冷备份及恢复情形:
冷备份 odsdb 集群数据,并于出现故障时,在原集群环境下进行恢复。其中,odsdb 已配置 NBU 备份环境。
NBU Master Server 的主机名为 xmn-nbu-master,NBU Media Server 的主机名为 xmn-5230。
 
冷备份步骤:
1.设置系统参数(oracle)
$> export NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss
$> export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$> export NB_ORA_CLIENT=odsdbsvr1
$> export NB_ORA_SERV=xmn-nbu-master
2.执行备份操作(oracle)
首先以下列命令 rman target / catalog rman/rman@rman11g 连接目标库及恢复目录数据库。
随后,执行以下脚本进行备份。
RMAN> RUN{
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
BACKUP FULL tag 'cold backup' filesperset 4 FORMAT 'ManualBackup%d_%s_%p_%t' DATABASE;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
BACKUP FORMAT 'ManualBackupCntrl_%s_%p_%t' CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
}
3.备份SPFILE(oracle)
登陆至 sqlplus 环境,执行以下语句备份 spfile。
SQL> create pfile='/home/oracle/20151023pfile.ora’ from spfile;
4.查看DBID(oracle)
同样于 sqlplus 环境,执行以下语句确定数据库的 DBID。注意:应记住 DBID 以用于恢复。
SQL> SELECT dbid FROM v$database;
输出结果类似如下:
      DBID
--------------------
3412031686
 
冷恢复步骤:
1.删除数据库实例(oracle)
通过 dbca 删除 instance,例如在图形界面删除。
2.设置系统参数(oracle)
$> export NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss
$> export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$> export NB_ORA_CLIENT=odsdbsvr1
$> export NB_ORA_SERV=xmn-nbu-master
3.启动数据库至 nomount(oracle)
利用备份的 pfile 参数文件覆盖原启动文件。
$> cp /home/oracle/20151023pfile.ora /u01/app/oracle/product/11.2.0/db_1/dbs/initodsdb1.ora
进入 sqlplus 环境,将数据库启动至 nomount 状态。
SQL> startup nomount
4.配置远程 AS SYSDBA/SYSOPER 登陆的密码文件(oracle)
例如以下操作将 sys 密码改为 password。
$> cd $ORACLE_HOME/dbs
$> orapwd file=orapwodsdb1 password=password entries=5
5.恢复控制文件(oracle)
通过以下语句进入连接恢复目录数据库,并制定要恢复的数据库 DBID。
$> rman rcvcat rman/rman@rman11g
RMAN> set dbid=3412031686
RMAN> connect target sys/password
随后,通过以下脚本恢复控制文件。
RMAN> run{
allocate channel ch0 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
restore controlfile;
release channel ch0;
}
6.启动数据库至mount状态(oracle)
SQL> alter database mount;
7.恢复数据库文件(oracle)
通过以下语句进入连接恢复目录数据库,并以当前库为连接的目标库。
$> rman rcvcat rman/rman@rman11g
RMAN> connect target sys/password
随后,运行以下脚本恢复数据库文件。
RMAN> run{
allocate channel ch0 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
allocate channel ch1 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
allocate channel ch2 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
restore database;
switch datafile all;
recover database;
}
8.启动数据库至 open 状态(oracle)
SQL> alter database open resetlogs;
9.重新配置监听(oracle)
需要的话重新配置监听。