实验使用DataGuard搭建一套物理StandBy环境
主库Primary:192.168.1.1
备库StandBy:192.168.1.2
主要步骤
1.主库设置归档模式,并且设置强制日志
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
SQL> alter database force logging;
Database altered.
2.主库,备库设置tns和监听器
主库和备库的tnsnames.ora设置相同
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
主库Primary:192.168.1.1
备库StandBy:192.168.1.2
主要步骤
1.主库设置归档模式,并且设置强制日志
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
Database altered.
2.主库,备库设置tns和监听器
主库和备库的tnsnames.ora设置相同
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
主库和备库的监听器IP地址不同
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
3.备份主库
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
3.备份主库
rman target /
backup database;
backup current controlfile for standby;
4.主库创建密码文件
在$ORACLE_HOME/dbs目录下创建密码文件
[oracle@master dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@master dbs]$ orapwd file=orapworcl password=123456
5.将主库的备份,spfile和密码文件传输到备库相同的位置(若备库不存在该位置则创建)
6.修改主库spfile,重启数据库使设置生效
alter system set db_unique_name=orcl scope=spfile;
alter system set log_archive_dest_2='service=standby valid_for=(online_logfiles,primary_role) db_unique_name=orcl' scope=spfile;
alter system set fal_client=primary;
alter system set fal_server=standby;
alter system set standby_file_management=auto scope=spfile;
7.启动备库至nomount,修改备库spfile
(spfile中的目录在备库必须存在,可以先导出pfile,然后创建相关的目录)
alter system set db_unique_name=orcl scope=spfile;
alter system set log_archive_dest_2='service=primary valid_for=(online_logfiles,standby_role) db_unique_name=orcl' scope=spfile;
alter system set fal_client=standby;
alter system set fal_server=primary;
alter system set standby_file_management=auto scope=spfile;
8.主库执行duplicate
rman target / auxiliary sys/123456@standby
duplicate target database for standby nofilenamecheck;
如果主库备份包括归档日志,
backup database;
backup current controlfile for standby;
sql "alter system archive log current";
backup filesperset 10 archivelog all;
则使用如下命令,直接在备库应用归档
duplicate target database for standby dorecover nofilenamecheck;
9.启用物理standby
startup nomount;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
如果需要停止物理standby,则执行如下命令
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
搭建过程需要注意两点
1.密码文件必须从主库传输到备库,不能使用相同的密码在备库创建密码文件
2.如果备份中有归档执行
duplicate target database for standby dorecover nofilenamecheck;
如果备份中没有归档日志,则执行
duplicate target database for standby nofilenamecheck;
dorecover
从目标数据库用归档日志备份恢复备用数据库。一旦备用数据库的创建完成,RMAN将对备用数据库应用主数据库中的所有归档日志,一直到RMAN中注册的最新的归档日志。
backup database;
backup current controlfile for standby;
4.主库创建密码文件
在$ORACLE_HOME/dbs目录下创建密码文件
[oracle@master dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@master dbs]$ orapwd file=orapworcl password=123456
5.将主库的备份,spfile和密码文件传输到备库相同的位置(若备库不存在该位置则创建)
alter system set db_unique_name=orcl scope=spfile;
alter system set log_archive_dest_2='service=standby valid_for=(online_logfiles,primary_role) db_unique_name=orcl' scope=spfile;
alter system set fal_client=primary;
alter system set fal_server=standby;
alter system set standby_file_management=auto scope=spfile;
7.启动备库至nomount,修改备库spfile
(spfile中的目录在备库必须存在,可以先导出pfile,然后创建相关的目录)
alter system set db_unique_name=orcl scope=spfile;
alter system set log_archive_dest_2='service=primary valid_for=(online_logfiles,standby_role) db_unique_name=orcl' scope=spfile;
alter system set fal_client=standby;
alter system set fal_server=primary;
alter system set standby_file_management=auto scope=spfile;
8.主库执行duplicate
rman target / auxiliary sys/123456@standby
duplicate target database for standby nofilenamecheck;
如果主库备份包括归档日志,
backup database;
backup current controlfile for standby;
sql "alter system archive log current";
backup filesperset 10 archivelog all;
则使用如下命令,直接在备库应用归档
duplicate target database for standby dorecover nofilenamecheck;
startup nomount;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
如果需要停止物理standby,则执行如下命令
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
搭建过程需要注意两点
1.密码文件必须从主库传输到备库,不能使用相同的密码在备库创建密码文件
2.如果备份中有归档执行
duplicate target database for standby dorecover nofilenamecheck;
如果备份中没有归档日志,则执行
duplicate target database for standby nofilenamecheck;
否则报错如下:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 03/28/2012 12:20:16
RMAN-03015: error occurred in stored script. Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06024: no backup or copy of the control file found to restore
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 03/28/2012 12:20:16
RMAN-03015: error occurred in stored script. Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06024: no backup or copy of the control file found to restore
dorecover
从目标数据库用归档日志备份恢复备用数据库。一旦备用数据库的创建完成,RMAN将对备用数据库应用主数据库中的所有归档日志,一直到RMAN中注册的最新的归档日志。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1315088/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29254281/viewspace-1315088/