Oracle12c Data Guard搭建手册

Oracle12c Data Guard搭建手册

注:本文来源: 红黑联盟 《 Oracle12c Data Guard搭建手册

Oracle 12c 的DataGuard 是在CDB 级别进行的,所以我们的配置都是从CDB角度出发。

测试里主备库的数据库CDB名称相同。

1 环境说明

  1 OS Version:
  2
  3 [[email protected] etc]# cat /etc/oracle-release
  4
  5 Oracle Linux Server release 6.3
  6
  7 [[email protected] etc]# uname -r
  8
  9 2.6.39-200.29.3.el6uek.x86_64
 10
 11 DB Version:
 12
 13 SQL> select * from v$version;
 14
 15 BANNER CON_ID
 16
 17 ------------------------------------------------------------------------------------------
 18
 19 Oracle Database 12c Enterprise EditionRelease 12.1.0.1.0 - 64bit Production 0
 20
 21 PL/SQL Release 12.1.0.1.0 - Production 0
 22
 23 CORE 12.1.0.1.0 Production 0
 24
 25 TNS for Linux: Version 12.1.0.1.0 -Production 0
 26
 27 NLSRTL Version 12.1.0.1.0 - Production 0
 28
 29
 30
 31 SQL> show pdbs
 32
 33
 34
 35 CON_ID CON_NAME OPEN MODE RESTRICTED
 36
 37 ---------- ---------------------------------------- ----------
 38
 39 2 PDB$SEED READ ONLY NO
 40
 41 3 PCNDBA READ WRITE NO
 42
 43 SQL>

实例名:

Database

DB_UNIQUE_NAME

Oracle Net Service Name

Primary

PCNDBA_P

PCNDBA_P

Physical standby

PCNDBA_S

PCNDBA_S

IP 地址:

  1 [[email protected] network-scripts]# cat /etc/hosts
  2
  3 127.0.0.1 localhost dave
  4
  5 192.168.56.3 dg1
  6
  7 192.168.56.4 dg2
  8
  9 [[email protected] network-scripts]#

这里用主库上的PDB:PCNDBA 做我们的主库。

2 主库启动FORCE LOGGING

  1 SQL> select name,open_mode from v$pdbs;
  2
  3
  4
  5 NAME OPEN_MODE
  6
  7 ------------------------------ ----------
  8
  9 PDB$SEED READ ONLY
 10
 11 PCNDBA READ WRITE
 12
 13
 14
 15 SQL> alter database force logging;
 16
 17 Database altered.
 18
 19
 20
 21 SQL> select force_logging fromv$database;
 22
 23 FORCE_LOGGING
 24
 25 ---------------------------------------
 26
 27 YES

3 启动归档模式

  1 SQL> show con_name
  2
  3
  4
  5 CON_NAME
  6
  7 ------------------------------
  8
  9 CDB$ROOT
 10
 11 SQL> archive log list;
 12
 13 Database log mode No Archive Mode
 14
 15 Automatic archival Disabled
 16
 17 Archive destination USE_DB_RECOVERY_FILE_DEST
 18
 19 Oldest online log sequence 14
 20
 21 Current log sequence 16
 22
 23 SQL> shutdown immediate
 24
 25 Database closed.
 26
 27 Database dismounted.
 28
 29 ORACLE instance shut down.
 30
 31 SQL> startup mount
 32
 33 ORACLE instance started.
 34
 35
 36
 37 Total System Global Area 1620115456 bytes
 38
 39 Fixed Size 2288920 bytes
 40
 41 Variable Size 1040188136 bytes
 42
 43 Database Buffers 570425344 bytes
 44
 45 Redo Buffers 7213056 bytes
 46
 47 Database mounted.
 48
 49 SQL> alter database archivelog;
 50
 51
 52
 53 Database altered.
 54
 55
 56
 57 SQL>

这里归档直接放在FRA里了:

  1 SQL> show parameter recovery
  2
  3
  4
  5 NAME TYPE VALUE
  6
  7 ------------------------------------ -----------------------------------------
  8
  9 db_recovery_file_dest string /home/ora12c/app/oracle/fast_recovery_area
 10
 11 db_recovery_file_dest_size big integer 4800M
 12
 13 recovery_parallelism integer 0
 14
 15
 16
 17 SQL> alter system setdb_recovery_file_dest_size=10G;
 18
 19 System altered.
 20
 21
 22
 23 SQL> show parameter recovery
 24
 25 NAME TYPE VALUE
 26
 27 ----------------------------------------------- ------------------------------
 28
 29 db_recovery_file_dest string /home/ora12c/app/oracle/fast_recovery_area
 30
 31 db_recovery_file_dest_size biginteger 10G
 32
 33 recovery_parallelism integer 0
 34
 35 SQL>
 36
 37
 38
 39 SQL> alter database open;
 40
 41
 42
 43 Database altered.
 44
 45
 46
 47 SQL> select name,open_mode from v$pdbs;
 48
 49
 50
 51 NAME OPEN_MODE
 52
 53 ------------------------------ ----------
 54
 55 PDB$SEED READ ONLY
 56
 57 PCNDBA MOUNTED
 58
 59
 60
 61 SQL> alter pluggable database pcndbaopen;
 62
 63 Pluggable database altered.
 64
 65
 66
 67 SQL> select name,open_mode from v$pdbs;
 68
 69 NAME OPEN_MODE
 70
 71 ------------------------------ ----------
 72
 73 PDB$SEED READ ONLY
 74
 75 PCNDBA READ WRITE

