Data Guard学习之物理standby创建步骤 文档
DG物理备库创建手册

DATAGUARD物理备库的创建一、dataguard介绍Dataguard是ORACLE 推出的一种高可用性(HIGH AVAILABLE)的数据库方案,RAC的技术是为了保护实例,rman的技术是为了保护数据,而DATAGUARD则是把实例和数据一起保护了。
在8i之前称之为standby database,从9i开始,正式更名为Dataguard,它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现快速切换与灾难性恢复。
Dataguard只是在软件上对数据库进行设置,并不需要额外购买任何组件,它能在对主数据库影响很小的情况下,实现备数据库的同步,而主备机的数据差异只在在线日志部分(如果是在实时应用模式则理论上主备库的数据应该是一样的)。
所以如果在主库出现故障的情况下会丢失这部分未归档的数据。
当然这是最坏的一种情况。
本文档软件环境:主备库处于不同的服务器上主库已经安装好数据库软件和一个运行正常的数据库实例,备库只安装数据库软件,先不创建数据库和实例。
二、dataguard环境要求2.1数据库版本必须为企业版,版本最好在9i以上,主备库数据库的版本必须一致。
2.2主备数据库所在操作系统版本以及位数要求一样。
2.3主备库硬件配置可以不一样,看具体应用。
2.4主数据库和备数据库都可以是单实例的,也可以是RAC。
2.5同一个dataguard环境中数据库名必须一样。
主备库的目录结构要求一样(逻辑备库可以不一样)。
三、对主库的修改3.1修改归档方式要使用dataguard做数据库容灾,主库必须处于归档模式下。
如果已经是归档模式则跳过此步。
修改归档模式步骤SQL> archive log list;Database log mode No Archive ModeAutomatic archival DisabledArchive destination /opt/archOldest online log sequence 1Current log sequence 3可见当前数据库处于非归档模式.--关闭数据库SQL> shutdown immediate;启动数据库到mount阶段SQL> startup mount;修改数据库为归档模式SQL> alter database archivelog;Alter system archive log start;(auto)Database altered.打开数据库SQL> alter database open;查看当前数据库模式SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /opt/archOldest online log sequence 1Next log sequence to archive 3Current log sequence 3可见数据库已经处于归档模式。
(完整word版)OracleDataguard操作手册20160912

Oracale dataguard操作手册第一.dataguard的好处:它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库的快速切换与灾难性恢复,提供了灾难保护并防止数据丢失。
Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件。
用户能够在对主数据库影响很小的情况下,实现主备数据库的同步。
而主备机之间的数据差异只限于在线日志部分,因此可以被用作数据容灾解决方案。
第二.选用什么DG模式?DG有三种模式,最大保护(Maximum protection),最大性能(Maximum performance),最大可用性(Maximum availability),默认的就是最大性能模式。
再实际的应用种使用最大性能模式比较多。
三种保护模式:可以在V$DATABASE中查看到DataGuard的保护模式SELECT PROTECTION_MODE, PROTECTION_LEVEL FROMV$DATABASE;第三.物理standby还是逻辑standby?1,物理stand by直接从primary接受archived log,然后直接做恢复,效率较高,因为是使用最底层的块级别上的复制。
逻辑stand by是把primary接收过来的archived log解析为sql语句,然后做同步,效率较低,因为是执行SQL语句。
2,Physical standby的APPLY节点为MOUNT状态,Logical standby节点为OPEN状态,可分担primary上部分的查询和报表服务。
3,Physical standby可以实现与Primary来回switchover;logical standby切为Primary ,不能再切回来。
4,Physical standby可以切换为Logical standby ,但是logical 不能转换为Physical。
综合以上采取:物理standby模式,效率高,数据完整性好。
DG搭建步骤

