Oracle 11g DataGuard 配置详细说明
ORACLEG搭建DATAGUARD步骤

ORACLEG搭建DATAGUARD步骤搭建Oracle11g Data Guard需要以下步骤:1. 确保主/备数据库的版本和配置要求:首先,主数据库和备数据库的Oracle版本必须匹配,且需要安装和配置相同的操作系统。
同时,还需要确保主/备数据库的参数设置和硬件要求是一致的。
2. 创建主数据库:使用Oracle Database ConfigurationAssistant(DBCA)创建主数据库。
在创建数据库过程中,确保将主数据库配置为运行在归档日志模式下,以便能够启用数据保护模式并实现归档日志传送到备库。
3. 备份主数据库:在搭建Data Guard之前,需要对主数据库进行备份。
这样可以确保在搭建过程中出现任何问题时,能够快速还原主数据库。
4. 安装备数据库:在备数据库所在的服务器上安装Oracle软件,并确保配置与主数据库相同的操作系统和Oracle版本。
5. 配置备数据库参数:在备数据库上修改参数文件,以确保与主数据库保持一致。
将数据库配置为运行在归档日志模式下,并启用自动归档和数据保护模式。
还需要配置Log Archive Destination(LAD)和Fast Recovery Area(FRA)。
6. 启动备库模式:在备库上启动数据库,并将数据库模式设置为mount。
执行以下命令启动数据库:```startup mount;```7.创建备数据库控制文件:在备库上创建控制文件的物理副本,以便能够使用这些文件启动和恢复备库。
执行以下命令创建备数据库控制文件副本:```ALTER DATABASE CREATE STANDBY CONTROLFILE AS'path_to_control_file_copy';```8.将备库注册到主数据库:在主数据库上执行以下命令,将备库注册到主数据库:```ALTER SYSTEM SETLOG_ARCHIVE_CONFIG='DG_CONFIG=(primary_database,standby_datbase)';ALTER SYSTEM SETLOG_ARCHIVE_DEST_2='SERVICE=standby_database LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby_database';```9.复制主数据库备份到备数据库服务器上:将主数据库备份传输到备数据库所在的服务器。
Oracle 11g Data Guard 物理备库快速配置指南

Oracle 11g Data Guard 物理备库快速配置指南(上)June 26, 2012缘起最近做了10g和11g的物理备库配置实验,发现Data Guard 其实很容易,但是缺少好文档。
我是参考官方文档做的实验,觉得它写的不是很清楚的。
Google 出来两个pdf文档,读了觉得比官方文档强很多。
翻译下,也许会对某些朋友有用。
翻译的同时我也好更熟悉下这两个文档。
好久没翻译过英文了,可以顺便练练手。
原文档下载地址(墙外):Data Guard 是Oracle 数据库的一个功能,能够提供数据库的冗余。
冗余是通过创建一个备用(物理复制)数据库实现,备库最好是在不同的地理位置或者在不同的磁盘上。
备库通过应用主库上的变化来保持数据同步。
备库可以使用重做日志应用(物理备库)或SQL应用同步(逻辑备库)。
本文旨在说明Data Guard 的配置并不复杂,不需要特殊的技能或者培训才能学会搭建。
它将快速展示给读者搭建一个物理备库的过程。
我的目标是,即使你第一次接触Data Guard,刚考虑要使用它或担心它会不会很难配置,本文将帮助你快速搭建起一个正常运行起来的物理备库。
每种Oracle 高可用性工具都有其目的。
使用Data Guard 的理由有:∙整个数据库的冗余∙故障时的快速恢复∙故障后客户端能自动重连∙在备库运行备份∙较好的故障平均修复时间∙并不复杂有一些任何生产库都应该有的基本的设置。
其中一个就是归档模式。
对于生产库,这应该是一个明显的必须配置。
如果你的生产库没有适用归档模式,你要么需要马上开始读点书,要么你得有一个非常非常好的理由。
我不大确定谁真能找出一个理由,但任何准则都有例外。
如何修改你的数据库为归档模式:SQL> shutdown immediateSQL> startup mountSQL> alter database archivelog;SQL> alter database open;SQL> archive log list;))主库的TNS 名字文件配置:JED2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db2)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = JED2)))备库的TNS 名字文件配置:JED =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db1)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = JED)))然后在备库服务器上创建所需目录结构和修改相关文件。
最新Oracle 11g DataGuard 配置详细说明

