dg部署 oracle_oracle dg 部署 - CSDN
精华内容
参与话题
  • Oracle 11gR2 DG部署(RMAN方式)

    千次阅读 2018-12-04 09:47:16
    Oracle DG部署(RMAN方式) Oracle DG部署(RMAN方式) 1.环境介绍 2.DG部署 2.1.建立主库orcl 2.2.主库开启归档 2.3.主库添加Standby Redo Log 2.4.从主库创建pfile文件 2.5.设置主库初始化参数 2.6.设置备库...

    Oracle DG部署(RMAN方式)

    1.环境介绍

    hostname ip db_name db_unique_name net service name
    db11 172.16.8.11 orcl orcl11 orcl11
    db12 172.16.8.12 orcl orcl12 orcl12

    2.DG部署

    2.1.建立主库orcl

    DBCA建立主库,修改online redo 大小为500M

    2.2.主库开启归档

    主库开启归档并设置强制日志 force logging

    --干净的关闭数据库
    SQL> shutdown immediate
    --以mount模式启动
    SQL> startup mount
    --切换到归档模式
    SQL> alter database archivelog;
    --开启强制日志
    SQL> alter database force logging;
    --打开数据库
    SQL> alter database open;
    --查看归档
    SQL> archive log list;
    --查看是否为强制日志
    SQL> select force_logging from v$database;
    

    2.3.主库添加Standby Redo Log

    --查看Redo和Standby Redo
    SQL> select * from v$logfile;											
    --仅仅显示Online Redo,不显示Standby Redo
    SQL> select * from v$log;												
    --新增一组大小为500M的Standby Redo,这里的group号不得与Online redo重复
    SQL> alter database add standby logfile group 21 '/u01/app/oracle/oradata/orcl/standby21.log' size 500M;
    SQL> alter database add standby logfile group 22 '/u01/app/oracle/oradata/orcl/standby22.log' size 500M;
    SQL> alter database add standby logfile group 23 '/u01/app/oracle/oradata/orcl/standby23.log' size 500M;
    SQL> alter database add standby logfile group 24 '/u01/app/oracle/oradata/orcl/standby24.log' size 500M;
    

    2.4.从主库创建pfile文件

    创建pfile文件, 默认路径为$ORACLE_HOME/dbs,此处为/u01/app/oracle/product/11.2.0/dbhome_1/dbs/,在sqlplus里执行以下命令

    SQL> create pfile from spfile;
    

    将主库的pfile复制到备库/u01/app/oracle/product/11.2.0/dbhome_1/dbs/下

    cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    scp initorcl.ora db12:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    

    2.5.设置主库初始化参数

    编辑/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora文件,追加

    cat >> /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora << "EOF"
    *.db_unique_name='orcl11'
    *.fal_server='orcl12'
    *.log_archive_config='dg_config=(orcl11,orcl12)'
    *.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=orcl11'
    *.log_archive_dest_2='service=orcl12 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl12'
    *.log_archive_dest_state_1=ENABLE
    *.log_archive_dest_state_2=ENABLE
    *.standby_file_management='AUTO'
    *.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    *.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    EOF
    

    创建新的主库spfile文件,并重新启动主库

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

    2.6.设置备库初始化参数

    编辑/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora文件,修改备库初始化参数

    cat >> /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora << "EOF"
    *.db_unique_name='orcl12'
    *.fal_server='orcl11'
    *.log_archive_config='dg_config=(orcl11,orcl12)'
    *.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=orcl12'
    *.log_archive_dest_2='service=orcl11 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl11'
    *.log_archive_dest_state_1=ENABLE
    *.log_archive_dest_state_2=ENABLE
    *.standby_file_management='AUTO'
    *.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    *.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    EOF
    

    2.7.复制主库的密码文件到备库

    将密码文件orapworcl复制到备库的/u01/app/oracle/product/11.2.0/dbhome_1/dbs/下

    cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    scp orapworcl db12:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    

    2.8.创建备库相应的目录结构

    使用oracle用户创建以下目录,避免权限问题

    mkdir -p /u01/app/oracle/oradata/orcl/
    mkdir -p /u01/app/oracle/admin/orcl/adump/
    mkdir -p /u01/app/oracle/fast_recovery_area/orcl/
    

    2.9.配置主库和备库的监听

    使用图形界面配置,采用静态监听

    netmgr
    

    2.10.配置主库和备库的网络服务名

    使用图形界面配置,在主备库上均需配置orcl11、orcl12两个服务名

    netmgr
    

    2.11.创建备库并启动

    创建备库的spfile文件,启动备库到nomount模式

    SQL> create spfile from pfile;
    SQL> startup nomount
    

    2.12.RMAN复制主库到备库

    首先RMAN连接到目标数据库和辅助数据库

    rman target sys/password@orcl11 auxiliary sys/password@orcl12
    

    使用RMAN的duplicate命令进行复制,两边目录结构相同,需要添加nofilenamecheck参数

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

    复制成功后,备库自动被加载为mount模式,进入sqlplus查看

    SQL> select status from v$instance;
    

    2.13.在备库开启实时日志应用

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

    2.14.主备库角色状态查询

    SQL> select switchover_status,database_role from v$database;
    --主库显示:TO STANDBY/PRIMARY,如果显示SESSION ACTIVE表示还有活动的会话,需要关闭活动的会话再检查
    --备库显示:NOT ALLOWED/PHYSICAL STANDBY
    

    3.测试DG

    3.1.执行日志切换测试

    在主库端切换归档,在备库检查是否也发生了切换

    主库上执行日志切换

    SQL> archive log list;
    SQL> alter system switch logfile;
    SQL> archive log list;
    

    备库上查看,日志的sequence号也跟着变了

    SQL> archive log list;
    

    3.2.查看备库启动的DG进程

    SQL> select process,client_process,sequence#,status from v$managed_standby;
    PROCESS   CLIENT_P  SEQUENCE# STATUS  
    --------- -------- ---------- ------------  
    ARCH      ARCH             23 CLOSING  
    ARCH      ARCH              0 CONNECTED            //归档进程  
    ARCH      ARCH             21 CLOSING  
    ARCH      ARCH              0 CONNECTED  
    RFS       ARCH              0 IDLE  
    RFS       UNKNOWN           0 IDLE  
    RFS       LGWR             24 IDLE               //归档传输进程  
    RFS       UNKNOWN           0 IDLE  
    MRP0      N/A              24 APPLYING_LOG      //日志应用进程  
      
    9 rows selected.  
    

    3.3.查看数据库的保护模式

    SQL> select database_role,protection_mode,protection_level,open_mode from v$database;
    DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL     OPEN_MODE  
    ---------------- -------------------- -------------------- --------------------  
    PRIMARY          MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  READ WRITE  
    

    3.4.查看DG的日志信息

    SQL> select * from v$dataguard_status;
    

    3.5.Open Read Only Standby数据库

    以只读方式打开备库,并开启实时日志应用

    SQL> shutdown immediate
    SQL> startup
    SQL> select database_role,protection_mode,protection_level,open_mode from v$database;
    SQL> select process,client_process,sequence#,status from v$managed_standby;
    SQL> alter database recover managed standby database using current logfile disconnect from session;
    

    3.6.解锁scott用户并添加数据,验证是否同步

    在主库解锁scott用户并创建测试表,插入10000行数据。

    操作如下

    SQL> set line 200
    SQL> select username,default_tablespace,account_status from dba_users where username='SCOTT';
    SQL> alter user scott account unlock;
    SQL> conn scott/tiger;
    SQL> show user
    SQL> create table test001 (id number(10),name varchar2(20));
    SQL> begin
         for i in 1..10000 loop
         insert into test001 values (1,'ww');
         end loop;
         end;
         /
    SQL> commit;
    

    standby端查询scott用户是否解锁,以及test001表是否创建并且插入了10000行数据

    SQL> conn scott/tiger;
    SQL> select * from tab;
    SQL> select count(*) from test001;
    

    4.DG三种模式

    4.1.最大性能模式max performance-默认

    这种保护模式(默认)提供了可能的最高级别的数据保护,而不影响主数据库的性能。这是通过允许事务在恢复该事务所需重做数据在写到本地联机重做日志后立即提交而实现的。主数据库的重做数据流也写到至少一个备数据库,但是那个重做流相对于创建重做数据的事务是异步写的。

    当所用的网络连接有足够的带宽,这种模式提供了近似于最大可用性模式的数据保护级别,并且对主数据库性能的影响最小。

    4.2.最大可用性模式max availability

    这种保护模式提供了可能的最高级别的数据保护,而不用与主数据库的可用性相折衷。与最大保护模式相同,在恢复事务所需的重做写到本地联机重做日志和至少一个事务一致性备数据库上的备重做日志之前,事务将不会提交。与最大保护模式不同的是,如果故障导致主数据库无法写重做流到异地备重做日志时,主数据库不会关闭。替代地,主数据库以最大性能模式运行直到故障消除,并且解决所有重做日志文件中的中断。当所有中断解决之后,主数据库自动继续以最大可用性模式运行。

    这种模式确保如果主数据库故障,但是只有当第二次故障没有阻止完整的重做数据集从主数据库发送到至少一个备数据库时,不发生数据丢失。

    4.3.最大保护模式max protection

    这种保护模式确保如果主数据库故障不会发生数据丢失。要提供这种级别的保护,恢复每个事务所需的重做数据必须在事务提交之前同时写到本地联机重做日志和至少一个备数据库上的备重做日志。要确保不发生数据丢失,如果故障导致主数据库无法写重做流到至少一个事务一致性备数据库的备重做日志时,主数据库会关闭。

    4.4.查询当前模式

    SQL> select protection_mode,protection_level from v$database;
    

    5.DG切换测试

    5.1.DG switchover 切换测试

    db11-orcl:主库------>备库

    db12-orcl:备库------>主库

    主备库角色状态查询

    SQL> select switchover_status,database_role,open_mode from v$database;
    --db11-orcl显示:TO STANDBY/PRIMARY,如果显示SESSION ACTIVE表示还有活动的会话,需要关闭会话再检查
    --db12-orcl显示:NOT ALLOWED/PHYSICAL STANDBY
    

    db11-orcl切换到备库

    SQL> alter database commit to switchover to physical standby;
    SQL> alter database commit to switchover to physical standby with session shutdown;
    --如果状态显示SESSION ACTIVE,在切换的时候可以指定with session shutdown 子句强制关闭活动的会话。
    SQL> shutdown immediate
    SQL> startup mount
    

    db12-orcl切换到主库

    SQL> alter database commit to switchover to primary;
    SQL> alter database open;
    

    db11-orcl执行APPLY LOG命令

    --启用mount状态下的APPLY LOG
    SQL> alter database recover managed standby database disconnect from session;
    --启用open状态(READ ONLY WITH APPLY)下的APPLY LOG
    SQL> alter database recover managed standby database cancel;
    SQL> alter database open;
    SQL> alter database recover managed standby database disconnect from session;
    SQL> select switchover_status,database_role,open_mode from v$database;
    

    5.2.DG failover 切换测试

    db11-orcl:主库------>崩溃

    db12-orcl:备库------>主库

    主备库角色状态查询

    SQL> select switchover_status,database_role,open_mode from v$database;
    

    db11-orcl通过shutdown abort方式人工模拟主库崩溃,直接关闭

    SQL> select open_mode from v$database;
    SQL> shutdown abort
    SQL> startup mount
    SQL> alter system flush redo to 'orcl12';
    

    db12-orcl执行如下操作切换为主库

    SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;
    --如果没有发现明显的gap现象,说明此次的failover不会有数据损失情况。在备库,要进行关闭apply和结束应用动作。
    SQL> alter database recover managed standby database cancel;
    SQL> alter database recover managed standby database finish;
    SQL> alter database commit to switchover to primary;
    SQL> alter database open;
    SQL> select open_mode, switchover_status from v$database;
    

    5.3.DG failover后重建DG

    db11-orcl:崩溃------>备库

    db12-orcl:主库------>主库(保持主库状态不变)

    db12-orcl主库角色状态查询

    SQL> select switchover_status,database_role,open_mode from v$database;
    

    db12-orcl主库创建备库控制文件

    mkdir -p /u01/bak/
    
    SQL> alter database create standby controlfile as '/u01/bak/control01.ctl';
    

    将备库控制文件拷贝至db11

    scp ezdb12:/u01/bak/control01.ctl /u01/app/oracle/oradata/orcl/control01.ctl
    cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/
    mv /u01/app/oracle/fast_recovery_area/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/control02.ctl
    

    恢复对应数据文件至db11,并启动db11-orcl到mount状态,应用APPLY模式

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

    启动db11-orcl至OPEN状态,并应用APPLY REDO模式

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

    6.开启和关闭DataGuard的流程

    6.1.关闭

    关闭主库

    SQL> shutdown immediate
    

    关闭主库监听

    lsnrctl stop
    

    查询备库是否正在执行重做应用或实时应用。如果MRP0或MRP进程存在,则备库正在应用重做。

    SQL> select process, status from v$managed_standby;
    

    如果重做应用程序正在运行,停止备库的Redo日志的应用

    SQL> alter database recover managed standby database cancel;
    

    关闭备库

    SQL> shutdown immediate
    

    关闭备库监听

    lsnrctl stop
    

    6.2.开启

    启动备库监听

    lsnrctl start
    

    启动备库到mount状态

    SQL> startup mount;
    

    开启备库的Redo日志应用

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

    启动主库监听

    lsnrctl start
    

    启动主库

    SQL> startup;
    

    检查日志情况的SQL语句

    select al.thrd "Thread", almax "Last Seq Received", lhmax "Last Seq Applied"
     from (select thread# thrd, max(sequence#) almax
           from v$archived_log
           where resetlogs_change#=(select resetlogs_change# from v$database)
           group by thread#) al,
          (select thread# thrd, max(sequence#) lhmax
           from v$log_history
           where first_time=(select max(first_time) from v$log_history)
           group by thread#) lh
     where al.thrd = lh.thrd;
    
    展开全文
  • oracle 搭建dg步骤解析

    千次阅读 2018-09-10 15:46:33
    如果搭建dg 先安装主库database 并建库,同时建备库database 软件,不需要建库。 1 主库打开归档功能 启动到mount状态下,打开归档功能 alter database archivelog; SQL&gt; archive log list; ...
    如果搭建dg 先安装主库database 并建库,同时建备库database 软件,不需要建库。
    

    1 主库打开归档功能

        启动到mount状态下,打开归档功能
    
        alter database archivelog;
    
    SQL> archive log list;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            USE_DB_RECOVERY_FILE_DEST
    Oldest online log sequence     17
    Next log sequence to archive   19
    Current log sequence           19
    # 检查已经打开归档功能

    2 配置主库监听和tnsnames文件

    # listener.ora Network Configuration File: /u01/oracle/11g/network/admin/listene
    r.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (ORACLE_HOME = /u01/oracle/11g)
          (SID_NAME = orcl)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = porcl)    
          (ORACLE_HOME = /u01/oracle/11g)
          (SID_NAME = orcl)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = porcl_DGMGRL)
          (ORACLE_HOME = /u01/oracle/11g)
          (SID_NAME = orcl)
        )
      )
    
    LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))
      )
    
    ADR_BASE_LISTENER = /u01/oracle
    [oracle@dghost root]$ cat /u01/oracle/11g/network/admin/tnsnames.ora
    # tnsnames.ora Network Configuration File: /u01/oracle/11g/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    SORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = dgstandby)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = sorcl)
        )
      )
    
    PORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = porcl)
        )
      )
    
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl.dghost)
        )
      )
    备库也配置监听
    
    注意主库和备库配置完监听要用tnsping测试都能ping通
    
    [oracle@dghost root]$ tnsping porcl
    
    TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-JAN-2017 00:19:12
    
    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 = dghost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = porcl)))
    OK (10 msec)
    #主库tnsping自己成功
    [oracle@dghost root]$ tnsping sorcl
    
    TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-JAN-2017 00:19:42
    
    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 = dgstandby)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = sorcl)))
    OK (20 msec)
    #主库tnsping备库成功
    # 下面同样需要在备库中tnsping自己和主库,这里就不一一举例

    3 主库修改db_unique_name

    SQL> show parameter db_un
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_unique_name                       string      PORCL  #db_unique_name 需要配置成tnsname里面能解析的域名
    db_unrecoverable_scn_tracking        boolean     TRUE
    # alter system set db_unique_name='porcl' scope=spfile;

    4 主库修改standby_file_management

    SQL> show parameter standby_f
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    standby_file_management              string      AUTO #修改为auto

    5 主库打开强制日志和dg_broker

    alter database force logging;
    
    SQL> show parameter dg_b
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1               string      /u01/oracle/11g/dbs/dr1PORCL.d
                                                     at
    dg_broker_config_file2               string      /u01/oracle/11g/dbs/dr2PORCL.d
                                                     at
    dg_broker_start                      boolean     TRUE #设置为true 打开

    6 增加备库日志

    alter database add standby logfile;
    
    多增加几个
    

    7 切换日志

        alter system switch logfile;
    
        多切换几次
    

    8 主库参数文件拷贝到备库中

    [oracle@dgstandby dbs]$ strings spfileorcl.ora
    orcl.__db_cache_size=218103808
    orcl.__java_pool_size=4194304
    orcl.__large_pool_size=4194304
    orcl.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment
    orcl.__pga_aggregate_target=205520896
    orcl.__sga_target=381681664
    orcl.__shared_io_pool_size=0
    orcl.__shared_pool_size=142606336
    orcl.__streams_pool_size=4194304
    *.archive_lag_target=0
    *.audit_file_dest='/u01/oracle/admin/orcl/adump' #备库需要创建这个目录 
    *.audit_trail='db'
    *.compatible='11.2.0.0.0'
    *.control_files='/u01/oracle/oradata/orcl/control01 #备库需要创建这个目录
    .ctl','/u01/oracle/fast_recovery_area/orcl/control02.ctl' #备库需要创建这个目录
    *.db_block_size=8192
    *.db_domain='dghost'
    *.db_name='orcl'
    *.db_recovery_file_dest='/u01/oracle/fast_recovery_area' #备库需要创建这个目录
    *.db_recovery_file_dest_size=4322230272
    *.db_unique_name='SORCL'
    *.dg_broker_start=TRUE
    *.diagnostic_dest='/u01/oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
    *.fal_server='porcl'
    *.log_archive_config='dg_config=(SORCL,porcl)'
    *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST','valid_for=(ALL_LOG
    FILES, ALL_ROLES)'
    orcl.log_archive_format='%t_%s_%r.dbf'
    *.log_archive_max_processes=4
    *.log_archive_min_succeed_dest=1
    orcl.log_archive_trace=0
    *.memory_target=585105408
    *.open_cursors=300
    *.processes=150
    *.remote_login_passwordfile='EXCLUSIVE'
    *.standby_file_management='AUTO'
    *.undo_tablespace='UNDOTBS1'
    备库启动到nomount状态下,如果能正常启动到nomount 状态下说明参数文件没有问题
    

    9 主库密码文件拷贝到备库

    10 在备库中克隆

    [oracle@dgstandby dbs]$ rman target sys/oracle@porcl auxiliary sys/oracle@sorcl nocatalog;
    
    Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jan 17 00:31:46 2017
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    connected to target database: ORCL (DBID=1461163151)
    using target database control file instead of recovery catalog
    connected to auxiliary database: ORCL (DBID=1461163151)
    # 通过rman链接了主库和备库
    RMAN> duplicate target database for standby nofilenamecheck from active database;
    # 用这个进行克隆,不能有任何错误

    11 dgbroker 创建主库和备库

    DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production
    
    Copyright (c) 2000, 2009, Oracle. All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    Connected.
    #进入 dgbroker 环境
    DGMGRL> help create
    
    Creates a broker configuration
    
    Syntax:
    
      CREATE CONFIGURATION <configuration name> AS
        PRIMARY DATABASE IS <database name>
        CONNECT IDENTIFIER IS <connect identifier>;
    # 使用帮助查看创建dgbroker的语法
    DGMGRL> CREATE CONFIGURATION dgc as PRIMARY DATABASE IS porcl CONNECT IDENTIFIER IS porcl;
    # 创建主库dgbroker
    DGMGRL> help add
    
    Adds a standby database to the broker configuration
    
    Syntax:
    
      ADD DATABASE <database name>
        [AS CONNECT IDENTIFIER IS <connect identifier>]
        [MAINTAINED AS {PHYSICAL|LOGICAL}];
    #使用帮助文档查看添加备库dgbroker的语法
    DGMGRL> ADD DATABASE sorcl as CONNECT IDENTIFIER  IS sorcl;

    12 激活dgbroker

    DGMGRL> enable configuration;

    13 启动备库到open 中测试主库和备库是否实时同步。

    14 主备切换

        switchover to sorcl;
    

    想了解更多的同学可以加群705673780哦,群里有很多小伙伴一起学习交流Python,还有很多免费资料哦~

    展开全文
  • 本人新手,资源有限,希望能得到大神指点。想利用虚拟机搭建一个Oracle 11grac集群,方便以后的学习!
  • Oracle 18c rac+dg+13.3的emcc部署配置

    千人学习 2019-11-27 16:29:13
    1、CentOS 7.3的安装及其基本配置 2、18c的rac+单实例的dg部署 3、13.3的EMCC的安装及其使用 4、配置DG环境中的无缝切换(同一个TNS当主库挂掉的时候自动切换到备库)
  • 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;

     

    展开全文
  • 日志中的错误提示是监听未找到SID,我才明白原来我jdbc.properties中需要的是SID,但我把服务名当作SID给配进去了,但是数据库管理员只给我了服务名,但没给我SID,当时搜了各种解决方案,网上说Oracle JDBC连接一共...

              昨天,领导安排去新服务器上部署项目,给了我数据库地址,服务名称,端口,用户名和密码。结果数据库一直连接不上,日志中的错误提示是监听未找到SID,我才明白原来我jdbc.properties中需要的是SID,但我把服务名当作SID给配进去了,但是数据库管理员只给我了服务名,但没给我SID,当时搜了各种解决方案,网上说Oracle JDBC连接一共有三种方式,分别是:服务名、SID、TNSName的方式,但试过当时都没连上(后来发现是我写得格式不正确),最终只好联系数据库管理员要SID,才把项目部署完。

              今天回到公司,就像继续验证一下这些配置方式,结果发现都成功了,在此分享一下我的配置过程,例如数据库服务名net_grid,SID是netgrid

    一、通过plsql链接数据库,配置的时候分别使用SERVICE_NAME和SID,都可以链接成功


    二、jdbc配置,以下三中方式都可以成功连接数据库

    1.使用service_name,配置方式:jdbc:oracle:thin:@//<host>:1521/net_grid 

    2.使用SID,配置方式:jdbc:oracle:thin:@//<host>:1521/netgrid

    3.使用SID,配置方式:jdbc:oracle:thin:@<host>:1521:netgrid

    比较:1和2中当@后边有双斜杠,端口号后边有单斜杠时,用服务名和实例名都可以链接成功,3中@后边没有双斜杠,端口号后边是冒号而不是斜杠的时候只能用实例名,当时笔者配置错误的时候是 jdbc:oracle:thin:@//<host>:1521:netgrid ,端口号后直接用了冒号。

    展开全文
  • 数据库管理员-DBA-高级

    千次阅读 2019-03-17 21:27:36
    目前DBA运维团队15人,管理170套oracle和mysql数据库,岗位有初、中、高级。 具体待遇根据技术能力可谈。10K-25K不等。 工作职责: 1、负责银行全行170套oracle和mysql数据库运维 2、数据库运维巡检、安装部署。 3、...
  • dg和ogg的区别--oracle数据库

    万次阅读 2018-12-04 15:42:21
    ADG和OGG的新特性,目前越来越多的客户重视灾备数据站点的建设,由于存储级灾备和操作系统级灾备的局限性(主要是带宽高及事务完整性不容易保证),因此在选择甲骨文的应用...Oracle DataGuard 11g的新特性 ~~~~~~ ...
  • 虚拟机上安装linux6操作系统,部署oracle 11g,在本机上手动添加的TNS,在连接数据库时出现“TNS-12535: TNS: 操作超时” ,以下是解决步骤 1.ping 虚拟机ip 没问题 2.tnsping 虚拟机数据库的tns名称,出现操作...
  • ORACLE 之间的OGG配置

    千次阅读 2018-07-07 08:34:17
    OGG source和target环境:soucesource端:操作系统版本:Linux 2.6.9-89.EL x86_64hostname:dg1数据库版本:10.2.0.1 64bitogg版本:fbo_ggs_Linux_x64_ora10g_64bit.tarrac数据库名:WENDINGIP:192.168.1.1target...
  • Oracle 单实例DG搭建详解

    万次阅读 2017-06-06 14:50:41
    oracle DG datagrad switchover failover failover恢复
  • Oracle】11gRAC添加静态监听

    千次阅读 2018-05-07 07:50:58
    11gRAC添加静态监听查看listener文件的内容[grid@rac1 admin]$ more listener.ora查看监听状态[grid@rac1 admin]$ lsnrctl status listener [grid@rac1 admin]$ srvctl config network添加监听[grid@rac1 admin]$ ...
  • Oracle DG主备切换VIP

    千次阅读 2018-02-05 13:04:26
    在做DG主备切换时,为使应用端在不修改连接配置的情况下,正常连接DG数据库,方法有几种; 一是,应用端连接主机为主机名,可以通过域名解析调整实现; 二是,应用端连接主机为IP, 通过设置VIP(手动配置或者f5等...
  • 企业级RAC+DG架构部署

    千次阅读 2017-05-26 16:34:54
    Application Clusters,中文译为“实时应用集群”,是ORACLE甲骨文公司提供的在低成本服务器上构建高可用性数据库系统的解决方案,部署自由,无需购买额外部件,就可以实现多节点的负载均衡和故障转移功能,满足7*...
  • 1.GoldenGate Director简介 以前我们在实施DG后,虽然实施简单,但是后期维护却苦于没有直观的工具,每次查看状态都必须通过命令完成,...Oracle GoldenGate Director是部署Oracle的中间件Weblogic Server上的Web
  • Oracle 12c RAC 到单机实例 DATAGUARD搭建

    千次阅读 2016-10-15 10:32:03
    第二章:环境信息 2.1 系统平台 2.1.1 主机平台与版本 主机系统 ● HP-UX Itanium 11.31 主机数据库 ● 12.1.0.2 RAC 2.1.2 备机平台与版本 备机系统 ● HP-UX Itanium 11.31 备机数据库 ● 12.1.0.2 Single ...
  • Oracle 12C DG 搭建(RAC-RAC/RAC-单机)

    千次阅读 2017-02-07 11:28:56
    主库上操作 1.开启RAC的 force logging SQL> alter database force logging;...SQL> alter system set log_archive_config='DG_CONFIG=(eisoo,eisoos)'; SQL> alter system set log_archive_dest_2
  • 在搭建DG时 连接rman进行standby文件创建时输入rman target sys/123456@orcl auxiliary sys/123456@orcls,提示 error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking ...
  • 一键DG脚本(静默安装创建实例创建DG)

    千次阅读 热门讨论 2017-07-17 16:49:50
    首先,这只是为了练习shell而写大神们不屑请别看 不懂shell的可以看看,做个参考,把一些功能当做魔板 我知道红黑联盟,linux公社等会盗转,所以提前问候你们全家了脚本大致步骤是: 1.判断是否创建oracle用户,如果...
  • Data Guard 是Oracle的远程复制技术,它有物理和逻辑之分,但是总的来说,它需要在异地有一套独立的系统,这是两套硬件配置可以不同的系统,但是这两套系统的软件结构保持一致,包括软件的版本,目录存储结构,以及...
1 2 3 4 5 ... 20
收藏数 1,552
精华内容 620
关键字:

dg部署 oracle