iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle 19c Data Guard物理备库搭建
  • 736
分享到

Oracle 19c Data Guard物理备库搭建

2024-04-02 19:04:59 736人浏览 薄情痞子
摘要

部署目标 搭建 部署目标 部署环境介绍 操作步骤 (1).  

  1. 部署目标

    • 搭建

      • 部署目标

      • 部署环境介绍

      操作步骤

    • (1).   查看主库归档和附加日志配置,如下的输出显示,开启了归档模式但没有开启附加日志;

      [oracle@sdedu ~]$ sqlplus / as sysdba


      SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 7 20:04:29 2019

      Version 19.2.0.0.0


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



      Connected to:

      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

      Version 19.2.0.0.0


      SQL>  select log_mode,force_logging from v$database;


      LOG_MODE         FORCE_LOGGING

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

      ARCHiveLOG      NO


      (2).   查看主库归档目的地,从下面结果中可以看到,归档目的地使用了快速恢复区;

      SQL>  archive log list;

      Database log mode                   Archive Mode

      Automatic archival                   Enabled

      Archive destination                  USE_DB_RECOVERY_FILE_DEST

      Oldest online log sequence      1

      Next log sequence to archive   3

      Current log sequence                3


      (3).   开启主库附加日志,并验证开启的结果;

      SQL>  alter database force logging;


      Database altered.


      SQL> select log_mode,force_logging from v$database;


      LOG_MODE          FORCE_LOGGING

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

      ARCHIVELOG      YES


      从Oracle Database 18c开始,引入了以下两个新的nologging子句,它们可以执行非日志记录操作,同时可以使Active Data Guard备用数据库接收到所有数据,从而防止FORCE 方式生成大量重做日志导致性能下降。

      STANDBY NOLOGGING FOR DATA AVaiLABILITY模式使批量加载操作通过其自身与备用数据库的连接将加载的数据发送到每个备用数据库。提交会延迟,直到所有Active Data Guard备用数据库通过 recover 方式将数据应用完成。

      SQL>  alter database set standby nologging for data availability;


      Database altered.


      SQL> select log_mode,force_logging from v$database;


      LOG_MODE                FORCE_LOGGING

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

      NOARCHIVELOG     STANDBY NOLOGGING FOR DATA AVAILABILITY

      STANDBY NOLOGGING FOR LOAD PERFORMANCE模式与先前的模式类似,不同之处在于,如果网络无法跟上数据加载到主数据库的速度,则加载过程可以停止将数据发送到备用数据库。在此模式下,备用数据库可能缺少数据,但每个Active Data Guard备用数据库都会在recover过程中自动从主数据库中提取数据。

      SQL>  alter database set standby nologging for load performance;


      Database altered.


      SQL> select log_mode,force_logging from v$database;


      LOG_MODE               FORCE_LOGGING

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

      NOARCHIVELOG    STANDBY NOLOGGING FOR LOAD PERFORMANCE


      (4).  在主库中添加附加日志;

      SQL>  alter database add standby logfile group 4 ('/u01/app/oracle/oradata/SS19P/stredo04.log') size 100m;


      Database altered.


      SQL>  alter database add standby logfile group 5 ('/u01/app/oracle/oradata/SS19P/stredo05.log') size 100m;


      Database altered.


      SQL>  alter database add standby logfile group 6 ('/u01/app/oracle/oradata/SS19P/stredo06.log') size 100m; 


      Database altered.


      SQL>  alter database add standby logfile group 7 ('/u01/app/oracle/oradata/SS19P/stredo07.log') size 100m;


      Database altered.


      (5).  修改主库参数;

      SQL>  alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(SS19P,SS19S)';


      System altered.


      SQL>  alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SS19P';


      System altered.


      SQL>  alter system set LOG_ARCHIVE_DEST_2='SERVICE=SS19S ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=SS19S';


      System altered.


      SQL>  alter system set REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE' scope=spfile;


      System altered.


      SQL>  alter system set FAL_SERVER=SS19S;


      System altered.


      SQL>  alter system set DB_FILE_NAME_CONVERT='SS19S','SS19P' scope=spfile;


      System altered.


      SQL>  alter system set LOG_FILE_NAME_CONVERT='SS19S','SS19P' scope=spfile;


      System altered.


      SQL>  alter system set STANDBY_FILE_MANAGEMENT=AUTO;


      System altered.


      SQL> quit

      Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

      Version 19.2.0.0.0


      (6).  编辑主库 listener.ora 网络配置文件,添加连接主库点静态注册;

      [oracle@sdedu ~]$ cd /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/

      [oracle@sdedu admin]$ vi listener.ora 

      # listener.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/listener.ora

      # Generated by Oracle configuration tools.


      LISTENER =

        (DESCRIPTION_LIST =

          (DESCRIPTION =

            (ADDRESS = (PROTOCOL = tcp)(HOST = sdedu.sandata.com.cn)(PORT = 1521))

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

          )

        )


      SID_LIST_LISTENER =

        (SID_LIST =

          (SID_DESC =

             (GLOBAL_DBNAME = SS19P.sandata.com.cn)

             (SID_NAME = SS19P)

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

           )

         )


      (7).  编辑主库 tnsnames.ora 网络配置文件,添加连接备库的本地服务名;

      [oracle@sdedu admin]$ vi tnsnames.ora 

      # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/tnsnames.ora

      # Generated by Oracle configuration tools.


      LISTENER_SS19P =

        (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))


      SS19P =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))

          (CONNECT_DATA =

            (SERVER = DEDICATED)

            (SERVICE_NAME = SS19P.sandata.com.cn)

          )

        )


      SS19S =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = sdrep.sandata.com.cn)(PORT = 1521))

          (CONNECT_DATA =

            (SERVER = DEDICATED)

            (SERVICE_NAME = SS19S.sandata.com.cn)

          )

        )


      (8).  将主库中的网络文件和口令文件传输到备库;

      [oracle@sdedu admin]$ scp listener.ora tnsnames.ora sdrep:`pwd`

      oracle@sdrep's passWord

      listener.ora                                                  100%  558   451.3KB/s   00:00    

      tnsnames.ora                                                  100%  652   580.3KB/s   00:00


      [oracle@sdedu admin]$ cd ../../dbs

      [oracle@sdedu dbs]$ scp orapwSS19P sdrep:`pwd`/orapwSS19S

      oracle@sdrep's password: 

      orapwSS19P


      (9).  备库中创建对应路径:

      [oracle@sdrep ~]$ cd /u01/app/oracle/

      [oracle@sdrep oracle]$ mkdir -p admin/SS19S/adump

      [oracle@sdrep oracle]$ mkdir -p oradata/SS19S

      [oracle@sdrep oracle]$ mkdir -p fast_recovery_area/SS19S


      (10).  创建备库的参数文件:

      [oracle@sdrep oracle]$ cd /u01/app/oracle/product/19.2.0/dbhome_1/dbs/

      [oracle@sdrep dbs]$ vi initSS19S.ora 


      DB_NAME=SS19S


      (11).  修改备库的 listener.ora 配置文件:

      [oracle@sdrep dbs]$ vi ../network/admin/listener.ora 

      # listener.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/listener.ora

      # Generated by Oracle configuration tools.


      LISTENER =

        (DESCRIPTION_LIST =

          (DESCRIPTION =

            (ADDRESS = (PROTOCOL = TCP)(HOST =  SS19S.example.com )(PORT = 1521))

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

          )

        )


      SID_LIST_LISTENER =

        (SID_LIST =

          (SID_DESC =

            (GLOBAL_DBNAME =  SS19S.sandata.com.cn )

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

            (SID_NAME =  SS19S )

           )

         )


      (12).  修改备库的 tnsnames.ora 配置文件:

      [oracle@sdedu admin]$ vi tnsnames.ora 

      # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/tnsnames.ora

      # Generated by Oracle configuration tools.


      LISTENER_SS19P =

        (ADDRESS = (PROTOCOL = TCP)(HOST =  sdrep.sandata.com.cn )(PORT = 1521))


      SS19P =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))

          (CONNECT_DATA =

            (SERVER = DEDICATED)

            (SERVICE_NAME = SS19P.sandata.com.cn)

          )

        )


      SS19S =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = sdrep.sandata.com.cn)(PORT = 1521))

          (CONNECT_DATA =

            (SERVER = DEDICATED)

            (SERVICE_NAME = SS19S.sandata.com.cn)

          )

        )


      (13).  启动辅助实例;

      [oracle@sdrep dbs]$ export ORACLE_SID=SS19S

      [oracle@sdrep dbs]$ sqlplus / as sysdba


      SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 7 16:41:03 2019 

      Version 19.2.0.0.0


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


      Connected to an idle instance.


      SQL> startup nomount

      ORACLE instance started.


      Total System Global Area 1543500824 bytes

      Fixed Size                  9135128 bytes

      Variable Size            1006632960 bytes

      Database Buffers          520093696 bytes

      Redo Buffers                7639040 bytes

      Database mounted.

      SQL> quit

      Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

      Version 19.2.0.0.0


      (14).  使用复制数据库技术搭建备库,由于备库的文件路径包含SS19S,因此需要写明audit_file_dest,control_files参数(使用单引号也可以);

      [oracle@sdrep dbs]$  rman target sys/oracle@SS19P auxiliary sys/oracle@SS19S


      Recovery Manager: Release 19.0.0.0.0 - Production on Wed Mar 6 20:51:58 2019

      Version 19.2.0.0.0


      Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.


      connected to target database: SS19P (DBID=592912636)

      connected to auxiliary database: SS19P (not mounted)


      RMAN>  DUPLICATE TARGET DATABASE

      2>     FOR STANDBY

      3>     FROM ACTIVE DATABASE

      4>     DORECOVER

      5>     SPFILE

      6>     SET DB_UNIQUE_NAME="SS19S" COMMENT "Is a dbstyle duplicate"

      7>     SET AUDIT_FILE_DEST="/u01/app/oracle/admin/SS19S/adump"

      8>     SET CONTROL_FILES='/u01/app/oracle/oradata/SS19S/control01.ctl','/u01/app/oracle/fast_recovery_area/SS19S/control02.ctl'

      9>     SET LOG_ARCHIVE_CONFIG="DG_CONFIG=(SS19S,SS19P)"

      10>    SET LOG_ARCHIVE_DEST_1="LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SS19S"

      11>     SET LOG_ARCHIVE_DEST_2="SERVICE=SS19P ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=SS19P"

      12>     SET DB_FILE_NAME_CONVERT="SS19P","SS19S" 

      13>     SET LOG_FILE_NAME_CONVERT="SS19P","SS19S"  

      14>     SET FAL_SERVER="SS19P" COMMENT "Is primary"

      15>     SET STANDBY_FILE_MANAGEMENT="AUTO"

      16>     NOFILENAMECHECK;


      Starting Duplicate Db at 06-MAR-19

      using target database control file instead of recovery catalog

      allocated channel: ORA_AUX_DISK_1

      channel ORA_AUX_DISK_1: SID=21 device type=DISK

      current log archived


      省略部分 ………


      released channel: ORA_DISK_1

      released channel: ORA_AUX_DISK_1

      allocated channel: ORA_DISK_1

      channel ORA_DISK_1: SID=53 device type=DISK

      deleted archived log

      archived log file name=/u01/app/oracle/fast_recovery_area/SS19S/archivelog/2019_03_06/o1_mf_1_10_g7zjp7gs_.arc RECID=1 STAMP=1002228807

      deleted archived log

      archived log file name=/u01/app/oracle/fast_recovery_area/SS19S/archivelog/2019_03_06/o1_mf_1_11_g7zjp8po_.arc RECID=2 STAMP=1002228808

      Deleted 2 objects


      Finished Duplicate Db at 06-MAR-19


      RMAN> quit



      Recovery Manager complete.


      (15).  进入备库验证角色信息;

      [oracle@sdrep dbs]$ sqlplus / as sysdba


      SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 6 20:54:39 2019

      Version 19.2.0.0.0


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



      Connected to:

      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

      Version 19.2.0.0.0



      SQL> select database_role from v$database;


      DATABASE_ROLE

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

      PHYSICAL STANDBY


      SQL> select instance_name from v$instance;


      INSTANCE_NAME

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

      SS19S


      (16).  在备库启动recover 过程,应用主库传过来的日志(默认已经是real-time apply模式,因此省略using current logfile);

      SQL>  recover managed standby database disconnect from session;

      Media recovery complete.


      (17).  查询v$dataguard_process 视图,验证来自主库传输过来的日志过程和备库应用日志的情况(v$dataguard_process视图在12.2版本出现,取代了v$managed_standby);


      SQL> select role,thread#,sequence#,action from v$dataguard_process;


      ROLE                               THREAD#      SEQUENCE#     ACTION

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

      recovery apply slave                            0                          0   IDLE

      archive local                                           0                          0  IDLE

      redo transport timer                                0                          0  IDLE

      gap manager                                           0                          0  IDLE

      recovery logmerger                                1                        12  WAIT_FOR_LOG

      recovery apply slave                                                         0  IDLE

      managed recovery                                                            0  IDLE

      archive redo                                           0                            0  IDLE

      archive redo                                           0                            0  IDLE

      archive redo                                           0                            0  IDLE

      redo transport monitor                         0                            0  IDLE

      log writer                                             0                            0  IDLE


      12 rows selected.


      (18).  查询 v$archived_log 视图,验证来自主库传输过来的日志变化情况,下面输出可以看到主库传输过来的日志在增加;

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


       SEQUENCE#   APPLIED

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

                           10  YES

                           11  YES


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


       SEQUENCE#   APPLIED

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

                            10  YES

                            11  YES

                            12  YES


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


       SEQUENCE#   APPLIED

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

                            10  YES

                            11  YES

                            12  YES

                            13  YES

      两节点 Oracle 19c Dataguard 环境

      • 搭建两节点 Oracle 19c Dataguard 环境

      • 主库不关闭

      • 使用物理备库

      • 不使用Broker

      • 操作系统版本:OEL 7.6

      • 数据库版本:Oracle Database 19c

      • 两台主机名为:sdedu, sdrep

      • 主库名称:SS19P

      • 备库名称:SS19S

    • 主库不关闭

    • 使用物理备库

    • 不使用Broker


  1. 部署环境介绍

    • 操作系统版本:OEL 7.6

    • 数据库版本:Oracle Database 19c

    • 两台主机名为:sdedu, sdrep

    • 主库名称:SS19P

    • 备库名称:SS19S



  1. 操作步骤