4 在主库添加 standby redo logfile

在Oracle 12c的架构里,online redo log 和控制文件是保存在CDB中的,PDB中只有运行需要的数据文件,所以我们这里加standby redo log,也是在CDB中加。

查看 Primary 库的 REDO 相关信息:

  1 SQL> show con_name
  2
  3
  4
  5 CON_NAME
  6
  7 ------------------------------
  8
  9 CDB$ROOT
 10
 11 SQL> select group#, members, bytes from v$log;
 12
 13
 14
 15 GROUP# MEMBERS BYTES
 16
 17 ---------- ---------- ----------
 18
 19 1 2 52428800
 20
 21 2 2 52428800
 22
 23 3 2 52428800
 24
 25
 26
 27 SQL> select member from v$logfile;
 28
 29
 30
 31 MEMBER
 32
 33 -----------------------------------------------------------------------------------------
 34
 35 /home/ora12c/app/oracle/oradata/CNDBA/onlinelog/o1_mf_3_9y3rrb3v_.log
 36
 37 /home/ora12c/app/oracle/fast_recovery_area/CNDBA/onlinelog/o1_mf_3_9y3rrb9n_.log
 38
 39 /home/ora12c/app/oracle/oradata/CNDBA/onlinelog/o1_mf_2_9y3rr54v_.log
 40
 41 /home/ora12c/app/oracle/fast_recovery_area/CNDBA/onlinelog/o1_mf_2_9y3rr5b2_.log
 42
 43 /home/ora12c/app/oracle/oradata/CNDBA/onlinelog/o1_mf_1_9y3rqznr_.log
 44
 45 /home/ora12c/app/oracle/fast_recovery_area/CNDBA/onlinelog/o1_mf_1_9y3rr09s_

添加 4(3+1)个standby logfile:

  1 SQL> alter database add standby logfile ‘/home/ora12c/app/oracle/oradata/CNDBA/onlinelog/stdredo01.log‘ size 50M;
  2
  3 Database altered.
  4
  5
  6
  7 SQL> alter database add standby logfile ‘/home/ora12c/app/oracle/oradata/CNDBA/onlinelog/stdredo02.log‘ size 50M;
  8
  9 Database altered.
 10
 11
 12
 13 SQL> alter database add standby logfile ‘/home/ora12c/app/oracle/oradata/CNDBA/onlinelog/stdredo03.log‘ size 50M;
 14
 15 Database altered.
 16
 17
 18
 19 SQL> alter database add standby logfile ‘/home/ora12c/app/oracle/oradata/CNDBA/onlinelog/stdredo04.log‘ size 50M;
 20
 21 Database altered.

5 分别在主备库配置监听并启动

  1 --这里直接使用netmgr工具生成:注意静态监听注册中配置的pdb。
  2
  3 [[email protected] admin]$ cat listener.ora
  4
  5 # listener.ora Network Configuration File:/home/ora12c/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
  6
  7 # Generated by Oracle configuration tools.
  8
  9
 10
 11 SID_LIST_LISTENER =
 12
 13 (SID_LIST =
 14
 15 (SID_DESC =
 16
 17 (GLOBAL_DBNAME = cndba)
 18
 19 (ORACLE_HOME = /home/ora12c/app/oracle/product/12.1.0/db_1)
 20
 21 (SID_NAME = cndba)
 22
 23 )
 24
 25 )
 26
 27
 28
 29 LISTENER =
 30
 31 (DESCRIPTION_LIST =
 32
 33 (DESCRIPTION =
 34
 35 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
 36
 37 )
 38
 39 (DESCRIPTION =
 40
 41 (ADDRESS = (PROTOCOL = TCP)(HOST = dave)(PORT = 1521))
 42
 43 )
 44
 45 )
 46
 47
 48
 49 ADR_BASE_LISTENER = /home/ora12c/app/oracle
 50
 51
 52
 53 [[email protected] admin]$ lsnrctl reload
 54
 55
 56
 57 LSNRCTL for Linux: Version 12.1.0.1.0 -Production on 06-AUG-2014 19:26:50
 58
 59
 60
 61 Copyright (c) 1991, 2013, Oracle. All rights reserved.
 62
 63
 64
 65 Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
 66
 67 The command completed successfully

