最新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 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_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。
oracle11g-datagurd安装配置
(SERVICE_NAME = targetdb)
(SID_NAME = targetdb)
(ORACLE_HOME = /local/oracle/OraHome1))
(ORACLE_HOME = /local/oracle/OraHome1)
)
(SID_DESC =
(GLOBAL_DBNAME = primarydb_DGMGRL)
(SERVICE_NAME = primarydb)
(SID_NAME = primarydb)
(ORACLE_HOME = /local/oracle/OraHome1)
)
)
ADR_BASE_LISTENER = /local/oracle
targetdb listener.ora
=====================================================================
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate auxiliary channel stby4 type disk;
(SERVICE_NAME = targetdb)(UR=A)
)
)
% tnsping beijing
% tnsping CHICAGO
确保主数据库是 archivelog 模式。
shutdown immediate;
startup mount
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。
DATAGUARD配置参数详细解释
DATAGUARD配置参数详细解释
一、数据库参数
1.特定于数据库的参数
db_unique_name
功能:定义数据库唯一名称。
含义:该参数定义数据库唯一名称,该参数不应更改,否则可能会导
致一系列问题。
该参数必须在创建数据库时设置,并且不能更改。
2.remote_login_passwordfile
功能:指定远程用户的登录认证文件。
含义:此参数指定远程用户的登录认证文件,在数据库定义期间,远
程用户可以使用该文件登录数据库。
可以使用此参数将一些远程用户的标识指定为NONE,以确保只有本
地用户可以连接,而不允许远程用户连接。
3.log_archive_dest_state_2
功能:指定第二个归档日志目的地状态。
含义:此参数指定第二个归档日志目的地状态,如果设置为enable,则表示活动日志会被归档到该备用目的地,如果设置为disable,则表示
活动日志不会被归档到该备用目的地。
4.fal_server
功能:指定应用程序服务器名称。
含义:此参数指定应用程序服务器名称,例如,Fal_server等。
这些服务器用于远程归档日志,应用服务器可以是一台服务器,也可以是一组服务器。
5.log_archive_dest
功能:指定将归档日志文件发送到哪里。
含义:此参数指定将归档日志文件发送到哪里,可以是一个本地文件路径,也可以是一个远程服务器的文件路径。
dataguard快速配置
Oracle11g Dataguard配置Hostname Primary IP192.168.3.88db_name primaryHostname Standby IP192.168.2.88db_name standby下面我主要分四大块配置1.Configure Oracle Net主库primary配置listener.oraSID_LIST_LISTENER=(SID_DESC=(SID_NAME=primary)(ORACLE_HOME=/home/app/oracle/product/11.2.0/db_1)(GLOBAL_DBNAME=primary))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.88)(PORT=1521)) ))ADR_BASE_LISTENER=/home/app/oracleTnsnames.oraPRIMARY=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=primary)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=primary.primary)))primary=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.88)(PORT=1521)) (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=primary)))standby=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.88)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=primary)))备库standby配置Listener.ora----------------------------------------------------------------------SID_LIST_LISTENER=(SID_DESC=(SID_NAME=primary)(ORACLE_HOME=/home/app/oracle/product/11.2.0/db_1)(GLOBAL_DBNAME=primary))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.88)(PORT=1521)) ))ADR_BASE_LISTENER=/home/app/oracleTnsnames.ora______________________________________________________________________________ PRIMARY=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=standby)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=standby.standby)))primary=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.88)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=primary)))standby=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.88)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=primary)))2.Configure primary databaseSQL>alter database force logging;把数据库置于force logging状态,就是不管什么操作都要强制的给它记日志SQL>select name,force_logging from v$database;检查状态(YES为强制)如果需要在主库添加或者删除数据文件时,这些文件也会在备份添加或删除,使用如下:SQL>alter system set standy_file_management='AUTO';默认此参数是manual手工方式SQL>show parameter standbySQL>create pfile from spfile;SQL>orapwd file=orapwprimary password=oracle entries=5修改initprimary.ora文件添加以下参数log_archive_dest_1='LOCATION=/home/app/oracle/oradata/archive'log_archive_dest_state_1=enablelog_archive_dest_2='SERVICE=standby'log_archive_dest_state_2=enablelog_archive_start=truelog_archive_format='%t_%s_%r.arc'log_archive_max_processes=2fal_server=standbyfal_client=primarydb_unique_name=primarySQL>archive log list#查看数据库是否处于归档模式SQL>shutdown immediateSQL>startup mount;#打开控制文件不打开数据文件SQL>alter database archivelog;#启用存档模式SQL>alter database create standby controlfile as‘/home/app/oracle/oradata/primary/standby.ctl’SQL>alter database open;#将数据文件打开SQL>shutdown immediateSQL>quit3.Configure physical standby database将主库/home/app/oracle/oradata/primary/home/app/oracle/adminInitprimary.oraOrapwprimary目录或文件拷贝到备库用standby.ctl覆盖control01.ctl control02.ctl文件修改initprimary.ora以下配置log_archive_dest_1='LOCATION=/home/app/oracle/oradata/archive'log_archive_dest_state_1=enablelog_archive_dest_2='SERVICE=primary'log_archive_dest_state_2=enablelog_archive_start=truelog_archive_format='%t_%s_%r.arc'log_archive_max_processes=2fal_server=primaryfal_client=standbydb_unique_name=standby然后启动备库,启动备库之前先启动主库rm-rf spfileprimary.ora主库SQL>create spfile from pfile;SQL>startup备库SQL>create spfile from pfile;Export ORACLE_SID=primarySQL>startup nomount;SQL>alter database mount standby databaseSQL>select name,database_role from v$database;SQL>alter database recover managed standby database disconnect from session;接受主库来的redo数据主库SQL>alter system switch logfile;加速传输备库SQL>select sequence#,first_time,next_time from v$archived_log order by sequence#; #接受到的数据SQL>select sequence#,applied from v$archived_log order by sequence#;standby处于两种模式,这两种模式是互斥的,只知其一,在redo接受状态下是不能查询数据,必须敲以下语句SQL>alter database recover managed standby database cancel;SQL>alter database open read only;然后查看表数据!检查是否成功:主库上查看日志传送情况:sql>select dest_name,status,error from v$archive_dest;应该log_archive_dest_1和2状态应该是valid4.Testing&troubleshooting。
oracle11g_dataguard配置案例
配置Oracle 11g Active Dataguard一.环境介绍主库为生产库,备库只安装数据库软件,不创建数据库。
主库和备库的DB_NAME必须一致,DB_UNIQUE_NAME必须不同。
二.主数据库操作步骤1.检查数据库是否有DATAGUARD功能SQL>select * from v$option where parameter = 'Oracle Data Guard';如果结果是true表示已经安装可以配置,否则需要安装相应组件。
2.检查主库是否开启了归档SQL>select LOG_MODE from v$database;如果没有开启需要切换数据库到归档模式SQL>shutdown immediate;SQL>startup mount;SQL>alter database archivelog;SQL>alter database open;3.检查主库是否开始强制日志SQL>select FORCE_LOGGING from v$database;如果没有开启需要执行命令SQL>alter database force logging;4.检查主库db_name,db_unique_name参数注意在DG中主库和备库的db_name是需要一致的,db_unique_name是不能一致的,需要区分开。
SQL>show parameter db_name;这里主库db_name是dg,备库db_name也是dg,保持一致SQL>show parameter db_unique_name;这里主库db_unique_name是dg,备库db_unique_name是dg1,需要区分开。
5.修改主库tnsnames.ora,listener.ora文件(1).找到主库的tns文件和监听文件并修改tns文件和监听文件默认路径都在$ORACLE_HOME/network/admin/[oracle@h2 ~]$ cd $ORACLE_HOME/network/admin/tnsnames.ora添加备库网络名dg1 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.33)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = dg1)))dg =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dg)))listener.ora增加以下静态监听配置SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /u01/oracle)(PROGRAM = extproc))(SID_DESC =(GLOBAL DBNAME = dg)(ORACLE_HOME = /u01/oracle)(SID_NAME = dg)))(2).复制主库tnsnames.ora,listener.ora到备库相应目录下[oracle@h2 admin]$ scptnsnames.oraoracle@192.168.1.33:/u01/oracle/network/admin[oracle@h2 admin]$ scplistener.oraoracle@192.168.1.33:/u01/oracle/network/admin重启监听6. 修改主库参数文件(1).备份参数文件SQL>create pfile='/home/oracle/pfile0923.ora' from spfile;如果出现错误可以使用备份的参数重新配置数据库(2).修改数据库DB_UNIQUE_NAME(主库可不修改)SQL>alter system set db_unique_name='dg' scope=spfile;这里的DB_UNIQUE_NAME要与tnsnames.ora中的名一致。
ORACLE-11G-搭建DATAGUARD步骤
ORACLE-11G-搭建DATAGUARD步骤ORACLE 11G 搭建DATAGUARD步骤1安装环境在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例。
2主数据库配置2.1设置数据库强制归档sqlplus / as sysdbaSQL> ALTER DATABASE FORCE LOGGING;SQL> select force_logging from v$database;FOR---YES2.2添加STANDBY日志文件SQL>alter database add standby logfile group 4 ('/oradata/dbtest/redo04.log') size 50m;SQL>alter database add standby logfile group 5 ('/oradata/dbtest/redo05.log') size 50m;SQL>alter database add standby logfile group 6 ('/oradata/dbtest/redo06.log') size 50m;SQL>alter database add standby logfile group 7 ('/oradata/dbtest/redo07.log') size 50m;SQL> select * from v$logfile order by 1;2.3修改参数文件2.3.1生成pfileSQL>create pfile from spfile;SQL>shutdown immediate;2.3.2修改pfilevi $ORACLE_HOME/dbs/initdbtest.ora在最后添加如下容:*.db_unique_name=dbtest1*.fal_server='dbtest2'*.fal_client='dbtest1'*.standby_file_management=auto*.db_file_name_convert='/oradata/dbtest/','/oradata/dbtest /'*.log_file_name_convert='/oradata/dbtest/','/oradata/dbtest /'*.log_archive_config='dg_config=(dbtest1,dbtest2)'*.log_archive_dest_2='service=dbtest2 LGWR SYNC AFFIRM valid_for=(online_logfiles,primary_role)db_unique_name=dbtest2'*.log_archive_dest_state_2='ENABLE'2.3.3生成spfileSQL> shutdown immediate[oracledbserver01 ~]$ cd $ORACLE_HOME/dbs[oracledbserver01 dbs]$ mv spfilejkfwdb.ora spfilejkfwdb.ora.bakSQL> startup nomountSQL> create spfile from pfile;File created.SQL> show parameter uniqSQL> shutdown immediate;SQL> startupSQL> show parameter spfile2.4修改监听配置文件2.5修改TNS配置文件[oracledg1 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsna mes.ora # Generated by Oracle configuration tools.DBTEST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.3)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbtest1)))DBTEST1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.3)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbtest1)))DBTEST2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.4)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbtest2)))EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))2.6重启监听服务lsnrctl stoplsnrctl start2.7配置最大可用模式SQL> alter database set standby database to maximizeavailability;Database altered.SQL> exit2.8备份数据库[oracledg1 admin]$ rman target /RMAN> backup database plus archivelog;RMAN> backup current controlfile for standby;RMAN> exit备份完成后会在闪回区生产备份文件3备数据库配置3.1建立相应的文件目录包括dump文件目录,闪回区,数据文件目录,可以通过show parameter dest 命令查看mkdir -p /oracle/app/oracle/admin/dbtest/adumpmkdir -p /oracle/app/oracle/admin/dbtest/dpdumpmkdir -p /oracle/app/oracle/diag/rdbms/dbtest1/dbtest/trace mkdir -p /oracle/app/oracle/diag/rdbms/dbtest1/dbtest/cdump mkdir -p /oracle/app/oracle/flash_recovery_areamkdir -p /oradata/dbtest3.2从主数据库服务器上拷贝文件注意:下面命令在主数据库上执行3.2.1拷贝闪回区容[oracledg1 admin]$ cd /oracle/app/oracle/flash_recovery_areascp -r ./* 192.168.132.4:/oracle/app/oracle/flash_recovery_area/ 3.2.2拷贝参数文件[oracledg1 flash_recovery_area]$ cd $ORACLE_HOME/dbsscp ./* 192.168.132.4:/oracle/app/oracle/product/11.2.0/db_1/dbs/ 3.2.3拷贝密码文件3.2.4拷贝监听文件和tns文件[oracledg1 dbs]$ cd ../network/admin/scp *.ora192.168.132.4:/oracle/app/oracle/product/11.2.0/db_1/netw ork/admin/ 3.3修改监听配置文件修改ip地址3.4修改TNS配置文件修改ip地址3.5重启监听服务lsnrctl stoplsnrctl start3.6修改参数文件并启动数据库到nomountCd $ORACLE_HOME/dbsCp initdbtest.ora initdbtest.ora.bakvi $ORACLE_HOME/dbs/initdbtest.ora去掉上面添加的部分即:*.db_unique_name=dbtest1*.fal_server='dbtest2'*.fal_client='dbtest1'……3.7恢复数据库[oracledg2 admin]$ rman target sys/funo1234dbtest1 auxiliary / RMAN> duplicate target database for standby nofilenamecheck;RMAN> exit3.8修改参数文件[oracledg2 admin]$ sqlplus / as sysdbaSQL> shutdown immediate;vi $ORACLE_HOME/dbs/initdbtest.ora添加如下容*.db_unique_name=dbtest2SQL> create spfile from pfile;3.9启动数据库SQL> startup nomount;SQL> alter database mount standby database;SQL> alter database recover managed standby database using current logfile disconnect from session;3.10验证主库备库均执行如下命令:SQL> archive log list;主库备库如果最后一行数字相同,说明配置成功3.11切换到只读模式SQL> alter database recover managed standby database cancel;SQL> alter database open read only;3.12切换到同步模式(不需要停库)SQL> alter database recover managed standby database using current logfiledisconnect from session;。
Oracle11g_DataGuard配置方案
Oracle Data Guard 实施与维护方案1.项目背景介绍在2台RedHat5.4上使用ORACLE 的DataGuard组件实现容灾。
设备配置(VMWare虚拟机环境)清单如下:2.Oracle DataGuard 介绍备用数据库(standby database)是ORACLE 推出的一种高可用性(HIGH AVAILABLE)数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份,可以实现快速切换与灾难性恢复。
●STANDBY DATABASE的类型:有两种类型的STANDBY:物理STANDBY和逻辑STANDBY两种类型的工作原理可通过如下图来说明:physical standby提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。
它是可以直接应用REDO实现同步的。
l ogical standby则不是这样,在logical standby中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。
逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表,但其数据库用户相关对象均需要有主键。
✧本次实施将选择物理STANDBY(physical standby)方式●对主库的保护模式可以有以下三种模式:–Maximum protection (最高保护)–Maximum availability (最高可用性)–Maximum performance (最高性能)✧基于项目应用的特征及需求,本项目比较适合采用Maximum availability (最高可用性)模式实施。
3.Dataguard 实施前提条件和注意事项:●灾备环境中的所有节点必须安装相同的操作系统,尽可能令详细补丁也保持相同。
●灾备环境中的所有节点必须安装完全相同版本的Oracle数据库软件,包括版本号和发布号,比如必须都是Oracle 11.2.0.1●主库必须处于归档(ARCHIVELOG)模式。
dataguard配置
Oracle dataguard配置文档一、Dataguard简介 (3)二、dataguard原理 (3)三、dataguard配置要求 (4)1. 环境要求 (4)2. 环境规划 (4)3. dataguard配置要求 (4)4. 配置dataguard所需工具 (4)四、操作系统及oracle11g环境配置 (4)1.操作系统磁盘分区 (4)2.oracle11g环境能数配置 (4)1.向/etc/security/limits增加以下记录 (4)2.向/etc/sysctl.conf增加以下记录 (4)3.以oracle用户执行以下命令 (5)4.向/etc/pam.d/login增加以下记录 (5)5.向oracle参数文件bash.profile里增加以下记录 (5)五、安装oralce11g数据库 (5)1.要求在两台服务器上仅安装数据库软件。
(5)2.配置监听程序 (5)3.在主服务器上建库 (5)六、Dataguard配置 (6)1.数据库要处于完全归档状态 (6)2.对主数据库进行rman备份 (6)3.在主库上运行netmgr命令,进行如下配置 (6)4.生成数据库pfile, (7)5.修改主数据库pfile文件 (7)6.备库参数文件置 (8)7.在主库和备库上用netca建立本地服务名 (8)8. 在备库上以oracle用户建立与主库相对应的目录文件 (9)19. 将主库产生的rman备份文件,参数文件,密码文件,日志文件拷贝到备库 (9)10. 在备库上执行以下操作 (9)11. 备用数据库建立完毕。
(9)七、dataguard数据库故障排查 (10)1. 检查备用数据库和主用数据库的状态 (10)2. 测试dataguard日志是否传输 (10)3.测试dml,ddl语句是否传输 (10)八、dataguard主备库切换 (11)1. 将备库转换成主库模式 (11)2. 将主库转换成备库模式 (11)2一、Dataguard简介Dataguard是oracle集成化灾难恢复解决方案,该技术可以维护生产数据库一个或多个同步备份,由一个生产数据库和苦干备用数据库组成,并形成珍上独立的,易于管理的数据保护方案,支持异地远程容灾。
Oracle_11G_DataGuard配置
目录1.判断DataGuard是否安装 (2)2. 网络配置 (2)3.监听配置 (2)4.主库前期准备 (3)5. 创建口令文件 (3)6.修改主库初始化参数 (4)7.修改数据库运行在归档模式下 (4)8. 创建备份库需要的控制文件 (4)9. 备份生产数据库 (5)10.修改备库pfile (5)11.将控制文件 (5)12.在备库上创建口令文件 (5)13.在备库上创建spfile (5)14.启动物理备用数据库 (6)15.配置Standby Redo Log (6)16. Start Redo Apply (6)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 from v$database;NOSQL> alter database force logging;SQL> select FORCE_LOGGING from v$database;YES5. 创建口令文件orapwd file=$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 LGWR ASYNCVALID_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.ora node2:/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 immediatestartup pfile='//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/ORCL node2:/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=orcl ASYNCVALID_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.在备库上创建口令文件orapwd file=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=5 13.在备库上创建spfileShutdown immediatestartup pfile='//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 LOGFILE group 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 group 6 ('/oracle/dbs/slog3.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group 7('/oracle/dbs/slog4.rdo') SIZE 50M;16. Start Redo ApplyALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;查看哪些归档日志被APPLY了在备库SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;在主库强制日志切换到当前的online redo log file.ALTER SYSTEM ARCHIVE 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#;查看数据库的角色select database_role,protection_mode,protection_level from v$database;主备库切换1.查看主库的状态SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;2.将主库切换至备用模式SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH -> SESSION SHUTDOWN;3.关闭、装载主数据库SQL> SHUTDOWN ABORT;SQL> STARTUP MOUNT;4.查看备库准备向主库模式切换SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-----------------TO_PRIMARY1 row selected5.切换备库至主库模式SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;6.打开新的主数据库SQL> ALTER DATABASE OPEN;7. 在新的备库服务器上启动 REDO apply。
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配置详细步骤
如果你想在备库进行备份,并同时备份归档日志的话,必须使用 all_logfiles。
2)配置重做日志到备库
alter system set log_archive_dest_2='SERVICE=orcldg lgwr sync valid_for=(online_logfile,primary_role)
************************************************************************************
六、闪回数据库
建议开始闪回特性
1)配置闪回恢复区
查询:
show parameter db_recovery_file_dest
)
)
LISTENER =
(DESCRIPTION_LIST = (DESCFra bibliotekIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primaryDB)(PORT = 1521))
)
)
****************************************************************************************
三、创建standby logfiles
1.standby logfiles的大小和redo logfiles一样
2.standby redo日志文件组数比primary数据库的online redo日志组数至少多一个
2)配置tnsnames
#vi $ORACLE_HOME/network/admin/tnsnames.ora
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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上。
此处的pri,dg为数据库参66数文件中(initdb1.ora)的DB_UNIQUE_NAME的名字,即对外提供的服务名。
6768从库配置如下:69[oracle@Oracle11g2 admin]$ cat listener.ora70# listener.ora Network Configuration File:71/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/lis 72tener.ora73# Generated by Oracle configuration tools.74WU =75(DESCRIPTION_LIST =76(DESCRIPTION =77(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))7879))8081SID_LIST_WU =82(SID_LIST =(SID_DESC =8384(GLOBAL_DBNAME = db1dg)85(ORACLE_HOME =86/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)87(SID_NAME = db1)88)89)90ADR_BASE_WU = /oracleapp/oinstall/oracle91[oracle@Oracle11g2 admin]$ cat tnsnames.ora92# tnsnames.ora Network Configuration File:93/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tns 94names.ora# Generated by Oracle configuration tools.959697pri =98(DESCRIPTION =99(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521))(CONNECT_DATA =100101(SERVER = DEDICATED)102(SERVICE_NAME = db1pri)103)104)105dg =106(DESCRIPTION =107(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521)) 108(CONNECT_DATA =109(SERVER = DEDICATED)110(SERVICE_NAME = db1dg)111)112)113分别用tnsping命令测试监听服务是否可用,正常显示信息如下:114115(tnsping对方的时候,有可能linux防火墙限制了,会提示TNS-12560: 116TNS: 协议适配器错误)[oracle@Oracle11g2 dbs]$ tnsping dg117118119TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 12027-MAY-2014 15:39:34121122Copyright (c) 1997, 2009, Oracle. All rights reserved.123Used parameter files:124125126Used TNSNAMES adapter to resolve the alias127128Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = 129TCP)(HOST = Oracle11g2)(PORT = 1521)) (CONNECT_DATA = (SERVER = 130DEDICATED) (SERVICE_NAME = db1dg)))131OK (10 msec)[oracle@Oracle11g2 dbs]$ tnsping pri132133134TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 13527-MAY-2014 15:40:16136137Copyright (c) 1997, 2009, Oracle. All rights reserved.138139Used parameter files:140141142Used TNSNAMES adapter to resolve the alias143Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = 144TCP)(HOST = Oracle11g1)(PORT = 1521)) (CONNECT_DATA = (SERVER = 145DEDICATED) (SERVICE_NAME =db1 pri)))146OK (10 msec)147[oracle@Oracle11g2 dbs]$1484.主库前期准备149设置强制写日志150[oracle@Oracle11g2 admin]$ sqlplus / as sysdba151SQL> select FORCE_LOGGING from v$database;152NO153SQL> alter database force logging;154SQL> select FORCE_LOGGING from v$database;155YES1565. 创建口令文件157通过dbca命令创建的数据库会自动在158/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs目录下创建159orapwdb1密码文件,也可以通过如下命令创建[oracle@Oracle11g1 admin]$orapwd160161file=/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/orapwdb1 162password=oracle entries=5密码文件为orapw(数据库ID),这里为orapwdb1.1631646.修改主库初始化参数165在initdb1.ora文件下增加如下参数:166[oracle@Oracle11g2 dbs]$ vim initdb1.ora167*.db_name='db1' #注意保持同一个DataGuard中所有数据库DB_NAME168相同(物理standby dataguard)。