DataGuard物理Standby数据库创建步骤详解(说明:红色是要注意的地方)一、前期准备在做DataGuard 物理standby数据库创建之前这些工作要全部完成并配置正确能正常工作。
1.两台服务器的硬盘分区,内存的大小,型号要完全一样.2.同步两台服务器的机器时间。
3.安装primary数据库,standby数据库服务器操作系统(用的是windows server 2003 64位)安装好并且将中文补丁打好,并且两台服务器操作系统版本等要完全一致,两台服务器网络配置正确,通信正常。
4.对primary数据库和standby数据库进行oracle 10G正确安装完成(两台服务器的oracle安装目录要一致),并且将数据库升级到10.2.0.3.0补丁打好,在安装时不创建数据库(这一点也是要引起注意的),同时还需注意一点的就是在安装ORACLE完成的时候一定要在注册表里面修改oracle的字符集为:NLS_LANG的值设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,否则创建后的oracle数据库不识别中文。
主数据库必须运行在归档模式下,推荐主和备用数据库都是force Logging模式,这样方便双向自由切换:ALTER DATABASE FORCE LOGGING。
5.对PRIMARY数据库的创建,可以自己创建,也可以根据提供的模板进行创建(但是要强调的就是在自己进行创建时要选对字符集为简体中文,因为系统要识别中文,否则改进来很麻烦,而且怕改动不到位会引起数据库重建),STANDBY数据库不需要在此时创建,等PRIMARY数据库创建成功后,将其数据文件拷贝到与PRIMARY数据相同的数据文件存放目录下即可。
6.PRIMARY数据库字典升级(在STANDBY数据库创建完成后,也要进行执行)步骤如下。
A.运行数据库预升级检查( Pre-Upgrade Information Tool)CONN / AS SYSDBASQL> SHUTDOWN IMMEDIATE;SQL> STARTUP UPGRADESQL> SPOOL UPGRADE_INFO.LOGSQL> @?\RDBMS\ADMIN\UTLU102I.SQLSQL> SPOOL OFFB.进行数据库字典信息升级(Upgrading a Release 10.2 Database)启动监听器:lsnrctl startSQL> SQLPLUS /NOLOGSQL> CONNECT / AS SYSDBASQL> SHUTDOWN IMMEDIATE;SQL> STARTUP UPGRADESQL> SPOOL PATCH.LOGSQL> @?\RDBMS\ADMIN\CATUPGRD.SQLSQL> SPOOL OFF检查 patch.log 文件,如果有问题,重新运行catupgrd.sql。
dataguard配置文档_分析