(1).   查看主库归档和附加日志配置,如下的输出显示,开启了归档模式但没有开启附加日志;

[oracle@sdedu ~]$ sqlplus / as sysdba


SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 7 20:04:29 2019

Version 19.2.0.0.0


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



Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.2.0.0.0


SQL>  select log_mode,force_logging from v$database;


LOG_MODE         FORCE_LOGGING

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

ARCHIVELOG      NO


(2).   查看主库归档目的地,从下面结果中可以看到,归档目的地使用了快速恢复区;

SQL>  archive log list;

Database log mode                   Archive Mode

Automatic archival                   Enabled

Archive destination                  USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence      1

Next log sequence to archive   3

Current log sequence                3


(3).   开启主库附加日志,并验证开启的结果;

SQL>  alter database force logging;


Database altered.


SQL> select log_mode,force_logging from v$database;


LOG_MODE          FORCE_LOGGING

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

ARCHIVELOG      YES


从Oracle Database 18c开始,引入了以下两个新的nologging子句,它们可以执行非日志记录操作,同时可以使Active Data Guard备用数据库接收到所有数据,从而防止FORCE 方式生成大量重做日志导致性能下降。

STANDBY NOLOGGING FOR DATA AVAILABILITY模式使批量加载操作通过其自身与备用数据库的连接将加载的数据发送到每个备用数据库。提交会延迟,直到所有Active Data Guard备用数据库通过 recover 方式将数据应用完成。

