精华内容
下载资源
问答
  • oracle11 dg,在主库创建了表空间和临时表空间,表空间同步成功了,但是临时表空间没有同步,请帮忙看看这个怎么处理呢。谢谢
  • oracle 19c DG

    2019-12-20 10:58:38
    1、环境说明 ...hostname dg1 dg2 SID orcl orcl DB_UNQUE_NAME orcl_p orcl_s 数据库文件路劲 /u01/app/oracle/oradata /u01/app/oracle/oradata 归档文件路劲 /u01/archivelog /u01/archivelog_s
  • Oracle DG之--构建Physical Standby(一主库对应)系统环境:操作系统: RedHat EL6Oracle: Oracle 10.2.0.1.0 如图所示,主库为bjdb(db_unique_name),备为shdb和gzdb。案例分析:一个主库,两个备主库初始...

    Oracle DG之--构建Physical Standby(一主库对应多备库)

    系统环境:

    操作系统: RedHat EL6

    Oracle:    Oracle 10.2.0.1.0

    0818b9ca8b590ca3270a3433284dd417.png

    如图所示,主库为bjdb(db_unique_name),备库为shdb和gzdb。

    案例分析:

    一个主库,两个备库

    主库初始化参数(pfile):

    [oracle@bjsrv dbs]$ cat initbj.ora

    *.audit_file_dest='/u01/app/oracle/admin/prod/adump'

    *.background_dump_dest='/u01/app/oracle/admin/prod/bdump'

    *.compatible='10.2.0.1.0'

    *.control_files='/u01/app/oracle/oradata/prod/control01.ctl','/disk1/oradata/bj/control02.ctl','/disk2/oradata/bj/control03.ctl'

    *.core_dump_dest='/u01/app/oracle/admin/prod/cdump'

    *.db_block_size=8192

    *.db_domain=''

    *.db_file_multiblock_read_count=16

    *.DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/sh','/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/gz','/u01/app/oracle/oradata/prod'

    *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'

    *.db_recovery_file_dest_size=2147483648

    *.instance_name='bj'

    *.job_queue_processes=10

    *.open_cursors=300

    *.pga_aggregate_target=94371840

    *.processes=150

    *.remote_login_passwordfile='EXCLUSIVE'

    *.sga_target=285212672

    *.undo_management='AUTO'

    *.undo_tablespace='UNDOTBS1'

    *.user_dump_dest='/u01/app/oracle/admin/prod/udump'

    以下参数用于DG配置:

    *.db_name='prod'

    *.DB_UNIQUE_NAME='bjdb'

    *.FAL_CLIENT='bjdb'

    *.FAL_SERVER='shdb','gzdb'

    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(bjdb,shdb,gzdb)'

    *.LOG_ARCHIVE_DEST_1='LOCATION=/disk3/arch_bj

    VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

    DB_UNIQUE_NAME=bjdb'

    *.LOG_ARCHIVE_DEST_2='SERVICE=shdb LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

    DB_UNIQUE_NAME=shdb'

    *.LOG_ARCHIVE_DEST_3='SERVICE=gzdb LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

    DB_UNIQUE_NAME=gzdb'

    *.LOG_ARCHIVE_DEST_STATE_1='ENABLE'

    *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

    *.LOG_ARCHIVE_DEST_STATE_3='ENABLE'

    *.log_archive_format='arch_%t_%s_%r.log'

    *.LOG_ARCHIVE_MAX_PROCESSES=3

    *.LOG_FILE_NAME_CONVERT='/disk1/oradata/sh','/disk1/oradata/bj','/disk2/oradata/sh','/disk2/oradata/bj','/disk1/oradata/gz','/disk1/oradata/bj','/disk2/oradata/gz','/disk2/oradata/bj'

    *.STANDBY_FILE_MANAGEMENT='AUTO'

    备库初始化参数pfile(shdb):

    [oracle@shsrv dbs]$ cat initsh.ora

    *.audit_file_dest='/u01/app/oracle/admin/sh/adump'

    *.background_dump_dest='/u01/app/oracle/admin/sh/bdump'

    *.compatible='10.2.0.1.0'

    *.control_files='/u01/app/oracle/oradata/sh/std_control.ctl'

    *.core_dump_dest='/u01/app/oracle/admin/sh/cdump'

    *.db_block_size=8192

    *.db_domain=''

    *.db_file_multiblock_read_count=16

    *.DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/sh','/u01/app/oracle/gz','/u01/app/oracle/oradata/sh'

    *.instance_name='sh'

    *.job_queue_processes=10

    *.open_cursors=300

    *.pga_aggregate_target=94371840

    *.processes=150

    *.remote_login_passwordfile='EXCLUSIVE'

    *.sga_target=285212672

    *.undo_management='AUTO'

    *.undo_tablespace='UNDOTBS1'

    *.user_dump_dest='/u01/app/oracle/admin/sh/udump'

    以下参数用于DG配置:

    *.db_name='prod'

    *.DB_UNIQUE_NAME='shdb'

    *.FAL_CLIENT='shdb'

    *.FAL_SERVER='bjdb','gzdb'

    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(bjdb,shdb,gzdb)'

    *.LOG_ARCHIVE_DEST_1='LOCATION=/disk3/arch_sh

    VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

    DB_UNIQUE_NAME=shdb'

    *.LOG_ARCHIVE_DEST_2='SERVICE=bjdb LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

    DB_UNIQUE_NAME=bjdb'

    *.LOG_ARCHIVE_DEST_3='SERVICE=gzdb LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

    DB_UNIQUE_NAME=gzdb'

    *.LOG_ARCHIVE_DEST_STATE_1='ENABLE'

    *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

    *.LOG_ARCHIVE_DEST_STATE_3='ENABLE'

    *.log_archive_format='arch_%t_%s_%r.log'

    *.LOG_ARCHIVE_MAX_PROCESSES=3

    *.LOG_FILE_NAME_CONVERT='/disk1/oradata/bj','/disk1/oradata/sh','/disk2/oradata/bj','/disk2/oradata/sh','/disk1/oradata/gz','/disk1/oradata/sh','/disk2/oradata/gz','/disk2/oradata/sh'

    *.STANDBY_FILE_MANAGEMENT='AUTO'

    备库初始化参数pfile(gzdb):

    [oracle@gzsrv dbs]$ cat initgz.ora

    *.audit_file_dest='/u01/app/oracle/admin/gz/adump'

    *.background_dump_dest='/u01/app/oracle/admin/gz/bdump'

    *.compatible='10.2.0.1.0'

    *.control_files='/u01/app/oracle/oradata/gz/gzstd_control.ctl'

    *.core_dump_dest='/u01/app/oracle/admin/gz/cdump'

    *.db_block_size=8192

    *.db_domain=''

    *.db_file_multiblock_read_count=16

    *.DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/gz','/u01/app/oracle/oradata/sh','/u01/app/oracle/oradata/gz'

    *.open_cursors=300

    *.pga_aggregate_target=94371840

    *.processes=150

    *.remote_login_passwordfile='EXCLUSIVE'

    *.sga_target=285212672

    *.undo_management='AUTO'

    *.undo_tablespace='UNDOTBS1'

    *.user_dump_dest='/u01/app/oracle/admin/gz/udump'

    *.job_queue_processes=10

    以下参数用于DG配置:

    *.db_name='prod'

    *.DB_UNIQUE_NAME='gzdb'

    *.FAL_CLIENT='gzdb'

    *.FAL_SERVER='bjdb','shdb'

    *.instance_name='gz'

    *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(bjdb,shdb,gzdb)'

    *.LOG_ARCHIVE_DEST_1='LOCATION=/disk3/arch_gz

    VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

    DB_UNIQUE_NAME=gzdb'

    *.LOG_ARCHIVE_DEST_2='SERVICE=bjdb LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

    DB_UNIQUE_NAME=bjdb'

    *.LOG_ARCHIVE_DEST_3='SERVICE=shdb LGWR ASYNC

    VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

    DB_UNIQUE_NAME=shdb'

    *.LOG_ARCHIVE_DEST_STATE_1='ENABLE'

    *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'

    *.LOG_ARCHIVE_DEST_STATE_3='ENABLE'

    *.log_archive_format='arch_%t_%s_%r.log'

    *.LOG_ARCHIVE_MAX_PROCESSES=3

    *.LOG_FILE_NAME_CONVERT='/disk1/oradata/bj','/disk1/oradata/gz','/disk2/oradata/bj','/disk2/oradata/gz','/disk1/oradata/sh','/disk1/oradata/gz','/disk2/oradata/sh','/disk2/oradata/gz'

    *.STANDBY_FILE_MANAGEMENT='AUTO'

    ---以上为构建一个主库2个Physical Standby的初始化参数,创建过程省略,可以参考:http://tiany.blog.51cto.com/513694/1583444《Oracle DG之--构建Physical Standby》

    展开全文
  • oracle dg恢复

    2020-06-22 21:08:48
    restore controlfile后是primary状态 备backup current controlfile带不带for standby,使用该控制文件备份,无论怎么样还原都是standby状态 恢复方法(使用control_1,备控制文件正常备份方式),备还是备...
    standby在standby状态下的备份方式如下,生成一个控制文件备份control_1,一个数据文件备份full_data
    RMAN> backup database format '/iso/backup/XX_%U';
    
    
    primary的备份方式如下,并拷贝到standby的对应目录
    RMAN> backup current controlfile format '/iso/backup/control_2';
    RMAN> backup current controlfile for standby format '/iso/backup/control_3';
    
    
    
    
    得出结论:
    主库backup current controlfile带上了for standby的话,使用该控制文件备份,无论怎么样还原都是standby状态
    主库backup current controlfile没有带for standby的话
    restore standby controlfile后是standby状态
    restore controlfile后是primary状态
    备库backup current controlfile带不带for standby,使用该控制文件备份,无论怎么样还原都是standby状态
    
    
    
    
    
    
    恢复方法(使用control_1,备库控制文件正常备份方式),备库还是备库状态
    1.备库关机并启动至startup nomount状态
    2.备库restore controlfile from '/iso/backup/control_1';
    3.备库restore database
    4.备库recover database until sequence XX
    5.备库alter database open resetlogs
    ORA-01666: control file is for a standby database
    6.alter database open;
    7.alter database recover managed standby database disconnect from session;
    
    
    
    
    恢复方法(使用control_2,主库控制文件正常备份方式),备库脱离备库成主库状态
    1.备库关机并启动至startup nomount状态
    2.备库restore controlfile from '/iso/backup/control_2';
    3.备库restore database(先做catalog backuppiece full_data的前提下 )
    4.备库recover database until sequence XX
    5.备库alter database open resetlogs
    
    
    
    
    恢复方法(使用control_2,主库控制文件正常备份方式,但是恢复时使用了standby),备库还是备库状态
    1.备库关机并启动至startup nomount状态
    2.备库restore standby controlfile from '/iso/backup/control_2';
    3.备库restore database(先做catalog backuppiece full_data的前提下 )
    4.备库recover database until sequence XX
    5.备库alter database open resetlogs
    ORA-01666: control file is for a standby database
    6.alter database open;
    7.alter database recover managed standby database disconnect from session;
    
    
    
    
    恢复方法(使用control_3,主库控制文件standby备份方式),备库还是备库状态
    1.备库关机并启动至startup nomount状态
    2.备库restore controlfile from '/iso/backup/control_3'
    3.备库restore database(先做catalog backuppiece full_data的前提下 )
    4.备库recover database until sequence XX
    5.备库alter database open resetlogs
    ORA-01666: control file is for a standby database
    6.alter database open;
    7.alter database recover managed standby database disconnect from session;

     

    展开全文
  • Oracle DG主备删除归档脚本,包含了脚步使用说明
  • 前言 笔者前文已介绍了ORACLE DG的成员身份与数据保护模式等相关理论知识,从...本文讲述如何使用rman恢复方式搭建ORACLE DG物理备—physical standby。 部署前规划 oracle DG要求主备数据库的DB_NAME相同,d...

    前言

             笔者前文已介绍了ORACLE DG的成员身份与数据保护模式等相关理论知识,从本文开始,将进入ORACLE DG理论与实践相结合模式,深入理解ORACLE DG的内在原理与基本运维技能。本文讲述如何使用rman恢复方式搭建ORACLE DG物理备库—physical standby。

    部署前规划

             oracle DG要求主备数据库的DB_NAME相同,db_unique_name不同,DG根据db_unique_name区分主备库。根据此要求,规划DG主备如下表所示,

     

    primary db

    standby db

    IP

    99.12.98.194

    55.14.17.100

    hostname

    t24app1sg

    mqserver02n

    db_name

    T24APDB

    T24APDB

    db_unique_name

    T24APDB

    T24APDBDG

    附加说明:

    • 主库

    • 备库

          安装oracle软件后使用dbca创建一个空的oracle实例。数据库名与主库保持相同,建议datafile路径、快速恢复区路径也保持与主库相同,不相同也行,只是后续需要进行文件名转换。

    主库端配置

    开启主库归档模式

    此操作详细步骤从略,以下只列出可能用到的操作SQL语句。

    • 检查数据库归档模式
    SQL> archive log list;
    • 开启归档模式(此操作需要数据库处于mount---12c)
    SQL> alter database archivelog;

    开启db的强制写日志模式

    oracle有些DDL(如create table)支持NOLOGGING子句,即建表时不会产生重做日志,由于物理备库是应用主库的重做日志而来,所以主库必须打开FORCE LOGGING模式。

    • 检查FORCE LOGGING状态
    SQL> select force_logging from v$database;
    FORCE_LOGGING
    ---------------------------------------
    NO
    • 打开force logging
    SQL> ALTER DATABASE FORCE LOGGING;
    • 再次检查force logging模式
    SQL> select force_logging from v$database;

    补充:

    • 关闭force logging模式
    SQL> ALTER DATABASE NO FORCE LOGGING;

    配置监听和tnsname

    正常情况下primary db应该是已经正常配置了监听,无需重复配置,只需查看监听状态,确认能通过监听连接到实例上。

    • 查看监听状态
    $ lsnrctl status
    
    Service "T24APDB " has 1 instance(s).
      Instance "T24APDB", status READY, has 1 handler(s) for this service...

    说明:此服务下有对应的instance,状态为ready,表示动态监听。主库由于一直正常使用,可以是动态监听。

    • 配置tns连接串(tnsnames.ora)

    1. 增加到主库自身的连接串(可用于客户端访问)。

    T24APDB =

      (DESCRIPTION =

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

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = T24APDB)

        )  

      )

    配置完毕后可使用tnsping进行测试。

    2. 增加主库到备库的TNS连接串

    T24APDBDG =

      (DESCRIPTION =

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

              (CONNECT_DATA =

               (SERVER = DEDICATED)

               (SERVICE_NAME = T24APDBDG)

          )  

      )

    此条TNS暂时还不能测试,因为备库还没有配置监听。

    添加data guard参数

    • 从spfile生成pfile(重新生成一个pfile,用于编辑)
    SQL> create pfile='/home/oracle/T24APDB_PR.ora' from spfile;
    • 修改pfile添加DG配置参数(主库vim T24APDB_PR.ora)
    *.db_unique_name='T24APDB '
    
    说明:db_unique_name严格区分大小写
    
    
    *.log_archive_config='dg_config=(T24APDB,T24APDBDG)'
    
    说明:dg_config参数指定的是DG环境中的db_unique_name,所有unique name通过逗号分割;
    
            
    
    *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name= T24APDB '
    
    说明:valid_for参数的含义是当本数据库处于all_roles即任何角色时到往本地路径log_archive_dest_1下归档all_logfiles(online redo log和standby redo log),若为ASM管理,location环境ASM路径(如+ARCH);
    
    
    *.log_archive_dest_2='service=T24APDBDG reopen=120 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=T24APDBDG'
    
    说明:valid_for参数的含义是当数据库为primary_role主库角色时往远程路径log_archive_dest_2下归档online_logfiles(online redo log)。其中的service= T24APDBDG,指定归档传输TNS路径;lgwr:指定redo data传输使用的传输方式,lgwr async的组合表示redo data使用lgwr进程采用异步传输的方式同步到db_unique_name 为T24APDBDG 的standby db;
    
    
    *.log_archive_dest_state_1=enable
    
    *.log_archive_dest_state_2=enable
    
    说明:启用归档目的地,该参数对应的值有三个,分别如下:
    
    enable:启用归档目的地
    
    defer:禁用归档目的地
    
    ALTERNATE:作为备用归档目的地
    
    
    *.standby_file_management='auto'
    
    说明:该参数的意思是standby db的文件管理方式是auto,而非manual。设置该参数值为auto主要目的是:主库如果添加、删除表空间或者数据文件时,会自动在备库相应的添加、删除表空间或者数据文件。
    
    
    *.fal_server='T24APDBDG'
    
    说明:指定故障转移的目标端(主库)。即出现故障时往tnsname='T24APDBDG'指定的目标端切。通常不会设置故障转移的自动切换,都是dba按照自己的意愿,往最适合接管  primary db的standby db上去切。
    
    
    *.fal_client='T24APDB
    
    说明:指定发送故障的客户端,即本地db。

    最终新加的pfile配置如下:

    用新pfile重启主库

    SQL> shutdown immediate
    SQL> create spfile from pfile='/home/oracle/T24APDB_PR.ora'
    SQL> startup

    可能的报错:

    ORA-01078: failure in processing system parameters
    ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated
    ORA-19801: initialization parameter DB_RECOVERY_FILE_DEST is not set

    原因:DB_RECOVERY_FILE_DEST未解析到,导致log_archive_dest_state_1解析失败;

    修改方案:将pfile文件中DB_RECOVERY_FILE_DEST放到LOG_ARCHIVE_DEST_1参数的前面;

    创建standby redo log文件

         添加standby redo log文件的目的是在后续执行rman duplicate时可以直接从主库复制standby redo log,而不用再在standby db端创建standby redo log。直接从主库复制的好处有如下几条:

    1、保证主库和备库有相同的standby redo log,即省了在备库端创建的麻烦又能保证主备库完全相同,这样在switchover时可以直接切换,无需做任何更改;

    2、如果主库有多套dg备库,所有的dg备库的standby redo log是完全相同的,这样管理起来方便。

    创建standby redo log的原则:

    • Each standby redo log file must be at least as large as the largest redo log file in the redo log of the redo source database.

    每个standby 重做日志至少和online重做日志一样大;

    • The standby redo log must have at least one more redo log group than the redo log at the redo source database, for each redo thread at the redo source database.

    standby重做日志数量至少比online重做日志多一个。

    • 查询重做日志
    select group#,type,member from v$logfile;

    • 添加standby redo log
    alter database add standby logfile '/odata/datafile/standby_01.log' size 100m;
    alter database add standby logfile '/odata/datafile/standby_02.log' size 100m;
    alter database add standby logfile '/odata/datafile/standby_03.log' size 100m;
    alter database add standby logfile '/odata/datafile/standby_04.log' size 100m;
    • 再次查询重做日志
    select group#,type,member from v$logfile;

    备库端配置

    确保备库与主库目录相同

    若不相同,后续需要进行转化;此处从略。

    生产备库的密码文件

    由于后面需要通过RMAN主库远程登录备库进行恢复,此处需要配置备库SYS用户的密码。有如下集中方法:

    1. 直接将主库的orapwT24APDB密码文件拷贝到备库;
    2. 使用orapwd命令创建密码文件
    orapwd file='/u01/app/oracle/product/12.1.0/dbhome_1/dbs/orapwT24APDBDG' password=TEST

    • 创建standby的初始化参数

    与主库类似,创建备库的DG参数(vim initT24APDBDG.ora)。如下:

    *.db_name='T24APDB'

    *.db_recovery_file_dest='/data/T24APDBDG'

    *.db_recovery_file_dest_size=48318382080

    *.db_unique_name='T24APDBDG'

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

    *.fal_client='T24APDBDG'

    *.fal_server='T24APDB'

    *.log_archive_config='dg_config=(T24APDB,T24APDBDG)'

    *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=T24APDBDG'

    *.log_archive_dest_2='SERVICE=T24APDB LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=T24APDB'

    *.log_archive_dest_state_1='ENABLE'

    *.log_archive_dest_state_2='ENABLE'

    用pfile 将standby 启动到nomount状态

    • 把spfile文件重命名
    $ mv spfileT24APDBDG.ora spfileT24APDBDG.ora.bak
    • 用pfile启动数据库到nomount状态
    SQL> startup nomount;

    备库端配置监听

    备库由于处于nomount状态,要想通过SYS用户链接,需要配置静态监听(vim listener.ora)。

    SID_LIST_LISTENER =

      (SID_LIST =

        (SID_DESC =

          (GLOBAL_DBNAME = T24APDBDG)

          (SID_NAME=T24APDBDG)

          (ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)

          (SERVICE_NAME=T24APDBDG)

        )

      )

    LISTENER =

      (DESCRIPTION=

           (ADDRESS=(PROTOCOL=tcp)(HOST=mqserver02n)(PORT=1521))

      )

    注意上面的配置中,SID为实例名,GLOBAL_DBNAME为unique名,serive_name随便起(与主库配置的tnsname一致)。然后启动监听服务并查看。

    $ lsnrctl start
    $ lsnrctl status
    
    Service "T24APDBDG" has 1 instance(s).
      Instance "T24APDB", status UNKNOWN, has 1 handler(s) for this service...

    如上unknown状态的实例即为静态监听注册的实例。其中还有一个nomount状态注册的动态实例。

    配置tnsname(vim tnsnames.ora)

    T24APDBDG =

      (DESCRIPTION =

         (LOAD_BALANCE = OFF)(FAILOVER=ON)(CONNECT_TIMEOUT=3)(TRANSPORT_CONNECT_TIMEOUT=2)

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

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = T24APDBDG)

        )

      )

    T24APDB =

      (DESCRIPTION =

         (LOAD_BALANCE = OFF)(FAILOVER=ON)(CONNECT_TIMEOUT=3)(TRANSPORT_CONNECT_TIMEOUT=2)

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

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = T24APDB)

        )

      )

    测试主库和备库端tnsname配置是否正确

    配置完主备的TNS后即可测试TNS联系连通性,主备都执行如下语句:

    $tnsping T24APDB
    $tnsping T24APDBDG

    使用rman开启duplicate创建备库(主库操作)

    • 在主库上使用rman同时登录主备库,如下:
    $ rman target SYS/SYSTEM@T24APDB auxiliary SYS/SYSTEM@T24APDBDG nocatalog

    • 执行duplicate创建备库

    run {

    allocate auxiliary channel c1 device type disk;

    allocate auxiliary channel c2 device type disk;

     

    duplicate target database for standby nofilenamecheck dorecover;

    release channel c1;

    release channel c2;

    }

    报错1:auxiliary file name /odata/datafile/SYSAUX0422.dbf conflicts with a file used by the target database

    原因:目录不对应,主库这边需要加文件转换

    解决方案:

         1. 将DG备库shutdown并重新startup 称nomount状态;---因为上面的操作中将备库设置成了mount状态;

         2. 主库rman重新登录两个库;

    $ rman target SYS/SYSTEM@T24APDB auxiliary SYS/SYSTEM@T24APDBDG nocatalog

        3. 主库RMAN执行如下duplicate,其中加了文件转换。

    run {

    duplicate target database for standby from active database 

    db_file_name_convert=('/odata/datafile','/data/T24APDBDG');

    }

    最后成功后如下:

    此时备库就获得了主库完全的数据文件拷贝,备库处于mount状态。备库基本搭建完毕。

    备库启动实时重做应用redo apply

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

    执行完上述语句后,理论上主库与备库已经实时同步了,可以使用v$managed_standby查看备库的状态:

    SQL> select process,status from v$managed_standby;

    其中,MRP0处于APPLYING_LOG,即代表正常,此时可以查看备库的角色和打开模式。

    SYS@T24APDBDG> select database_role,open_mode from v$database;

     

    DATABASE_ROLE    OPEN_MODE

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

    PHYSICAL STANDBY MOUNTED

    将备库设置为只读状态(可选)

             从ORACLE 11g开始,支持备库应用redo 日志的同时处于redo only状态。这样可以方法进行数据读操作。

    SQL> recover managed standby database cancel

    SQL> alter database open;

    SQL> recover managed standby database using current logfile disconnect;

             说明:以上操作就是先取消日志应用,再打开数据库,最后启用日志应用。查询数据库的打开模式和角色如下图所示--read only with apply。完毕

    总结

             本文step-by-step详细讲述了ORACLE物理备库的部署,除了rman的duplicate操作可能需要稍微注意一下,其他步骤应该不难。整个流程包含诸多知识点,如强制归档、归档模式、standby redo log、静态监听等等。读者在部署过程中要仔细琢磨各个步骤的作用,才能做到少出错或出错后懂得如何着手解决。

    展开全文
  • oracle ADG物理备在数据库重启后,不能自动对日志进行应用,可通过以下触发器来让数据库应用日志。 create or replace trigger dg_apply_log after startup on database begin declare database_role varchar...
  • 环境是12.2.0.1 version, Oracle Data Guard备今天故障恢复了一下,RMAN恢复后发现备Alert一直报错,但是备主库同步一致,数据一致。2018-07-05T23:42:22.184048+08:00Errors in file /u01/app/oracle/diag/...
  • 在创建逻辑备之前,必须得先创建物理备,关于如何创建物理备,请参阅前述文章(ORACLE DG专题3--手把手部署DG 物理备)。 重新设置主库的归档参数 逻辑备和物理备不一样,逻辑备在进行SQL应用时还会...
  • 公司Oracle备份策略是10G采用DG主库每天Rman一全备份+expdp备份,11g采用的是DG每天rman一全备份。最近在做恢复演练测试,在从备份恢复时,由于控制文件是standby类型,无法直接打开数据库,也...
  • 12C Oracle Data Guard 备今天异常 2018-07-05T21:31:32.291970+08:00GEN0 (ospid: 75371): terminating the instance due to error 4722018-07-05T21:31:32.293376+08:00System state dump requested by ...
  • DG环境强制read write打开备为主库,想要从主库重新拷贝控制文件给备,进而再将其恢复为备状态。 操作流程: 1.从主库拷贝了一份控制文件 alter database create standby controlfile as '/home/oracle/...
  • Oracle12c DG环境搭建级联备

    千次阅读 2019-06-02 10:27:35
    1 说明 在11.2及以上版本支持级联备,就是第二备从第一个备接受redo日志,而不是直接从主库接受redo日志。这样会减少主库的压力。实际上和正常搭建DG没...更详细信息,参考官方文档:http://docs.oracle.co...
  • ORACLEDG搭建2-物理standby备的状态 物理standby备的状态 物理备 1)managed recovery (非ADG) 该状态下,log transport service 归档日志到备, log apply service 自动应用这些日志, 数据库处于...
  • Oracle 12c Data Guard 搭建http://www.cndba.cn/leo1990/article/1935https://www.cndba.cn/leo1990/article/2709https://www.cndba.cn/leo1990/article/2709Oracle 12c DG 一主备搭建...
  • oracle DG自动应用日志

    千次阅读 2018-09-08 17:35:00
    oracle  ADG物理备在数据库重启后,不能自动对日志进行应用,可通过以下触发器来让数据库应用日志。 create or replace trigger dg_apply_log after startup on  database begin declare database_role ...
  • oracle数据库DG搭建步骤,主从搭建,精细到每个步骤安装。
  • 用zabbix监控oracle dg是否应用日志的脚本 1、首先在dg服务器上写如下脚本: [root@hnagroupnet1 ~]# cat ...
  • 自动检查Oracle DG是否已经应用归档的shell脚本: PS:本脚本需要先创建table:ARC_NOT_REPLY_LOG,这个表是用来存放记录的,如果不需要存放记录的话,可以将shell脚本的in...
  • Oracle DG恢复--gap

    2018-12-14 10:47:39
    数据库服务的过程中,经常有客户因备服务器宕机导致备无法同步数据的问题,向我们咨询数据恢复服务,最近遇到有3例。 如果客户主库的归档日志没有删除,那么备启动后会自动同步最近的日志文件,保持与主库的...
  • 切换前enmo1为主库,enmo2为备 [oracle@enmo1 admin]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat May 6 10:14:57 2017 Copyright (c) 1982, 2013, Oracle. All rights ...
  • oracle-dg操作

    2019-06-05 20:43:41
    关闭dg数据库 关闭备日志同步——关闭主库——关闭备 具体操作 登录备: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 登录主库: SQL>shutdown immediate; $lsnrctl stop ...
  • 7. 在主库上建立备控制文件 三、 备配置 1. 准备备参数文件 2. 创建11g数据库基本目录 3. 修改配置lisener监听文件 4. 修改配置tnsname.ora文件 5. 重启监听服务(主库备都要执行) 6. 启动备到...
  • 继续前文描述,本文讲解oracle DG的最后一种类型:snapshot—快照。与其他备不同,snapshot备是一种完全可以更新的备,由物理备切换而来。 当物理备切换至snapshot备时,snapshot继续接收主库传...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,776
精华内容 3,510
关键字:

oracle多dg库