6 分别在主备库配置tnsnames.ora

  1 [[email protected] admin]$ cat tnsnames.ora
  2
  3 # tnsnames.ora Network Configuration File: /home/ora12c/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora
  4
  5 # Generated by Oracle configuration tools.
  6
  7
  8
  9 CNDBA_S =
 10
 11 (DESCRIPTION =
 12
 13 (ADDRESS_LIST =
 14
 15 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.4)(PORT = 1521))
 16
 17 )
 18
 19 (CONNECT_DATA =
 20
 21 (SERVICE_NAME = cndba)
 22
 23 )
 24
 25 )
 26
 27
 28
 29 CNDBA_P =
 30
 31 (DESCRIPTION =
 32
 33 (ADDRESS_LIST =
 34
 35 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.3)(PORT = 1521))
 36
 37 )
 38
 39 (CONNECT_DATA =
 40
 41 (SERVICE_NAME = cndba)
 42
 43 )
 44
 45 )
 46
 47
 48
 49 [[email protected] admin]$ tnsping cndba_s
 50
 51 [[email protected] admin]$ tnsping cndba_p

7 在备库创建必要的目录

可以参考主库的pfile中的路径:

  1 [[email protected] admin]$ mkdir -p /home/ora12c/app/oracle/fast_recovery_area
  2
  3 [[email protected] admin]$ mkdir -p/home/ora12c/app/oracle/oradata
  4
  5 [[email protected] admin]$ mkdir -p/home/ora12c/app/oracle/admin/cndba/adump

8 在主库创建pfile 文件并修改pfile 内容

  1 SQL> create pfile from spfile;
  2
  3 File created.

在pfile中添加如下内容:

  1 #add for primary dg
  2
  3 *.db_name=‘cndba‘
  4
  5 *.db_unique_name=‘cndba_p‘
  6
  7 *.log_archive_config=‘dg_config=(cndba_p,cndba_s)‘
  8
  9 *.log_archive_dest_1=‘location=USE_DB_RECOVERY_FILE_DESTvalid_for=(all_logfiles,all_roles) db_unique_name=cndba_p‘
 10
 11 *.log_archive_dest_2=‘service=cndba_s valid_for=(online_logfiles,primary_role) lgwr affirmsync db_unique_name=cndba_s‘
 12
 13 *.log_archive_dest_state_1=enable
 14
 15 *.log_archive_dest_state_2=enable
 16
 17 *.standby_file_management=‘auto‘
 18
 19 *.fal_server=‘cndba_s‘

如果主备库CDB名称不同,还需要加如下参数:

  1 *.DB_FILE_NAME_CONVERT=‘cndba‘,‘dave‘
  2
  3 *.LOG_FILE_NAME_CONVERT=‘cndba‘,‘dave‘

用新参数重启数据库:

  1 SQL> shutdown immediate
  2
  3 Database closed.
  4
  5 Database dismounted.
  6
  7 ORACLE instance shut down.
  8
  9
 10
 11 SQL> create spfile from pfile;
 12
 13 File created.
 14
 15
 16
 17 SQL> startup
 18
 19 ORACLE instance started.
 20
 21
 22
 23 Total System Global Area 1620115456 bytes
 24
 25 Fixed Size 2288920 bytes
 26
 27 Variable Size 1040188136 bytes
 28
 29 Database Buffers 570425344 bytes
 30
 31 Redo Buffers 7213056 bytes
 32
 33 Database mounted.
 34
 35 Database opened.
 36
 37 SQL>
 38 9 将主库的口

9 将主库的口令文件copy到备库

我这里主备库的CDB实例相同,如果不同,可以使用orapwd命令重建。

  1 [[email protected] dbs]$ scp orapwcndba192.168.56.4:`pwd`
  2
  3 [email protected]‘s password:
  4
  5 orapwcndba 100% 7680 7.5KB/s 00:00
  6
  7 [[email protected] dbs]$

10 将主库的参数文件copy到备库并修改

  1 [[email protected] dbs]$ scp initcndba.ora192.168.56.4:`pwd`
  2
  3 [email protected]‘s password:
  4
  5 initcndba.ora 100% 1593 1.6KB/s 00:00
  6
  7 [[email protected] dbs]$
  8
  9
 10
 11 修改如下内容,在重新生成spfile:
 12
 13 #add for standby dg
 14
 15 *.db_unique_name=‘cndba_s‘
 16
 17 *.log_archive_config=‘dg_config=(cndba_p,cndba_s)‘
 18
 19 *.log_archive_dest_1=‘location=USE_DB_RECOVERY_FILE_DESTvalid_for=(all_logfiles,all_roles) db_unique_name=cndba_s‘
 20
 21 *.log_archive_dest_2=‘service=cndba_pvalid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=cndba_p‘
 22
 23 *.log_archive_dest_state_1=enable
 24
 25 *.log_archive_dest_state_2=enable
 26
 27 *.standby_file_management=‘auto‘
 28
 29 *.fal_server=‘cndba_p‘