SQL>  alter database set standby nologging for data availability;


Database altered.


SQL> select log_mode,force_logging from v$database;


LOG_MODE                FORCE_LOGGING

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

NOARCHIVELOG     STANDBY NOLOGGING FOR DATA AVAILABILITY

STANDBY NOLOGGING FOR LOAD PERFORMANCE模式与先前的模式类似,不同之处在于,如果网络无法跟上数据加载到主数据库的速度,则加载过程可以停止将数据发送到备用数据库。在此模式下,备用数据库可能缺少数据,但每个Active Data Guard备用数据库都会在recover过程中自动从主数据库中提取数据。

SQL>  alter database set standby nologging for load performance;


Database altered.


SQL> select log_mode,force_logging from v$database;


LOG_MODE               FORCE_LOGGING

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

NOARCHIVELOG    STANDBY NOLOGGING FOR LOAD PERFORMANCE


(4).  在主库中添加附加日志;

SQL>  alter database add standby logfile group 4 ('/u01/app/oracle/oradata/SS19P/stredo04.log') size 100m;


Database altered.


SQL>  alter database add standby logfile group 5 ('/u01/app/oracle/oradata/SS19P/stredo05.log') size 100m;


Database altered.


SQL>  alter database add standby logfile group 6 ('/u01/app/oracle/oradata/SS19P/stredo06.log') size 100m; 


