data guard配置的条件
1、在主库和从库的所有机器上必须安装同一个版本的Oracle企业版。
2、主库必须运行在归档模式下。
3、主库和从库的操作系统必须一样(允许版本不同),从库可以使用与主库不同的目录结构。
4、主从库硬件系统的体系结构必须相同。比如:主库运行在64位的Sun Sparc系统上,如果从库是32位的Linux Intel系统就不允许。主从库硬件的配置可以不同,比如:CPU数量、内存大小、存储配置等。
5、主从库可以是单实例的数据库,也可以是多实例的RAC数据库。
6、每个主从库必须有它自己的控制文件。
7、如果把主从库放在了一个系统里,则必须调整初始化参数。
8、只要使用data guard配置就要保持主库是FORCE LOGGING模式,如果在主库上使用了no logging操作不生成日志,因此数据也不会传递到从库。

9、管理主从库的用户必须具有SYSDBA权限。

主库:win2003 server ora9i(9.2.0.1.0)192.168.3.135主机名:data580 SID:PRIMARY
从库:win2003server ora9i(9.2.0.1.0)192.168.3.136主机名:data380 SID:STANDBY
1、主库和从库的Oracle安装的时候都选择相同的安装路径E:oracleora92;并且先不要安装数据库,即在安装过程中“数据库配置”一项下面选择“只安装软件”;
2、在主库上使用DBCA(Database Configuration Assistant)建一个数据库,SID设为PRIMARY;
3、设置主库归档路径为e:oracleora92databaseArchive:
   Sql>alter system set log_archive_dest_1='LOCATION=e:oracleora92databaseArchive 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 'e:oracleoradatastandby.ctl';
7、在主库上面创建从库的初始化参数文件standby.ora(将其拷贝回从库后转换成从库的spfile):
   Sql>create pfile='e:oracleoradatastandby.ora' from spfile;
8、查看主库的数据文件及其的位置:Sql>select name from v$datafile;记下查询结果中的数据文件的位置。
9、关闭实例:
   Sql>shutdown immediate;
10、将第6步中的standby.ctl、第7步中的standby.ora和第8步骤中的数据文件、还有E:oracleoradataPRIMARY路径下面的联机日志文件(REDO.LOG)、E:oracleora92database里面的口令文件PWDPRIMARY.ora备份出来,拷贝到从库中;在从库中创建路径E:oracleoradataPRIMARY,存放standby.ctl、数据文件、联机日志文件;创建路径

E:oracleadminPRIMARY,在里面创建空文件夹bdump、cdump、udump、create、pfile;将standby.ora放到E盘根目录下面;将口令文件PWDPRIMARY.ora更名为PWDSTANDBY.ora,放到从库的E:oracleora92database下面。
11、回到主库,启动主库实例和数据库:
   Sql>startup
12、转回到从库,手动创建服务OracleServiceSTANDBY:
    oradim -new -sid STANDBY -startmode manual
   设置环境变量:在环境变量的“Administrator的用户变量”一栏里面新建一个值,变量名为ORACLE_SID,变量值为STANDBY(服务名)。
13、创建从库监听器OracleOraHome92TNSListener:进入Net Configuration Assistant,使用“监听程序配置”来创建从库的监听器,同时会在E:oracleora92networkadmin下面生成listener.ora文件;
14、配置本地NET服务名:进入Net Configuration Assistant,使用“本地NET服务名配置”来配置,同时会在E:oracleora92networkadmin下面生成tnsnames.ora文件;
15、配置主从库的tnsnames.ora,都将里面的内容设置成如下内容:
STANDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.136)(PORT =1521)) ) (CONNECT_DATA = (SERVICE_NAME = PRIMARY) ) )

PRIMARY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.135)(PORT =1521)) ) (CONNECT_DATA = (SERVICE_NAME = PRIMARY) ) )
16、修改E根目录下面的初始化参数文件standby.ora,里面的全部内容如下(删除了原来的control_files参数,将instance_name改成了STANDBY,最后面的7行粗体部分是新添加的内容):
*.aq_tm_processes=1
*.background_dump_dest='e:oracleadminPRIMARYbdump'
*.compatible='9.2.0.0.0'
*.core_dump_dest='e:oracleadminPRIMARYcdump'
*.db_block_size=8192
*.db_cache_size=728760320
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='PRIMARY'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=PRIMARYXDB)','(PROTOCOL=TCP)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
*.instance_name='STANDBY'
*.java_pool_size=20971520
*.job_queue_processes=10
*.large_pool_size=143654912
*.log_archive_dest_1='LOCATION=e:oracleora92databaseArchive MANDATORY'
*.log_archive_start=TRUE
*.open_cursors=300
*.pga_aggregate_target=324009984
*.processes=150
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=242221056
*.sort_area_size=52428800
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='e:oracleadminPRIMARYudump'
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.lock_name_space='standby'
*.fal_server='primary'
*.fal_client='standby'
*.standby_archive_dest='e:oracleora92databaseArchive'
*.control_files='e:oracleoradataprimarySTANDBY.CTL'
17、进入sqlplus将standby.ora创建成从库的spfile:
    Sql>create spfile from pfile='e:standby.ora';
18、启动从库的实例,并且将从库设置成standby模式:
    Sql>startup nomount; Sql>alter database mount standby database;
19、在从库启动日志应用服务:
    Sql>alter database recover managed standby database disconnect from session;