Oracle 11g DataGuard 配置详细说明121.判断DataGuard是否安装3select * from v$option where parameter = 'Oracle Data Guard';42. 数据库环境说明5主库配置:IP:192.168.228.133(Oracle11g1),数据库名:db1,监听服6务名:db1pri,网络服务名:pri从库配置:IP:192.168.229.134(Oracle11g2),数据库名:db1,监听服78务名:db1dg ,网络服务名:dg9数据库程序安装路径:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs1011数据库存放路径:/oracledata/db1123.监听配置13在做oracle dataguard主从库配置时候,一定要配置静态监听,否则可14能出现监听服务解析错误,不能连接的问题,监听配置如下:15主库配置如下:16[oracle@Oracle11g1 admin]$ pwd17/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin 18[oracle@Oracle11g1 admin]$ cat listener.ora19# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/list2021ener.ora# Generated by Oracle configuration tools.2223WU =24(DESCRIPTION_LIST =25(DESCRIPTION =26(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 271521))28)29)30SID_LIST_WU =31(SID_LIST =32(SID_DESC =33(GLOBAL_DBNAME =db1pri)34(ORACLE_HOME =35/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)36(SID_NAME = db1)37)38)39ADR_BASE_WU = /oracleapp/oinstall/oracle40#注意这里的global_dbname=db1pri,SID_NAME=db1,这个SID_NAME 应与41你对外提供服务的 $ORACLE_SID 一致,即数据库:db142[oracle@Oracle11g1 admin]$ cat tnsnames.ora43# tnsnames.ora Network Configuration File:44/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tns 45names.ora46# Generated by Oracle configuration tools.47pri =48(DESCRIPTION =49(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521)) (CONNECT_DATA =5051(SERVER = DEDICATED)52(SERVICE_NAME = db1pri))5354)55dg =56(DESCRIPTION =57(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521)) 58(CONNECT_DATA =59(SERVER = DEDICATED)60(SERVICE_NAME = db1dg)61)62)63#tnsname pri 中的 SERVICE_NAME=db1pri ,这里的服务名为db1pri而64不是通常的 db1,因为在 listener.ora 中已经注册了db1pri,lsnrctl 启动65时会监听db1pri ,并对应到SID_NAME=db1上。
配置Oracle 11g Active Dataguard

