环境rhel5.5 | 主服务器 | 备服务器 |
IP | 192.168.80.123 | 192.168.80.123 |
实例名 | ENMOEDU | ADMIN |
netname | ENMOEDU | ADMIN |
DB_UNIQUE_NAME | ENMOEDU | ADMIN |
搭建过程
1.在备用服务器装好oracle软件,不创建数据库
2.在主备服务器/etc/hosts中配置好机器名
3.在主库和备库端都配置好监听,并使用tnsping测试连通性
4.在主库和备库服务器上修改tnsname.ora文件,添加以下内容(两台机器都要配)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ENMOEDU )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ENMOEDU)
)
)
ADMIN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =ADMIN )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ADMIN )
)
)
5、没有配置数据库的机器上一定要设置环境变量 .bash_profile
6.将主库启动open状态,创建standby log 文件 (日志组的个数和member要对应 并且组数要比redo的多一组)
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database add standby logfile
group 4('/u01/app/oracle/oradata/ENMOEDU/redo04a.log','/u01/app/oracle/oradata/ENMOEDU/redo04b.log','/u01/app/oracle/oradata/ENMOEDU/redo04c.log') size 50m,
group 5('/u01/app/oracle/oradata/ENMOEDU/redo05a.log','/u01/app/oracle/oradata/ENMOEDU/redo05b.log','/u01/app/oracle/oradata/ENMOEDU/redo05c.log') size 50m,
group 6('/u01/app/oracle/oradata/ENMOEDU/redo06a.log','/u01/app/oracle/oradata/ENMOEDU/redo06b.log','/u01/app/oracle/oradata/ENMOEDU/redo06c.log') size 50m,
group 7('/u01/app/oracle/oradata/ENMOEDU/redo04a.log','/u01/app/oracle/oradata/ENMOEDU/redo04b.log','/u01/app/oracle/oradata/ENMOEDU/redo04c.log') size 50m;
7、改变主备库参数文件(本例中显示的参数文件只是主库的,做修改时一定要注意文件路径是否真实存在)
ENMOEDU.__db_cache_size=293601280
ENMOEDU.__java_pool_size=4194304
ENMOEDU.__large_pool_size=25165824
ENMOEDU.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
ENMOEDU.__pga_aggregate_target=293601280
ENMOEDU.__sga_target=549453824
ENMOEDU.__shared_io_pool_size=0
ENMOEDU.__shared_pool_size=209715200
ENMOEDU.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/ENMOEDU/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/ENMOEDU/control01.ctl','/u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl','/u01/app/oracle/oradata/ENMOEDU/control03.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_files=500
*.db_name='ENMOEDU'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (dispatchers=3)(session=100)'
*.job_queue_processes=500
*.max_dispatchers=5
*.max_shared_servers=10
*.open_cursors=300
*.processes=500
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_servers=5
*.undo_tablespace='UNDOTBS1'
DB_NAME=ENMOEDU
DB_UNIQUE_NAME=ENMOEDU
LOG_ARCHIVE_CONFIG='DG_CONFIG=(ENMOEDU,ADMIN)'
LOG_ARCHIVE_DEST_1=
'LOCATION=USE_DB_RECOVERY_FILE_DEST
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=ENMOEDU'
LOG_ARCHIVE_DEST_2=
'SERVICE=ADMIN ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=ADMIN'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=ADMIN
DB_FILE_NAME_CONVERT='ADMIN','ENMOEDU'
LOG_FILE_NAME_CONVERT='ADMIN','ENMOEDU'
STANDBY_FILE_MANAGEMENT=AUTO
8、把主库的口令文件通过scp命令传到备库中并改成备库的实例名字
9、在备库用修改的参数文件启动备库到nomount
create spfile from pfile
在备库上执行
rman target sys/oracle@ENMOEDU auxiliary sys/oracle@ADMIN
10、 Duplicate 完成后Stan dby库已经处于正常的Mount状态.应打开Recover
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
11、在主库端执行归档命令
SQL> alter system archive log current;
完整备份至DUPLICATE期间产生的archive log 只要没有删除,在dg配好以后
主库端第一次归档时,将会把这期间产生的archive log 一并生成到备库端
12.分别在主备库上看当前已归档日志以及日志应用情况
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
13.在备库创建standby log 文件
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
以上方法需要重启数据库
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
使用RMAN可以不需要重启数据库 只需把主库添加参数的时候改用在SQLPLUS中用alter命令就可以实现:更改命令如下
用alter system set 改下列参数 并且scope=spfile
DB_NAME=ENMOEDU
DB_UNIQUE_NAME=ENMOEDU
LOG_ARCHIVE_CONFIG='DG_CONFIG=(ENMOEDU,ADMIN)'
LOG_ARCHIVE_DEST_1=
'LOCATION=USE_DB_RECOVERY_FILE_DEST
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=ENMOEDU'
LOG_ARCHIVE_DEST_2=
'SERVICE=ADMIN ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=ADMIN'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=ADMIN
STANDBY_FILE_MANAGEMENT=AUTO
在备库上启动RMAN
rman target sys/oracle@ENMOEDU auxiliary sys/oracle@ADMIN
ALTER DATABASE RECOVER MANAGED STAND
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30166976/viewspace-1697839/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30166976/viewspace-1697839/