Database altered.


SQL>  alter database add standby logfile group 7 ('/u01/app/oracle/oradata/SS19P/stredo07.log') size 100m;


Database altered.


(5).  修改主库参数;

SQL>  alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(SS19P,SS19S)';


System altered.


SQL>  alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SS19P';


System altered.


SQL>  alter system set LOG_ARCHIVE_DEST_2='SERVICE=SS19S ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=SS19S';


System altered.


SQL>  alter system set REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE' scope=spfile;


System altered.


SQL>  alter system set FAL_SERVER=SS19S;


System altered.


SQL>  alter system set DB_FILE_NAME_CONVERT='SS19S','SS19P' scope=spfile;


System altered.


SQL>  alter system set LOG_FILE_NAME_CONVERT='SS19S','SS19P' scope=spfile;


System altered.


SQL>  alter system set STANDBY_FILE_MANAGEMENT=AUTO;


System altered.


SQL> quit

Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.2.0.0.0


(6).  编辑主库 listener.ora 网络配置文件,添加连接主库点静态注册;

[oracle@sdedu ~]$ cd /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/

[oracle@sdedu admin]$ vi listener.ora 

# listener.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.


LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))

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

    )

  )


SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

       (GLOBAL_DBNAME = SS19P.sandata.com.cn)

       (SID_NAME = SS19P)

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

     )

   )