注意修改控制文件的路径,也使用新路径。

  1 SQL> create spfile from pfile;
  2
  3 File created.

11 用spfile 将备库启动到nomount 状态

  1 SQL> startup nomount
  2
  3 ORACLE instance started.
  4
  5
  6
  7 Total System Global Area 1620115456 bytes
  8
  9 Fixed Size 2288920 bytes
 10
 11 Variable Size 1040188136 bytes
 12
 13 Database Buffers 570425344 bytes
 14
 15 Redo Buffers 7213056 bytes
 16
 17 SQL>

12 开始进行Active duplicate

  1 [[email protected] network-scripts]$ rman targetsys/[email protected]_p auxiliary sys/[email protected]_s;
  2
  3
  4
  5 Recovery Manager: Release 12.1.0.1.0 -Production on Wed Aug 6 20:41:02 2014
  6
  7
  8
  9 Copyright (c) 1982, 2013, Oracle and/or itsaffiliates. All rights reserved.
 10
 11
 12
 13 connected to target database: CNDBA(DBID=119362621)
 14
 15 connected to auxiliary database: CNDBA (notmounted)
 16
 17
 18
 19
 20
 21 RMAN>duplicatetarget database for standby from active database nofilenamecheck dorecover;
 22
 23
 24
 25 [[email protected] network-scripts]$ rman targetsys/[email protected]_p auxiliary sys/[email protected]_s;
 26
 27
 28
 29 Recovery Manager: Release 12.1.0.1.0 -Production on Wed Aug 6 20:41:02 2014
 30
 31
 32
 33 Copyright (c) 1982, 2013, Oracle and/or itsaffiliates. All rights reserved.
 34
 35
 36
 37 connected to target database: CNDBA(DBID=119362621)
 38
 39 connected to auxiliary database: CNDBA (notmounted)
 40
 41
 42
 43 RMAN> duplicate target database forstandby from active database nofilenamecheck dorecover;
 44
 45
 46
 47 Starting Duplicate Db at 06-AUG-14
 48
 49 using target database control file insteadof recovery catalog
 50
 51 allocated channel: ORA_AUX_DISK_1
 52
 53 channel ORA_AUX_DISK_1: SID=21 devicetype=DISK
 54
 55 current log archived
 56
 57
 58
 59 contents of Memory Script:
 60
 61 {
 62
 63 backup as copy reuse
 64
 65 targetfile ‘/home/ora12c/app/oracle/product/12.1.0/db_1/dbs/orapwcndba‘ auxiliaryformat
 66
 67 ‘/home/ora12c/app/oracle/product/12.1.0/db_1/dbs/orapwcndba‘ ;
 68
 69 }
 70
 71 executing Memory Script
 72
 73
 74
 75 Starting backup at 06-AUG-14
 76
 77 allocated channel: ORA_DISK_1
 78
 79 channel ORA_DISK_1: SID=48 device type=DISK
 80
 81 Finished backup at 06-AUG-14
 82
 83
 84
 85 contents of Memory Script:
 86
 87 {
 88
 89 sql clone "alter system set control_files =
 90
 91 ‘‘/home/ora12c/app/oracle/oradata/CNDBA/controlfile/o1_mf_9y3rqtn9_.ctl‘‘,‘‘/home/ora12c/app/oracle/fast_recovery_area/CNDBA/controlfile/o1_mf_9y3rqvky_.ctl‘‘comment=
 92
 93 ‘‘Set by RMAN‘‘ scope=spfile";
 94
 95 restore clone from service ‘cndba_p‘ standby controlfile;
 96
 97 }
 98
 99 executing Memory Script
