zoukankan      html  css  js  c++  java
  • (转)Oracle Data Guard配置

    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 ora9i9.2.0.1.0192.168.3.135主机名:data580 SIDPRIMARY
    从库:win2003server ora9i9.2.0.1.0192.168.3.136主机名:data380 SIDSTANDBY
    1、主库和从库的Oracle安装的时候都选择相同的安装路径E:oracleora92;并且先不要安装数据库,即在安装过程中数据库配置一项下面选择只安装软件
    2、在主库上使用DBCADatabase 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,在里面创建空文件夹bdumpcdumpudumpcreatepfile;将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、进入sqlplusstandby.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 ;
    这个功能的可以用来查询前一天(或者前若干时间)以前的数据,比如报表之类的,因为今天只能查询昨天以前的报表,对数据的同步性的要求不是那么严格。查询完后一定要将从库设回恢复模式。

  • 相关阅读:
    大数据架构资料
    SQLServer 随机生成指定范围的日期
    源码解析Django CBV的本质
    源码剖析Django REST framework的认证方式及自定义认证
    Django----中间件详解
    权限管理系统
    Django---分页器、中间件
    linux每日命令(37):top命令
    linux每日命令(36):wc命令
    linux每日命令(35):grep命令
  • 原文地址:https://www.cnblogs.com/newmanzhang/p/3450301.html
Copyright © 2011-2022 走看看