NBU异机还原ORACLE数据库练习

1. 说明:

本次数据库还原演练涉及的内容:

1.1 集群数据库还原至单实例数据库;
1.2 ASM文件系统还原到普通文件系统;
1.3 LINUX操作系统还原到WINDOWS系统;
1.4 从NBU进行的异机还原操作。

2. 操作步骤记录:

2.1 获取需要还原的数据库实例的参数文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@oak0 ~]# su - oracle
[oracle@oak0 ~]$ export ORACLE_SID=CONEWComp1
[oracle@oak0 ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.4.0 Production on Wed Sep 26 08:20:24 2018
 
Copyright (c) 1982, 2013, Oracle. All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
 
SYS@NEWComp1>show parameter spfile;
 
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWComp/spfileNEWComp.ora
SYS@NEWComp1>create pfile='/u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/pfileNEWComp.ora' from spfile;
 
File created.

2.2 将参数文件传到目标服务器(略)

2.3 查看数据库DBID

1
2
3
4
5
6
7
[oracle@oak0 ~]$ rman target /
 
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Sep 27 22:37:08 2018
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
 
connected to target database: NEWCOMP (DBID=2780812440)

2.4 在需要还原的服务器上安装ORACLE数据库软件(略)

2.5 在异机主机的host文件中添加nbu server主机和原主机信息:

1
2
3
4
5
6
7
8
9
10
#localhost name
127.0.0.1 localhost
::1 localhost
172.15.60.67 LQWVTXLJKF-AP01
#ODA 公用数据库服务器
172.15.1.114 oak0
172.15.1.115 oak1
172.15.1.118 oak_SCANIP
#NBU备份机
172.15.1.19 it-zbnbu01

2.6 在NBU备份机上添加主机HOSTS(略)

2.7 在需要还原的服务器上安装nbu客户端(略)

2.8 在NBU主机上查找相关备份集文件:

1
2
3
4
5
6
7
8
[root@lqit-zbnbu01 ~]# find / -name bplist
/usr/openv/netbackup/bin/bplist
[root@lqit-zbnbu01 ~]# /usr/openv/netbackup/bin/bplist -C oak0 -t 4 -l -R /
-rw-rw---- oracle asmadmin 18874368 Sep 28 14:43 /ctrl_dNEWCOMP_u9ote8fsv_s312_p1_t988037023
-rw-rw---- oracle asmadmin 35237632K Sep 28 14:37 /arch_dNEWCOMP_u9nte8fi4_s311_p1_t988036676
-rw-rw---- oracle asmadmin 36400384K Sep 28 14:32 /arch_dNEWCOMP_u9mte8f70_s310_p1_t988036320
-rw-rw---- oracle asmadmin 18874368 Sep 28 14:31 /bk_dNEWCOMP_u9lte8f6a_s309_p1_t988036298
-rw-rw---- oracle asmadmin 4441856K Sep 28 14:30 /bk_dNEWCOMP_u9kte8f4j_s308_p1_t988036243

2.9 将PFILE文件传输至需要还原的主机并修改相关参数:

主要是文件路径名及集群相关配置要改,加#号的为注释掉的集群参数,路径已修改为WINDOWS的路径。
参数文件示例(注释掉的内容为原来参数文件内容)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#NEWComp1.__db_cache_size=6274678784
#NEWComp2.__db_cache_size=5721030656
#NEWComp2.__java_pool_size=16777216
#NEWComp1.__java_pool_size=16777216
#NEWComp2.__large_pool_size=33554432
#NEWComp1.__large_pool_size=33554432
#NEWComp2.__pga_aggregate_target=4294967296
#NEWComp1.__pga_aggregate_target=4294967296
#NEWComp2.__sga_target=8589934592
#NEWComp1.__sga_target=8589934592
#NEWComp2.__shared_io_pool_size=0
#NEWComp1.__shared_io_pool_size=0
#NEWComp1.__shared_pool_size=2197815296
#NEWComp2.__shared_pool_size=2751463424
#NEWComp2.__streams_pool_size=0
#NEWComp1.__streams_pool_size=0
*._datafile_write_errors_crash_instance=false
*._db_writer_coalesce_area_size=16777216
*._disable_interface_checking=TRUE
*._ENABLE_NUMA_SUPPORT=FALSE
*._FILE_SIZE_INCREASE_INCREMENT=2143289344
*._fix_control='off'
*._gc_policy_time=0
*._gc_undo_affinity=FALSE
*.aq_tm_processes=0
*.audit_file_dest='C:\app\data\NEWComp1\adump'
*.audit_sys_operations=TRUE
*.audit_trail='db'
#*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files=C:\app\data\NEWComp1\o1_mf_df10drj3_.ctl'
*.cpu_count=2
*.cursor_sharing='EXACT'
*.db_block_checking='FULL'
*.db_block_checksum='FULL'
*.db_block_size=8192
*.db_create_file_dest='C:\app\data\NEWComp1\'
*.db_create_online_log_dest_1='C:\app\data\NEWComp1\'
*.db_domain=''
*.db_files=1024
*.db_lost_write_protect='TYPICAL'
*.db_name='NEWComp'
*.db_recovery_file_dest='C:\app\data\NEWComp1\'
*.db_recovery_file_dest_size=1932735283200
*.db_writer_processes=2
*.diagnostic_dest='C:\app\data\NEWComp1\'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=NEWCompXDB)'
*.fast_start_mttr_target=300
*.filesystemio_options='setall'
*.global_names=FALSE
#NEWComp1.instance_number=1
#NEWComp2.instance_number=2
*.job_queue_processes=30
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=16000000
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=1000
*.os_authent_prefix=''
*.parallel_adaptive_multi_user=FALSE
*.parallel_execution_message_size=16384
*.parallel_threads_per_cpu=2
*.pga_aggregate_target=4294967296
*.processes=400
#*.remote_listener='oak-scan:1521'
*.remote_login_passwordfile='exclusive'
*.session_cached_cursors=100
*.sga_max_size=8589934592
*.sga_target=8589934592
*.sql92_security=TRUE
#NEWComp2.thread=2
#NEWComp1.thread=1
*.undo_retention=900
#NEWComp2.undo_tablespace='UNDOTBS2'
#NEWComp1.undo_tablespace='UNDOTBS1'
undo_tablespace='UNDOTBS1'

2.10 将参数文件放置于相应的文件夹内;(上一步填入参数文件的路径)

2.11 创建监听(略)

2.12 创建密码文件:

1
C:\app\product\11.2.0\dbhome_1\BIN>orapwd file=C:\app\data\NEWComp1\pwdhwprod.ora password=oracle entries=5;

2.13 创建实例:

1
2
3
C:\app\product\11.2.0\dbhome_1\BIN>oradim -new -sid NEWComp1 -startmode m
 
实例已创建。

2.14 连接数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\app\product\11.2.0\dbhome_1\BIN>set ORACLE_SID=NEWComp1
C:\app\product\11.2.0\dbhome_1\BIN>sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.4.0 Production on 星期四 9月 27 22:27:24 2018
 
Copyright (c) 1982, 2013, Oracle. All rights reserved.
 
已连接到空闲例程。
使用修改过的PFILE文件将数据库启动到NOMOUNT阶段
SQL> startup pfile='C:\app\data\NEWComp1\pfileNEWComp1.ora' nomount;
ORACLE 例程已经启动。
 
Total System Global Area 8551575552 bytes
Fixed Size 2298352 bytes
Variable Size 1526730256 bytes
Database Buffers 6996099072 bytes
Redo Buffers 26447872 bytes
SQL>

2.15 使用RMAN连接到数据库,并SET DBID(使用源数据库的DBID)

1
2
3
4
5
6
7
8
9
10
11
C:\app\product\11.2.0\dbhome_1\BIN>rman target /
 
恢复管理器: Release 11.2.0.4.0 - Production on 星期四 9月 27 22:35:05 2018
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
 
已连接到目标数据库: NEWCOMP (未装载)
 
RMAN> SET DBID=2780812440
 
正在执行命令: SET DBID

2.16 恢复控制文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
RMAN> run {
2> allocate channel ch03 type 'sbt_tape';
3> SEND 'NB_ORA_SERV=lqit-zbnbu01,NB_ORA_CLIENT=oak0';
4> restore controlfile from '/ctrl_dNEWCOMP_u9ote8fsv_s312_p1_t988037023';
5> release channel ch03;
6> }
 
分配的通道: ch03
通道 ch03: SID=321 设备类型=SBT_TAPE
通道ch03: Veritas NetBackup for Oracle - Release 8.1 (49)
 
向通道发命令: ch03
 
启动 restore 于 28-9月 -18
 
通道 ch03: 正在还原控制文件
通道 ch03: 还原完成, 用时: 00:00:25
输出文件名=C:\APP\DATA\NEWCOMP1\O1_MF_DF10DRJ3_.CTL
完成 restore 于 28-9月 -18
 
释放的通道: ch03

2.17 将数据库启动至MOUNT状态:

1
2
3
4
5
RMAN> sql 'alter database mount';
 
sql 语句: alter database mount
 
RMAN>

2.18 恢复数据文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
SQL> select file#,name from v$datafile;
 
FILE# NAME
---------- ----------------------------------------------------------------------------------------------------
1 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/o1_mf_system_df10dwfb_.dbf
2 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/o1_mf_sysaux_df10f5pk_.dbf
3 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/o1_mf_undotbs1_df10fffw_.dbf
4 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/o1_mf_undotbs2_df10fthf_.dbf
5 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/o1_mf_users_df10fz0q_.dbf
6 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/NEWPARTS.dbf
7 /u02/app/oracle/oradata/datastore/.ACFS/snaps/NEWComp/NEWCOMP/datafile/NEWPARTS_2.dbf
 
RMAN> run {
2> allocate channel ch01 type 'sbt_tape';
3> SEND 'NB_ORA_SERV=lqit-zbnbu01,NB_ORA_CLIENT=oak0';
4> SET NEWNAME FOR DATAFILE 1 TO 'C:\app\data\NEWComp1\o1_mf_system_df10dwfb_.dbf';
5> SET NEWNAME FOR DATAFILE 2 TO 'C:\app\data\NEWComp1\o1_mf_sysaux_df10f5pk_.dbf';
6> SET NEWNAME FOR DATAFILE 3 TO 'C:\app\data\NEWComp1\o1_mf_undotbs1_df10fffw_.dbf';
7> SET NEWNAME FOR DATAFILE 3 TO 'C:\app\data\NEWComp1\o1_mf_undotbs1_df10fffw_.dbf';
8> SET NEWNAME FOR DATAFILE 5 TO 'C:\app\data\NEWComp1\o1_mf_users_df10fz0q_.dbf';
9> SET NEWNAME FOR DATAFILE 6 TO 'C:\app\data\NEWComp1\NEWPARTS.dbf';
10> SET NEWNAME FOR DATAFILE 7 TO 'C:\app\data\NEWComp1\NEWPARTS_2.dbf';
11> SET NEWNAME FOR DATAFILE 4 TO 'C:\app\data\NEWComp1\o1_mf_undotbs2_df10fthf_.dbf';
12> restore database;
13> switch datafile all;
14> release channel ch01;
15> }
 
分配的通道: ch01
通道 ch01: SID=9 设备类型=SBT_TAPE
通道ch01: Veritas NetBackup for Oracle - Release 8.1 (49)
 
向通道发命令: ch01
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
正在执行命令: SET NEWNAME
 
启动 restore 于 28-9月 -18
 
通道 ch01: 正在开始还原数据文件备份集
通道 ch01: 正在指定从备份集还原的数据文件
通道 ch01: 将数据文件 00001 还原到 C:\app\data\NEWComp1\o1_mf_system_df10dwfb_.dbf
通道 ch01: 将数据文件 00002 还原到 C:\app\data\NEWComp1\o1_mf_sysaux_df10f5pk_.dbf
通道 ch01: 将数据文件 00003 还原到 C:\app\data\NEWComp1\o1_mf_undotbs1_df10fffw_.dbf
通道 ch01: 将数据文件 00004 还原到 C:\app\data\NEWComp1\o1_mf_undotbs2_df10fthf_.dbf
通道 ch01: 将数据文件 00005 还原到 C:\app\data\NEWComp1\o1_mf_users_df10fz0q_.dbf
通道 ch01: 将数据文件 00006 还原到 C:\app\data\NEWComp1\NEWPARTS.dbf
通道 ch01: 将数据文件 00007 还原到 C:\app\data\NEWComp1\NEWPARTS_2.dbf
通道 ch01: 正在读取备份片段 bk_dNEWCOMP_u9kte8f4j_s308_p1_t988036243
 
 
通道 ch01: 段句柄 = bk_dNEWCOMP_u9kte8f4j_s308_p1_t988036243 标记 = TAG20180928T143043
通道 ch01: 已还原备份片段 1
通道 ch01: 还原完成, 用时: 00:01:55
完成 restore 于 28-9月 -18
 
数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=9 STAMP=988043414 文件名=C:\APP\DATA\NEWCOMP1\NEWCOMP\DATAFILE\O1_MF_SYSTEM_FTVSKMW7_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=10 STAMP=988043414 文件名=C:\APP\DATA\NEWCOMP1\NEWCOMP\DATAFILE\O1_MF_SYSAUX_FTVSKMSC_.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=11 STAMP=988043414 文件名=C:\APP\DATA\NEWCOMP1\NEWCOMP\DATAFILE\O1_MF_UNDOTBS1_FTVSKMX6_.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=12 STAMP=988043414 文件名=C:\APP\DATA\NEWCOMP1\NEWCOMP\DATAFILE\O1_MF_UNDOTBS2_FTVSKMX6_.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=13 STAMP=988043415 文件名=C:\APP\DATA\NEWCOMP1\NEWCOMP\DATAFILE\O1_MF_USERS_FTVSKMXN_.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=14 STAMP=988043415 文件名=C:\APP\DATA\NEWCOMP1\NEWPARTS.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 RECID=15 STAMP=988043415 文件名=C:\APP\DATA\NEWCOMP1\NEWPARTS_2.DBF
 
释放的通道: ch01
 
RMAN>
 
介质恢复:(其实可以和数据文件恢复同时进行,这里为了调试而分开了)
RMAN> run {
2> allocate channel ch01 type 'sbt_tape';
3> SEND 'NB_ORA_SERV=lqit-zbnbu01,NB_ORA_CLIENT=oak0';
4> recover database;
5> release channel ch01;
6> }
 
释放的通道: ORA_DISK_1
分配的通道: ch01
通道 ch01: SID=9 设备类型=SBT_TAPE
通道ch01: Veritas NetBackup for Oracle - Release 8.1 (49)
 
向通道发命令: ch01
 
启动 recover 于 28-9月 -18
 
正在开始介质的恢复
 
通道 ch01: 正在开始将归档日志还原到默认目标
通道 ch01: 正在还原归档日志
归档日志线程=2 序列=94
通道 ch01: 正在还原归档日志
归档日志线程=1 序列=97
通道 ch01: 正在还原归档日志
归档日志线程=1 序列=98
通道 ch01: 正在还原归档日志
归档日志线程=2 序列=95
通道 ch01: 正在读取备份片段 arch_dNEWCOMP_u9nte8fi4_s311_p1_t988036676
通道 ch01: 段句柄 = arch_dNEWCOMP_u9nte8fi4_s311_p1_t988036676 标记 = TAG20180928T143157
通道 ch01: 已还原备份片段 1
通道 ch01: 还原完成, 用时: 00:05:45
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_1_97_FTVT7G1B_.ARC 线程=1 序列=97
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_2_94_FTVT7G0T_.ARC 线程=2 序列=94
通道 default: 正在删除归档日志
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_1_97_FTVT7G1B_.ARC RECID=196 STAMP=988044047
 
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_1_98_FTVT7G29_.ARC 线程=1 序列=98
通道 default: 正在删除归档日志
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_2_94_FTVT7G0T_.ARC RECID=197 STAMP=988044057
 
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_2_95_FTVT7G29_.ARC 线程=2 序列=95
通道 default: 正在删除归档日志
归档日志文件名=C:\APP\DATA\NEWCOMP1\FRA\NEWCOMP\ARCHIVELOG\2018_09_28\O1_MF_2_95_FTVT7G29_.ARC RECID=195 STAMP=988044014
 
无法找到归档日志
归档日志线程=2 序列=96
释放的通道: ch01
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 09/28/2018 16:41:10 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 2 序列 96 的归档日志以及起始 SCN 10843514565186

由于缺少序列96的归档日志,因此跳过该日志:(和归档日志备份有关,后续可以调整NBU备份策略改善)

1
2
3
4
5
6
7
8
9
10
11
12
RMAN> recover database until scn 10843514565186;
 
启动 recover 于 28-9月 -18
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=9 设备类型=DISK
 
正在开始介质的恢复
介质恢复完成, 用时: 00:00:00
 
完成 recover 于 28-9月 -18
 
RMAN>

2.19 打开数据库:

1
2
3
4
5
RMAN> alter database open resetlogs;
 
数据库已打开
 
RMAN>

至此恢复全部完成。

3. 需要注意的问题

  • 还原的目标数据库SID必须严格匹配源数据库;
  • 集群数据库还原至单实例数据库需要注意DB NAME和SID有所不同,需要分别做调整;
  • RMAN中需要为目标数据库配置DBID,该值需要与源数据库完全一致;
  • 目标数据库软件版本号需要与源数据库版本号完全一致;
  • NBU中提示部分备份成功的ORACLE备份集无法用于还原操作;

知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×