|
primary 库 |
standby 库 |
Ip |
10.8.98.103 |
10.8.98.104 |
hostname |
dbserver01 |
dbserver02 |
Oracle_sid |
prod1 |
proddg |
数据库版本 |
11.2.0.4 |
11.2.0.4 |
Db_name |
prod |
prod |
Db_unique_name |
prodpri |
prodstd |
tnsnames |
tns_primary |
tns_standby |
主机安装oracle,备机只需要安装数据库软件,不需要建库。
1、主机设置归档模式
1
2
3
4
5
6
7 |
SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination
/oracle/app/oracle/oradata/prod/arch Oldest online log sequence 60 Next log sequence to archive 62 Current log sequence 62 |
主机开启force logging 模式
1 |
SQL> alter database force logging; |
2、主机添加standby log
1
2
3 |
alter database add standby logfile group 21(
'/oracle/app/oracle/oradata/prod/redo21_standby.log'
) size 50M; alter database add standby logfile group 22(
'/oracle/app/oracle/oradata/prod/redo22_standby.log'
) size 50M; alter database add standby logfile group 23(
'/oracle/app/oracle/oradata/prod/redo23_standby.log'
) size 50M; |
3.
配置主库的初始化参数,如果配置参数有问题,重启数据库服务就ok。
#dg add alter system set db_unique_name='prodpri' scope=spfile; alter system set log_archive_config='DG_CONFIG=(prodpri,prodstd)' scope=both ; alter system set LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/oradata/prod/arch valid_for=(all_logfiles,all_roles) db_unique_name=prodpri' scope=both; alter system set LOG_ARCHIVE_DEST_2='SERVICE=tns_standby LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prodstd' scope=both; alter system set log_archive_format='%t_%s_%r.arc' scope=spfile ; alter system set log_archive_max_processes=8 scope=both ; alter system set db_file_name_convert='/oracle/app/oracle/oradata/prod/','/oracle/app/oracle/oradata/prod/' scope=spfile; alter system set log_file_name_convert='/oracle/app/oracle/oradata/prod/','/oracle/app/oracle/oradata/prod/' scope=spfile; alter system set standby_file_management=AUTO scope=both; alter system set fal_server='tns_standby' scope=both ; alter system set FAL_CLIENT='tns_primary' scope=both ;
重启数据库服务,并查询是否生效
set linesize 500 pages 0 col value for a90 col name for a50 select name, value from v$parameter where name in ('db_name','db_unique_name','log_archive_config', 'log_archive_dest_1','log_archive_dest_2','log_archive_dest_state_1','log_archive_dest_state_2','remote_login_passwordfile','log_archive_format','log_archive_max_processes','fal_server','db_file_name_convert', 'log_file_name_convert', 'standby_file_management');
4.根据spfile创建pfile
SQL> create pfile from spfile;
5.主机更改 lisenter.ora,tnsnames.ora
[oracle@dbserver01 admin]$ cat listener.ora # listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = prod) (ORACLE_HOME = /oracle/app/oracle/product/11.2.0) (SID_NAME = prod1)) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.103)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = /oracle/app/oracle [oracle@dbserver01 admin]$
[oracle@dbserver01 admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/tnsnames.ora # Generated by Oracle configuration tools. PROD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver01)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) ) tns_primary = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.103)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) ) tns_standby = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) )
重启数据库监听。
5. 拷贝主机上 lisenter.ora,tnsnames.ora (需要更改部分),pfile文件 (部分参数需要更改),密码文件 (需要改名)到备机。
pfile更改以下几行
db_unique_name=' prodstd' scope=spfile;
LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/oradata/prod/arch valid_for=(all_logfiles,all_roles) db_unique_name= prodstd' scope=both;
LOG_ARCHIVE_DEST_2='SERVICE= tns_primary LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME= prodpri' scope=both;
fal_server=' tns_primary' scope=both ;
FAL_CLIENT=' tns_standby' scope=both ;
*.dispatchers='(PROTOCOL=TCP) (SERVICE=prod dgXDB)'
备机根据参数文件initproddg.ora创建相应的文件夹
1
2
3 |
mkdir -p /oracle/app/oracle/admin/prod/adump mkdir -p /oracle/app/oracle/oradata/prod/ mkdir -p /oracle/app/oracle/oradata/prod/arch
|
更改完之后,create spfile from pfile,并且从spfile重新启动
备机 lisenter.ora
[oracle@dbserver02 admin]$ cat listener.ora # listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = prod) (ORACLE_HOME = /oracle/app/oracle/product/11.2.0) (SID_NAME = proddg)) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = /oracle/app/oracle [oracle@dbserver02 admin]$
并重新启动监听
备机 tnsnames.ora
[oracle@dbserver02 admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/tnsnames.ora # Generated by Oracle configuration tools. PROD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) ) tns_primary = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.103)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) ) tns_standby = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) )
6、测试tnsping ok,主备机都启动到nomount状态,均从spfile启动
然后主机打开数据库,备机打开到nomount状态。
7. 实施数据库克隆通过rman duplicate (在备机操作)
请参照 http://blog.itpub.net/70004783/viewspace-2788445/