配置ORACLE 11G ADG

曾经装过10g的,没有做笔记,昨天使用duplicate方法装了个11g ADG,过程艰辛。记录下:

一、环境配置

主库

IP地址:192.168.233.128/24

操作系统版本号:rhel5.8 64bit

数据库版本号:11.2.0.1 64bit

数据库sid名:orcl

数据库名:orcl

数据库db_unique_name:orcl1

主机名:pr

物理备库

IP地址:192.168.233.129/24

操作系统版本号:rhel5.8 64bit

数据库版本号:11.2.0.1 64bit

数据库sid名:orcl

数据库名:orcl

数据库db_unique_name:orcl2

主机名:st

二、改动主备库listener.ora,tnsnames.ora文件例如以下

[oracle@pr admin]$ more listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = pr)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

[oracle@pr admin]$ more tnsnames.ora
orcl1=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl1)
    )
  )

orcl2=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.129)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl2)
    )
  )

[oracle@st admin]$ more listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = st)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


SID_LIST_LISTENER =
 (SID_LIST =
 (SID_DESC =
 (GLOBAL_DBNAME = orcl2)
 (ORACLE_HOME = /export/11g/product)
 (SID_NAME = orcl)
 )
 )


[oracle@st admin]$ more tnsnames.ora
orcl1=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl1)
    )
  )

orcl2=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.129)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl2)
    )
  )


 

三、改动主库、备库的pfile文件。红色部分为新添加的部分。

[oracle@pr dbs]$ more initorcl.ora
orcl.__db_cache_size=142606336
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='/export/11g'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=167772160
orcl.__sga_target=251658240
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=92274688
orcl.__streams_pool_size=0
*.audit_file_dest='/export/11g/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/export/11g/oradata/orcl/control01.ctl','/export/11g/flash_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='/export/11g/flash_recovery_area'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/export/11g'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=417333248
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.db_unique_name='orcl1'
*.fal_client='orcl1'
 *.fal_server='orcl2'
 *.log_archive_config='DG_CONFIG=(orcl1,orcl2)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,primary_role) db_unique_name=orcl1'
 *.log_archive_dest_2='SERVICE=orcl2 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl2'
 *.remote_login_passwordfile='EXCLUSIVE'
 *.standby_file_management='AUTO'
[oracle@st dbs]$ more initorcl.ora
orcl.__db_cache_size=142606336
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='/export/11g'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=167772160
orcl.__sga_target=251658240
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=92274688
orcl.__streams_pool_size=0
*.audit_file_dest='/export/11g/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/export/11g/oradata/orcl/control01.ctl','/export/11g/flash_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='/export/11g/flash_recovery_area'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/export/11g'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=417333248
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.fal_client='orcl2'
 *.fal_server='orcl1'
 *.log_archive_config='DG_CONFIG=(orcl1,orcl2)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,primary_role) db_unique_name=orcl2'
 *.log_archive_dest_2='SERVICE=orcl1 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl1'
 *.remote_login_passwordfile='EXCLUSIVE'
 *.standby_file_management='AUTO'
 *.db_unique_name='orcl2'

四、在备库上创建对应的文件夹

如udump/,oradate/

五、将备库启动到nomount状态,然后连接主库进行duplicate操作

  1. [oracle@dg2 ~]$ lsnrctl start 
  2. [oracle@dg2 ~]$ orapwd file=$ORACLE_HOME/dbs/orapworclpassword=oracleentries=5
  3. [oracle@dg2 ~]$ sqlplus /nolog
  4. SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 22 13:36:53 2012 
  5. Copyright (c) 1982, 2011, Oracle.  All rights reserved. 
  6. SQL> conn /as sysdba 
  7. Connected to an idle instance. 
  8. SQL> create spfile frompfile='/export/11g/product/dbs/initorcl.ora'
  9. File created. 
  10. SQL> startup nomount 
  11. ORACLE instance started. 
  12. Total System Global Area  417546240 bytes 
  13. Fixed Size                  2228944 bytes 
  14. Variable Size             285216048 bytes 
  15. Database Buffers          121634816 bytes 
  16. Redo Buffers                8466432 bytes

[oracle@st dbs]rman targetsys/oracle@orcl1 auxiliarysys/oracle@orcl2

RMAN> duplicate target database for standby from activedatabase nofilenamecheck;

 

Starting Duplicate Db at 10-NOV-14

using target databasecontrol file instead of recovery catalog

allocated channel:ORA_AUX_DISK_1

