dg oracle_dg oracle 查看同步是否正常 - CSDN
精华内容
参与话题
  • ORACLE DG概念及切换

    万次阅读 2019-01-15 16:02:46
    DG的原理: DG分为物理standy,逻辑standy 物理standy: 物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。它是直接应用REDO实现同步的。 逻辑standy: 逻辑STANDBY则不是...

    DG的原理:

    DG分为物理standy,逻辑standy

    物理standy:

    物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。它是直接应用REDO实现同步的。

    逻辑standy:

    逻辑STANDBY则不是这样,在逻辑STANDBY中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表。

    DG三种模式:

    最大保护模式(Maximum protection)  --性能不佳

    alter database set standby database to maximize protection;

    Primary Database上的每个事务的Redo日志必须在本地和Standby Database上都写入日志文件后才能提交,如果不能写入到Standby Database,Primary Database就会自动关闭(挂起)以防止数据丢失。

    最大可用性(Maximum Availability)

    Primary Database每个事务的Redo日志要写到本地和Standby Database中才能提交。

    这个和最大保护模式不同的是,如果写入到Standby Database失败,Primary Database不会自动关闭。这时Primary Database会自动转换为Maximum Performance模式,等待问题解决并且Standby Database再次和Primary Database同步之后,Primary Database会自动的转换为Maximum Availability。

    这种模式要求Standby Database必须配置Standby Redo log,而Primary Database必须配置为LGWR、SYNC、AFFIRM方式归档。

    最大性能(Maximum Performance)

    这个模式是缺省模式,他更加侧重对Primary Database的可用性不造成任何影响。

    Primary Database上的事务的Redo日志只要写到本地日志文件就可以提交,不必等待到Standby Database的传递完成。

    Primary Database的Redo流可以异步的发送到Standby Database。

    这种模式通过LGWR ASYNC或者ARCH实现,Standby Database也不要求使用Standby Redo Log。

    一、检查DG是否正常的四个方法

    1.看备库的告警日志,正在恢复的日志号是否对应得上

    2.看三个进程是否都已经启动

    SQL>select process from v$managed_standby

    主库中显示:

    PROCESS

    ---------

    ARCH

    ARCH

    ARCH

    ARCH

    备库中显示:ARCH、MRPO和RFS 表示正常

    3.先切换一次日志,再进到归档目录里,看两边的归档文件号是否对得上

    4.用命令查看两边归档是否对得上

    SQL> select max(sequence#) from v$archived_log where applied='YES';

    二、切换DG步骤

    关闭:先主库,后备机,开启的时候先开备库启动备库监听,再开主库

    1.先将主库切换成备库,然后将原主库启动到物理库的状态

    SQL> Alter database commit to switchover to physical standby with session shutdown;

    2.关闭主库

    SQL> shutdown immediate

    3.打开数据库nomount

    SQL> startup nomount

    4.更改主库为备库

    SQL> alter database mount standby database;

    SQL> alter database recover managed standby database disconnect from session;

    如果配置了 standby redo log 并需要启用实时同步则执行以下代码

    SQL>alter database recover managed standby database using current logfile disconnect from session;

    5.将备库切换成主库

    SQL> select switchover_status from v$database;

    SQL> select * from v$version where rownum<2;

    SQL> alter database commit to switchover to primary with session shutdown;

    如果备库还有未应用的日志则执行

    SQL>alter database recover managed standby database disconnect from session;

    SQL> shutdown immediate

    SQL> startup

    切换日志进行检查

    SQL> select max(sequence#) from v$log;

    SQL>select sequence#,applied from v$archived_log;

    SQL> alter system switch logfile;

     

    展开全文
  • oracle DG模式搭建详解

    千次阅读 2018-08-13 10:00:50
    oracle DG搭建 安装环境  在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例,dg搭建之后数据会同步过去。    数据库参数优化(也可在spfile文件统一修改) 注:scope=...

    oracle DG搭建

    安装环境

        在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例,dg搭建之后数据会同步过去。

     

     数据库参数优化(也可在spfile文件统一修改)

    注:scope=spfile表示更改spfile文件的值,重启数据库后才能生效

    sga,pga配置

    sga:(内存大小*80%)*80% = 128G * 80% * 80% = 82G;

    pga:(内存大小*80%)*20% = 128G * 80% * 80% = 20G;

    alter system set sga_max_size=82000m scope=spfile;

    alter system set sga_target=82000m scope=spfile;

    alter system set pga_aggregate_target=20000m scope=spfile;

    JOB_QUEUE_PROCESSES参数

    JOB_QUEUE_PROCESSES参数是job的进程个数,默认是0;

    ALTER SYSTEM SET JOB_QUEUE_PROCESSES=20;

    共享池大小

    Shared pool是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据字典缓存组成。其中库缓存的作用是存放频繁使用的sql,pl/sql代码以及执行计划。数据字段缓存用于缓存数据字典。在内存空间有限的容量下,数据库系统根据一定的算法决定何时释放共享池中的sql,pl/sql代码以及数据字典信息。所以shared_pool_size不能太小,否则执行效率会很低。

    alter system set shared_pool_size=15000m scope = spfile;

     数据库最大连接数

    数据库的最大可支持的连接数,根据公司逻辑库的实际情况1500足够了

    alter system set processes=1500 scope = spfile;

     数据文件个数

    db_files参数限制了数据库数据文件总的个数,datafiles数目达到db_files指定后数据库不能添加新的数据文件

    alter system set db_files=1000 scope=spfile;

     游标参数

    OPEN_CURSORS 指定一个会话一次最多可以拥有的游标数,不够无法使用游标,过大不会增加系统开销

    alter system set open_cursors=2000 scope=both;

    alter system set session_cached_cursors=500 scope=spfile;

    默认密码期限

    Oracle数据库密码期限是180,把它改成无限制

    ALTER  PROFILE  DEFAULT  LIMIT  PASSWORD_LIFE_TIME  UNLIMITED;

     数据库连接超时时间

    默认是60秒,60秒没连接,会报错,把它设置成0

    LSNRCTL> set inbound_connect_timeout 0

    LSNRCTL> set save_config_on_stop on 生效

    关闭审计

    oracle 11g推出了审计功能,这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,考虑到实际情况,将审计功能关闭

    alter system set audit_trail=none scope = spfile;

    重启数据库

    上述修改都需重启数据库生效

    SQL>shutdown immediate

    SQL>startup;

    主数据库配置(192.168.8.173)

     开启归档与强制LOGGING

    Oracle dg模式需要保证主从库一致,需要传输archive log和redo log到从库,如果不是归档模式无法保证主从库的数据一致。

    SQL> select log_mode,force_logging from v$database;

     LOG_MODE     FOR 

     ------------     --- 

     ARCHIVELOG     NO 

    SQL> ALTER DATABASE FORCE LOGGING; 

     创建redo和standy redo日志

        根据公司平台情况创建6个redo日志组,每个大小1G,创建standby日志组的个数是原日志组个数+1再与thread的积,size不能小于原日志文件的大小,所以这里创建7个standby redo。

    redo log创建和删除

    1:select * from v$log; 查看redo日志状态

    2:alter system switch logfile; 将当前redo日志切到下一个执行

    3:alter database add logfile group 6 ('/oracle/oradata/dbxxx/redo06.log') size 1024m reuse;

    添加新的redo日志

    4: alter database drop logfile group 1; 删除redo日志组(慎用)

    standby redo log 的创建只是在logfile前加一个standby

        1.alter database add standby logfile group 7('/oracle/oradata/dbxxx/standyredo01.log') size 1024m reuse;

    创建主库密码文件

    Data Guard 配置中所有数据库必须都拥有独立的密码文件,并且必须保证同一个 Data Guard 配置中所有数据库服务器的 SYS 用户拥有相同密码以保证redo 数据的顺利传输,因为 redo 传输服务通过认证的网络会话来传输redo 数据,而会话使用包含在密码文件中的SYS 用户密码来认证。

    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=xxxx entries=1 force=y

    SPFILE文件配置(128G内存数据库)

    注:数据库启动时加载spfile文件,需对参数进行调整,以及主备配置

    SQL> create pfile='/oracle/product/11.2/dbs/initdbxxx.ora' from spfile;

    vi /oracle/product/11.2/dbs/initdbxxx.ora

    dbxxx.__db_cache_size=66035122176

    dbxxx.__java_pool_size=536870912

    dbxxx.__large_pool_size=536870912

    dbxxx.__oracle_base='/oracle'#ORACLE_BASE set from environment

    dbxxx.__pga_aggregate_target=21474836480

    dbxxx.__sga_target=83751862272

    dbxxx.__shared_io_pool_size=0

    dbxxx.__shared_pool_size=15569256448

    dbxxx.__streams_pool_size=536870912

    *.audit_file_dest='/oracle/admin/dbxxx/adump'

    *.audit_trail='db'

    *.compatible='11.2.0.0.0'

    *.control_files='/oracle/oradata/dbxxx/control01.ctl','/oracle/flash_recovery_area/dbxxx/control02.ctl'

    *.db_block_size=8192

    *.db_domain=''

    *.db_files=1000

    *.db_name='dbxxx'

    *.db_recovery_file_dest='/oracle/flash_recovery_area'

    *.db_recovery_file_dest_size=20971520000

    *.DB_UNIQUE_NAME='dbxxxpr'    *.diagnostic_dest='/oracle'

    *.dispatchers='(PROTOCOL=TCP) (SERVICE=dbxxxXDB)'

    *.FAL_CLIENT='dbxxxpr'  

    *.FAL_SERVER='dbxxxdg'  

    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbxxxpr,dbxxxdg)'

    *.log_archive_dest_1='location=/oracle/oradata/dbxxx/archivelog'

    *.log_archive_dest_2='SERVICE=dbxxxdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbxxxdg'   

    *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'    

    *.LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc'

    *.nls_language='SIMPLIFIED CHINESE'

    *.nls_territory='CHINA'

    *.open_cursors=1000

    *.pga_aggregate_target=20971520000

    *.processes=1500

    *.remote_login_passwordfile='EXCLUSIVE'

    *.session_cached_cursors=500

    *.sessions=1655

    *.sga_target=83751862272

    *.STANDBY_FILE_MANAGEMENT='AUTO'

    *.undo_tablespace='UNDOTBS1'

    SPFILE文件替换

    spfiledbxxx.ora复制initdbxxx.ora

    rm $ORACLE_HOME/dbs/spfiledbxxx.ora

    SQL> create spfile from pfile='/oracle/product/11.2.0/dbs/initdbxxx.ora';

    tns文件配置

    vi $ORACLE_HOME/network/admin/tnsnames.ora ,配置如下:

    dbxxxpr =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = server173)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = dbxxx)

        )

      )

     

    dbxxxdg =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.174)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = dbxxx)  

        )

      )

     

    listener文件配置

    vi $ORACLE_HOME/network/admin/tnsnames.ora ,配置如下:

     

    LISTENER =

      (DESCRIPTION_LIST =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

          (ADDRESS = (PROTOCOL = TCP)(HOST = server173)(PORT = 1521))

        )

      )

    ADR_BASE_LISTENER = /oracle

    SAVE_CONFIG_ON_STOP_LISTENER = ON

    INBOUND_CONNECT_TIMEOUT_LISTENER = 0

     

    备数据库配置(192.168.8.174)

    文件复制

    将主数据库/oracle/product/10.2/network/admin下的网络配置文件(tnsnames.ora,listener.ora),和/oracle/product/10.2/dbs下的密码文件orapwdbxxx和initdbxxx.ora拷贝scp到备数据库相同目录下,scp不行的话用sz下载,rz上传。

    initdbxxx.ora参数配置

    注:主备切换对应的名称正好相反,其他配置一样

    修改initdbxxx.ora文件:

    dbxxx.__db_cache_size=66035122176

    dbxxx.__java_pool_size=536870912

    dbxxx.__large_pool_size=536870912

    dbxxx.__oracle_base='/oracle'#ORACLE_BASE set from environment

    dbxxx.__pga_aggregate_target=21474836480

    dbxxx.__sga_target=83751862272

    dbxxx.__shared_io_pool_size=0

    dbxxx.__shared_pool_size=15569256448

    dbxxx.__streams_pool_size=536870912

    *.audit_file_dest='/oracle/admin/dbxxx/adump'

    *.audit_trail='db'

    *.compatible='11.2.0.0.0'

    *.control_files='/oracle/oradata/dbxxx/control01.ctl','/oracle/flash_recovery_area/dbxxx/control02.ctl'

    *.db_block_size=8192

    *.db_domain=''

    *.db_files=1000

    *.db_name='dbxxx'

    *.db_recovery_file_dest='/oracle/flash_recovery_area'

    *.db_recovery_file_dest_size=20971520000

    *.DB_UNIQUE_NAME='dbxxxdg'

    *.diagnostic_dest='/oracle'

    *.dispatchers='(PROTOCOL=TCP) (SERVICE=dbxxxXDB)'

    *.FAL_CLIENT='dbxxxdg'

    *.FAL_SERVER='dbxxxpr'

    *.local_listener='for_db'

    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbxxxpr,dbxxxdg)'

    *.log_archive_dest_1='location=/oracle/oradata/dbxxx/archivelog'

    *.log_archive_dest_2='SERVICE=dbxxxpr LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbxxxpr'

    *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

    *.LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc'

    *.nls_language='SIMPLIFIED CHINESE'

    *.nls_territory='CHINA'

    *.open_cursors=1000

    *.pga_aggregate_target=20971520000

    *.processes=1500

    *.remote_login_passwordfile='EXCLUSIVE'

    *.session_cached_cursors=500

    *.sessions=1655

    *.sga_target=83751862272

    *.STANDBY_FILE_MANAGEMENT='AUTO'

    *.undo_tablespace='UNDOTBS1'


    创建相关目录

    mkdir -p /oracle/fast_recovery_area/dbxxx

    mkdir -p /oracle/admin/dbxxx

    cd /oracle/admin/dbxxx

    mkdir -p adump  dpdump  pfile

    mkdir -p /oracle/oradata/dbxxx/

    mkdir -p /oracle/oradata/dbxxx/archivelog

    tns文件配置

    修改/oracle/product/10.2/network/admin目录下的tnsnames.ora文件,配置如下:

    dbxxxdg =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = server174)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = dbxxx)

        )

      )

     

    dbxxxpr =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.173)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = dbxxx)  

        )

      )

    listener文件配置

    vi $ORACLE_HOME/network/admin/tnsnames.ora ,配置如下:

    SID_LIST_LISTENER =  

      (SID_LIST =  

        (SID_DESC =  

          (GLOBAL_DBNAME = dbxxx)  

          (ORACLE_HOME = /oracle/product/10.2)  

          (SID_NAME = dbxxx)  

        )  

      )

     

    LISTENER =

      (DESCRIPTION_LIST =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

          (ADDRESS = (PROTOCOL = TCP)(HOST = server174)(PORT = 1521))

        )

      )

     

    ADR_BASE_LISTENER = /oracle

     

    启动备库到nomount

    SQL> conn /as sysdba

    SQL> create spfile from pfile='/oracle/product/11.2.0/dbs/initgdqxt.ora';

    SQL> startup nomount

     

    备数据库还原

    [oracle@server174 ~]$ rman target sys/****@dbxxxpr auxiliary sys/****@dbxxxdg

    RMAN> duplicate target database for standby nofilenamecheck from active database;

     

    切换到同步模式

    SQL> alter database open;

    SQL> alter database recover managed standby database using current logfile disconnect from session;

     

    展开全文
  • ORACLE DG专题1--DG身份

    2019-09-13 12:11:00
    ORACLE DGORACLE DB企业数据管理三大特性(RAC、DG、RMAN)之一,其中RAC代表real application cluster(真正的应用集群)、DG代表data guard(数据卫士)、RMAN代表recovery manager(恢复管理器)。 RAC可提供多机...

    开门见山

             ORACLE DG是ORACLE DB企业数据管理三大特性(RAC、DG、RMAN)之一,其中RAC代表real application cluster(真正的应用集群)、DG代表data guard(数据卫士)、RMAN代表recovery manager(恢复管理器)。

    RAC可提供多机集群功能,多台设备同时对外提供服务,单一设备的故障不会影响整个数据服务;

    DG提供冗余的数据备份功能,即将数据库划分为主库与备库,主库主要负责对外提供服务,备库同步主库数据形成冗余备份,当主库故障时,备库可升级为主库以便最大限度的减少数据损失;

    RMAN提供丰富的数据备份与恢复功能,如全量备份、增量备份、全量恢复、基于时间点的不完全恢复等等。

             本系列博文以ORACLE DG为主线,详细讲述ORACLE DG的主要特性与功能。而本文则从ORACLE DG成员入手,带领大家走进ORACLE DG世界。

    Oracle DG身份

             ORACLE DG将实例划分为主库primary database、备库standby database、Far Sync instance(远程同步实例,12c开始支持)。其中主库对外服务产生重做日志与归档日志并通过网络传输至备库,备库应用接收到的重做日志形成与主库相同的数据副本。Far Sync是12c引进的新特性,用于解决远距离日志传输延时问题。是一个虚拟的数据库实例,用于同步介绍主库的重做日志并异步传输至备库,这样可以减少主库的网络传输负载。一个典型的DG架构如下图所示。

    主库

             一个ORACLE DG架构中含有一个生产主库,主库可以是单实例数据库,可以是RAC架构;

    备库

             备库是主库数据的事务连续性父辈,12c支持最大30个备库。与主库类似,备库既可以是单实例架构,可也是是RAC架构。此外,备库有如下三种类型:

    • Physical standby--物理备库

    物理备库通过重做应用,使之为主库数据完全拷贝,即主备数据库在磁盘上的数据完全相同(物理数据结构)。

    • Logical standby--逻辑备库

    逻辑备库使用SQL应用,即先解析重做日志内容为SQL主库,再在备库上执行此SQL语句,从而形成与主库相同的数据内容。但由于是oracle内部对SQL执行后的磁盘读写不尽相同,所以逻辑备库与主库的物理数据结构可能不同。

    逻辑备库主要用于ORACLE 滚动升级(物理备库升级可能出现重做日志不兼容问题),如oracle 12c的主库配置一个12c的逻辑备库,先将逻辑备库升级为19c;将再19c的逻辑备库切换至主库,12c的主库切为备;最后升级12c的备库。这样可以大大的减少业务中断时间。

    • Snapshot Standby--快照备库

    快照备库是一个完全可更新的备库。与物理备库和逻辑备库相同,快照备库也接收主库的重做日志,但是其并不应用重做日志。快照备库由物理备库转化而来,用于在某些场合临时打开备库的读写功能进行测试,测试完成后,又切换为物理备库继续应用主库重做日志,使主备同步。

    Far Sync

    Far Sync是为解决主备数据库远距离数据传输延迟问题,而在中间节点创建的一个虚实例,这个实例很特别,只有参数文件,密码文件和控制文件,而且需要特别强调的是没有数据文件。Far Sync接收主库的重做日志形成备重做日志(standby redo logs)并归档为本地重做日志,然后异步的这个重做日志传输至备库。

    总结

    如上所述,面对不同的企业应用场景,oracle DG提供丰富的数据库主备应用功能。使用者可根据具体场景与业务关键程度配置不同的备库类型,从而实现最大限度的数据保护。

     下文将讲诉ORACLE DG 的数据保护模式。

    展开全文
  • ORACLE--DG搭建

    千次阅读 2018-11-13 11:26:50
    1、有一套或者一台主库ORACLE,我这里是有一套RAC,版本11GR2 2、操作系统REDHAT6.5   二、使用duplicate进行DG搭建 1、安装单实例数据库 2、从主库拷贝init.ora文件到备库,修改相关路径,创建相关文件夹 ...

    一、安装前的准备:

    1、有一套或者一台主库ORACLE,我这里是有一套RAC,版本11GR2

    2、操作系统REDHAT6.5

     

    二、使用duplicate进行DG搭建

    1、安装单实例数据库
    2、从主库拷贝init.ora文件到备库,修改相关路径,创建相关文件夹

    主要有:

    orcldg3.__db_cache_size=1073741824
    orcldg3.__java_pool_size=201326592
    orcldg3.__large_pool_size=167772160
    orcldg3.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
    orcldg3.__pga_aggregate_target=1073741824
    orcldg3.__sga_target=3221225472
    orcldg3.__shared_io_pool_size=0
    orcldg3.__shared_pool_size=1073741824
    orcldg3.__streams_pool_size=0
    *.audit_file_dest='/u01/app/oracle/diag/rdbms/orcl/orcl/adump'
    *.audit_trail='NONE'
    *.compatible='11.2.0.4.0'
    *.control_files='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl'
    *.db_block_size=8192
    *.db_create_file_dest='/oradata/orcl'
    *.db_domain=''
    *.db_file_name_convert='+ORCL_DATA/orcldg/datafile','/oradata/orcl','+ORCL_DATA/orcldg/tempfile','/oradata/orcl'
    *.db_name='orcl'
    *.db_unique_name='orcldg3'
    *.diagnostic_dest='/u01/app/oracle'
    *.fal_client='orcldg3'
    *.fal_server='orcl'
    *.log_archive_config='DG_CONFIG=(orcldg,orcldg3)'
    *.log_archive_dest_1='location=/oradata/archivelog/orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg3'
    *.log_archive_dest_2='SERVICE=orcl lgwr ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl OPTIONAL REOPEN=15 MAX_FAILURE=10 NET_TIMEOUT=30'

    *.log_archive_format='%t_%s_%r.arc'
    *.log_file_name_convert='+ORCL_DATA/orcldg/onlinelog','/oradata/orcl'
    *.nls_length_semantics='CHAR'
    *.open_cursors=2000
    *.optimizer_dynamic_sampling=1
    *.optimizer_index_cost_adj=1
    *.pga_aggregate_target=1073741824
    *.processes=1500
    *.query_rewrite_enabled='FALSE'
    *.remote_login_passwordfile='exclusive'
    *.service_names='orcl,orcldg3'
    *.session_cached_cursors=40
    *.sessions=1655
    *.sga_target=3221225472
    *.standby_file_management='auto'
    *.undo_retention=1800
    *.undo_tablespace='UNDOTBS1'


    三、配置监听

    listener.ora添加

    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON    

    SID_LIST_LISTENER =  
      (SID_LIST =   
        (SID_DESC =  
       (SID_NAME =orcl)  
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)  
          (GLOBAL_DBNAME=orcl)  
        )  
    )

    tnsnames.ora添加

    ORCLDG3 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.101)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )

    四、从主库拷贝密码文件到备库

    启动备库数据库到nomount状态

    startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora';

    然后create spfile from pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora';

    shut immediate

    startup nomount

     

    五、在主库使用网络连接测试是否连接备库

    su - oracle

    sqlplu sys/passwd@orcldg3

    六、在主库其中一个节点执行duplicate脚本

    #!/bin/bash

    LOG=duplicate_`date +%Y%m%d`.log
    export TMP=/tmp
    export TMPDIR=$TMP
    export ORACLE_BASE=/oracle/app
    export ORACLE_HOME=/oracle/app/product/11.2.0/dbhome_1
    export ORACLE_TERM=xterm
    export PATH=/usr/sbin:$PATH
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/x11R6/lib64
    export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
    export ORACLE_SID=orcl2

    /oracle/app/product/11.2.0/dbhome_1/bin/rman target sys/passwd@orcl2 auxiliary sys/passwd@orcldg3 log=/home/oracle/orcldg3.log append <<EOF
    run{
    duplicate target database for standby from active database dorecover;
    }
    exit;
    EOF

    七、完成duplicate后,进行数据实时同步配置

    这里注意,主库和备库配置保持一致

    主库:

    SQL> show parameter log_archive_config

    NAME                     TYPE     VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config             string     DG_CONFIG=(orcldg,orcl)
    SQL> alter system set log_archive_config='DG_CONFIG=(orcldg,orcldg3)';


    alter system set log_archive_dest_state_3=enable;

    alter system set LOG_ARCHIVE_DEST_3='service=orcldg3 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg3';

    select inst_id,dest_name,status,error from gv$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_3';

    alter system set log_archive_dest_state_3=enable;

     

    这里注意主库RAC的两个节点都要配置TNSNAMES.ORA

    ORCLDG3 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.101)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )

     

    备库:(实际一般在参数文件里设置好和主库一样这里就不用改了)

    SQL> show parameter log_archive_config

    NAME                     TYPE     VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config             string     DG_CONFIG=(orcldg,orcl)
    SQL> alter system set log_archive_config='DG_CONFIG=(orcldg,orcldg3)';

     

    八、备库开启同步

    在备库上操作,开启DG同步
    alter database recover managed standby database using current logfile disconnect from session;

    查看是否同步
    select thread#,process,client_process,sequence#,status from v$managed_standby;

     

     

    九、相关报错的一些应对方式

    1、
    [oracle@erpdb2 ~]$ sqlplus sys/@tcbjeasdg4 as sysdba

    SQL*Plus: Release 11.2.0.4.0 Production on Thu Oct 25 15:23:54 2018

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

    ERROR:
    ORA-12528: TNS:listener: all appropriate instances are blocking new connections


    SQL> show parameter log_archive_config

    NAME                     TYPE     VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config             string     DG_CONFIG=(orcldg,orcl)
    SQL> alter system set log_archive_config='DG_CONFIG=(orcldg,orcldg3)';
    出现这个报错,要注意修改这个参数log_archive_config
    主库和备库都要修改


    2、
    SQL> select inst_id,dest_name,status,error from gv$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_3';

       INST_ID
    ----------
    DEST_NAME
    --------------------------------------------------------------------------------
    STATUS      ERROR
    --------- -----------------------------------------------------------------
         1
    LOG_ARCHIVE_DEST_3
    ERROR      ORA-12154: TNS:could not resolve the connect identifier specified

         2
    LOG_ARCHIVE_DEST_3
    VALID

       INST_ID
    ----------
    DEST_NAME
    --------------------------------------------------------------------------------
    STATUS      ERROR
    --------- -----------------------------------------------------------------

    alter system set log_archive_dest_state_3=enable;
    出现这个报错,要注意配置tnsnames.ora,与DG相连


    3、
    [oracle@erpdb2 admin]$ tnsping tcbjeasdg3

    TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 25-OCT-2018 16:29:19

    Copyright (c) 1997, 2013, Oracle.  All rights reserved.

    Used parameter files:


    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.101)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = tcbjeas))
    TNS-12533: TNS:illegal ADDRESS parameters


    遇到这个报错,一定要注意tnsnames.ora文件里面的配置,一定是多了空行,空格,或者少了括号之类的。

    4、
    [oracle@erpdb2 opt]$ sqlplus sys/@tcbjeasdg3 as sysdba

    SQL*Plus: Release 11.2.0.4.0 Production on Thu Oct 25 16:40:01 2018

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

    ERROR:
    ORA-12528: TNS:listener: all appropriate instances are blocking new connections

    遇到这个报错,要在备库配置好listener.ora和tnsnames.ora,如下:
    listener.ora

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.101)(PORT = 1521))
        )
      )

    ADR_BASE_LISTENER = /u01/app/oracle

    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
       (SID_NAME =orcl)
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
          (GLOBAL_DBNAME=orcldg3)
        )
        (SID_DESC =
       (SID_NAME =tcbjeas)
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
          (GLOBAL_DBNAME=tcbjeas)
        )
      )

    tnsnames.ora
      
    tcbjeasdg3 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = erpdg)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = tcbjeas)
        )
      )

      
    5、[oracle@erpdb2 opt]$ sqlplus sys/@tcbjeasdg3 as sysdba

    SQL*Plus: Release 11.2.0.4.0 Production on Thu Oct 25 16:50:47 2018

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

    ERROR:
    ORA-01017: invalid username/password; logon denied


    Enter user-name:

    遇到这个报错,从主库复制密码文件到备库,并且这个密码文件要改名和备库ORACL_SID一样的名字
      
    startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/inittcbjeasdg3.ora';
    startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/inittcbjeas.ora';

    6、
    contents of Memory Script:
    {
       sql clone 'alter database mount standby database';
    }
    executing Memory Script

    sql statement: alter database mount standby database
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of Duplicate Db command at 10/30/2018 14:15:43
    RMAN-05501: aborting duplication of target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata07.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata06.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebelindex04.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebelindex03.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebelindex02.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebelindex01.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata05.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata04.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata03.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata02.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/siebeldata01.dbf conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/undotbs2.263.989833943 conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/users.264.989833943 conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/undotbs1.262.989833943 conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/sysaux.274.989835355 conflicts with a file used by the target database
    RMAN-05001: auxiliary file name +CRM_DATA/crmproddg/datafile/system.269.989834569 conflicts with a file used by the target database

    RMAN> 

    Recovery Manager complete.


    检查备库的init.ora参数文件
    crmproddg3.__db_cache_size=2147483648
    crmproddg3.__java_pool_size=201326592
    crmproddg3.__large_pool_size=167772160
    crmproddg3.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
    crmproddg3.__pga_aggregate_target=2147483648
    crmproddg3.__sga_target=5368709120
    crmproddg3.__shared_io_pool_size=0
    crmproddg3.__shared_pool_size=1073741824
    crmproddg3.__streams_pool_size=0
    *.audit_file_dest='/u01/app/oracle/diag/rdbms/crmprod/crmprod/adump'
    *.audit_trail='NONE'
    *.compatible='11.2.0.4.0'
    *.control_files='/oradata/crmprod/control01.ctl','/oradata/crmprod/control02.ctl'
    *.db_block_size=8192
    *.db_create_file_dest='/oradata/crmprod'
    *.db_domain=''
    *.db_file_name_convert='+CRM_DATA/crmproddg/datafile','/oradata/crmprod','+CRM_DATA/crmproddg/tempfile','/oradata/crmprod'
    *.db_name='crmprod'
    *.db_unique_name='crmproddg3'
    *.diagnostic_dest='/u01/app/oracle'
    *.fal_client='crmproddg3'
    *.fal_server='crmprod'
    *.log_archive_config='DG_CONFIG=(crmproddg,crmproddg3)'
    *.log_archive_dest_1='location=/oradata/archivelog/crmprod VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=crmproddg3'
    *.log_archive_dest_2='SERVICE=crmprod lgwr ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=crmprod OPTIONAL REOPEN=15 MAX_FAILURE=10 NET_TIMEOUT=30'
    *.log_archive_format='%t_%s_%r.arc'
    *.log_file_name_convert='+CRM_DATA/crmproddg/onlinelog','/oradata/crmprod'
    *.nls_length_semantics='CHAR'
    *.open_cursors=2000
    *.optimizer_dynamic_sampling=1
    *.optimizer_index_cost_adj=1
    *.pga_aggregate_target=2147483648
    *.processes=1500
    *.query_rewrite_enabled='FALSE'
    *.remote_login_passwordfile='exclusive'
    *.service_names='crmproddg,crmproddg3'
    *.session_cached_cursors=40
    *.sessions=1655
    *.sga_target=5368709120
    *.standby_file_management='auto'
    *.undo_retention=1800
    *.undo_tablespace='UNDOTBS1'

    7、
    SQL> select inst_id,dest_name,status,error from gv$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_3';

       INST_ID
    ----------
    DEST_NAME
    --------------------------------------------------------------------------------
    STATUS      ERROR
    --------- -----------------------------------------------------------------
         1
    LOG_ARCHIVE_DEST_3
    ERROR      ORA-03135: connection lost contact

         2
    LOG_ARCHIVE_DEST_3
    ERROR      ORA-03135: connection lost contact

       INST_ID
    ----------
    DEST_NAME
    --------------------------------------------------------------------------------
    STATUS      ERROR
    --------- -----------------------------------------------------------------


    这种报错,就好看主备库的配置是否一致,配置成一致的就可以了
    show parameter log_archive_config


     

    8、DG备库因为重启单个2节点,导致无法同步(这是一个BUG)

    SQL> select inst_id,dest_name,status,error from gv$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_3';

       INST_ID
    ----------
    DEST_NAME
    --------------------------------------------------------------------------------
    STATUS      ERROR
    --------- -----------------------------------------------------------------
         1
    LOG_ARCHIVE_DEST_3
    VALID

         2
    LOG_ARCHIVE_DEST_3
    ERROR      ORA-01033: ORACLE initialization or shutdown in progress
     

    这个时候,1节点是正常的,将1节点的密码文件复制到2节点并覆盖,然后再执行以下下面语句恢复正常

    alter system set log_archive_dest_state_3=enable;

     

    展开全文
  • Oracle Dg配置过程

    2019-06-20 13:03:45
    第一章:Dg理论讲述Data Guard(简称:Dg)是oracle高可用性体系中的一种工具。Dg通过冗余数据来提供数据保护,Dg通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时、延时、同步、异步多种形式。...
  • Oracle 单实例DG搭建详解

    万次阅读 2017-06-06 14:50:41
    oracle DG datagrad switchover failover failover恢复
  • Oracle之ADG与DG的区别?

    千次阅读 2019-07-20 20:07:05
    在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份,ADG比DG更好!”。究竟ADG作Oracle数据灾备的优势在什么地方? 一、ADG主要解决了DG时代读写不能并行的...
  • Oracle 11g DG概念与进程详解

    万次阅读 2017-06-22 21:16:22
    RAC, Data Gurad, Stream 是Oracle 高可用性体系中的三种工具,每个工具即可以独立应用,也可以相互配合。 他们各自的侧重点不同,适用场景也不同。 RAC 它的强项在于解决单点故障和负载均衡,因此RAC ...
  • oracle DG 启动和关闭顺序

    千次阅读 2018-02-26 17:35:16
    启动顺序:先启动备库,后启动主库关闭顺序:先关闭主库,后关闭备库1、正确打开备库和主库备库:SQL&gt; STARTUP MOUNT;SQL&gt;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;...
  • oracle RAC如何正确地删除ASM磁盘组

    千次阅读 2018-01-20 18:00:04
    1.检查确认要删除的磁盘组是否在用 select * from dba_data_files; select * from dba_temp_files; select * from v$logfile; ...2.先在各节点上dismount磁盘组 ...alter diskgroup REDO01 dismount;...
  • oracle dg打开备库为读写数据库,慎重!

    千次阅读 2014-08-01 20:05:14
    --确保standby数据库置于flashback on 状态 --设置闪回恢复区 alter system set db_recovery_dest_size=2g; ...alter system set db_recovery_file_dest='+DATA';...alter database recover managed standby d
  • 1 背景说明 正常情况下,我们在安装Oracle数据库的时候,都会创建一个oracle的用户。 其根目录就是/home/oracle.  并且根据Oracle 的OFA的架构,也是建议使用/u01 这样的目录来单独安装oracle的软件,包括存放数据...
  • Oracle DG环境如何正确地删除Archivelog

    万次阅读 2016-07-31 16:07:05
    清理归档日志最稳妥的原则: 主备库清理归档,都要配置。RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;  主库才用备份归档并清理。 备库应该是直接清理! Archivelog并不能直接得从OS层...
  • ORACLE RAC+DG(单实例)

    万次阅读 2019-07-02 14:55:43
    ORACLE RAC+DG(单实例) 前提条件: 1.主库RAC已经成功安装,数据库也已经创建。 2.DG备库已经安装完相同版本的oracle软件,无需创建数据库。 1、RAC开启归档。 任意节点: alter system set log_archive_format='%t_%s...
  • OracleDG三种保护模式及切换方式

    千次阅读 2017-09-19 14:48:29
    一、三种保护方式 Required Redo Transport Attributes for Data Protection Modes Maximum Availability Maximum Performance Maximum Protection AFFIRM NOAFFIRM AFFIRM
  • 配置Oracle Gateway 12连接到SQL server 2014

    千次阅读 2016-01-18 16:12:51
    最近的工作中需要基于Oracle连接到SQLserver2014,我们可以通过配置Gateway的方式来实现这个功能。这个Gateway的实质是透过dblink来实现的。即把SQLserver模拟成一个远端的Oracle实例,这个实例由Gateway来负责进行...
  • bash: sqlplus: command not found 解决方法

    万次阅读 2012-07-04 22:07:41
    bash: sqlplus: command not found 解决方法  ...[oracle@dg1 ~]$ vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then  . ~/.bashrc fi # Use
  • oracle创建dblink访问Sqlserver数据库

    千次阅读 2018-08-08 16:15:58
    需求:通过在oracle创建dblink的方式直接访问Sqlserver数据库 操作方式:利用Oracle组件,透明网关(Transparent Gateway),建立dblink ,访问SQL SERVER 1.首先在官网上先下载个透明网关。网址(11g): htt...
  • HA/DG/RAC 三者的区别

    千次阅读 2010-08-14 16:04:00
    高可用性解决方案分为4种 (DG AR RAC HA): 一种是oracle提供的被用方法,Standby (=9i DataGuard) 一种是AR (高级复制Advanced Replication,在以前版本叫快照snapshot) 一种是oracle 并行...
  • DataGuard之DG Broker配置详解

    万次阅读 2017-02-17 09:57:01
    oracle dg datagurad failover swithover broker fsfo
1 2 3 4 5 ... 20
收藏数 17,017
精华内容 6,806
关键字:

dg oracle