此文默认你会使用dbca创建数据库,并了解数据库的相关目录结构及spfile、file、密码文件等位置。
使用一dbca创建数据主库,sid为dg1,数据库名为dg,并且设置db_unique_name=dg1。dbca默认数据文件等路径中会包含db_unique_name,因为我们的dg两个节点在同一主机上,所以在dbca创建数据库过程中修改此参数。
2.修改以下参数,各参数意义见注释
alter system set log_archive_config='DG_CONFIG=(dg1,dg2)' scope=spfile;
alter system set log_archive_dest_1='LOCATION=/opt/oracle/arc/dg1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1' scope=spfile;
alter system set log_archive_dest_2='SERVICE=dg2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg2' scope=spfile;
alter system set fal_server=dg2 scope=spfile;
alter system set fal_client=dg1 scope=spfile;
alter system set db_file_name_convert='dg2','dg1' scope=spfile;
alter system set log_file_name_convert='dg2','dg1' scope=spfile;
alter system set standby_file_management=auto scope=spfile;
--主库上创建standby logfile group,主库并不需要这些日志组,创建只是为了当主库转换角色为备库时使用
alter database add standby logfile group 4 ('/opt/oracle/oradata/dg1/sredo41.log','/opt/oracle/oradata/dg1/sredo42.log') size 50M;
alter database add standby logfile group 5 ('/opt/oracle/oradata/dg1/sredo51.log','/opt/oracle/oradata/dg1/sredo52.log') size 50M;
alter database add standby logfile group 6 ('/opt/oracle/oradata/dg1/sredo61.log','/opt/oracle/oradata/dg1/sredo62.log') size 50M;
alter system set log_archive_dest_1='LOCATION=/opt/oracle/arc/dg1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1' scope=spfile;
alter system set log_archive_dest_2='SERVICE=dg2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg2' scope=spfile;
alter system set fal_server=dg2 scope=spfile;
alter system set fal_client=dg1 scope=spfile;
alter system set db_file_name_convert='dg2','dg1' scope=spfile;
alter system set log_file_name_convert='dg2','dg1' scope=spfile;
alter system set standby_file_management=auto scope=spfile;
--主库上创建standby logfile group,主库并不需要这些日志组,创建只是为了当主库转换角色为备库时使用
alter database add standby logfile group 4 ('/opt/oracle/oradata/dg1/sredo41.log','/opt/oracle/oradata/dg1/sredo42.log') size 50M;
alter database add standby logfile group 5 ('/opt/oracle/oradata/dg1/sredo51.log','/opt/oracle/oradata/dg1/sredo52.log') size 50M;
alter database add standby logfile group 6 ('/opt/oracle/oradata/dg1/sredo61.log','/opt/oracle/oradata/dg1/sredo62.log') size 50M;
修改后关闭数据shutdown immediate
3.将主库置于归档模式,强制记日志,并打开
startup mount;
alter database archivelog;
alter database force logging;
3.将主库置于归档模式,强制记日志,并打开
startup mount;
alter database archivelog;
alter database force logging;
alter database open;
4.创建物理备库准备工作
4.创建物理备库准备工作
--创建副本数据需要的目录(创建adump、bdump 、cdump 、dpdump 、pfile 、udump等目录,可以根据主库结构创建);
--创建密码文件;
--创建参数文件,根据主库的spfile创建pfile,并修改以下参数为给出的值
db_name=dg
db_unique_name=dg2
log_archive_config='DG_CONFIG=(dg1,dg2)'
log_archive_dest_1='LOCATION=/opt/oracle/arc/dg2/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg2'
log_archive_dest_2='SERVICE=dg1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg1'
fal_server=dg1
fal_client=dg2
db_file_name_convert='dg1','dg2'
log_file_name_convert='dg1','dg‘
standby_file_management=auto
根据修改后的pfile文件创建备库的spfile,并启动到nomount
--创建参数文件,根据主库的spfile创建pfile,并修改以下参数为给出的值
db_name=dg
db_unique_name=dg2
log_archive_config='DG_CONFIG=(dg1,dg2)'
log_archive_dest_1='LOCATION=/opt/oracle/arc/dg2/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg2'
log_archive_dest_2='SERVICE=dg1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg1'
fal_server=dg1
fal_client=dg2
db_file_name_convert='dg1','dg2'
log_file_name_convert='dg1','dg‘
standby_file_management=auto
根据修改后的pfile文件创建备库的spfile,并启动到nomount
5.创建静态侦听,内容如下
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dg1)
(ORACLE_HOME = /opt/oracle/oracle/product/10.2.0/db_1)
(SID_NAME = dg1)
)
(SID_DESC =
(GLOBAL_DBNAME = dg2)
(ORACLE_HOME = /opt/oracle/oracle/product/10.2.0/db_1)
(SID_NAME = dg2)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = marcus)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dg1)
(ORACLE_HOME = /opt/oracle/oracle/product/10.2.0/db_1)
(SID_NAME = dg1)
)
(SID_DESC =
(GLOBAL_DBNAME = dg2)
(ORACLE_HOME = /opt/oracle/oracle/product/10.2.0/db_1)
(SID_NAME = dg2)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = marcus)(PORT = 1521))
)
4.rman备份主库
rman target sys/dasong@dg1 auxiliary sys/dasong@dg2
backup database plus archivelog;
backup current controlfile for standby;
backup database plus archivelog;
backup current controlfile for standby;
duplicate target database for standby;
5.备库添加备用在线重做日志
5.备库添加备用在线重做日志
(rman创建备库后standby logfile group可能在备库存在,但只是控制文件中有相关记录,并没有相应的操作系统文件,所以要先删除日志组再创建)
alter database add standby logfile group 4 ('/opt/oracle/oradata/dg2/sredo41.log','/opt/oracle/oradata/dg2/sredo42.log') size 50M;
alter database add standby logfile group 5 ('/opt/oracle/oradata/dg2/sredo51.log','/opt/oracle/oradata/dg2/sredo52.log') size 50M;
alter database add standby logfile group 6 ('/opt/oracle/oradata/dg2/sredo61.log','/opt/oracle/oradata/dg2/sredo62.log') size 50M;
8.将备库置于恢复状态
--启动实时恢复
alter database recover managed standby database using current logfile disconnect from session;
alter database add standby logfile group 4 ('/opt/oracle/oradata/dg2/sredo41.log','/opt/oracle/oradata/dg2/sredo42.log') size 50M;
alter database add standby logfile group 5 ('/opt/oracle/oradata/dg2/sredo51.log','/opt/oracle/oradata/dg2/sredo52.log') size 50M;
alter database add standby logfile group 6 ('/opt/oracle/oradata/dg2/sredo61.log','/opt/oracle/oradata/dg2/sredo62.log') size 50M;
8.将备库置于恢复状态
--启动实时恢复
alter database recover managed standby database using current logfile disconnect from session;
--此时候可以在主库创建一个表空间,然后到备库查看是否有相应的数据库文件
--关闭恢复
alter database recover managed standby database cancel;
--关闭恢复
alter database recover managed standby database cancel;
相关参数解释:
待续。。。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7417681/viewspace-709567/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7417681/viewspace-709567/