channel ORA_AUX_DISK_1:SID=20 device type=DISK

 

contents of MemoryScript:

{

  backup as copy reuse

  targetfile '/export/11g/product/dbs/orapworcl' auxiliary format

 '/export/11g/product/dbs/orapworcl'   ;

}

executing Memory Script

 

Starting backup at 10-NOV-14

allocated channel:ORA_DISK_1

channel ORA_DISK_1:SID=43 device type=DISK

Finished backup at10-NOV-14

 

contents of MemoryScript:

{

  backup as copy current controlfile forstandby auxiliary format '/export/11g/oradata/orcl/control01.ctl';

  restore clone controlfile to '/export/11g/flash_recovery_area/orcl/control02.ctl' from

 '/export/11g/oradata/orcl/control01.ctl';

}

executing Memory Script

 

Starting backup at 10-NOV-14

using channel ORA_DISK_1

channel ORA_DISK_1:starting datafile copy

copying standby controlfile

output filename=/export/11g/product/dbs/snapcf_orcl.f tag=TAG20141110T094600 RECID=5STAMP=863257560

channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:03

Finished backup at10-NOV-14

 

Starting restore at 10-NOV-14

using channelORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1:copied control file copy

Finished restore at10-NOV-14

 

contents of MemoryScript:

{

  sql clone 'alter database mount standbydatabase';

}

executing Memory Script

 

sql statement: alterdatabase mount standby database

 

contents of MemoryScript:

{

  set newname for tempfile  1 to

 "/export/11g/oradata/orcl/temp01.dbf";

  switch clone tempfile all;

  set newname for datafile  1 to

 "/export/11g/oradata/orcl/system01.dbf";

  set newname for datafile  2 to

 "/export/11g/oradata/orcl/sysaux01.dbf";

  set newname for datafile  3 to

 "/export/11g/oradata/orcl/undotbs01.dbf";

  set newname for datafile  4 to

 "/export/11g/oradata/orcl/users01.dbf";

  set newname for datafile  5 to

 "/export/11g/oradata/orcl/example01.dbf";

  backup as copy reuse

  datafile 1 auxiliary format

 "/export/11g/oradata/orcl/system01.dbf"   datafile

 2 auxiliary format

 "/export/11g/oradata/orcl/sysaux01.dbf"   datafile

 3 auxiliary format

 "/export/11g/oradata/orcl/undotbs01.dbf"   datafile

 4 auxiliary format

 "/export/11g/oradata/orcl/users01.dbf"   datafile

 5 auxiliary format

 "/export/11g/oradata/orcl/example01.dbf"   ;

  sql 'alter system archive log current';

}

executing Memory Script

 

executing command: SETNEWNAME

 

renamed tempfile 1 to/export/11g/oradata/orcl/temp01.dbf in control file

 

executing command: SETNEWNAME

 

executing command: SETNEWNAME

 

executing command: SETNEWNAME

 

executing command: SETNEWNAME

 

executing command: SETNEWNAME

 

Starting backup at 10-NOV-14

using channel ORA_DISK_1

channel ORA_DISK_1:starting datafile copy

input datafile filenumber=00001 name=/export/11g/oradata/orcl/system01.dbf

output filename=/export/11g/oradata/orcl/system01.dbf tag=TAG20141110T094610

channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:56

channel ORA_DISK_1: startingdatafile copy

input datafile filenumber=00002 name=/export/11g/oradata/orcl/sysaux01.dbf

output filename=/export/11g/oradata/orcl/sysaux01.dbf tag=TAG20141110T094610

channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:35

channel ORA_DISK_1:starting datafile copy

input datafile filenumber=00005 name=/export/11g/oradata/orcl/example01.dbf

output filename=/export/11g/oradata/orcl/example01.dbf tag=TAG20141110T094610

channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:16

channel ORA_DISK_1:starting datafile copy

input datafile filenumber=00003 name=/export/11g/oradata/orcl/undotbs01.dbf

output filename=/export/11g/oradata/orcl/undotbs01.dbf tag=TAG20141110T094610

channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:07

channel ORA_DISK_1:starting datafile copy

input datafile filenumber=00004 name=/export/11g/oradata/orcl/users01.dbf

output filename=/export/11g/oradata/orcl/users01.dbf tag=TAG20141110T094610

channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:07

Finished backup at10-NOV-14

 

sql statement: altersystem archive log current

 

contents of MemoryScript:

{

  switch clone datafile all;

}

