zoukankan      html  css  js  c++  java
  • DATAGUARD的搭建

    ORACLE Data Guard 理论知识

    请查看此blog :http://blog.csdn.net/haibusuanyun/article/details/11519241

    Oracle Data Guard搭建步骤

    1、主库设置归档模式

    2、主库设置Force Logging模式

    3、备库创建相应的dump文件夹

    4、配置辅助实例参数文件

    5、生成辅助实例密码文件

    6、配置辅助实例监听

    7、实施数据库克隆(辅助实例启动到nomount状态后)

    8、启动日志传送

    9、应用redo日志操作。

    创建数据验证环境

    primary>conn lottu/li0924
    Connected.
    primary>create table tbl_lottu(id number,name varchar2(10));
    Table created.
    primary>insert into tbl_lottu select level,'lottu'||level from dual connect by level <= 10;
    10 rows created.
    primary>commit;
    Commit complete.

    1、主库设置归档模式

    SQL> set sqlprompt "primary>"
    primary>archive log list;
    Database log mode           Archive Mode
    Automatic archival           Enabled
    Archive destination           /home/oracle/oradata/arch
    Oldest online log sequence     73
    Next log sequence to archive   75
    Current log sequence           75

    2、主库设置Force Logging模式

    primary>select force_logging from v$database;
    FORCE_LOG
    ---------
    NO
    primary>alter database force logging;
    Database altered.

    3、备库创建相应的dump文件夹

    主库查询sql;看下是否需要补漏目录

    elect name, value
      from v$parameter
     where name in ('audit_file_dest',
                    'background_dump_dest',
                    'control_files',
                    'core_dump_dest',
                    'user_dump_dest',
                    'db_recovery_file_dest'
                   )
     ORDER BY name ASC;

    备库用oracle用户执行创建目录

    mkdir -p /u01/app/admin/ora234/adump
    mkdir -p /u01/app/diag/rdbms/ora234/ora234/trace
    mkdir -p /u01/app/oradata/ora234
    mkdir -p /u01/app/flash_recovery_area
    mkdir -p /u01/app/diag/rdbms/ora234/ora234/cdump
    mkdir -p /home/oracle/oradata/arch
    mkdir -p /home/oracle/oradata/ora234

    4、配置辅助实例参数文件

    4.1主库通过spfile生成pfile文件;

    primary>create pfile from spfile;

    4.2修改参数文件。

    #主库添加部分

    *.DB_UNIQUE_NAME=db_primary
    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(db_primary,db_standby)'
    *.LOG_ARCHIVE_DEST_2='SERVICE=tns_standby ARCH VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=db_standby'
    *.LOG_ARCHIVE_DEST_STATE_2=DEFER
    *.FAL_SERVER=tns_standby
    *.FAL_CLIENT=tns_primary
    *.STANDBY_FILE_MANAGEMENT=AUTO

    #备库添加部分

    *.DB_UNIQUE_NAME=db_standby
    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(db_primary,db_standby)'
    *.LOG_ARCHIVE_DEST_2='SERVICE=tns_primary ARCH VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=db_primary'
    
    *.LOG_ARCHIVE_DEST_STATE_2=ENABLE
    *.FAL_SERVER=tns_primary
    *.FAL_CLIENT=tns_standby
    *.STANDBY_FILE_MANAGEMENT=AUTO

    4.3主备库以新建的参数文件启动

    #主库

    primary>shutdown immediate;
    primary>create spfile from pfile;
    primary>startup

    #备库

    standby>startup nomount

    5、生成辅助实例密码文件

    方法1: 直接从Primary数据库复制密钥文件过来

    方法2: orapwd生成

    若忘记密码;采用第二种方法生成

    orapwd file='$ORACLE_HOME/dbs/oraora234.ora' password=oracle

    6、配置辅助实例监听

    6.1配置监听文件listener.ora

    # listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ********)(PORT = 1521))
        )
      )
    
    SID_LIST_LISTENER =
      (SID_LIST =
       
       (SID_DESC = 
         (GLOBAL_DBNAME = db_primary)   #/(GLOBAL_DBNAME = db_standby)
         (SID_NAME = ora234)
         (ORACLE_HOME =/u01/app/oracle)
       )
    
      )
    
    ADR_BASE_LISTENER = /u01/app

    6.2配置文件tnsnames.ora

    tns_primary =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ********)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = db_primary)
        )
      )
    
    tns_standby =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = ********)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = db_standby)
        )
      )

    6.3 若开启了防火墙;须先打开1521数据库端口

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT

    6.4 验证是否配置成功

    [oracle@localhost admin]$ tnsping tns_standby
    
    TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 15-FEB-2017 10:47:01
    
    Copyright (c) 1997, 2011, Oracle.  All rights reserved.
    
    Used parameter files:
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ********)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = db_standby)))
    OK (10 msec)
    [oracle@localhost admin]$ tnsping tns_primary
    
    TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 15-FEB-2017 10:47:10
    
    Copyright (c) 1997, 2011, Oracle.  All rights reserved.
    
    Used parameter files:
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ********)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = db_primary)))
    OK (0 msec)

    7、实施数据库克隆(辅助实例启动到nomount状态后)

    rman target sys/Oracle123__@tns_primary auxiliary sys/Oracle123__@tns_standby
    
    DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;

    操作日志如下:

    [oracle@oracle234 ~]$ rman target sys/Oracle123__@tns_primary auxiliary sys/Oracle123__@tns_standby
    
    Recovery Manager: Release 11.2.0.3.0 - Production on Wed Feb 15 12:37:32 2017
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    connected to target database: ORA234 (DBID=2038937181)
    connected to auxiliary database: ORA234 (not mounted)
    
    RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;
    
    Starting Duplicate Db at 15-FEB-17
    using target database control file instead of recovery catalog
    allocated channel: ORA_AUX_DISK_1
    channel ORA_AUX_DISK_1: SID=254 device type=DISK
    ……
    
    contents of Memory Script:
    {
       set until scn  960540;
       recover
       standby
       clone database
        delete archivelog
       ;
    }
    executing Memory Script
    
    executing command: SET until clause
    
    Starting recover at 15-FEB-17
    using channel ORA_AUX_DISK_1
    
    starting media recovery
    
    archived log for thread 1 with sequence 76 is already on disk as file /home/oracle/oradata/arch/1_76_935749853.dbf
    archived log file name=/home/oracle/oradata/arch/1_76_935749853.dbf thread=1 sequence=76
    media recovery complete, elapsed time: 00:00:00
    Finished recover at 15-FEB-17
    Finished Duplicate Db at 15-FEB-17

    8、启动日志传送

    Primary> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;
    System altered.

    9、应用/关闭redo日志操作。验证是否数据/日志同步

    primary>conn lottu/li0924
    Connected.
    primary>create table t as select level id from dual connect by level < 10;
    Table created.
    primary>alter system switch logfile;
    alter system switch logfile
    *
    ERROR at line 1:
    ORA-01031: insufficient privileges
    primary>alter system switch logfile;
    System altered.

    备库验证

    standby> alter database recover managed standby database disconnect from session;
    Database altered.
    standby> alter database recover managed standby database cancel;
    Database altered.
    standby> select count(1) from lottu.t;
      COUNT(1)
    ----------
         9
  • 相关阅读:
    routine的加载
    Forms Authentication and Role based Authorization: A Quicker, Simpler, and Correct Approach
    How does Request.IsAuthenticated work?
    细说ASP.NET Forms身份认证
    IIS URL Rewriting and ASP.NET Routing
    Razor syntax reference for ASP.NET Core
    win10 合并磁盘 disk Acronis Disk Director
    bad object refs/remotes/origin/HEAD
    https://www.atlassian.com/git/tutorials/git-gc
    c++ 中文字符串处理方法
  • 原文地址:https://www.cnblogs.com/lottu/p/7054731.html
Copyright © 2011-2022 走看看