100
101
102
103 sql statement: alter system set control_files = ‘‘/home/ora12c/app/oracle/oradata/CNDBA/controlfile/o1_mf_9y3rqtn9_.ctl‘‘,‘‘/home/ora12c/app/oracle/fast_recovery_area/CNDBA/controlfile/o1_mf_9y3rqvky_.ctl‘‘comment= ‘‘Set by RMAN‘‘ scope=spfile
104
105
106
107 Starting restore at 06-AUG-14
108
109 using channel ORA_AUX_DISK_1
110
111
112
113 channel ORA_AUX_DISK_1: starting datafilebackup set restore
114
115 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
116
117 channel ORA_AUX_DISK_1: restoring controlfile
118
119 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:07
120
121 output file name=/home/ora12c/app/oracle/oradata/CNDBA/controlfile/o1_mf_9y3rqtn9_.ctl
122
123 output filename=/home/ora12c/app/oracle/fast_recovery_area/CNDBA/controlfile/o1_mf_9y3rqvky_.ctl
124
125 Finished restore at 06-AUG-14
126
127
128
129 contents of Memory Script:
130
131 {
132
133 sql clone ‘alter database mount standby database‘;
134
135 }
136
137 executing Memory Script
138
139
140
141 sql statement: alter database mount standbydatabase
142
143
144
145 contents of Memory Script:
146
147 {
148
149 set newname for clone tempfile 1to new;
150
151 set newname for clone tempfile 2to new;
152
153 set newname for clone tempfile 3to new;
154
155 switchclone tempfile all;
156
157 set newname for clone datafile 1to new;
158
159 set newname for clone datafile 3to new;
160
161 set newname for clone datafile 4to new;
162
163 set newname for clone datafile 5to new;
164
165 set newname for clone datafile 6to new;
166
167 set newname for clone datafile 7to new;
168
169 set newname for clone datafile 8to new;
170
171 set newname for clone datafile 9to new;
172
173 set newname for clone datafile 10to new;
174
175 restore
176
177 from service ‘cndba_p‘ clone database
178
179 ;
180
181 sql ‘alter system archive log current‘;
182
183 }
184
185 executing Memory Script
186
187
188
189 executing command: SET NEWNAME
190
191
192
193 executing command: SET NEWNAME
194
195
196
197 executing command: SET NEWNAME
198
199
200
201 renamed tempfile 1 to/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_temp_%u_.tmp in controlfile
202
203 renamed tempfile 2 to/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_temp_%u_.tmp in controlfile
204
205 renamed tempfile 3 to/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_temp_%u_.tmp in controlfile
206
207
208
209 executing command: SET NEWNAME
210
211
212
213 executing command: SET NEWNAME
214
215
216
217 executing command: SET NEWNAME
218
219
220
221 executing command: SET NEWNAME
222
223
224
225 executing command: SET NEWNAME
226
227
228
229 executing command: SET NEWNAME
230
231
232
233 executing command: SET NEWNAME
234
235
236
237 executing command: SET NEWNAME
238
239
240
241 executing command: SET NEWNAME
242
243
244
245 Starting restore at 06-AUG-14
246
247 using channel ORA_AUX_DISK_1
248
249
250
251 channel ORA_AUX_DISK_1: starting datafilebackup set restore
252
253 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
254
255 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
256
257 channel ORA_AUX_DISK_1: restoring datafile00001 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_system_%u_.dbf
258
259 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:01:37
260
261 channel ORA_AUX_DISK_1: starting datafilebackup set restore
262
263 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
264
265 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
266
267 channel ORA_AUX_DISK_1: restoring datafile00003 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_sysaux_%u_.dbf
268
269 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:01:25
270
271 channel ORA_AUX_DISK_1: starting datafilebackup set restore
272
273 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
274
275 channel ORA_AUX_DISK_1: specifying datafile(s)to restore from backup set
276
277 channel ORA_AUX_DISK_1: restoring datafile00004 to/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_undotbs1_%u_.dbf
278
279 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:25
280
281 channel ORA_AUX_DISK_1: starting datafilebackup set restore
282
283 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
284
285 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
286
287 channel ORA_AUX_DISK_1: restoring datafile00005 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_system_%u_.dbf
288
289 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:35
290
291 channel ORA_AUX_DISK_1: starting datafilebackup set restore
292
293 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
294
295 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
296
297 channel ORA_AUX_DISK_1: restoring datafile00006 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_users_%u_.dbf
298
299 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:01
300
301 channel ORA_AUX_DISK_1: starting datafilebackup set restore
302
303 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
304
305 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
306
307 channel ORA_AUX_DISK_1: restoring datafile00007 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_sysaux_%u_.dbf
308
309 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:01:15
310
311 channel ORA_AUX_DISK_1: starting datafilebackup set restore
312
313 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
314
315 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
316
317 channel ORA_AUX_DISK_1: restoring datafile00008 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_system_%u_.dbf
318
319 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:35
320
321 channel ORA_AUX_DISK_1: starting datafilebackup set restore
322
323 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
324
325 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
326
327 channel ORA_AUX_DISK_1: restoring datafile00009 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_sysaux_%u_.dbf
328
329 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:01:15
330
331 channel ORA_AUX_DISK_1: starting datafilebackup set restore
332
333 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
334
335 channel ORA_AUX_DISK_1: specifyingdatafile(s) to restore from backup set
336
337 channel ORA_AUX_DISK_1: restoring datafile00010 to /home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_users_%u_.dbf
338
339 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:03
340
341 Finished restore at 06-AUG-14
342
343
344
345 sql statement: alter system archive logcurrent
346
347 current log archived
348
349
350
351 contents of Memory Script:
352
353 {
354
355 restore clone force from service ‘cndba_p‘
356
357 archivelog from scn 1922781;
358
359 switch clone datafile all;
360
361 }
362
363 executing Memory Script
364
365
366
367 Starting restore at 06-AUG-14
368
369 using channel ORA_AUX_DISK_1
370
371
372
373 channel ORA_AUX_DISK_1: starting archivedlog restore to default destination
374
375 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
376
377 channel ORA_AUX_DISK_1: restoring archivedlog
378
379 archived log thread=1 sequence=18
380
381 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:01
382
383 channel ORA_AUX_DISK_1: starting archivedlog restore to default destination
384
385 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
386
387 channel ORA_AUX_DISK_1: restoring archivedlog
388
389 archived log thread=1 sequence=19
390
391 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:02
392
393 channel ORA_AUX_DISK_1: starting archivedlog restore to default destination
394
395 channel ORA_AUX_DISK_1: using networkbackup set from service cndba_p
396
397 channel ORA_AUX_DISK_1: restoring archivedlog
398
399 archived log thread=1 sequence=20
400
401 channel ORA_AUX_DISK_1: restore complete,elapsed time: 00:00:01
402
403 Finished restore at 06-AUG-14
404
405
406
407 datafile 1 switched to datafile copy
408
409 input datafile copy RECID=12STAMP=854916586 filename=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_system_9y48opp7_.dbf
410
411 datafile 3 switched to datafile copy
412
413 input datafile copy RECID=13STAMP=854916586 filename=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_sysaux_9y48rr3z_.dbf
414
415 datafile 4 switched to datafile copy
416
417 input datafile copy RECID=14STAMP=854916586 file name=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_undotbs1_9y48vf5v_.dbf
418
419 datafile 5 switched to datafile copy
420
421 input datafile copy RECID=15STAMP=854916586 filename=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_system_9y48w6bx_.dbf
422
423 datafile 6 switched to datafile copy
424
425 input datafile copy RECID=16STAMP=854916586 filename=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_users_9y48x8jb_.dbf
426
427 datafile 7 switched to datafile copy
428
429 input datafile copy RECID=17STAMP=854916586 file name=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_sysaux_9y48xb36_.dbf
430
431 datafile 8 switched to datafile copy
432
433 input datafile copy RECID=18STAMP=854916586 filename=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_system_9y48zp0f_.dbf
434
435 datafile 9 switched to datafile copy
436
437 input datafile copy RECID=19STAMP=854916586 filename=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_sysaux_9y490r5z_.dbf
438
439 datafile 10 switched to datafile copy
440
441 input datafile copy RECID=20STAMP=854916586 file name=/home/ora12c/app/oracle/oradata/CNDBA_S/datafile/o1_mf_users_9y493301_.dbf
442
443
444
445 contents of Memory Script:
446
447 {
448
449 set until scn 1923489;
450
451 recover
452
453 standby
454
455 clone database
456
457 delete archivelog
458
459 ;
460
461 }
462
463 executing Memory Script
464
465
466
467 executing command: SET until clause
468
469
470
471 Starting recover at 06-AUG-14
472
473 using channel ORA_AUX_DISK_1
474
475
476
477 starting media recovery
478
479
480
481 archived log for thread 1 with sequence 18is already on disk as file/home/ora12c/app/oracle/fast_recovery_area/CNDBA_S/archivelog/2014_08_06/o1_mf_1_18_9y49378o_.arc
482
483 archived log for thread 1 with sequence 19is already on disk as file/home/ora12c/app/oracle/fast_recovery_area/CNDBA_S/archivelog/2014_08_06/o1_mf_1_19_9y49387d_.arc
484
485 archived log for thread 1 with sequence 20is already on disk as file/home/ora12c/app/oracle/fast_recovery_area/CNDBA_S/archivelog/2014_08_06/o1_mf_1_20_9y493976_.arc
486
487 archived log filename=/home/ora12c/app/oracle/fast_recovery_area/CNDBA_S/archivelog/2014_08_06/o1_mf_1_18_9y49378o_.arcthread=1 sequence=18
488
489 archived log filename=/home/ora12c/app/oracle/fast_recovery_area/CNDBA_S/archivelog/2014_08_06/o1_mf_1_19_9y49387d_.arcthread=1 sequence=19
490
491 archived log filename=/home/ora12c/app/oracle/fast_recovery_area/CNDBA_S/archivelog/2014_08_06/o1_mf_1_20_9y493976_.arcthread=1 sequence=20
492
493 media recovery complete, elapsed time:00:00:01
494
495 Finished recover at 06-AUG-14
496
497 Finished Duplicate Db at 06-AUG-14
498
499
500
501 RMAN>

