Oracle 10G windows 平台 DataGuard 实例
Oracle 10G windows 平台 DataGuard server A: 10.85.10.44 SID=orcl target server B: 10.85.10.43 oracle version:10.2.0.1 OS platform : windows XP Primary设置: 1. 设置主数据库为force logging 模式 SQL>sqlplus "/as sysdba" SQL>alter database force logging; 2. 设置主数据库为归档模式 SQL> archive log list SQL> shutdown immediate SQL> startup mount SQL> alter database archivelog; SQL> archive log list 3. 添加"备用联机日志文件" 先查看日志文件位置: SQL>select * from v$logfile; 在添加: SQL> alter database add standby logfile group 4 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo04.log') size 50m;
SQL> alter database add standby logfile group 5 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo05.log') size 50m;
SQL> alter database add standby logfile group 6 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo06.log') size 50m;
SQL> alter database add standby logfile group 7 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo07.log') size 50m;
4. 创建主库的初始化参数给备库用 SQL>Create pfile from spfile; 产生的文件名为initorcl.ora 存放目录默认放在$ORACLE_HOME/database下
5. 在主库创建备库的控制文件 和密码文件 SQL>Alter database create standby controlfile as 'D:\oracle\product\10.2.0\control01.ctl'; D:>orapwd file=D:\PWDorcl.ora password=admin entries=5; 缺省情况下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感) 6. 在主库创建监听和配置tnsnams.ora listener.ora配置如下: # listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora # Generated by Oracle configuration tools.
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.3.44)(PORT = 1521)) ) )
tnsnames.ora配置如下: # tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. primary = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.3.44)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
standby = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.3.43)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
7. 在initorcl.ora添加以下内容: *.log_archive_format='%T%S%r.ARC' *.DB_UNIQUE_NAME='primary' *.log_archive_config='DG_CONFIG=(primary,standby)' *.log_archive_dest_1='location=D:\oracle\product\10.2.0\oradata\arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary' *.log_archive_dest_2='SERVICE=standby arch ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' *.STANDBY_FILE_MANAGEMENT=AUTO *.LOG_ARCHIVE_DEST_STATE_1=ENABLE *.LOG_ARCHIVE_DEST_STATE_2=ENABLE *.FAL_SERVER='standby' *.FAL_CLIENT='primary'
关闭数据库,在用initorcl.ora重启,并创建spfile文件 SQL>startup pfile='$ORACLE_HOME/database/initorcl.ora' SQL>create spfile from pfile='$ORACLE_HOME/database/initorcl.ora' 8. A. 拷贝数据文件,参数文件,控制文件,密码文件到备库上 initorcl.ora参数文件,PWDorcl.ora密码文件考到$ORACLE_HOME/database下的, controlbak.ctl 考到$ORACLE_base/oradata/orcl/下,并分别重命名为control01.ctl,control01.ctl,control01.ctl
数据文件考到$ORACLE_base/oradata/orcl/下
B. 用Rman拷贝,不用停机 $ rman target / RMAN> backup full format 'D:/FULL_%d_%T_%s.bak' database include current controlfile for standby;
RMAN> sql 'alter system archive log current'; RMAN> Backup ArchiveLog all format='D:/arch_%d_%T_%s.bak'; 备份完后将备份文件拷到standby上同样的目录,强调:同样的目录,在standby进行rman 恢复即可
9. 启动主数据库 SQL>startup
--------------------------------------------------------------------- Standy操作:
1. 用oradim工具创建备库orcl实例 oradim.exe -new -sid orcl -startmode m oradim.exe -edit -sid orcl -startmode a 2. 创建备库存放数据文件和后台跟踪目录 $ORACLE_BASE\ORADATA\ORCL $ORACLE_BASE\admin\orcl $ORACLE_BASE\admin\orcl\adump $ORACLE_BASE\admin\orcl\bdump $ORACLE_BASE\admin\orcl\cdump $ORACLE_BASE\admin\orcl\dpdump $ORACLE_BASE\admin\orcl\pfile $ORACLE_BASE\admin\orcl\udump $ORACLE_BASE\admin\orcl\ 3. 添加"备用联机日志文件"
SQL>startup mount 先查看日志文件位置: SQL>select * from v$logfile; 在添加: SQL> alter database add standby logfile group 4 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo04.log') size 50m;
SQL> alter database add standby logfile group 5 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo05.log') size 50m;
SQL> alter database add standby logfile group 6 ('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\redo06.log') size 50m;
oracle dataguard原理(一)
oracle dataguard原理(一)Oracle DataGuard原理详解介绍Oracle DataGuard是Oracle数据库提供的一种数据冗余和灾难恢复解决方案。
它通过实时数据复制和自动故障转移来提供数据保护和高可用性。
本文将从浅入深,逐步解释Oracle DataGuard的相关原理。
数据冗余•数据冗余是指将数据库中的数据复制到另一个位置,以保护数据免受硬件故障、自然灾害和人为错误的影响。
•在Oracle DataGuard中,数据冗余是通过将主数据库中的数据异步或同步复制到一个或多个备用数据库实现的。
•备用数据库是主数据库的精确副本,它可以提供故障转移和灾难恢复的能力。
主备同步•主备同步是指主数据库和备用数据库之间的数据复制是实时的并保持同步。
•在Oracle DataGuard中,主备同步有两种模式,即同步模式和异步模式。
•同步模式要求主数据库将数据写入本地磁盘后,等待至少一个备用数据库确认接收并写入数据,确保数据一致性和可靠性。
•异步模式允许主数据库立即提交事务,并异步地将数据发送给备用数据库。
这种模式下,主备数据库之间可能存在一定的数据延迟。
数据传输•数据传输是指主数据库将数据发送给备用数据库的过程。
•在Oracle DataGuard中,数据传输可以通过物理复制或逻辑复制来实现。
•物理复制是将主数据库的物理数据文件复制到备用数据库。
这种复制方式效率高,适用于大型数据库。
•逻辑复制是将主数据库的逻辑数据写入备用数据库。
这种复制方式可以跨不同操作系统平台和数据库版本。
自动故障转移•自动故障转移是指在主数据库发生故障时,备用数据库可以自动接管主数据库的功能。
•Oracle DataGuard提供了故障切换的功能,可以迅速将备用数据库切换为主数据库,实现连续的应用程序可用性。
•故障切换是基于Oracle Grid Infrastructure和Fast-Start Failover技术实现的,它能够在故障发生时自动检测和处理。
oracle-11g-Dataguard详细配置手册
Oracle 11G Dataguard 详细配置手册版本:V1作者:知行合一一、环境描述:主库:IP地址:192.168.1.37OS:RHEL 6.5 X64Hostname :lin-1Oracle 版本:11.2.0.1Oracle_home: /u01/app/oracle/product/11.2.0/db_1SQL> show parameter name;NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_ stringdb_name string orcldb_unique_name string orclglobal_names boolean FALSEinstance_name string orcllock_name_space stringlog_ stringservice_names string orcl备库:IP地址:192.168.1.38OS:RHEL 6.5 X64Hostname :lin-2Oracle 版本:11.2.0.1Oracle_home: /u01/app/oracle/product/11.2.0/db_1SQL> show parameter name;NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_ stringdb_name string orcldb_unique_name string orcl2global_names boolean FALSEinstance_name string orcllock_name_space stringlog_ stringservice_names string orcl说明:由于我采用的是vmware 虚拟化环境进行测试的。
Oracle_Data_Guard配置步骤
Oracle Data Guard配置步骤一:测试环境主数据库:windows English XP;版本ora9i(9.2.0.1.0);IP地址192.168.1.38;主机名:CISCOSYS;实例SID:PRIMARY备用数据库:windows English XP;版本ora9i(9.2.0.1.0);IP地址192.168.1.111;主机名:CISCOROUTER;实例SID:STANDBY二:运行Data Guard的条件1、在主数据库和备用数据库的所有机器上必须安装同一个版本的Oracle企业版。
:SELECT * FROM V$VERSION;2、主数据库必须运行在归档模式下,推荐主和备用数据库都是force Logging模式,这样方便双向自由切换:ALTER DATABASE FORCE LOGGING;3、主数据库和备用数据库的操作系统必须一样(允许版本不同),备用数据库可以使用与主数据库不同的目录结构,ORACLE推荐使用相同的目录结构。
4、主备用数据库硬件系统的体系结构必须相同,但允许主备数据库硬件的配置可以不同如:CPU数量、内存大小、存储配置等。
5、主备数据库可以是单实例的数据库,也可以是多实例的RAC数据库。
6、每个主备数据库必须有它自己的控制文件,ORACLE NET不同,必须分别修改。
三:运行Data Guard的具体步骤1、主数据库和备用数据库的Oracle安装的时候都选择相同的安装路径D:\oracle\ora92;并且先不要安装数据库,即在安装过程中“数据库配置”一项下面选择“只安装软件”;2、在主数据库上使用DBCA命令建一个数据库,SID设为PRIMARY;3、设置主数据库归档路径为D:\oracle\ora92\database\Archive:SQL>alter system setlog_archive_dest_1='LOCATION=d:\oracle\ora92\database\Archive MANDATORY' scope=both;4、将主数据库实例、数据库关闭,然后启动实例,但不打开数据库,只启动到数据库挂载模式: SQL>shutdown immediate; SQL>startup mount;5、将主数据库设置成归档状态和自动归档模式:SQL>alter database archivelog; SQL>alter system set log_archive_start=true scope=spfile;6、在主数据库上面创建备用数据库的控制文件standby.ctl:SQL>alter database create standby controlfile as 'd:\oracle\oradata\standby.ctl';7、在主数据库上面创建备用数据库的初始化参数文件standby.ora(将其拷贝回备用数据库后转换成备用数据库的spfile):SQL>createpfile='e:\oracle\oradata\standby.ora' from spfile;8、查看主数据库的数据文件及其的位置:SQL>select name from v$datafile;记下查询结果中的数据文件的位置。
oracle datagurad(镜像)物理方式搭建步骤
ORACLE DATAGURAD(镜像)物理方式搭建步骤演示第一步、演示环境说明: (1)第二步、主库配置: (1)第三步、备库配置: (2)第四步、日常维护: (5)第一步、演示环境说明:1、操作系统:windows server 2003以上;2、oracle数据库版本:11g;3、单机实例演示(多机创建时根据实际文件目录和IP进行调整即可)4、设置主库为:p_test SID为:ptest5、设置备库为:s_test SID为:stest6、创建主数据库:略;7、用户:sys8、登陆密码:saccerp9、“SQL>”—-指在SQLPLUS中的操作;10、“CMD>”—-指在windows命令行中操作;第二步、主库配置:一、设置强制写日志:1、CMD> Sqlplus sys/saccerp@p_test as sysdba2、SQL> Select force_logging from v$database;3、SQL> Alter database force logging;4、SQL> Select force_logging from v$database;二、修改主库的参数文件1、SQL> create pfile from spfile; --创建参数文件副本2、默认在oracle的\database目录下找到“INITptest.ora”进行编辑;添加下列文本配置:DB_UNIQUE_NAME=p_testLOG_ARCHIVE_CONFIG='DG_CONFIG=(p_test,s_test)'LOG_ARCHIVE_DEST_1='LOCATION=C:\oracle_11g\oradata\p_test\VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=p_test'LOG_ARCHIVE_DEST_2='SERVICE=s_test LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=s_test'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=DEFER#--------配置standby 角色的参数用于角色转换FAL_SERVER=s_testFAL_CLIENT=p_testDB_FILE_NAME_CONVERT='oradata\s_test','oradata\p_test'LOG_FILE_NAME_CONVERT='oradata\s_test','oradata\p_test'STANDBY_FILE_MANAGEMENT=AUTO3、更新主库参数文件:SQL> shutdown immediate; --关闭数据库;SQL> create spfile from pfile; --创建新的参数文件;SQL> startup;三、将主库设置为归档模式SQL> shutdown immediate;SQL> startup mount;SQL> alter database archivelog;SQL> alter database open;四、创建RDO日志文件组standby redo log;1、在主库查看日志组的数量和每个日志文件的大小CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> select group# , bytes from v$log;2、在主库创建日志组和redo log文件SQL> Alter database add standby logfile group 4 ('C:\oracle_11g\oradata\p_test\rdoLog4.rdo') size 50M;SQL> Alter database add standby logfile group 5 ('C:\oracle_11g\oradata\p_test\rodlog5.rdo') size 50M;SQL> Alter database add standby logfile group 6 ('C:\oracle_11g\oradata\p_test\rodLog6.rdo') size 50M;第三步、备库配置:一、创建备库服务:1、CMD> oradim -new -sid stest --(配置监听时,记得配置为s_test)2、创建备库服务目录:复制\admin\p_test\文件夹,拷贝到桌面,然后将桌面上的p_test重命名为s_test文件夹,完后将s_test拷贝到\admin\文件夹下即可;3、创建数据文件目录:直接找到\oradata\文件夹,然后新建s_test文件夹即可;4、创建备库登陆密码:CMD> orapwd file=C:\oracle_11g\product\11.1.0\db_1\database\PWDstest.ora password=saccerp entries=305、将\database目录下的PWDptest.ora和PWDstest.ora两个文件拷贝到\dbs 目录下6、配置备库监听服务:(略,和主库一样配置就行)7、测试服务:(用tnsping [服务名]也行)CMD> Sqlplus sys/saccerp@s_test as sysdba如果上述操作登陆正常,即备库的结构创建成功,接着往下操作,反之则需要继续检查或咨询备库服务创建方法;二、创建备库参数文件:1、在\database目录下新建“INITstest.ora”文件,然后新增下面文本配置保存至文件;更新内容如下:*.audit_file_dest='c:\oracle_11g\admin\s_test\adump'*.audit_trail='db'*.compatible='11.1.0.0.0'*.control_files='c:\oracle_11g\oradata\s_test\control01.ctl','c:\orac le_11g\oradata\s_test\control02.ctl','c:\oracle_11g\oradata\s_test\co ntrol03.ctl'*.db_block_size=8192*.db_domain=''*.db_name='p_test'*.db_recovery_file_dest='c:\oracle_11g\flash_recovery_area'*.db_recovery_file_dest_size=5242880000*.diagnostic_dest='c:\oracle_11g'*.dispatchers='(PROTOCOL=TCP) (SERVICE=stestXDB)'*.memory_target=601882624*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.undo_tablespace='UNDOTBS1'db_unique_name=s_testLOG_ARCHIVE_CONFIG='DG_CONFIG=(p_test,s_test)'DB_FILE_NAME_CONVERT='oradata\p_test','oradata\s_test'LOG_FILE_NAME_CONVERT='oradata\p_test','oradata\s_test'LOG_ARCHIVE_DEST_1='LOCATION=C:\oracle_11g\oradata\s_test\VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=s_test'LOG_ARCHIVE_DEST_STATE_1=ENABLE#---下列参数用于角色切换LOG_ARCHIVE_DEST_2='SERVICE=p_test LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=p_test'LOG_ARCHIVE_DEST_STATE_2=ENABLEFAL_SERVER=p_testFAL_CLIENT=s_testSTANDBY_FILE_MANAGEMENT=AUTO三、通过主库创建备库的控制文件1、生成备库的control01.ctl文件;CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> alter database create standby controlfile as'C:\oracle_11g\oradata\s_test\control01.ctl ';2、拷贝新生成的control01.ctl,生成两个副本,并分别更名为control02.ctl、control03.ctl,完后拷贝到“C:\oracle_11g\oradata\s_test\”目录下(即拷贝到和control01.ctl相同目录下);四、将主库的数据、系统复制到备库目录下将C:\oracle_11g\oradata\p_test目录下的除TEMP01.DBF外的.DBF拷贝到C:\oracle_11g\oradata\s_test目录下;其余文件不拷贝;五、启动备库实例CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> create spfile from pfile;SQL> startup nomount;SQL> alter database mount standby database;六、创建RDO日志文件组,主、备都要配置standby redo log;1、在备库查看日志组的数量和每个日志文件的大小CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> select group# , bytes from v$log;2、删除原主库创建的RDO文件组SQL> alter database drop standby logfile group 4;SQL> alter database drop standby logfile group 5;SQL> alter database drop standby logfile group 6;3、在备库创建日志组和redo log文件SQL> Alter database add standby logfile group 4 ('C:\oracle_11g\oradata\s_test\rodLog4.rdo') size 50M;SQL> Alter database add standby logfile group 5 ('C:\oracle_11g\oradata\s_test\rodlog5.rdo') size 50M;SQL> Alter database add standby logfile group 6 ('C:\oracle_11g\oradata\s_test\rodLog6.rdo') size 50M;七、在主库上设置DataGuard的保护模式;CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> alter system set log_archive_dest_state_2=ENABLE scope=both; SQL> shutdown immediate;SQL> startup mount;SQL> alter database set standby database to maximize availability; SQL> alter database open;八、在备库上启动日志传输CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> alter database recover managed standby database using current logfile disconnect from session;SQL> select sequence#,applied from v$archived_log order by sequence#;九、检查镜像是否搭建完成1、检查主库日志传送是否正常CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> Select dest_name,status,error from v$archive_dest;2、检查主、备库当前镜像状态CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> select database_role,protection_mode,protection_level fromv$database;CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> select database_role,protection_mode,protection_level fromv$database;3、检查主、备库当前日志是否同步CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;4、在主库更新日志,用于检查备库是否能自动和主库同步;CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> alter system archive log current;SQL> select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;当前最后更新数值一致说明已同步;第四步、日常维护:一、主、备之间的切换--手动切换:1、主库切为备库CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> Select switchover_status from v$database;SQL> alter database commit to switchover to physical standby;SQL> shutdown immediate;SQL> startup mount;2、备库切为主库CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> select switchover_status from v$database;SQL> alter database commit to switchover to primary;SQL> alter database open;二、故障转移:CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP; SQL> alter database recover managed standby database finish force; SQL> alter database commit to switchover to primary;SQL> alter database open;三、在日常维护中要注意:启动服务的时候要注意:先启动备库、然后启动主库;1、先从库监听、然后主库监听;2、先从库服务、然后主库服务;从库服务启动后CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> startup nomount;SQL> alter database mount standby database;SQL> alter database recover managed standby database using current logfile disconnect;然后启动主库服务CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> startup;四、关闭数据库时,正好相反,先关闭主库,然后关闭从库;1、主库关闭CMD> Sqlplus sys/saccerp@p_test as sysdbaSQL> shutdown immediate;2、从库关闭CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> alter database recover managed standby database cancel; #停止同步SQL> shutdown immediate;五、查看备库的数据CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> alter database recover managed standby database cancel;SQL> alter database open read only;六、将查看状态切为同步状态CMD> Sqlplus sys/saccerp@s_test as sysdbaSQL> alter database recover managed standby database using current logfile disconnect;。
(完整版)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 配置介绍
Oracle Dataguard 配置介绍编写人:殷小春1.Oracle Dataguard介绍和主要优点1.1Oracl e Dataguard介绍Dataguard最主要的功能是冗灾,备库通过生产库传输过来的归档日志(或重做条目)自动维护备用数据库,保持生产库和备库数据的一致,这样当生产库发生故障时,可以马上将原来的备库切换成生产库,使系统迅速恢复正常,并且切换后无实时数据损失。
故障生产库在恢复后,可以作为新的备库使用,将数据和当前生产库同步。
Oracle10G中,备库只能运行在恢复模式,恢复模式中无法进行数据查询,只有以只读模式打开后才能查询数据,但此时不能同步恢复操作。
Oracle11G可以在打开数据库的同时进行恢复操作,备库可以一边和主库同步数据,一边进行数据查询和备份,这样既解决了数据库的容灾,也能缓解主服务器的压力,比如历史查询、或者大型报表统计这些耗资源的操作,就能放到备库上进行,提高生产库的运行效率。
缺点:无法将数据库还原到某一个时间点,主库和备库都只能保持在最新的数据状态。
1.2主要工作模式DATA GUARD可以分为物理STANDBY和逻辑STANDBY两种。
二者的最大差别在于,物理STANDBY应用的是主库的归档日志,而逻辑STANDBY应用的是主库的归档日志中提取的SQL语句。
由于二者这一点的区别,决定了物理STANDBY无论从逻辑结构和物理结构都是和主库保持一致,而逻辑STANDBY则只需保证逻辑结构一致,且逻辑STANDBY在应用SQL语句的时候,数据库可以处于打开的状态。
如果从DATA GUARD的保护模式分,可以分为三种不同的保护模式:1. 最大保护模式1)这种模式提供了最高级别的数据保护能力;2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;3)主库找不到合适的备库写入时,主库会自动关闭,防止未受保护的数据出现;4)优点:该模式可以保证备库没有数据丢失;5)缺点:主库的自动关闭会影响到主库的可用性,同时需要备库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会因此受到非常大的冲击。
(完整word版)OracleDataGuard容灾解决方案
Oracle DataGuard容灾解决方案目录一. 需求分析 (3)二。
解决方案 (3)2.1 拓扑架构 (3)2.2 方案特点 (4)2。
3 方案优势 (4)2.4 产品介绍 (5)三。
Oracle维保服务 (8)四. 方案报价 (11)一. 需求分析用户现有两台服务器,windows2008平台,一台运行oracle 11g r2,一台运行用友NC 6.3.现在通过每天备份的方式保证安全。
用户希望在他的另一个机房(裸光纤互联)中搭建容灾平台。
因此本方案针对以上现状,提出Oracle DataGuard容灾解决方案,这样主数据库在遇到极端状况时,可以及时切换到备库,保证业务的连续性。
二. 解决方案2.1 拓扑架构Dataguard可以实现远程数据容灾,利用该功能也可实现高可用性。
数据容灾是指建立一个异地的数据系统,该系统是本地关键应用数据的一个实时复制.在本地数据及整个应用系统出现灾难时,系统至少在或本地异地保存有一份可用的关键业务的数据,基于该功能,结合客户实际情况我方推荐使用其作为保证系统可靠运行的一种解决方案,由于两台机器的数据一致性以及低延迟,完全可以胜任,在主机出现故障时,切换至备机运行。
2.2 方案特点➢对现有的环境改动小,能最大限度的减少对现有应用系统的影响.➢能满足客户对海量数据的管理要求。
➢可以实现远距离容灾,对网络要求低,低延时,快速业务切换。
➢同步或异步日志传输;➢低成本的投入。
2.3 方案优势灾难恢复和高可用性 - Data Guard 提供了一个高效和全面的灾难恢复和高可用性解决方案。
易于管理的转换和故障切换功能允许主数据库和备用数据库之间的角色转换,从而使主数据库因计划的和计划外的中断所导致的停机时间减到最少。
完善的数据保护—使用备用数据库,Data Guard 可保证即使遇到不可预见的灾难也不会丢失数据.备用数据库提供了防止数据损坏和用户错误的安全保护。
主数据库上的存储器级物理损坏不会传播到备用数据库上。
ORACLE_Dataguard配置步骤(转)
ORACLE Dataguard配置步骤说明:主服务器dbsrv1(10.55.88.1),standby服务器dbsrv2(10.55.88.2),两台机器都安装相同版本的数据库,安装在相同位置,安装时都不创建数据库,本例中数据库都安装在d:\oracle下,数据库版本oracle 9.2.0.11. 在dbsrv1用dbca(数据库创建助手)创建一个归档数据库2. 设置主节点为force Logging模式(为了双向切换,建议备用节点也设置为force logging模式)具体做法:sqlplus /nologconnect / as sysdba;ALTER DATABASE FORCE LOGGING;3. 生成备用数据库控制文件和主库pfile文件具体做法:alter database create standby controlfile as 'd:\oracle\standby.ctl';create pfile='d:\oracle\init.ora' from spfile;关闭主数据库:shutdown immediate;备份控制文件,数据文件以及参数文件:控制文件和数据库文件一般在oradata下的WDS文件夹下(备份整个WDS文件夹),参数文件在oraclehome的ora92下的database子目录下名称为spfileWDS.ora.4. 登陆备份节点,进行数据库恢复,拷贝备用数据库控制文件和主库pfile文件具体做法:(在备机的ORACLE目录下先建好ADMIN和ORADATA两个目录)copy控制文件,数据文件以及参数文件到dbsrv2上,拷贝后要清除ARCHIVE目录下的文件。
将新生成的standby.ctl和init.ora也拷贝到dbsrv2将,standby.ctl放置在d:\oracle\oradata\WDS\下,init.ora文件放在d:\ORACLE目录下。
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)模式。
ORACLE LINUX 11G RAC 单实例DATAGUARD
ORACLE LINUX 11G RAC 单实例DATAGUARD环境说明:源库:双节点RAC:CPU:12MEM:8G操作系统:Linux 2.6.18-194.el510.135.33.170 11grac110.135.33.171 11grac210.135.33.172 11grac1-vip10.135.33.173 11grac2-vipDB_NAME=oemdb_unique_Name=oemDATAGUARD目标库:单实例CPU:4MEM:6G操作系统:Linux 2.6.18-194.el510.135.161.241DB_NAME=oemdb_unique_name=dgtest安装步骤一、源库设置强制归档:二、源库设置参数,设置完毕后参数如下所示DB_NAME=oemDB_UNIQUE_NAME=oemLOG_ARCHIVE_CONFIG='DG_CONFIG=(oem,oem_dg)'LOG_ARCHIVE_DEST_1='LOCATION=/dbfs_backup/oemVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oem'LOG_ARCHIVE_DEST_2='SERVICE=oem_dg LGWR AFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=oem_dg'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVELOG_ARCHIVE_FORMAT=%t_%s_%r.arcLOG_ARCHIVE_MAX_PROCESSES=4FAL_SERVER=oem_dgDB_FILE_NAME_CONVERT='/oradata/oem_dg/datafile/','+DATA/oem/dataf ile/'LOG_FILE_NAME_CONVERT='/oradata/oem_dg/','+DATA/oem/STANDBY_FILE_MANAGEMENT=AUTO执行如下命令设置:alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(oem,oem_dg)'scope=both sid='*';alter system set LOG_ARCHIVE_DEST_1='LOCATION=/dbfs_backup/oem VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oem'scope=both sid='*';alter system set LOG_ARCHIVE_DEST_2='SERVICE=oem_dg LGWR AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=oem_dg' scope=both sid='*';alter system set log_archive_format='%t_%s_%r.arc'scope=spfile sid='*';alter system set log_archive_max_processes=4scope=both sid='*';alter system set fal_server=oem_dg scope=both sid='*';alter system setDB_FILE_NAME_CONVERT='/oradata/oem_dg/datafile/','+DATA/oem/dataf ile/'scope=spfile sid='*';alter system set LOG_FILE_NAME_CONVERT='/oradata/oem_dg/,'+DATA/oem/'scope=spfile sid='*';三、重启源库,设置为归档模式。