配置Oracle 11g Active Dataguard一直以来都没有正儿八经的记录oracle 11g dataguard物理备库的创建步骤,11g 的logical standby还没有去测试,不过个人认为随着11g adg特性的推出,logical standby其实已经没有什么吸引力了!本文介绍了11g active dataguard的详细配置步骤和数据保护模式的修改!一:环境介绍主库IP地址:192.168.1.61/24操作系统版本:rhel5.4 64bit数据库版本:11.2.0.3 64bit数据库sid名:dg数据库名:dg数据库db_unique_name:dg1备库1 物理备库(只安装oracle数据库软件,无需建库)IP地址:192.168.1.62/24操作系统版本:rhel5.4 64bit数据库版本:11.2.0.3 64bit数据库sid名:dg数据库名:dg数据库db_unique_name:dg2二:修改主备库listener.ora,tnsnames.ora文件如下,备库根据自身情况修改1.[oracle@dg1 ~]$ cat $TNS_ADMIN/listener.ora2.SID_LIST_LISTENER =3. (SID_LIST =4. (SID_DESC =5. (GLOBAL_DBNAME = )6. (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db1)7. (SID_NAME = dg)8. )9. )10.11.LISTENER =12. (DESCRIPTION_LIST =13. (DESCRIPTION =14. (ADDRESS_LIST =15. (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))16. )17. )18. )19.20.[oracle@dg1 ~]$ cat $TNS_ADMIN/tnsnames.ora21.dg1 =22. (DESCRIPTION =23. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))24. (CONNECT_DATA =25. (SERVER = DEDICATED)26. (SERVICE_NAME = )27. )28. )29.30.dg2 =31. (DESCRIPTION =32. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))33. (CONNECT_DATA =34. (SERVER = DEDICATED)35. (SERVICE_NAME = )36. )37. )38.39.for_db =40. (DESCRIPTION =41. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))42. )三:在主库上修改dataguard配置相关的各个参数,各参数的具体含义可以参考oracle 在线文档1.SQL> alter database force logging;2.Database altered.3.4.SQL> alter system set db_unique_name='dg1'scope=spfile;5.System altered.6.7.SQL> alter system set log_archive_config='DG_CONFIG=(dg1,dg2)';8.System altered.9.10.SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog valid_for=11.12.(all_logfiles,primary_role) db_unique_name=dg1' scope=spfile;13.System altered.14.15.SQL> alter system set log_archive_dest_2='SERVICE=dg2 lgwr sync valid_for=(online_logfile,primary_role)16.17.db_unique_name=dg2';18.System altered.19.20.SQL> alter system set log_archive_dest_3='LOCATION=/u01/app/oracle/standbylog valid_for=21.22.(standby_logfile,standby_role) db_unique_name=dg1' scope=spfile;23.System altered.24.25.SQL> alter system set fal_client='dg1';26.System altered.27.28.SQL> alter system set fal_server='dg2';29.System altered.30.31.SQL> alter system set standby_file_management=auto;32.System altered.33.34.SQL> alter database add standby logfile group 4 '/u01/app/oracle/oradata/dg/standby04.log' size 50M;35.Database altered.36.37.SQL> alter database add standby logfile group 5 '/u01/app/oracle/oradata/dg/standby05.log' size 50M;38.Database altered.39.40.SQL> alter database add standby logfile group 6 '/u01/app/oracle/oradata/dg/standby06.log' size 50M;41.Database altered.42.43.SQL> alter database add standby logfile group 7 '/u01/app/oracle/oradata/dg/standby07.log' size 50M;44.Database altered.45.46.SQL> shutdown immediate47.Database closed.48.Database dismounted.49.ORACLE instance shut down.50.51.SQL> startup52.ORACLE instance started.53.54.Total System Global Area 417546240 bytes55.Fixed Size 2228944 bytes56.Variable Size 285216048 bytes57.Database Buffers 121634816 bytes58.Redo Buffers 8466432 bytes59.Database mounted.60.Database opened.61.62.SQL> alter system set local_listener='for_db';63.System altered.64.65.SQL> create pfile='/home/oracle/initdg.ora' from spfile;66.File created.三:将生成的pfile文件修改后传递到备库,注意红色字体部分[oracle@dg1 ~]$ cat /home/oracle/initdg.oradg.__db_cache_size=121634816dg.__java_pool_size=4194304dg.__large_pool_size=4194304dg.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmentdg.__pga_aggregate_target=167772160dg.__sga_target=251658240dg.__shared_io_pool_size=0dg.__shared_pool_size=109051904dg.__streams_pool_size=0*.audit_file_dest='/u01/app/oracle/admin/dg/adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='/u01/app/oracle/oradata/dg/control01.ctl','/u01/app/oracle/fast_recovery_area/dg/control02.ctl' *.db_block_size=8192*.db_domain=''*.db_name='dg'*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'*.db_recovery_file_dest_size=4322230272*.db_unique_name='dg2'*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgXDB)'*.fal_client='dg2'*.fal_server='dg1'*.local_listener='for_db'*.log_archive_config='DG_CONFIG=(dg1,dg2)'*.log_archive_dest_1='LOCATION=/u01/app/oracle/archivelogvalid_for=(all_logfiles,primary_role)db_unique_name=dg2'*.log_archive_dest_2='SERVICE=dg1 lgwr sync valid_for=(online_logfile,primary_role)db_unique_name=dg1'*.log_archive_dest_3='LOCATION=/u01/app/oracle/standbylogvalid_for=(standby_logfile,standby_role)db_unique_name=dg2'*.log_archive_format='%t_%s_%r.dbf'*.memory_target=419430400*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.standby_file_management='AUTO'*.undo_tablespace='UNDOTBS1'[oracle@dg1 ~]$ scp initdg.ora 192.168.1.62:/home/oracle/四:将备库启动到nomount状态,然后连接主库进行duplicate操作1.[oracle@dg2 ~]$ lsnrctl start2.[oracle@dg2 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwdg password=123456entries=53.[oracle@dg2 ~]$ sqlplus /nolog4.SQL*Plus: Release 11.2.0.3.0 Production on Sun Apr 22 13:36:53 20125.Copyright (c) 1982, 2011, Oracle. All rights reserved.6.7.SQL> conn /as sysdba8.Connected to an idle instance.9.SQL> create spfile from pfile='/home/oracle/initdg.ora';10.File created.11.12.SQL> startup nomount13.ORACLE instance started.14.15.Total System Global Area 417546240 bytes16.Fixed Size 2228944 bytes17.Variable Size 285216048 bytes18.Database Buffers 121634816 bytes19.Redo Buffers 8466432 bytes[oracle@dg2 ~]$ rman target sys/123456@dg1 auxiliary sys/123456@dg2Recovery Manager: Release 11.2.0.3.0 - Production on Sun Apr 22 13:38:33 2012Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database: DG (DBID=1694605607)connected to auxiliary database: DG (not mounted)RMAN> duplicate target database for standby nofilenamecheck from active database;Starting Duplicate Db at 2012-04-22-13:39:25using target database control file instead of recovery catalogallocated channel: ORA_AUX_DISK_1channel ORA_AUX_DISK_1: SID=134 device type=DISKcontents of Memory Script:{backup as copy reusetargetfile '/u01/app/oracle/product/11.2.0/db1/dbs/orapwdg' auxiliary format'/u01/app/oracle/product/11.2.0/db1/dbs/orapwdg' ;}executing Memory ScriptStarting backup at 2012-04-22-13:39:26allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=19 device type=DISKFinished backup at 2012-04-22-13:39:28contents of Memory Script:{backup as copy current controlfile for standby auxiliary format'/u01/app/oracle/oradata/dg/control01.ctl';restore clone controlfile to '/u01/app/oracle/fast_recovery_area/dg/control02.ctl' from'/u01/app/oracle/oradata/dg/control01.ctl';}executing Memory ScriptStarting backup at 2012-04-22-13:39:29using channel ORA_DISK_1channel ORA_DISK_1: starting datafile copycopying standby control fileoutput file name=/u01/app/oracle/product/11.2.0/db1/dbs/snapcf_dg.f tag=TAG20120422T133929 RECID=1STAMP=781277970channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03Finished backup at 2012-04-22-13:39:32Starting restore at 2012-04-22-13:39:32using channel ORA_AUX_DISK_1channel ORA_AUX_DISK_1: copied control file copyFinished restore at 2012-04-22-13:39:34contents of Memory Script:{sql clone 'alter database mount standby database';}executing Memory Scriptsql statement: alter database mount standby databasecontents of Memory Script:{set newname for tempfile 1 to"/u01/app/oracle/oradata/dg/temp01.dbf";switch clone tempfile all;set newname for datafile 1 to"/u01/app/oracle/oradata/dg/system01.dbf";set newname for datafile 2 to"/u01/app/oracle/oradata/dg/sysaux01.dbf";set newname for datafile 3 to"/u01/app/oracle/oradata/dg/undotbs01.dbf";set newname for datafile 4 to"/u01/app/oracle/oradata/dg/users01.dbf";backup as copy reusedatafile 1 auxiliary format"/u01/app/oracle/oradata/dg/system01.dbf" datafile2 auxiliary format"/u01/app/oracle/oradata/dg/sysaux01.dbf" datafile3 auxiliary format"/u01/app/oracle/oradata/dg/undotbs01.dbf" datafile4 auxiliary format"/u01/app/oracle/oradata/dg/users01.dbf" ;sql 'alter system archive log current';}executing Memory Scriptexecuting command: SET NEWNAMErenamed tempfile 1 to /u01/app/oracle/oradata/dg/temp01.dbf in control fileexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting backup at 2012-04-22-13:39:42using channel ORA_DISK_1channel ORA_DISK_1: starting datafile copyinput datafile file number=00001 name=/u01/app/oracle/oradata/dg/system01.dbf output file name=/u01/app/oracle/oradata/dg/system01.dbf tag=TAG20120422T133943 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:03:06channel ORA_DISK_1: starting datafile copyinput datafile file number=00002 name=/u01/app/oracle/oradata/dg/sysaux01.dbf output file name=/u01/app/oracle/oradata/dg/sysaux01.dbf tag=TAG20120422T133943 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:55channel ORA_DISK_1: starting datafile copyinput datafile file number=00003 name=/u01/app/oracle/oradata/dg/undotbs01.dbf output file name=/u01/app/oracle/oradata/dg/undotbs01.dbf tag=TAG20120422T133943 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15channel ORA_DISK_1: starting datafile copyinput datafile file number=00004 name=/u01/app/oracle/oradata/dg/users01.dbfoutput file name=/u01/app/oracle/oradata/dg/users01.dbf tag=TAG20120422T133943channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03Finished backup at 2012-04-22-13:45:05sql statement: alter system archive log currentcontents of Memory Script:{switch clone datafile all;}executing Memory Scriptdatafile 1 switched to datafile copyinput datafile copy RECID=1 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/system01.dbf datafile 2 switched to datafile copyinput datafile copy RECID=2 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/sysaux01.dbf datafile 3 switched to datafile copyinput datafile copy RECID=3 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/undotbs01.dbf datafile 4 switched to datafile copyinput datafile copy RECID=4 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/users01.dbf Finished Duplicate Db at 2012-04-22-13:45:29RMAN> exitRecovery Manager complete.五:将备库置于active dataguard模式下1.[oracle@dg2 ~]$ sqlplus /nolog2.SQL*Plus: Release 11.2.0.3.0 Production on Sun Apr 22 13:47:17 20123.Copyright (c) 1982, 2011, Oracle. All rights reserved.4.5.SQL> conn /as sysdba6.Connected.7.SQL> select open_mode,database_role,db_unique_name from v$database; 8.9.OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME10.-------------------- ---------------- ------------------------------11.MOUNTED PHYSICAL STANDBY dg212.13.SQL> alter database open;14.Database altered.15.16.SQL> alter database recover managed standby database using current logfile disconnect from session;17.Database altered.18.19.SQL> select open_mode,database_role,db_unique_name from v$database;20.21.OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME22.-------------------- ---------------- ------------------------------23.READ ONLY WITH APPLY PHYSICAL STANDBY dg224.25.SQL> select status from v$standby_log;26.27.STATUS28.----------29.ACTIVE30.UNASSIGNED31.UNASSIGNED32.UNASSIGNED33.34.SQL> select member from v$logfile;35.36.MEMBER37.--------------------------------------------------------------------------------38./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_3_7s76qbhq_.log39./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_2_7s76q94s_.log40./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_1_7s76q5w1_.log41./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_4_7s76qdpk_.log42./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_5_7s76qhmy_.log43./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_6_7s76qlhz_.log44./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_7_7s76qp99_.log45.7 rows selected.六:修改dataguard的数据保护模式为最高可用性模式,根据oracle文档的解释,最高可用性数据保护模式需要先满足以下几个条件1.SQL> select db_unique_name,protection_mode,protection_level from v$database;2.3.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL4.------------------------------ -------------------- --------------------5.dg2 MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE6.7.8.9.SQL> select db_unique_name,protection_mode,protection_level from v$database;10.11.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL12.------------------------------ -------------------- --------------------13.dg1 MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE14.15.16.SQL> alter database set standby database to maximize availability;17.Database altered.18.19.SQL> select db_unique_name,protection_mode,protection_level from v$database;20.21.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL22.------------------------------ -------------------- --------------------23.dg1 MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY24.25.26.SQL> select db_unique_name,protection_mode,protection_level from v$database;27.28.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL29.------------------------------ -------------------- --------------------30.dg2 MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY31.32.33.将备库shutdown后,主库的PROTECTION_LEVEL将变为RESYNCHRONIZATION34.SQL> select db_unique_name,protection_mode,protection_level from v$database;35.36.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL37.------------------------------ -------------------- --------------------38.dg2 MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY39.40.SQL> alter database recover managed standby database cancel;41.Database altered.42.43.SQL> shutdown immediate44.Database closed.45.Database dismounted.46.ORACLE instance shut down.47.48.SQL> select db_unique_name,protection_mode,protection_level from v$database;49.50.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL51.------------------------------ -------------------- --------------------52.dg1 MAXIMUM AVAILABILITY RESYNCHRONIZATION。
Oracle 11g Dataguard 物理备库配置(二)之Active Dataguard测试

Oracle 11g Dataguard 物理备库配置(二)之Active Dataguard测试Oracle 11g Dataguard 物理备库配置系列文档Oracle 11g Dataguard 物理备库配置(一)之duplicate创建Oracle 11g Dataguard 物理备库配置(二)之Active Dataguard 测试Oracle 11g Dataguard 物理备库配置(三)之Dataguard broker 配置Oracle 11g Dataguard 物理备库配置(四)之broker snapshot standby测试Oracle 11g Dataguard 物理备库配置(五)之broker switchover测试Oracle 11g Dataguard 物理备库配置(六)之broker fastfailover测试Oracle 11g Dataguard 配置学习小结/703525/1280139将备库置于Active DataGuard模式在Oracle 11g之前,物理备库(physical Standby)在应用redo 的时候,数据库需要处于mount状态。
从11g开始,应用redo 的时候,物理备库可以处于read-only模式,这就称为Active Data Guard,这种状态可以实现实时查询功能。
1. 备库上操作1) 查看备库当前状态mountSQL> select open_mode,database_role,db_unique_name fromv$database;OPEN_MODE DATABASE_ROLEDB_UNIQUE_NAME-------------------- ---------------- ------------------------------ MOUNTED PHYSICAL STANDBY slave 2) 取消备库的自动恢复SQL> alter database recover managed standby database cancel;数据库已更改。
Oracle 11g DataGuard 配置详细说明

