当前位置: 首页 > article >正文

Oracle 19C Database Data Guard 一主两备 -- 生产级

前言

Oracle 数据库使用 Data Guard 搭建一主两备,在主库发生故障时。可以无缝切换至备库支持生产。

目的

一主两备的目的是为了增加数据库的容错率。降低生产数据库崩溃导致业务停顿的几率。当前文档的操作可直接应用至生产环境。但其中的参数基于业务具体情况可适当修改。

系统信息

OSDatabaseMemoryDiskNameP/SIPOS User
Oracle RHEL 7.819.3.032G500GPRIMARYPrimary192.168.2.11oracle
Oracle RHEL 7.819.3.032G500GTestSlave-One192.168.2.12oradg1
Oracle RHEL 7.819.3.032G500GDGSSlave-Two192.168.2.13oradg2

Linux 操作步骤

1、Linux安装将不再演示

# 可参见该文档
https://www.modb.pro/db/1890268454414987264

2、IP 设置

# 编辑 hosts
$ vi /etc/hosts
192.168.2.11  primary.ckpt.com primary
192.168.2.12  test.ckpt.com test
192.168.2.13  dgs.ckpt.com dgs

# 注意:更改主机名时,需要三台机器均执行,不同的服务器添加对应的一个名即可
$ vi /etc/hostname
primary
test
dgs

3、关闭防火墙

systemctl stop firewlld.service && systemctl disable firewlld.service

4、关闭Selinux策略

vi /etc/selinux/config
SELINUX=disabled

5、关闭透明大页和numa

6、开启Hugesize
目前这个值的计算方式很复杂。如果需要设置请私信我!!!

数据库配置

1、环境变量配置

# 主库oracle用户
export ORACLE_SID=PRIMARY
export ORACLE_BASE=/u01/DBDG/primary_orcl
export ORACLE_HOME=$ORACLE_BASE/19.3.0
export PATH=$ORACLE_HOME/bin:$PATH

# 从库oradg1用户
export ORACLE_SID=TEST
export ORACLE_BASE=/data/db
export ORACLE_HOME=$ORACLE_BASE/19.3.0
export PATH=$ORACLE_HOME/bin:$PATH

# 从库oradg2用户
export ORACLE_SID=DGS
export ORACLE_BASE=/u01/DBDG/slave_dg2
export ORACLE_HOME=$ORACLE_BASE/19.3.0
export PATH=$ORACLE_HOME/bin:$PATH

主库设置

2、主库开启归档

SQL> archive log list;
Database log mode          Archive Mode
Automatic archival         Enabled
Archive destination        /u01/DBDG/primary_orcl/archive
Oldest online log sequence     307
Next log sequence to archive   313
Current log sequence           313

--如未开启归档,请打开
SQL>shutdown immediate
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;

3、主库强制日志模式

--开启强制日志
SQL>alter database force logging;
--查询实例的归档模式和强制日志
SQL> select log_mode,force_logging from v$database;

LOG_MODE     FOR
------------ ---
ARCHIVELOG   YES

4、主库追加redo

alter database add standby logfile group 4 '/u01/DBDG/primary_orcl/oradata/primary/testredo01.log' size 200M; 
alter database add standby logfile group 5 '/u01/DBDG/primary_orcl/oradata/primary/testredo02.log' size 200M;
alter database add standby logfile group 6 '/u01/DBDG/primary_orcl/oradata/primary/dgsredo03.log' size 200M; 
alter database add standby logfile group 7 '/u01/DBDG/primary_orcl/oradata/primary/dgsredo04.log' size 200M;

SQL> select group#,thread#,sequence#,archived,status from $standby_log;

    GROUP#    THREAD#  SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
     4      1          0 YES UNASSIGNED
     5      1          0 YES UNASSIGNED
     6      1          0 YES UNASSIGNED
     7      1          0 YES UNASSIGNED

5、主库配置tnsnames.ora

PRIMARY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = primary)
    )
  )

LISTENER_PRIMARY =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))

DGS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DGS)
    )
  )

TEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )

6、主库配置listener.ora

