Dataguard物理standby创建步骤[直接拷贝文件/RMAN]
时间:2010-05-27 来源:dbconf
平台:Oracle 10.2.0.1 on CentOS 5.1
primary主机配置:
1、安装生产库,实例名为orcl
2、hostname为primary
standby备机配置:
1、只安装软件
2、hostname为standby
方法一: Primary主机配置:
1、开启logging: alter database force logging; 2、开启归档: 如果没有开启,使用如下命令开启: shutdown immediate startup mount alter database archivelog;
编辑primary参数文件: 1、create pfile from spfile; 2、编辑pfile: 添加如下内容[斜体部分据实际情况而定]: DB_NAME=orcl DB_UNIQUE_NAME=primary LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)' LOG_ARCHIVE_DEST_1= 'LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary' LOG_ARCHIVE_DEST_2= 'SERVICE=standby_net LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc LOG_ARCHIVE_MAX_PROCESSES=30
LOG_FILE_NAME_CONVERT='/arch','/archlog'
FAL_SERVER=standby_net FAL_CLIENT=primary_net STANDBY_FILE_MANAGEMENT=AUTO
创建standby控制文件: alter database create standby controlfile as '/tmp/standby.ctl';
关闭主数据库,并对数据文件、控制文件及联机日志文件打包: shutdown immediate tar -cvf oradata.tar oradata/
为了方便,拷贝dbs下的口令文件和pfile至同一目录下: cp orapworcl $ORACLE_BASE cp initorcl.ora $ORACLE_BASE cp /tmp/standby.ctl $ORACLE_BASE
应用参数文件: create spfile from pfile;
启动数据库: startup/alter database open;
Standby备机配置:
ftp至primary,下载所有文件: ftp> bin 200 Switching to Binary mode. ftp> cd /u01/app/oracle ftp> mget oradata.tar ftp> mget orapworcl ftp> mget initorcl.ora ftp> mget standby.ctl
解压oradata.tar: cp oradata.tar $ORACLE_BASE cd $ORACLE_BASE tar -xvf $ORACLE_BASE
使用standby.ctl覆盖oradata中的三个控制文件: [oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control01.ctl [oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control02.ctl [oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control03.ctl
复制口令文件,pfile至dbs目录下: cd cp orapworcl $ORACLE_HOME/dbs cp initorcl.ora $ORACLE_HOME/dbs
编辑从primary上拷贝过来的initorcl.ora文件[黑体为需要修改的地方]:
DB_NAME=orcl DB_UNIQUE_NAME=standby LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)' LOG_ARCHIVE_DEST_1= 'LOCATION=/archlog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby' LOG_ARCHIVE_DEST_2= 'SERVICE=primary_net LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc LOG_ARCHIVE_MAX_PROCESSES=30
LOG_FILE_NAME_CONVERT='/arch','/archlog'
FAL_SERVER=primary_net FAL_CLIENT=standby_net STANDBY_FILE_MANAGEMENT=AUTO
使参数文件生效: create spfile from pfile;
创建必要的目录: mkdir -p /u01/app/oracle/admin/orcl/adump mkdir -p /u01/app/oracle/admin/orcl/bdump mkdir -p /u01/app/oracle/admin/orcl/cdump mkdir -p /u01/app/oracle/admin/orcl/udump mkdir -p /u01/app/oracle/admin/orcl/dpdump mkdir -p /archlog
启动实例: startup
----------------------------------------------------------------------------------- 主备机各自修改listener.ora,并重启监听,使用netca配置tnsname,并在主备机上各自使用sqlplus进行测试。 tnsname(Oracle Net Service Name)的配置: primary和standby上相同: primary_net/standby_net[注:Net Service Name和db_unique_name不能相同,否则会包DGID mismatch的错误]
-----------------------------------------------------------------------------------
备机数据库切换至standby角色: shutdown abort startup mount; 检查归档传输是否正常 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
测试: 在主备机上分别使用如下命令测试结果是否相同: select max(sequence#) from v$archived_log; 在备机上使用如下命令测试日志是否被应用: SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
方法二: mkdir -p /tmp/oradata/orcl 使用RMAN拷贝数据文件: select 'copy datafile '||file_id ||' to '|| '''/tmp/oradata/orcl'||substr(file_name,instr(file_name,'/',-1))||'''' ||';' from dba_data_files order by 1; 在RMAN中执行以上语句执行的结果,再将生成的文件ftp至standby数据库,其他文件和非RMAN方式一样地拷贝。
方法一: Primary主机配置:
1、开启logging: alter database force logging; 2、开启归档: 如果没有开启,使用如下命令开启: shutdown immediate startup mount alter database archivelog;
编辑primary参数文件: 1、create pfile from spfile; 2、编辑pfile: 添加如下内容[斜体部分据实际情况而定]: DB_NAME=orcl DB_UNIQUE_NAME=primary LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)' LOG_ARCHIVE_DEST_1= 'LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary' LOG_ARCHIVE_DEST_2= 'SERVICE=standby_net LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc LOG_ARCHIVE_MAX_PROCESSES=30
LOG_FILE_NAME_CONVERT='/arch','/archlog'
FAL_SERVER=standby_net FAL_CLIENT=primary_net STANDBY_FILE_MANAGEMENT=AUTO
创建standby控制文件: alter database create standby controlfile as '/tmp/standby.ctl';
关闭主数据库,并对数据文件、控制文件及联机日志文件打包: shutdown immediate tar -cvf oradata.tar oradata/
为了方便,拷贝dbs下的口令文件和pfile至同一目录下: cp orapworcl $ORACLE_BASE cp initorcl.ora $ORACLE_BASE cp /tmp/standby.ctl $ORACLE_BASE
应用参数文件: create spfile from pfile;
启动数据库: startup/alter database open;
Standby备机配置:
ftp至primary,下载所有文件: ftp> bin 200 Switching to Binary mode. ftp> cd /u01/app/oracle ftp> mget oradata.tar ftp> mget orapworcl ftp> mget initorcl.ora ftp> mget standby.ctl
解压oradata.tar: cp oradata.tar $ORACLE_BASE cd $ORACLE_BASE tar -xvf $ORACLE_BASE
使用standby.ctl覆盖oradata中的三个控制文件: [oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control01.ctl [oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control02.ctl [oracle@standby ~]$ cp standby.ctl /u01/app/oracle/oradata/orcl/control03.ctl
复制口令文件,pfile至dbs目录下: cd cp orapworcl $ORACLE_HOME/dbs cp initorcl.ora $ORACLE_HOME/dbs
编辑从primary上拷贝过来的initorcl.ora文件[黑体为需要修改的地方]:
DB_NAME=orcl DB_UNIQUE_NAME=standby LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)' LOG_ARCHIVE_DEST_1= 'LOCATION=/archlog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby' LOG_ARCHIVE_DEST_2= 'SERVICE=primary_net LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc LOG_ARCHIVE_MAX_PROCESSES=30
LOG_FILE_NAME_CONVERT='/arch','/archlog'
FAL_SERVER=primary_net FAL_CLIENT=standby_net STANDBY_FILE_MANAGEMENT=AUTO
使参数文件生效: create spfile from pfile;
创建必要的目录: mkdir -p /u01/app/oracle/admin/orcl/adump mkdir -p /u01/app/oracle/admin/orcl/bdump mkdir -p /u01/app/oracle/admin/orcl/cdump mkdir -p /u01/app/oracle/admin/orcl/udump mkdir -p /u01/app/oracle/admin/orcl/dpdump mkdir -p /archlog
启动实例: startup
----------------------------------------------------------------------------------- 主备机各自修改listener.ora,并重启监听,使用netca配置tnsname,并在主备机上各自使用sqlplus进行测试。 tnsname(Oracle Net Service Name)的配置: primary和standby上相同: primary_net/standby_net[注:Net Service Name和db_unique_name不能相同,否则会包DGID mismatch的错误]
-----------------------------------------------------------------------------------
备机数据库切换至standby角色: shutdown abort startup mount; 检查归档传输是否正常 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
测试: 在主备机上分别使用如下命令测试结果是否相同: select max(sequence#) from v$archived_log; 在备机上使用如下命令测试日志是否被应用: SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
方法二: mkdir -p /tmp/oradata/orcl 使用RMAN拷贝数据文件: select 'copy datafile '||file_id ||' to '|| '''/tmp/oradata/orcl'||substr(file_name,instr(file_name,'/',-1))||'''' ||';' from dba_data_files order by 1; 在RMAN中执行以上语句执行的结果,再将生成的文件ftp至standby数据库,其他文件和非RMAN方式一样地拷贝。
相关阅读 更多 +