20、转到主库,启动到物理从库的归档:
    Sql>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=PRIMARY' SCOPE=BOTH;
    Sql>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
21、校验Data Guard的运转:
   主库,归档当前日志:
    SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
   从库,校验归档日志是否正常接收:
    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#;
SEQUENCE# APP --------- ---
8 YES
9 YES
10 YES
11 YES
如果都是像以上那样的内容,都是YES的话,那就成功了。也可以分别查看主从库的E:oracleora92databasearchive文件夹里面的内容,如果从库的和主库的内容一致,就算data guard配置成功了。
22、这个时候从库只是将日志文件拿过来存放起来,但并没有执行日志文件,所以在主库上所做的操作无法在从库上得到结果,即无法在从库上查询数据。要在从库上查询数据,要执行以下语句:在从库上用sysdba用户连接 
Sql>alter database recover managed standby database disconnect from session ;
Sql>alter database recover managed standby database cancel ;
Sql>alter database open read only ;
 查询数据即可。查询完成以后,需要恢复从库为恢复模式。
Sql>alter database recover managed standby database disconnect from session ;
这个功能的可以用来查询前一天(或者前若干时间)以前的数据,比如报表之类的,因为今天只能查询昨天以前的报表,对数据的同步性的要求不是那么严格。查询完后一定要将从库设回恢复模式。

(转)Oracle Data Guard配置的更多相关文章

  1. Oracle Data Guard配置

    Oracle Data Guard 的配置在网上有很多资料,但是没有一个完整的,配置下来多少有些问题.在踩了各种坑之后,自己终于配置成功,就想把这过程记录下来. 1   测试环境 主数据库:windo ...

  2. oracle data guard配置dg_broker

    https://community.oracle.com/docs/DOC-1007327 本文主要包括以下内容: 1.  配置dg broker,需要完成以下几个工作: 在主备库配置静态监听注册,注 ...

  3. Oracle Data Guard的配置

    概述 Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数 ...

  4. Oracle Data Guard 重要配置参数

    Oracle Data Guard主要是通过为生产数据库提供一个或多个备用数据库(是产生数据库的一个副本),以保证在主库不可用或异常时数据不丢失并通过备用数据库继续提供服务.对于Oracle DG的配 ...

  5. Oracle Data Guard

    DG 是 Oracle Data Guard 的简称.也就是Oracle11g的 数据卫士. 由于在工作中 Oracle和 SQL SERVER2008 同时都需要维护管理.给我的感觉这里的 DG 其 ...

  6. (转)Oracle Data Guard学习

    一.Data Guard提供如下三种数据保护模式: 1)最高保护模式(Maximum Protection) 这里的”最高保护“是指最大限度的保护数据不丢失,也就是至少有一个standby和prima ...

  7. Oracle data guard学习

    Oracle data guard学习:三思笔记 Data guard 1data guard结构: data guard是一个集合,由一个primary数据库(生产数据库)和一个或多个standby ...

  8. Oracle data guard 10g 搭建

    Oracle data guard 10g 搭建 1系统常规参数检查 硬盘 [root@localhost ~]# df -h 内核 [root@localhost ~]# uname -a [roo ...

  9. 一步一步搭建 Oracle Data Guard

    前言 为什么要写前言,因为我要吐槽一下.作为一个Java后端,搭建Oracle Data Guard真的是一件,嗯,既不专业也不擅长的事情,然而,为什么还是要我来弄? 因为DBA出差了,我们这边急着要 ...

随机推荐

  1. windows 10是如何做到全平台统一的?

    1.EXE本身就是个容器,它可以在ARM平台上包含ARM的native code执行,也可以在x86平台上包含x86的native code执行,本质上无差别(所以麻烦那些说EXE不能在ARM平台上运 ...

  2. 深入理解JavaScript Hijacking原理

    最近在整理关于JavaScript代码安全方面的资料,在查关于JavaScript Hijacking的资料时,发现关于它的中文资料很少,故特意整理一下. 一.JavaScript Hijacking ...

  3. COJ 0995 WZJ的数据结构(负五)区间操作

    WZJ的数据结构(负五) 难度级别:C: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大小为 ...

  4. Java中string拼接,StringBuilder,StringBuffer和+

    Java中string拼接,StringBuilder,StringBuffer和+,到底哪个更合适? StringBuilder线程不安全,效率较线程安全的StringBuffer高.jdk1.5之 ...

  5. 【转】Java 多线程(四) 多线程访问成员变量与局部变量

    原文网址:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913659.html 先看一个程序例子: public class HelloThrea ...

  6. String和数字之间的转化

    主要是JDK的代码,还是比较的经典,值得一看,例如: package alg; /** * @author zha 字符串之间的转化 */ public class Alg3StringToint { ...

  7. Android ListView嵌套Button,Button事件覆盖item事件解决办法

    方法就是修改item布局的xml文件: 在根布局里加上: android:descendantFocusability="blocksDescendants" 然后在按钮布局里加上 ...

  8. HDU_1426——数独问题,DFS

    Problem Description 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行 ...

  9. Java ConcurrentHashmap 解析

    总体描述: concurrentHashmap是为了高并发而实现,内部采用分离锁的设计,有效地避开了热点访问.而对于每个分段,ConcurrentHashmap采用final和内存可见修饰符Volat ...

  10. Python进阶(面向对象编程基础)(二)

    1.初始化实例属性 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan' #定义Person类的__init__方法 ...