PRIMARY =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
        (GLOBAL_DBNAME = PRIMARY)
        (ORACLE_HOME = /u01/DBDG/primary_orcl/19.3.0)
        (SID_NAME = PRIMARY)
     )
   )

7、主库参数文件配置

*.audit_file_dest='/u01/DBDG/primary_orcl/admin/primary/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/DBDG/primary_orcl/oradata/PRIMARY/control01.ctl','/u01/DBDG/primary_orcl/oradata/PRIMARY/control02.ctl'
*.db_block_size=8192
*.db_name='primary'
*.diagnostic_dest='/u01/DBDG/primary_orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=primaryXDB)'
*.local_listener='LISTENER_PRIMARY'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1434m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=5735m
*.undo_tablespace='UNDOTBS1'
*.log_archive_config='dg_config=(primary,test,dgs)'
*.log_archive_dest_1='location=/u01/DBDG/primary_orcl/archive valid_for=(all_logfiles,all_roles) db_unique_name=primary'
*.log_archive_dest_2='SERVICE=DGS LGWR ASYNC VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=DGS'
*.log_archive_dest_3='SERVICE=TEST VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=TEST'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_dest_state_3='enable'
*.fal_server='TEST'
*.fal_client='primary'
*.db_unique_name='primary'
*.standby_file_management=auto
*.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata','/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
*.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata','/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'

8、主库密码文件配置

$ orapwd file=orapwprimary password=admin!11

9、发送主库文件至从库

$ scp ../dbs/initprimary.ora orapwprimary 192.168.2.12:..../dbs
$ scp ../network/admin/listener.ora tnsnames.ora 192.168.2.12:..../network/admin
$ scp ../dbs/initprimary.ora orapwprimary 192.168.2.13:..../dbs
$ scp ../network/admin/listener.ora tnsnames.ora 192.168.2.13:..../network/admin

一号从库配置

1、listner.ora配置

DGS =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )
SID_LIST_DGS =
   (SID_LIST =
     (SID_DESC =
        (GLOBAL_DBNAME = DGS)
        (ORACLE_HOME = /u01/DBDG/slave_dg1/19.3.0)
        (SID_NAME = DGS)
     )
   )

2、tnsnames.ora配置

DGS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DGS)
    )
  )

LISTENER_DGS =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522))


PRIMARY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = primary)
    )
  )

3、参数文件配置

$ cd $ORACLE_HOME/dbs
$ mv initprimary.ora initdgs.ora
$ mv orapwprimary orapwDGS

*.audit_file_dest='/u01/DBDG/slave_dg1/admin/dgs/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/DBDG/slave_dg1/oradata/DGS/control01.ctl','/u01/DBDG/slave_dg1/oradata/DGS/control02.ctl'
*.db_block_size=8192
*.db_name='primary'
*.diagnostic_dest='/u01/DBDG/slave_dg1'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgsXDB)'
#*.local_listener='LISTENER_TEST'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1434m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=5735m
*.undo_tablespace='UNDOTBS1'
*.log_archive_config='dg_config=(primary,DGS)'
*.log_archive_dest_1='location=/u01/DBDG/slave_dg1/archive valid_for=(all_logfiles,all_roles) db_unique_name=dgs'
*.log_archive_dest_state_1='enable'
*.fal_server='primary'
*.fal_client='dgs'
*.db_unique_name='dgs'
*.standby_file_management=auto
*.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
*.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'

4、启动监听

$ lsnrctl start DGS

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:05:22

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.103)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     DGS
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                14-FEB-2025 10:39:07
Uptime                    0 days 3 hr. 26 min. 14 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/DBDG/slave_dg1/19.3.0/network/admin/listener.ora
Listener Log File         /u01/DBDG/slave_dg1/diag/tnslsnr/localhost/dgs/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.13)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
Services Summary...
Service "DGS" has 1 instance(s).
  Instance "DGS", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

5、创建文件夹

$ mkdir -p /u01/DBDG/slave_dg1/admin/dgs/adump
$ mkdir -p /u01/DBDG/slave_dg1/oradata
$ mkdir -p /u01/DBDG/slave_dg1/archive

6、启动到nomount