Oracle Dataguard一、新建STANDBY数据库1、在开始运行-REGEDIT-打开注册表,定位至新建字符串值(大写)ORACLE_SID(数值数据为主库的名称)2、开始-运行-cmd输入oradim -new -sid (数据库名称)完成实例的建设。
二、配置监听与网络服务分别在主库和备用库上配置监听和网络服务名(可用oracle net configuration assistant配置工具)两个节点的配置相同一个网络服务名指向主库,另一个指向备用库1、监听程序配置(主库与STANDBY库配置一样)完成监听程序的配置2、配置本地NET服务名配置。
服务名输入为数据库名。
主机名输入为主库的IP地址网络服务名为主库名称。
继续配置STANDBY的NET服务名这里改为STANDBY的IP地址网络服务名改为(oraclestandby)这里改变名称时需要到主库更改选项。
完成网络服务名配置和监听配置。
以上步骤需主库与STANDBY库同时设置。
服务名都为实例名。
三、配置主库server1、ALTER DATABASE FORCE LOGGING;使其使用强制记录方式2、改初始化文件(加上以下一行):检查是否为pfile或者spfile文件:select value from v$parameter where name = 'spfile'; *.log_archive_dest_2='SERVICE=ORCLSTANDBY'注:可用以下命令:alter system set log_archive_dest_2='service=STANDBY名' scope=spfile;alter system set log_archive_dest_2='service=STANDBY名' scope=both;(当初始化文件是spfile,用这条参数可以不用重启数据库)图中DEST_4因测试环境不同,做法按默认命令为准。
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;。
物理standby创建

Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时,同步,异步多种形式。
在Data Gurad 环境中,至少有两个数据库,一个处于Open 状态对外提供服务,这个数据库叫作Primary Database。
第二个处于恢复状态,叫作Standby Database。
运行时primary Database 对外提供服务,用户在Primary Database 上进行操作,操作被记录在联机日志和归档日志中,这些日志通过网络传递给Standby Database。
这个日志会在Standby Database 上重演,从而实现Primary Database 和Standby Database 的数据同步。
Oracle Data Gurad 对这一过程进一步的优化设计,使得日志的传递,恢复工作更加自动化,智能化,并且提供一系列参数和命令简化了DBA工作。
物理standby创建一、Primary数据库配置及相关操作1、确认主库处于归档模式SQL> archive log list数据库日志模式存档模式自动存档启用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 333下一个存档日志序列 0当前日志序列 334注:如果没有归档,执行下面的步骤:SQL> startup mount;SQL> alter database archivelog;SQL> archive log list;SQL> alter database open;2、将primary 数据库置为FORCE LOGGING 模式。
通过下列语句:SQL> alter database force logging;3、创建角色转换后接收日志的redo log此步是可选项,主要是用于主库角色转换后做为standby log日志接收主库的日志SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog1.rdo') SIZE 500M; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog2.rdo') SIZE 500M; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog3.rdo') SIZE 500M; SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog4.rdo') SIZE 500M;4、创建primary数据库客户端初始化参数文件注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile 重建spfile,你当然也可以通过alter system set 命令直接修改spfile 内容。
DataGuard完整文档
目录数据库高可用部署方案 (2)一、DataGuard介绍 (2)1.物理standby (2)2.逻辑standby (3)1.最大保护 (3)2.最大可用性 (4)3.最大性能 (4)二、安装环境 (4)1.设备列表 (4)2.重要步骤思路 (5)三、在主库的准备工作 (5)1.系统准备 (5)2.开启归档模式和强制记录日志模式 (6)3.添加standby日志文件 (7)4.准备参数文件 (8)5.修改监听文件 (11)6.修改tns配置文件 (12)7.重启监听并测试 (13)8.在主库rman里备份数据库 (13)四、备库配置 (14)1.环境准备 (14)2.建立与主库一致的目录 (14)3.从主库copy参数文件及监听文件到备库上 (14)4.在standby库修改配置文件 (15)5.修改参数文件和密码文件 (17)6.备库创建 (19)五、测试 (21)1.查看switchover_status (21)2.测试数据是否及时同步 (21)六、primary库与standby库切换操作 (26)1.在primary库上操作。
(26)4、重启数据库,置于mount状态 (26)2.在原standby库上配置 (27)七、汇总 (27)数据库高可用部署方案一、DataGuard介绍DataGuard是ORACLE公司推出的一种高可用性数据库方案,最主要功能是冗灾、数据保护、故障恢复等。
它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。
Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件。
用户能够在对主数据库影响很小的情况下,实现主备数据库的同步。
而主备机之间的数据差异只限于在线日志部分,因此被不少企业用作数据容灾解决方案。
DataGuard可分为物理standby 和逻辑standby:1.物理standby主备库之间物理结构,逻辑结构保护一致。
创建物理dataguard步骤
创建物理DataGuard步骤一基本概念Data Guard 是一个集合,由一个primary 数据库(生产数据库)及一个或多个standby 数据库(最多9 个)组成。
组成Data Guard 的数据库通过Oracle Net 连接,并且有可能分布于不同地域。
只要各库之间可以相互通信,它们的物理位置并没有什么限制,至于操作系统就更无所谓了(某些情况下),只要支持oracle 就行了。
你既可以通过命令行方式管理primary 数据库或standby 数据库,也可以通过Data Guard broker 提供的专用命令行界面(DGMGRL),或者通过OEM 图形化界面管理。
1.Primary数据库前面提到,Data Guard 包含一个primary 数据库即被大部分应用访问的生产数据库,该库即可以是单实例数据库,也可以是RAC。
2.Standby数据库Standby 数据库是primary 数据库的复制(事务上一致)。
在同一个Data Guard 中你可以最多创建9 个standby数据库。
一旦创建完成,Data Guard 通过应用primary 数据库的redo 自动维护每一个standby 数据库。
Standby数据库同样即可以是单实例数据库,也可以是RAC 结构。
关于standby 数据库,通常分两类:逻辑standby 和物理standby,如何区分,两类各有什么特点。
逻辑standby就像你请人帮你素描画像,基本器官是都会有的,这点你放心,但是各器官位置啦大小啦肤色啦就不一定跟你本人一致了。
物理standby就像拿相机拍照,你长什么样出来的照片就是什么样,眼睛绝对在鼻子上头。
或者说就像你去照镜子,里外都是你,哇哈哈。
具体到数据库就是不仅文件的物理结构相同,甚至连块在磁盘上的存储位置都是一模一样的(默认情况下)。
二、物理datagurad创建步骤开始之前先要保证下面两个条件1、确保主从数据的操作系统,硬件配置一致2、主从数据上安装的oracle软件版本一致,补丁版本一致,从数据库服务器上不要建立数据库。
DG搭建步骤
DataGuard物理Standby数据库创建步骤详解(说明:红色是要注意的地方)一、前期准备在做DataGuard 物理standby数据库创建之前这些工作要全部完成并配置正确能正常工作。
1.两台服务器的硬盘分区,内存的大小,型号要完全一样.2.同步两台服务器的机器时间。
3.安装primary数据库,standby数据库服务器操作系统(用的是windows server 2003 64位)安装好并且将中文补丁打好,并且两台服务器操作系统版本等要完全一致,两台服务器网络配置正确,通信正常。
4.对primary数据库和standby数据库进行oracle 10G正确安装完成(两台服务器的oracle安装目录要一致),并且将数据库升级到10.2.0.3.0补丁打好,在安装时不创建数据库(这一点也是要引起注意的),同时还需注意一点的就是在安装ORACLE完成的时候一定要在注册表里面修改oracle的字符集为:NLS_LANG的值设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,否则创建后的oracle数据库不识别中文。
主数据库必须运行在归档模式下,推荐主和备用数据库都是force Logging模式,这样方便双向自由切换:ALTER DATABASE FORCE LOGGING。
5.对PRIMARY数据库的创建,可以自己创建,也可以根据提供的模板进行创建(但是要强调的就是在自己进行创建时要选对字符集为简体中文,因为系统要识别中文,否则改进来很麻烦,而且怕改动不到位会引起数据库重建),STANDBY数据库不需要在此时创建,等PRIMARY数据库创建成功后,将其数据文件拷贝到与PRIMARY数据相同的数据文件存放目录下即可。
6.PRIMARY数据库字典升级(在STANDBY数据库创建完成后,也要进行执行)步骤如下。
A.运行数据库预升级检查( Pre-Upgrade Information Tool)CONN / AS SYSDBASQL> SHUTDOWN IMMEDIATE;SQL> STARTUP UPGRADESQL> SPOOL UPGRADE_INFO.LOGSQL> @?\RDBMS\ADMIN\UTLU102I.SQLSQL> SPOOL OFFB.进行数据库字典信息升级(Upgrading a Release 10.2 Database)启动监听器:lsnrctl startSQL> SQLPLUS /NOLOGSQL> CONNECT / AS SYSDBASQL> SHUTDOWN IMMEDIATE;SQL> STARTUP UPGRADESQL> SPOOL PATCH.LOGSQL> @?\RDBMS\ADMIN\CATUPGRD.SQLSQL> SPOOL OFF检查 patch.log 文件,如果有问题,重新运行catupgrd.sql。
Data Guard学习之物理standby创建步骤
前情回顾:一步一步学Data Guard之基础篇一、准备工作不管物理standby还是逻辑standby,其初始创建都是要依赖primary数据库,因为这个准备工作中最重要的一部分,就是对primary数据库的配置。
1、打开Forced Logging模式将primary数据库置为FORCE LOGGING模式。
通过下列语句:SQL> alter database force logging;提示:关于FORCE LOGGING想必大家知道有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。
如果在执行force logging时有nologging之类的语句在执行,则force logging会等待直到这类语句全部执行。
FORCE LOGGING 是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可),如果想取消,可以通过alter database no force logging语句关闭强制记录。
2、创建密码文件(如果不存在的话)需要注意的是,同一个Data Guard配置中所有数据库必须都拥有独立的密码文件,并且必须保证同一个Data Guard配置中所有数据库服务器的SYS用户拥有相同密码以保证redo数据的顺利传输,因为redo传输服务通过认证的网络会话来传输redo数据,而会话使用包含在密码文件中的SYS用户密码来认证。
3、配置Standby Redo Log对于最大保护和最高可用性模式,Standby数据库必须配置standby redo log,并且oracle推荐所有数据库都使用LGWR ASYNC模式传输,当然你现在可能还不知道LGWR ASYNC是什么问题,没关系,你很快就会知道了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、准备工作不管物理standby还是逻辑standby,其初始创建都是要依赖primary数据库,因为这个准备工作中最重要的一部分,就是对primary数据库的配置。
1、打开Forced Logging模式将primary数据库置为FORCE LOGGING模式。
通过下列语句:SQL> alter database force logging;提示:关于FORCE LOGGING想必大家知道有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。
如果在执行force logging时有nologging之类的语句在执行,则force logging 会等待直到这类语句全部执行。
FORCE LOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可),如果想取消,可以通过alter database no force logging语句关闭强制记录。
2、创建密码文件(如果不存在的话)需要注意的是,同一个Data Guard配置中所有数据库必须都拥有独立的密码文件,并且必须保证同一个Data Guard配置中所有数据库服务器的SYS用户拥有相同密码以保证redo数据的顺利传输,因为redo传输服务通过认证的网络会话来传输redo数据,而会话使用包含在密码文件中的SYS用户密码来认证。
3、配置Standby Redo Log对于最大保护和最高可用性模式,Standby数据库必须配置standby redo log,并且oracle推荐所有数据库都使用LGWR ASYNC模式传输,当然你现在可能还不知道LGWR ASYNC是什么问题,没关系,你很快就会知道了。
Oracle建议你在创建standby时就考虑standby redolog配置的问题。
standby redologs与online redologs非常类似,应该说两者只是服务对象不同,其它参数属性甚至操作的命令格式几乎都一样,你在设计standby redologs的时候完全可以借鉴创建online redologs的思路,比如多个文件组啦,每组多个文件冗余之类的。
除些之外呢,oracle提供了一些标准的建议如下:确保standby redo log的文件大小与primary数据库online redo log文件大小相同。
λ这个很好理解的吧,就是为了接收和应用方便嘛。
创建适当的日志组λ一般而言,standby redo日志文件组数要比primary数据库的online redo日志文件组数至少多一个。
推荐standby redo日志组数量基于primary数据库的线程数(这里的线程数可以理解为rac结构中的rac节点数)。
有一个推荐的公式可以做参考:(每线程的日志组数+1)*最大线程数例如primary数据库有两个线程,每个线程分配两组日志,则standby日志组数建议为6组,使用这个公式可以降低primary数据库实例LGWR进程锁住的可能性。
提示:逻辑standby数据库有可能需要视工作量增加更多的standby redo log文件(或增加归档进程),因为逻辑standby需要同时写online redo log文件。
Standby redo log的操作方式与online redo log几乎一模一样,只不过在创建或删除时需要多指定一个standby关键字,例如添加:SQL> alter database add standby logfile group 4('e:\ora10g\oradata\jsspdg\STANDBYRD01.LOG') size 20M;删除也同样简单:SQL> alter database drop standby logfile group 4;另外,从可靠性方面考虑,建议在primary数据库也创建standby redologs,这样一旦发生切换,不会影响primary做为standby的正常运行。
验证standby redo log文件组是否成功创建例如:SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;4、设置初始化参数对于primary数据库,需要定义几个primary角色的初始化参数控制redo传输服务,还有几个附加的standby角色的参数需要添加以控制接收redo数据库并应用(switchover/failover后primary/standby角色可能互换,所以建议对于两类角色相关的初始化参数都进行配置)。
注意:上面列举的这些参数仅只是对于primary/standby两角色可能会相关的参数,还有一些基础性参数比如*_dest,*_size等数据库相关的参数在具体配置时也需要根据实际情况做出适当修改。
5、确保数据库处于归档模式SQL> archive log list;数据库日志模式存档模式自动存档启用.......如果当前primary数据库并未处于归档模式,可通过下列命令将数据库置为归档模式:SQL> STARTUP MOUNT;SQL> ALTER DATABASE ARCHIVELOG;SQL> ALTER DATABASE OPEN;二、手把手的创建物理standby1、创建备份(手工复制数据文件或通过RMAN) ---primary库操作2、创建控制文件--primary库操作通过下列语句为standby数据库创建控制文件SQL> alter database create standby controlfile as 'd:\backup\jsspdg01.ctl';注意哟,控制文件通常需要有多份,你要么手工将上述文件复制几份,要么用命令多创建几个出来。
另外,创建完控制文件之后到standby数据库创建完成这段时间内,要保证primary数据库不再有结构性的变化(比如增加表空间等等),不然primary和standby同步时会有问题。
3、创建初始化参数文件创建客户端初始化参数文件λ例如:SQL> create pfile='d:\backup\initjsspdg.ora' from spfile;修改初始化参数文件中的参数λ根据实际情况修改吧,注意primary和standby不同角色的属性配置,注意文件路径。
4、复制文件到standby服务器至少三部分:数据文件,控制文件,修改过的初始化参数文件,注意路径。
共14页。
12345678...5、配置standby数据库如果你看过三思之前"一步一步学rman"系列,看过"duplicate复制数据库",或看过"传输表空间复制数据"系列,那么对于创建一个新的数据库应该非常熟悉了,下面再简单描述一下步骤:1).创建新的OracleService(windows环境下需要)。
2).创建密码文件,注意保持密码与primary数据库一致。
3).配置监听并启动4).修改primary和standby的tnsnames.ora,各自增加对应的Net Service Name。
5).创建服务器端的初始化文件6、启动standby注意哟,咱们前面说过的,物理standby极少情况下可以以read-write模式打开,某些情况下可以以read-only模式打开,所以默认情况下,加载到mount状态即可。
SQL> STARTUP MOUNT;启动redo应用SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;启动实时应用SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;提示:disconnect from session子句并非必须,该子句用于指定启动完应用后自动退出到命令操作符前,如果不指定的话,当前session就会一直停留处理redo应用,如果想做其它操作,就只能新建一个连接。
7、停止standby正常情况下,我们停止也应该是先停止redo应用,可以通过下列语句:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CALCEL;然后再停止standby数据库SQL> SHUTDOWN IMMEDIATE;当然你非要直接shutdown也没问题,dg本来就是用于容灾的,别说你生停standby,就是直接拔电源也不怕。
物理standby创建示例为了最大的降低硬件需求,此处创建的data guard处于同一台机器,但其创建过程与多机并无区别。
做为演示用的示例足够了,我们分两阶段配置,分别是配置primary数据库和配置standby数据库,如下:一、Primary数据库配置及相关操作1、确认主库处于归档模式SQL> archive log list;数据库日志模式存档模式自动存档启用存档终点E:\ora10g\oradata\jssweb最早的联机日志序列148下一个存档日志序列150当前日志序列150SQL>2、将primary数据库置为FORCE LOGGING模式。
通过下列语句:SQL> alter database force logging;数据库已更改。
3、创建standby数据库控制文件SQL> alter database create standby controlfile as 'd:\backup\jsspdg01.ctl';数据库已更改。
4、创建primary数据库客户端初始化参数文件注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile重建spfile,你当然也可以通过alter system set命令直接修改spfile内容。
SQL> create pfile from spfile;文件已创建。
将该初始化参数文件复制一份,做为standby数据库的客户端初始化参数文件SQL> host copy e:\ora10g\product\10.2.0\db_1\database\initjssweb.orad:\backup\initjsspdg.ora已复制1 个文件。