(7).  编辑主库 tnsnames.ora 网络配置文件,添加连接备库的本地服务名;

[oracle@sdedu admin]$ vi tnsnames.ora 

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.


LISTENER_SS19P =

  (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))


SS19P =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = SS19P.sandata.com.cn)

    )

  )


SS19S =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = sdrep.sandata.com.cn)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = SS19S.sandata.com.cn)

    )

  )


(8).  将主库中的网络文件和口令文件传输到备库;

[oracle@sdedu admin]$ scp listener.ora tnsnames.ora sdrep:`pwd`

oracle@sdrep's password: 

listener.ora                                                  100%  558   451.3KB/s   00:00    

tnsnames.ora                                                  100%  652   580.3KB/s   00:00


[oracle@sdedu admin]$ cd ../../dbs

[oracle@sdedu dbs]$ scp orapwSS19P sdrep:`pwd`/orapwSS19S

oracle@sdrep's password: 

orapwSS19P


(9).  备库中创建对应路径:

[oracle@sdrep ~]$ cd /u01/app/oracle/

[oracle@sdrep oracle]$ mkdir -p admin/SS19S/adump

[oracle@sdrep oracle]$ mkdir -p oradata/SS19S

[oracle@sdrep oracle]$ mkdir -p fast_recovery_area/SS19S


(10).  创建备库的参数文件:

[oracle@sdrep oracle]$ cd /u01/app/oracle/product/19.2.0/dbhome_1/dbs/

[oracle@sdrep dbs]$ vi initSS19S.ora 


DB_NAME=SS19S


(11).  修改备库的 listener.ora 配置文件:

[oracle@sdrep dbs]$ vi ../network/admin/listener.ora 

# listener.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.


LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST =  SS19S.example.com )(PORT = 1521))

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

    )

  )


SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME =  SS19S.sandata.com.cn )

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

      (SID_NAME =  SS19S )

     )

   )


(12).  修改备库的 tnsnames.ora 配置文件:

[oracle@sdedu admin]$ vi tnsnames.ora 

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.


LISTENER_SS19P =

  (ADDRESS = (PROTOCOL = TCP)(HOST =  sdrep.sandata.com.cn )(PORT = 1521))


SS19P =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = sdedu.sandata.com.cn)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = SS19P.sandata.com.cn)

    )

  )


SS19S =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = sdrep.sandata.com.cn)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = SS19S.sandata.com.cn)

    )

  )


(13).  启动辅助实例;

[oracle@sdrep dbs]$ export ORACLE_SID=SS19S

[oracle@sdrep dbs]$ sqlplus / as sysdba


SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 7 16:41:03 2019 

Version 19.2.0.0.0


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


Connected to an idle instance.


SQL> startup nomount

ORACLE instance started.


Total System Global Area 1543500824 bytes

Fixed Size                  9135128 bytes

Variable Size            1006632960 bytes

Database Buffers          520093696 bytes

Redo Buffers                7639040 bytes

Database mounted.

SQL> quit

Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.2.0.0.0


(14).  使用复制数据库技术搭建备库,由于备库的文件路径包含SS19S,因此需要写明audit_file_dest,control_files参数(使用单引号也可以);

[oracle@sdrep dbs]$  rman target sys/oracle@SS19P auxiliary sys/oracle@SS19S