Oracle 11g DataGuard 配置详细说明1.判断DataGuard是否安装select * from v$option where parameter = 'Oracle Data Guard';2. 数据库环境说明主库配置:IP:192.168.228.133(Oracle11g1),数据库名:db1,监听服务名:db1pri,网络服务名:pri从库配置:IP:192.168.229.134(Oracle11g2),数据库名:db1,监听服务名:db1dg ,网络服务名:dg数据库程序安装路径:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs数据库存放路径:/oracledata/db13.监听配置在做oracle dataguard主从库配置时候,一定要配置静态监听,否则可能出现监听服务解析错误,不能连接的问题,监听配置如下:主库配置如下:[oracle@Oracle11g1 admin]$ pwd/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin[oracle@Oracle11g1 admin]$ cat listener.ora# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.WU =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))))SID_LIST_WU =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME =db1pri)(ORACLE_HOME = /oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)(SID_NAME = db1)))ADR_BASE_WU = /oracleapp/oinstall/oracle#注意这里的global_dbname=db1pri,SID_NAME=db1,这个SID_NAME 应与你对外提供服务的 $ORACLE_SID 一致,即数据库:db1[oracle@Oracle11g1 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools.pri =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1pri)))dg =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1dg)))#tnsname pri中的 SERVICE_NAME=db1pri ,这里的服务名为db1pri而不是通常的 db1,因为在 listener.ora 中已经注册了db1pri,lsnrctl 启动时会监听db1pri ,并对应到SID_NAME=db1上。
(完整版)oracle11g dataguard 完全手册
oracle11g dataguard 完全手册一、前言:网络上关于dataguard的配置文章很多,但是很多打着oracle11g的文章实际都是只能在9 10 上运行,比如FAL_CLIENT在11g中已经废弃,但是现在网络上的文章都是没有标注这一点。
而且对于具体含义语焉不详对于新手只能知其然而不知其所以然。
这篇文章我就想让像我这样的人对于dataguard配置不仅仅知道怎么配置,还要知道为什么需要这样配置,这样的效果才是最好的。
这篇文章不仅仅是记录如何配置,还介绍了为什么是这样,以及注意要点,我希望这个文章可以作为进行dataguard配置的一个参考手册。
二、前提1.主库是归档模式:如果我们不清楚为什么是归档模式,那我们就应该也不会清楚dataguard是用来做什么的。
透过很多修饰的官方语言,我们需要明确DG(dataguard简称,后同)实际上的作用就是用来高可用。
而实现原理就是从主库获取数据到从库,在主库发生异常的时候,从库接管主库,完成身份的变化。
可以一个主库,最多9个从库。
同时分为逻辑standby和物理standby这里我们讨论的是物理standby.一旦创建并配置成standby 后,dg 负责传输primary数据库redo data 到standby 数据库,standby 数据库通过应用接收到的redo data 保持与primary 数据库的事务一致。
这下清楚了吧,需要保证主从库一致,需要传输archive log和redo log到从库,如果不是归档模式无法保证主从库的数据一致。
2.从库只需要安装数据库软件,数据从主库传输后完成。
3.很多人说11g有了active dataguard(ADG),逻辑standby 实际上已经没什么用处了。
4.主从库硬件最好一致。
oracle数据库版本需要一致。
(1)内存检查项:# grep MemTotal /proc/meminfo交换分区检查项:如果内存在1-2G,swap是1.5倍;2-16G,1倍;超过16G,设置为16G即可。
Oracle_DataGuard 11g主备都是单机模式
完整版Oracle DataGuard文档目录Oracle DataGuard的三种模式分析 (3)Oracle DataGuard日志传输 (5)1、主库准备工作 (7)1.1、检查数据库是否支持Data Guard(企业版才支持),是否归档模式,Enable force logging (7)1.2、如果主库没有密码文件则建立密码文件,从而可以OS验证的方式登陆 (8)1.3、配置standby redolog(最佳性能模式可以忽略,如果将来变成备库且要转为其它两种模式则要建立) (8)1.4、设置主库初始化参数 (9)1.5、备份主库数据文件 (10)1.6、在主库上建立备库控制文件(控制文件通常需要有多份,手工将文件复制几份) (10)1.7、为备库准备init参数 (11)1.8、拷贝上面生成的文件backup_%T.bak、stdby_control01/02/03.ctl、initPHYSTDBY.ora到备库所在主机 (12)2、建立备库 (12)2.1、设置环境变量并建立备库一些必需目录 (12)2.2、在备库主机上生成密码文件,且sys密码和主库得一致 (13)2.4、在备库上建立spfile (13)2.5、启动物理备库 (14)2.7、配置standby redolog(最佳性能模式可以忽略,如果要转为其它两种模式则要建立) (14)2.8、在备库上,启动redo apply (14)3、主备库各参数文件内容 (15)3.1、主备库listener.ora一样,如果有不一样也是host不一样 (15)3.2、主备库tnsnames.ora一样,如果有不一样也是host和port不一样 (16)3.3、init$ORACLE_SID.ora (17)4、主库归档测试 (20)5、修改主库DataGuard保护模式 (22)5.1、LGWR传送日志的配置方法: (22)5.2、修改主库DataGuard保护模式 (22)5.3、主库修改初始化参数(主库db_wending操作) (22)5.4、主库通过命令行修改数据保护模式,重启主数据库(主库db_wending操作) (22)5.5、重启主库(主库操作) (23)5.6、查看主库保护模式是否变更成功(主库操作) (23)5.7、修改备库的log_archive_dest_2初始化参数方便数据库角色切换(备库操作) (24)5.8、查看备库数据保护模式(备库操作) (24)5.9、验证一下“最高可用性”切换成果 (24)6、DataGuard关启状态 (26)7、主备数据库切换 (27)7.1、正常切换: (27)7.2、非正常切换:(即主服务器当机的情况)启动failover (27)8、常用维护SQL (27)Oracle DataGuard的三种模式分析最大保护(Maximum Protection)最大可用(Maximum Availability)最大性能(Maximum performance)(默认)◆最大可用模式Maximum AvailabilityMaximum Availability模式下,事务只有在所有相关日志都被传输到至少一个Standby端日志的时候,才可以正式提交。
11gdataguard最大性能模式部署
11gdataguard最大性能模式部署记录下在一台主机上实现部署Oracle11g物理Active Data Guard的全过程,部署完毕后备库处于默认的最大性能模式。
同时使用了一下11g的Active Data Guard实时查询(Real-time query)特性。
1.Oracle 11g Data Guard主库配置过程:确保主库处于FORCE LOGGING模式确认方法如下:1查看当前数据库是否处于FORCE LOGGING模式sys@ora11g> col force_logging for a15sys@ora11g> select force_logging from v$database;FORCE_LOGGING---------------NO如果不是,打开force_logging:此处表明数据库运行在非FORCE LOGGING模式。
(2)调整数据库为FORCE LOGGING模式sys@ora11g> alter database force logging;Database altered.2.配置Redo传输认证Data Guard使用Oracle Net会话在主库和备库之间传输redo数据和控制信息,因此需要基于SSL(Secure Sockets Layer )或者密码文件进行认证。
当SSL认证无法满足时使用密码文件进行认证,因此需要确保所有备库的密码文件与主库保持一致。
当然在生产环境中,我们都是通过拷贝主库的密码文件进行的,所以此步骤省略3.配置主库用于接收Redo数据此步骤是可选步骤,Oracle建议在配置主库的时候就预见到总有一天它会成为备库(例如进行主备库之间的switchover切换),要求当主库成为备库之后不需要做其他配置就可以顺畅地接收主库传过来的Redo数据。
这也是Oracle最佳实践的一种体现。
1)查看日志组日志成员大小创建的Standby Redo Log大小要与主库的Redo大小保持一致sys@ora11g> select group#, bytes from v$log;GROUP# BYTES---------- ----------1 524288002 524288003 52428800此时主库每组日志的日志成员大小都是50M。
Oracle11gDataGuard配置EM
Oracle11gDataGuard配置EM
主库执行如下操作
1、在数据库主机hosts文件添加主机地址映射,解决EM监听程序状态显示为关闭的问题。
2、配置系统环境变量如下
ORACLE_HOSTNAME=PC-NAME
ORACLE_SID=orcl
ORACLE_UNQNAME=orcl
CMD窗口执行
set ORACLE_HOSTNAME=PC-NAME
set ORACLE_SID=orcl
set ORACLE_UNQNAME=orcl
3、连接数据库,使用如下命令解锁sysman用户。
4、alter user sysman account unlock;
5、使用emca -deconfig dbcontrol db命令删除配置
6、使用emca -repos drop删除repository
7、使用emca -config dbcontrol db -repos create 创建Database Control。
8、根据提示,输入数据库信息,待创建完毕,稍等片刻,等待EM启动完毕,根据提示的路径访问EM。
访问地址参考:https://主库IP:5500/em
注:①如果需要访问备库的EM,需要将备库切换成主库,再进行配置,配置后即可进行访问。
②进行主备切换后,需要对EM重新配置。
常用命令参考
重新配置语句emca -config dbcontrol db
重新配置端口命令
emca -reconfig ports -dbcontrol_http_port 1159
emca -reconfig ports -agent_port 3939。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 11g DataGuard 配置详细说明1.判断DataGuard是否安装select * from v$option where parameter = 'Oracle Data Guard';2. 数据库环境说明主库配置:IP:192.168.228.133(Oracle11g1),数据库名:db1,监听服务名:db1pri,网络服务名:pri从库配置:IP:192.168.229.134(Oracle11g2),数据库名:db1,监听服务名:db1dg ,网络服务名:dg数据库程序安装路径:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs数据库存放路径:/oracledata/db13.监听配置在做oracle dataguard主从库配置时候,一定要配置静态监听,否则可能出现监听服务解析错误,不能连接的问题,监听配置如下:主库配置如下:[oracle@Oracle11g1 admin]$ pwd/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin[oracle@Oracle11g1 admin]$ cat listener.ora# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.WU =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))))SID_LIST_WU =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME =db1pri)(ORACLE_HOME = /oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)(SID_NAME = db1)))ADR_BASE_WU = /oracleapp/oinstall/oracle#注意这里的global_dbname=db1pri,SID_NAME=db1,这个SID_NAME 应与你对外提供服务的 $ORACLE_SID 一致,即数据库:db1[oracle@Oracle11g1 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools.pri =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1pri)))dg =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1dg)))#tnsname pri中的 SERVICE_NAME=db1pri ,这里的服务名为db1pri而不是通常的 db1,因为在 listener.ora 中已经注册了db1pri,lsnrctl 启动时会监听db1pri ,并对应到SID_NAME=db1上。
此处的pri,dg为数据库参数文件中(initdb1.ora)的DB_UNIQUE_NAME的名字,即对外提供的服务名。
从库配置如下:[oracle@Oracle11g2 admin]$ cat listener.ora# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools.WU =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))))SID_LIST_WU =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = db1dg)(ORACLE_HOME = /oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)(SID_NAME = db1)))ADR_BASE_WU = /oracleapp/oinstall/oracle[oracle@Oracle11g2 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools.pri =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1pri)))dg =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1dg)))分别用tnsping命令测试监听服务是否可用,正常显示信息如下:(tnsping对方的时候,有可能linux防火墙限制了,会提示TNS-12560: TNS: 协议适配器错误)[oracle@Oracle11g2 dbs]$ tnsping dgTNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 27-MAY-2014 15:39:34 Copyright (c) 1997, 2009, Oracle. All rights reserved.Used parameter files:Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db1dg)))OK (10 msec)[oracle@Oracle11g2 dbs]$ tnsping priTNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 27-MAY-2014 15:40:16 Copyright (c) 1997, 2009, Oracle. All rights reserved.Used parameter files:Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =db1 pri)))OK (10 msec)[oracle@Oracle11g2 dbs]$4.主库前期准备设置强制写日志[oracle@Oracle11g2 admin]$ sqlplus / as sysdbaSQL> select FORCE_LOGGING from v$database;NOSQL> alter database force logging;SQL> select FORCE_LOGGING from v$database;YES5. 创建口令文件通过dbca命令创建的数据库会自动在/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs目录下创建orapwdb1密码文件,也可以通过如下命令创建[oracle@Oracle11g1 admin]$orapwdfile=/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/orapwdb1 password=oracle entries=5密码文件为orapw(数据库ID),这里为orapwdb1.6.修改主库初始化参数在initdb1.ora文件下增加如下参数:[oracle@Oracle11g2 dbs]$ vim initdb1.ora*.db_name='db1' #注意保持同一个DataGuard中所有数据库DB_NAME相同(物理standby dataguard)。
*.DB_UNIQUE_NAME=pri #为每一个数据库指定一个唯一的名称,该参数一经指定不会再发生变化,除非你主动修改它。
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(pri,dg)' #(启动db接受或发送redo data,包括所有库的db_unique_name)*.LOG_ARCHIVE_DEST_1= 'LOCATION=/oracleapp/oinstall/oracle/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pri' #(主库归档目的地)*.LOG_ARCHIVE_DEST_2= 'SERVICE=dg LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg' #(当该库充当主库角色时,设置物理备库redo data的传输目的地,两种归档方式LGWR ARCn,ARCn只支持最高性能的保护模式;ASYNC异步传输,SYNC同步传输)#*.LOG_ARCHIVE_MAX_PROCESSES=5 (指定归档进程的数量(1-30),默认值通常是4。