13 打开备库并并启动apply

duplicate 完成之后,备库是mount的。

  1 SQL> select open_mode from v$database;
  2
  3
  4
  5 OPEN_MODE
  6
  7 ----------------------------------------
  8
  9 MOUNTED
 10
 11
 12
 13 SQL> show pdbs
 14
 15
 16
 17 CON_ID CON_NAME OPEN MODE RESTRICTED
 18
 19 ---------- ---------------------------------------- ----------
 20
 21 2 PDB$SEED MOUNTED
 22
 23 3 PCNDBA MOUNTED
 24
 25 SQL> alter database open;
 26
 27
 28
 29 Database altered.
 30
 31
 32
 33 SQL> show pdbs
 34
 35
 36
 37 CON_ID CON_NAME OPEN MODE RESTRICTED
 38
 39 ---------- ---------------------------------------- ----------
 40
 41 2 PDB$SEED READ ONLY NO
 42
 43 3 PCNDBA MOUNTED
 44
 45
 46
 47 SQL> alter pluggable database pcndbaopen;
 48
 49
 50
 51 Pluggable database altered.
 52
 53
 54
 55 SQL> show pdbs
 56
 57
 58
 59 CON_ID CON_NAME OPEN MODE RESTRICTED
 60
 61 ---------- ---------------------------------------- ----------
 62
 63 2 PDB$SEED READ ONLY NO
 64
 65 3 PCNDBA READ ONLY NO