$ sqlplus sys/admin*11@dgs as sysdba
SQL> startup nomount pfile='initdgs.ora';

7、备库开始复制

$ rman target sys/admin*11@primary auxiliary sys/admin*11@dgs
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Feb 14 10:42:51 2025
Version 19.3.0.0.0

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

connected to target database: PRIMARY (DBID=2030450347)
connected to auxiliary database: PRIMARY (not mounted)

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

Starting Duplicate Db at 14-FEB-25
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

contents of Memory Script:
{
   backup as copy reuse
   passwordfile auxiliary format  '/u01/DBDG/slave_dg1/19.3.0/dbs/orapwDGS'   ;
}
executing Memory Script

Starting backup at 14-FEB-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=40 device type=DISK
Finished backup at 14-FEB-25

contents of Memory Script:
{
   restore clone from service  'primary' standby controlfile;
}
executing Memory Script

Starting restore at 14-FEB-25
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/u01/DBDG/slave_dg1/oradata/DGS/control01.ctl
output file name=/u01/DBDG/slave_dg1/oradata/DGS/control02.ctl
Finished restore at 14-FEB-25

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

sql statement: alter database mount standby database

contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf";
   set newname for datafile  3 to
 "/u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf";
   set newname for datafile  4 to
 "/u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf";
   set newname for datafile  5 to
 "/u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf";
   set newname for datafile  7 to
 "/u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf";
   restore
   from  nonsparse   from service
 'primary'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 14-FEB-25
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:16
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-FEB-25

sql statement: alter system archive log current

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=5 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf
Finished Duplicate Db at 14-FEB-25

RMAN> exit


Recovery Manager complete.

8、开启同步

SQL>ALTER DATABASE OPEN READ ONLY;
SQL>alter database recover managed standby database using current logfile disconnect from session;

二号从库配置

1、listner.ora配置

TEST =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
        (GLOBAL_DBNAME = TEST)
        (ORACLE_HOME = /data/db/19.3.0)
        (SID_NAME = TEST)
     )
   )

2、tnsnames.ora配置

TEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )

LISTENER_TEST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521))


PRIMARY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = primary)
    )
  )

3、参数文件配置

$ cd $ORACLE_HOME/dbs
$ mv initprimary.ora inittest.ora
$ mv orapwprimary orapwTEST

*.audit_file_dest='/data/db/admin/test/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/data/db/oradata/TEST/control01.ctl','/data/db/oradata/TEST/control02.ctl'
*.db_block_size=8192
*.db_name='primary'
*.diagnostic_dest='/data/db'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
#*.local_listener='LISTENER_TEST'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1434m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=5735m
*.undo_tablespace='UNDOTBS1'
*.log_archive_config='dg_config=(primary,test)'
*.log_archive_dest_1='location=/data/db/archive valid_for=(all_logfiles,all_roles) db_unique_name=test'
*.log_archive_dest_state_1='enable'
*.fal_server='primary'
*.fal_client='test'
*.DB_UNIQUE_NAME='test'
*.standby_file_management=auto
*.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata'
*.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata'

4、启动监听

