当前位置:文档之家› Oracle_dataguard__11G_配置与维护手册

Oracle_dataguard__11G_配置与维护手册

1.判断DataGuard是否安装select * from v$option where parameter = 'Oracle Data Guard';2.网络配置192.168.1.10(orcl)------------------------------------192.168.1.20(dg)3.监听配置主库[oracle@node1 ~]$cd/u01/app/product/11.2.0/db_1/network/admin [oracle@node1 admin]$cat listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)) ))[oracle@node1 admin]$cat tnsnames.oraORCL=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl)))DG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = dg)))备库[oracle@node1 admin]$cat listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)) ))[oracle@node1 admin]$cat tnsnames.oraORCL=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl)))DG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = dg)))4.主库前期准备设置强制写日志SQL> select FORCE_LOGGING fromv$database;NOSQL>alter databaseforce logging;SQL>select FORCE_LOGGING from v$database;YES5.创建口令文件orapwdfile=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=56.修改主库初始化参数创建主库pfilesql> create pfile from spfile;修改pfileDB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,dg)'LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_2= 'SERVICE=dg LGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dg'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arcFAL_SERVER=dgFAL_CLIENT=orclSTANDBY_FILE_MANAGEMENT=AUTOPfile 拷贝到备库上scp–rp/u01/app/product/11.2.0/db_1/dbs/initorcl.oranode2:/u01/app/product/11.2 .0/db_1/dbs/7.修改数据库运行在归档模式下SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;8.创建备份库需要的控制文件创建控制文件Shutdown immediateSTARTUP MOUNT;ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/orcl.ctl';ALTER DATABASE OPEN;创建主库pfileShutdown immediatestartuppfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora'sql> create spfile from pfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora';(先把原来的干掉)shutdown immediate;startup9.备份生产数据库scp -rp /u01/oradata/ORCLnode2:/u01/oradata/scp–rp /u01/app/admin/orcl node2:/u01/app/admin(记得在备库创建admin)10.修改备库pfileDB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,dg)'LOG_ARCHIVE_FORMAT=log%t_%s_%r.arcLOG_ARCHIVE_DEST_1='LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=dg'LOG_ARCHIVE_DEST_2='SERVICE=orclASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEFAL_SERVER=orclFAL_CLIENT=dgSTANDBY_FILE_MANAGEMENT=AUTO11.将控制文件scp-rp/tmp/dg.ctl node2:/u01/oradata/ORCL/controlfile/scp-rp/tmp/dg.ctl node2:/u01/flash_recovery_area/orcl/controlfile/12.在备库上创建口令文件orapwdfile=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=513.在备库上创建spfileShutdown immediatestartuppfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora'CREATE SPFILE FROM PFILE;14.启动物理备用数据库STARTUP MOUNT;15.配置Standby Redo Log在两边都配置standby redo log在主库查看日志组的数量和每个日志文件的大小SQL> SELECT GROUP#, BYTES FROM V$LOG;在备库库查看日志组的数量和每个日志文件的大小SQL> SELECT GROUP#, BYTES FROM V$STANDBY_LOG;创建日志组和redo log文件SQL> ALTER DATABASE ADD STANDBY LOGFILEgroup 4('/oracle/dbs/slog1.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group 5 ('/oracle/dbs/slog2.rdo') SIZE 50M; SQL>ALTER DATABASE ADD STANDBY LOGFILE group6 ('/oracle/dbs/slog3.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group7('/oracle/dbs/slog4.rdo') SIZE 50M;16. Start Redo Apply---备机启动实时同步重启备机机器后,oracle 在备机执行实时同步:startupALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;在备机执行取消实时同步:alter database recover managed standby database cancel;查看哪些归档日志被APPLY了,在主、备库都可以查,判断主、备库是否数据同步的一致性:SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SELECTmax(SEQUENCE#) FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;查看是否使用Real-Time apply:Select recovery_mode from v$archive_dest_status;主库:SQL> Select recovery_mode from v$archive_dest_status;RECOVERY_MODE-----------------------IDLEMANAGED REAL TIME APPLYIDLE备库:SQL> Select recovery_mode from v$archive_dest_status;RECOVERY_MODE-----------------------MANAGED REAL TIME APPLYIDLE在主库强制日志切换到当前的online redo log file.ALTER SYSTEMARCHIVE LOG CURRENT;在备库查看新的被归档的redo dataSELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;在备库查看接收到的被应用的redoSQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;查看数据库的角色selectdatabase_role,protection_mode,protection_level from v$database;主备库切换,先把所有应用都关掉,所有连接数据库的都关掉。

相关主题