备库是只读的。

  1 --查看主库:
  2
  3 SQL> select log_mode,open_mode ,database_role from v$database;
  4
  5
  6
  7 LOG_MODE OPEN_MODE DATABASE_ROLE
  8
  9 ------------ ------------------------------------
 10
 11 ARCHIVELOG READ WRITE PRIMARY
 12
 13
 14
 15 --备库:
 16
 17 SQL> select log_mode,open_mode ,database_role from v$database;
 18
 19
 20
 21 LOG_MODE OPEN_MODE DATABASE_ROLE
 22
 23 ------------ ------------------------------------
 24
 25 ARCHIVELOG READ ONLY PHYSICAL STANDBY
 26
 27
 28
 29
 30
 31 --启动real-time apply:
 32
 33 SQL> alter database recover managedstandby database using current logfile disconnect from session;
 34
 35 Database altered.
 36
 37
 38
 39 SQL> select open_mode from v$database;
 40
 41
 42
 43 OPEN_MODE
 44
 45 --------------------
 46
 47 READ ONLY WITH APPLY

14 验证DG

  1 --在主库创建一个table:
  2
  3
  4
  5 SQL> alter session set container=pcndba;
  6
  7 Session altered.
  8
  9
 10
 11 SQL> create table cndba as select * fromdba_users;
 12
 13 create table cndba as select * fromdba_users
 14
 15 *
 16
 17 ERROR at line 1:
 18
 19 ORA-01109: database not open
 20
 21
 22
 23
 24
 25 SQL> show pdbs
 26
 27
 28
 29 CON_ID CON_NAME OPEN MODE RESTRICTED
 30
 31 ---------- ---------------------------------------- ----------
 32
 33 3 PCNDBA MOUNTED
 34
 35 SQL> alter database open;
 36
 37 Database altered.
 38
 39
 40
 41 SQL> create table cndba as select * fromdba_users;
 42
 43 Table created.
 44
 45
 46
 47 SQL> alter system switch logfile;
 48
 49 alter system switch logfile
 50
 51 *
 52
 53 ERROR at line 1:
 54
 55 ORA-65040: operation not allowed fromwithin a pluggable database

注意:这里可以看到,对于12c的库,日志的切换只能在CDB中进行,也就是我们前面讲的,DG 是在CDB 级别进行的。

  1 SQL> alter system switch logfile;
  2
  3 System altered.

备库查询:

  1 SQL> select count(1) from cndba;
  2
  3 select count(1) from cndba
  4
  5 *
  6
  7 ERROR at line 1:
  8
  9 ORA-00942: table or view does not exist

提示表不存在,实际上,我们是在PDB里创建的,切换到对应的PDB下,就可以查询到了:

  1 SQL> alter session container=pcndba;
  2
  3 alter session container=pcndba
  4
  5 *
  6
  7 ERROR at line 1:
  8
  9 ORA-00922: missing or invalid option
 10
 11
 12
 13
 14
 15 SQL> alter session set container=pcndba;
 16
 17 Session altered.
 18
 19
 20
 21 SQL> select count(1) from cndba;
 22
 23
 24
 25 COUNT(1)
 26
 27 ----------
 28
 29 36