$ lsnrctl start TEST

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:13:50

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                14-FEB-2025 09:58:23
Uptime                    0 days 4 hr. 15 min. 27 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /data/db/19.3.0/network/admin/listener.ora
Listener Log File         /data/db/diag/tnslsnr/slave/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.13)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=192.168.2.13)(PORT=5500))(Security=(my_wallet_directory=/data/db/admin/test/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "TEST" has 2 instance(s).
  Instance "TEST", status UNKNOWN, has 1 handler(s) for this service...
  Instance "TEST", status READY, has 1 handler(s) for this service...
Service "testXDB" has 1 instance(s).
  Instance "TEST", status READY, has 1 handler(s) for this service...
The command completed successfully

5、创建文件夹

$ mkdir -p /data/db/admin/test/adump
$ mkdir -p /data/db /oradata
$ mkdir -p /data/db /archive

6、启动到nomount

$ sqlplus sys/admin*11@test as sysdba
SQL> startup nomount pfile='inittest.ora';

7、备库开始复制

$ rman target sys/admin*11@primary auxiliary sys/admin*11@test
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Feb 14 10:19:39 2025
Version 19.3.0.0.0

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

connected to target database: PRIMARY (DBID=2030450347)
connected to auxiliary database: PRIMARY (not mounted)

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

Starting Duplicate Db at 14-FEB-25
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=38 device type=DISK

contents of Memory Script:
{
   backup as copy reuse
   passwordfile auxiliary format  '/data/db/19.3.0/dbs/orapwTEST'   ;
}
executing Memory Script

Starting backup at 14-FEB-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=276 device type=DISK
Finished backup at 14-FEB-25

contents of Memory Script:
{
   restore clone from service  'primary' standby controlfile;
}
executing Memory Script

Starting restore at 14-FEB-25
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/data/db/oradata/TEST/control01.ctl
output file name=/data/db/oradata/TEST/control02.ctl
Finished restore at 14-FEB-25

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

sql statement: alter database mount standby database

contents of Memory Script:
{
   set newname for tempfile  1 to
 "/data/db/oradata/PRIMARY/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/data/db/oradata/PRIMARY/system01.dbf";
   set newname for datafile  3 to
 "/data/db/oradata/PRIMARY/sysaux01.dbf";
   set newname for datafile  4 to
 "/data/db/oradata/PRIMARY/undotbs01.dbf";
   set newname for datafile  5 to
 "/data/db/oradata/PRIMARY/apps.dbf";
   set newname for datafile  7 to
 "/data/db/oradata/PRIMARY/users01.dbf";
   restore
   from  nonsparse   from service
 'primary'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /data/db/oradata/PRIMARY/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 14-FEB-25
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /data/db/oradata/PRIMARY/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /data/db/oradata/PRIMARY/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /data/db/oradata/PRIMARY/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /data/db/oradata/PRIMARY/apps.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service primary
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /data/db/oradata/PRIMARY/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-FEB-25

sql statement: alter system archive log current

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/apps.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=5 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/users01.dbf
Finished Duplicate Db at 14-FEB-25

RMAN> exit


Recovery Manager complete.

8、开启同步

SQL>ALTER DATABASE OPEN READ ONLY;
SQL>alter database recover managed standby database using current logfile disconnect from session;

同步测试

1、主库创建数据

SQL> create user test identified by test;
SQL> alter system switch logfile;

2、一号从库查询

SQL> select account_status from dba_users where username='TEST';

ACCOUNT_STATUS
--------------------------------
OPEN

2、二号从库查询

SQL> select account_status from dba_users where username='TEST';

ACCOUNT_STATUS
--------------------------------
OPEN


http://www.kler.cn/a/546766.html

相关文章:

  • 在Spring Cloud项目中集成MySQL、MyBatis-Plus与HikariCP
  • C++ Primer 函数基础
  • DeepSeek HuggingFace 70B Llama 版本 (DeepSeek-R1-Distill-Llama-70B)
  • 小众宝藏分子生物学实验中常用的软件:InSequence
  • RunLoop 详解
  • Sublime Text 3 中的 Pylinter 配置
  • springboot023学生宿舍管理系统
  • DNS污染、劫持频发?HTTPDNS让安全无死角
  • 在 Ubuntu 20.04 为 Clash Verge AppImage 创建桌面图标教程
  • macOS git status 中文现实不正常 -解决方法
  • Docker Desktop WebAPI《1》
  • 鸿蒙面试题
  • 【GeeRPC】Day6:负载均衡
  • Huatuo热更新--安装HybridCLR
  • Java 设计模式之备忘录模式
  • Oracle日常管理(8)——DB日常管理(1)
  • 网络性能测试工具ipref
  • Stable Diffusion 安装教程(附安装包) 【SD三种安装方式,Win+Mac一篇文章讲明白】
  • 深入浅出 Python Logging:从基础到进阶日志管理
  • 如何使用Pyinstaller 生成整包可执行文件
  • |网络安全|网络安全学习方法
  • Oracle EBS Update SYSTEM Password - 11i R12
  • AJAX 与 ASP 的深入探讨
  • Git指南-从入门到精通
  • html 点击弹出视频弹窗
  • 【人工智能】数据集合集!