Recovery Manager: Release 19.0.0.0.0 - Production on Wed Mar 6 20:51:58 2019

Version 19.2.0.0.0


Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.


connected to target database: SS19P (DBID=592912636)

connected to auxiliary database: SS19P (not mounted)


RMAN>  DUPLICATE TARGET DATABASE

2>     FOR STANDBY

3>     FROM ACTIVE DATABASE

4>     DORECOVER

5>     SPFILE

6>     SET DB_UNIQUE_NAME="SS19S" COMMENT "Is a dbstyle duplicate"

7>     SET AUDIT_FILE_DEST="/u01/app/oracle/admin/SS19S/adump"

8>     SET CONTROL_FILES='/u01/app/oracle/oradata/SS19S/control01.ctl','/u01/app/oracle/fast_recovery_area/SS19S/control02.ctl'

9>     SET LOG_ARCHIVE_CONFIG="DG_CONFIG=(SS19S,SS19P)"

10>    SET LOG_ARCHIVE_DEST_1="LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SS19S"

11>     SET LOG_ARCHIVE_DEST_2="SERVICE=SS19P ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=SS19P"

12>     SET DB_FILE_NAME_CONVERT="SS19P","SS19S" 

13>     SET LOG_FILE_NAME_CONVERT="SS19P","SS19S"  

14>     SET FAL_SERVER="SS19P" COMMENT "Is primary"

15>     SET STANDBY_FILE_MANAGEMENT="AUTO"

16>     NOFILENAMECHECK;


Starting Duplicate Db at 06-MAR-19

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=21 device type=DISK

current log archived


省略部分 ………


released channel: ORA_DISK_1

released channel: ORA_AUX_DISK_1

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=53 device type=DISK

deleted archived log

archived log file name=/u01/app/oracle/fast_recovery_area/SS19S/archivelog/2019_03_06/o1_mf_1_10_g7zjp7gs_.arc RECID=1 STAMP=1002228807

deleted archived log

archived log file name=/u01/app/oracle/fast_recovery_area/SS19S/archivelog/2019_03_06/o1_mf_1_11_g7zjp8po_.arc RECID=2 STAMP=1002228808

Deleted 2 objects


Finished Duplicate Db at 06-MAR-19


RMAN> quit



Recovery Manager complete.


(15).  进入备库验证角色信息;

[oracle@sdrep dbs]$ sqlplus / as sysdba


SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 6 20:54:39 2019

Version 19.2.0.0.0


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



Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.2.0.0.0



SQL> select database_role from v$database;


DATABASE_ROLE

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

PHYSICAL STANDBY


SQL> select instance_name from v$instance;


INSTANCE_NAME

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

SS19S


(16).  在备库启动recover 过程,应用主库传过来的日志(默认已经是real-time apply模式,因此省略using current logfile);

SQL>  recover managed standby database disconnect from session;

Media recovery complete.


(17).  查询v$dataguard_process 视图,验证来自主库传输过来的日志过程和备库应用日志的情况(v$dataguard_process视图在12.2版本出现,取代了v$managed_standby);


SQL> select role,thread#,sequence#,action from v$dataguard_process;


ROLE                               THREAD#      SEQUENCE#     ACTION

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

recovery apply slave                            0                          0   IDLE

archive local                                           0                          0  IDLE

redo transport timer                                0                          0  IDLE

gap manager                                           0                          0  IDLE

recovery logmerger                                1                        12  WAIT_FOR_LOG

recovery apply slave                                                         0  IDLE

managed recovery                                                            0  IDLE

archive redo                                           0                            0  IDLE

archive redo                                           0                            0  IDLE

archive redo                                           0                            0  IDLE

redo transport monitor                         0                            0  IDLE

log writer                                             0                            0  IDLE


12 rows selected.


(18).  查询 v$archived_log 视图,验证来自主库传输过来的日志变化情况,下面输出可以看到主库传输过来的日志在增加;

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


 SEQUENCE#   APPLIED

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

                     10  YES

                     11  YES


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


 SEQUENCE#   APPLIED

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

                      10  YES

                      11  YES

                      12  YES


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


 SEQUENCE#   APPLIED

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

                      10  YES

                      11  YES

                      12  YES

                      13  YES


您可能感兴趣的文档:

--结束END--

本文标题: Oracle 19c Data Guard物理备库搭建

本文链接: https://www.lsjlt.com/news/47107.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作