原文地址:https://www.cnblogs.com/ios9/p/8227662.html

时间: 2024-09-30 00:52:15

Oracle12c Data Guard搭建手册的相关文章

Oracle 12c Data Guard 搭建手册

Oracle 12c 的DataGuard 是在CDB 级别进行的,所以我们的配置都是从CDB角度出发. 测试里主备库的数据库CDB名称相同. 1  环境说明 OS Version: [[email protected] etc]# cat /etc/oracle-release Oracle Linux Server release 6.3 [[email protected] etc]# uname -r 2.6.39-200.29.3.el6uek.x86_64 DB Version: S

Oracle11g Active Data Guard搭建、管理

说明:參考网络众多人的笔记及思路,加上自己亲身实践之后的整理笔记.仅供參考. Data Guard与RAC不同的是.在普通情况下.Standby仅仅有一个节点处于活动状态,全部的应用都连接到主server. 仅仅有当server发生问题时,才考虑切换到备用server. 在Oracle 11g曾经版本号中的的Data Guard物理备用数据库.能够以仅仅读的方式打开数据库.但此时MediaRecovery利用日志进行数据同步的过程就停止了,假设物理备用数据库处于恢复的过程中数据库就不能打开查询.

Oracle 12C R2 on Linux 7.X Data Guard 搭建文档

1.查看主机和数据库信息 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue May 29 01:19:35 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0

Oracle Data Guard搭建 1.虚拟机安装linux

1.安装虚拟机 VMware 14 2.下载Linux镜像文件,创建虚拟机 原文地址:https://www.cnblogs.com/leolzi/p/8469807.html

data guard折腾记一

终于有空闲的机器腾出来了,生产环境上的一套Oracle环境终于可以鸟枪换炮了,生产环境有Data Guard,为了减少停机时间,而且避免重新构建Data Guard的麻烦(其实也不麻烦,就是浪费时间),计划借助Data Guard的switchover来完成. 不打无准备的仗,观察了一下某生产环境的Data Guard,发现配置极其简单,趁机抄袭了一下并搭建好测试环境,怎么个简单呢,配置如下: (1) 主备节点没有配置standby log file : (2) 只在主节点配置了日志发送的路径:

Oracle RAC + Data Guard 环境搭建

国庆之前就准备做这个实验了. 后来时间不够,就没搞了. 6天的长假一放,都散漫的不成样子了.懒散了很多. 今天7号. 上班也没啥精神,但是该做的实验还得继续. Oracle 高可用性的三个主要体现是: RAC, Data Guard 和 Stream.  所以熟练掌握这些技术就是评价DBA的标准一个. RAC + Data Guard 主要用在灾备或者报表服务器上. 比如用RAC+ 逻辑standby 做报表,从而减轻RAC 系统的压力. 关于Data Guard 的一些原理知识可以参考: Or

Oracle11g Data Guard物理备用数据库搭建与配置(第2部分 配置物理备用数据库)

环境准备 接着上一篇文章  Oracle11g Data Guard物理备用数据库搭建与配置(第1部分 主数据库实例创建) 在我的测试环境中,我准备了两台CentOS7.4虚拟机,并同时都安装了Oracle11gR2的11.2.0.1.0企业版的数据库软件,其中只有主服务器创建一个数据库实例,备用服务器仅安装Oracle数据库软件. 主数据库: OS: CentOS7.4 Hostname:     hmdb11dg-db1 Oracle Version:  11.2.0.1.0 Oracle

Oracle 12c Data Guard 纯小白部署手册

子公司需要搭建数据仓库,并且新建ADG作为主从,硬件设备Dell R730机器:192.168.1.11 dwjrdb --主库 192.168.1.12 dwjrstdyd --备库--数据库软件:linuxx64_12201_database.zip--数据库补丁包:p27105253_122010_Linux-x86-64.zip--Opatch升级包:p6880880_122010_Linux-x86-64.zip--目录规划为/u01存放归档日志,数据文件等,目录6.6TB空间 一.数

Oracle数据库11g 中Data Guard物理备用数据库搭建与配置

Oracle Data Guard是由Oracle公司提供的一套高可用性数据库解决方案.Data Guard可以确保企业数据的高可用性,并实现数据保护和灾难恢复.Data Guard提供了一套综合创建.维护.管理和监视一个或多个备用数据库的服务,使得用户能够轻松地应对Oracle生产数据库的灾难发生和数据损坏.Data Guard将维护的备用数据库保持为和主数据库(生产数据库)的数据和事物的一致性,当主数据库意外当机或者不可用时,Data Guard可以将任何一台备用数据库切换为主数据库,从而最