executing Memory Script

 

datafile 1 switched todatafile copy

input datafile copyRECID=5 STAMP=863257693 file name=/export/11g/oradata/orcl/system01.dbf

datafile 2 switched todatafile copy

input datafile copyRECID=6 STAMP=863257694 file name=/export/11g/oradata/orcl/sysaux01.dbf

datafile 3 switched todatafile copy

input datafile copyRECID=7 STAMP=863257694 file name=/export/11g/oradata/orcl/undotbs01.dbf

datafile 4 switched todatafile copy

input datafile copyRECID=8 STAMP=863257694 file name=/export/11g/oradata/orcl/users01.dbf

datafile 5 switched todatafile copy

input datafile copyRECID=9 STAMP=863257694 file name=/export/11g/oradata/orcl/example01.dbf

Finished Duplicate Db at10-NOV-14

 

RMAN> exit

 

 

Recovery Managercomplete.

至此备库创建完毕。

期间遇到非常多的问题,如今总结例如以下:
1、运行[oracle@st dbs]rman target sys/oracle@orcl1 auxiliarysys/oracle@orcl2时候,提示不能连接到orcl1。可是能ping同pr,原来是防火墙没有开通过

2、tnsname.ora文件里service_name 与连接对端的监听中的service_name相相应。

3、备库中的配置了静态监听,详细原因參见:http://blog.itpub.net/23135684/viewspace-692707

[qs-hddb2.800best.com_oracle:/u01/app/oracle/db/11.2$rman target 'sys/ora1Q23$AZ'@hddb auxiliary 'sys/ora1Q23$AZ'@hddb1

Recovery Manager: Release 11.2.0.3.0 - Production on Thu Aug 13 19:30:40 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: HDDB (DBID=880432607)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections

连接被堵塞,查看监听


[qs-hddb2.800best.com_oracle:/u01/app/oracle/db/11.2/network/admin$lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 13-AUG-2015 19:30:36

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=qs-hddb2.800best.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                13-AUG-2015 18:50:15
Uptime                    0 days 0 hr. 40 min. 21 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/db/11.2/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/qs-hddb2/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=qs-hddb2.800best.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "hddb1" has 1 instance(s).
  Instance "hddb1", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully

监听的状态确实是堵塞的。配置静态监听,重新启动监听,再次查看监听的状态:


Listener Log File         /u01/app/oracle/diag/tnslsnr/qs-hddb2/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=qs-hddb2.800best.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "hddb1" has 2 instance(s).
  Instance "hddb1", status UNKNOWN, has 1 handler(s) for this service...
  Instance "hddb1", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully
[qs-hddb2.800best.com_oracle:/u01/app/oracle/db/11.2/network/admin$

有一个服务的状态是unknow 。再次连接成功


4、执行duplicate target database for standby from active database nofilenamecheck;执行过程中出现了下面错误,是由于缺少文中的第四步。没有在备库上创建对应的文件夹。

RMAN> duplicate target database for standby from active database;

Starting Duplicate Db at 10-NOV-14
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=19 device type=DISK

……省略

contents of Memory Script:
{
   backup as copy current controlfile for standby auxiliary format  '/export/11g/oradata/orcl/control01.ctl';
   restore clone controlfile to  '/export/11g/flash_recovery_area/orcl/control02.ctl' from
 '/export/11g/oradata/orcl/control01.ctl';
}
executing Memory Script

Starting backup at 10-NOV-14
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 11/10/2014 09:24:29
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 11/10/2014 09:24:29
ORA-17628: Oracle error 19505 returned by remote Oracle server

5、执行duplicate target database for standby from active database nofilenamecheck;。执行过程中出现了下面错误。是由于没有使用nofilenamecheck。

RMAN> duplicate target database for standby from active database;

Starting Duplicate Db at 10-NOV-14
using channel ORA_AUX_DISK_1

…… …… 省略

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 11/10/2014 09:33:14
RMAN-05501: aborting duplication of target database
RMAN-05001: auxiliary file name /export/11g/oradata/orcl/example01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary file name /export/11g/oradata/orcl/users01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary file name /export/11g/oradata/orcl/undotbs01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary file name /export/11g/oradata/orcl/sysaux01.dbf conflicts with a file used by the target database
RMAN-05001: auxiliary file name /export/11g/oradata/orcl/system01.dbf conflicts with a file used by the target database

原文地址:https://www.cnblogs.com/wgwyanfs/p/6902963.html