Oracle 19c DataGuard 实践

主库 dguard, IP 192.168.43.92

备库dguard2,IP 192.168.43.182

1.  enable force logging on the primary database 

SQL> select name,FORCE_LOGGING from v$database;

NAME      FORCE_LOGGING
--------- ---------------------------------------
DGUARD    NO

SQL> ALTER DATABASE FORCE LOGGING;

Database altered.

SQL>  select name,FORCE_LOGGING from v$database;

NAME      FORCE_LOGGING
--------- ---------------------------------------
DGUARD    YES

2. enable archive log on the primary  database

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Current log sequence           7

 

SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1543500872 bytes
Fixed Size                  9135176 bytes
Variable Size             889192448 bytes
Database Buffers          637534208 bytes
Redo Buffers                7639040 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Next log sequence to archive   7
Current log sequence           7

 

SQL> show parameter DB_RECOVERY_FILE_DEST;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/fast_recovery_area
db_recovery_file_dest_size           big integer 12732M

SQL> alter database open;

Database altered.

3. configure  standby redo  log files for the  primary database( this is needed when  the primary database change to standby database)

SQL> select group#, bytes/1024/1024 as mb_size from v$log;-- query current redo log file size as the standby redo log file size when the primary database change the redo log the standby database also change the  standby redo log, normally  we also need to add  one more group to the standby redo log,  standby is transfered from primary, then will apply the standby redo log to the standby database,all of them needs time, when primary key is done, the standby database standby redo log maybe still  active, it will has impact to the  primary database   performance,here are 3  groups for redo group and 4 groups for standby redo

    GROUP#    MB_SIZE
---------- ----------
         1        200
         2        200
         3        200

SQL>
 

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oradata/DGUARD/slog1.rdo') SIZE 200m;

Database altered.


SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oradata/DGUARD/slog2.rdo') SIZE 200m;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oradata/DGUARD/slog3.rdo') SIZE 200m;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oradata/DGUARD/slog4.rdo') SIZE 200m;

Database altered.

4.配置 oracle listener 静态注册和TNS,允许远程打开或关闭数据库

主库LISTENER配置如下

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (GLOBAL_DBNAME=dguard)
         (SID_NAME=dguard)
         (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
       )

    )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dguard)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCPS)(HOST = dguard)(PORT = 2484))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

主库 tnsnames配置

DGUARD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.43.92)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dguard)
    )
  )

DGUARD2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.43.182)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dguard2)
    )
  )

LISTENER_DGUARD =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.43.92)(PORT = 1521))
 

备库 listener 配置如下

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (GLOBAL_DBNAME=dguard2)
         (SID_NAME=dguard2)
         (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
       )

    )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dguard2)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCPS)(HOST = dguard2)(PORT = 2484))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
 

备库TNSNAMES配置如下

DGUARD2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.43.182)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dguard2)
    )
  )
DGUARD  =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.43.92)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dguard)
    )
  )
LISTENER_DGUARD =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.43.182)(PORT = 1521))

5.将密码 文件从主库传送到备库

[oracle@dguard dbs]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/dbs
[oracle@dguard dbs]$ scp orapwdguard oracle@dguard2:/u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapwdguard2
oracle@dguard2's password:
orapwdguard                                                                                                                                                100% 2048     3.2MB/s   00:00
[oracle@dguard dbs]$

6. Modify pirmary database parameter,并重新启动主库
SQL> create pfile from spfile;

File created.


[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ls
[oracle@localhost dbs]$ vi initdguard.ora  

请在文件默认的参数下面加上如下关于standbyde 

*.DB_FILE_NAME_CONVERT='/u01/app/oradata/DGUARD','/u01/app/oradata/DGUARD/'
*.DB_UNIQUE_NAME='dguard'
*.FAL_SERVER='dguard2'

*.local_listener='LISTENER_DGUARD'--与TNS中配置相同
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dguard,dguard2)'
*.LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=dguard'
*.LOG_ARCHIVE_DEST_2='SERVICE=dguard2 ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=dguard2'
*.LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'

*.standby_file_management='MANUAL'---这个 参数开始必须为manual 不然后续做 RMAN DUPLICATE报错,调试完成后,在主库和备库上再调整为'AUTO'
*.LOG_FILE_NAME_CONVERT='/u01/app/oradata/DGUARD','/u01/app/oradata/DGUARD/'
*.REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> create spfile from pfile;

File created.

SQL> startup
ORACLE instance started.

Total System Global Area 1543500872 bytes
Fixed Size                  9135176 bytes
Variable Size             889192448 bytes
Database Buffers          637534208 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.

7.为备库创建audit目录

[oracle@dguard2 dbs]$ mkdir -p /u01/app/admin/dguard2/adump

8.简单创建standby database initdguar2.ora,并启动到NOMOUNT状态

[oracle@dguard2 dbs]$ pwd
/u01/app/oracle/product/19.3.0/dbhome_1/dbs
[oracle@dguard2 dbs]$ cp init.ora  initdguard2.ora

[oracle@dguard2 dbs]$ vi initdguard2.ora

修改后所有参数如下

db_name='dguard'
db_unique_name='dguard2'
processes = 150
audit_file_dest='/u01/app/admin/dguard2/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/diag'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'

使用远程启动方式将备库启动到NOMOUNT 状态

[oracle@dguard2 dbs]$ sqlplus sys/Ntrvl#123@dguard2 as sysdba

SQL> startup nomount;
ORACLE instance started.

Total System Global Area  348123608 bytes
Fixed Size                  9134552 bytes
Variable Size             281018368 bytes
Database Buffers           50331648 bytes
Redo Buffers                7639040 bytes
 

9. 创建RMAN cmd file

[oracle@dguard admin]$ vi  cmdfile.rmn#可以是你喜欢的任何名字,后续跑命令要一致
 duplicate target database for standby from active database dorecover
 spfile
 set db_unique_name='dguard2'
 set db_name='dguard'
 set log_archive_config='DG_CONFIG=(dguard,dguard2)'
 set fal_server='dguard'
 set standby_file_management='MANUAL'
nofilenamecheck;
[oracle@dguard admin]$

10. 使用RMAN 运行cmdfile.rmn,可以是主库主机也可以是备库主机,因为我们早已经配置好了TNS

 rman target sys/password@dguard  auxiliary sys/password@dguard2 cmdfile=cmdfile.rmn


Recovery Manager: Release 19.0.0.0.0 - Production on Tue Jul 12 10:28:54 2022
Version 19.3.0.0.0

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

connected to target database: DGUARD (DBID=3590491223)
connected to auxiliary database: DGUARD (not mounted)

RMAN>  duplicate target database for standby from active database dorecover
2>  spfile
3>  set db_unique_name='dguard2'
4>  set db_name='dguard'
5>  set log_archive_config='DG_CONFIG=(dguard,dguard2)'
6>  set fal_server='dguard'
7>  set standby_file_management='MANUAL'
8> nofilenamecheck;
9>
Starting Duplicate Db at 12-JUL-22
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=262 device type=DISK
current log archived

contents of Memory Script:
{
   backup as copy reuse
   passwordfile auxiliary format  '/u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapwdguard2'   ;
   restore clone from service  'dguard' spfile to
 '/u01/app/oracle/product/19.3.0/dbhome_1/dbs/spfiledguard2.ora';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/19.3.0/dbhome_1/dbs/spfiledguard2.ora''";
}
executing Memory Script

Starting backup at 12-JUL-22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=147 device type=DISK
Finished backup at 12-JUL-22

Starting restore at 12-JUL-22
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 dguard
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/spfiledguard2.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
Finished restore at 12-JUL-22

sql statement: alter system set spfile= ''/u01/app/oracle/product/19.3.0/dbhome_1/dbs/spfiledguard2.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_unique_name =
 ''dguard2'' comment=
 '''' scope=spfile";
   sql clone "alter system set  db_name =
 ''dguard'' comment=
 '''' scope=spfile";
   sql clone "alter system set  log_archive_config =
 ''DG_CONFIG=(dguard,dguard2)'' comment=
 '''' scope=spfile";
   sql clone "alter system set  fal_server =
 ''dguard'' comment=
 '''' scope=spfile";
   sql clone "alter system set  standby_file_management =
 ''MANUAL'' comment=
 '''' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_unique_name =  ''dguard2'' comment= '''' scope=spfile

sql statement: alter system set  db_name =  ''dguard'' comment= '''' scope=spfile

sql statement: alter system set  log_archive_config =  ''DG_CONFIG=(dguard,dguard2)'' comment= '''' scope=spfile

sql statement: alter system set  fal_server =  ''dguard'' comment= '''' scope=spfile

sql statement: alter system set  standby_file_management =  ''MANUAL'' comment= '''' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     348123608 bytes

Fixed Size                     9134552 bytes
Variable Size                281018368 bytes
Database Buffers              50331648 bytes
Redo Buffers                   7639040 bytes
duplicating Online logs to Oracle Managed File (OMF) location

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

Starting restore at 12-JUL-22
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=134 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:09
output file name=/u01/app/oradata/DGUARD/control01.ctl
output file name=/u01/app/fast_recovery_area/DGUARD/control02.ctl
Finished restore at 12-JUL-22

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

sql statement: alter database mount standby database
RMAN-05538: warning: implicitly using DB_FILE_NAME_CONVERT
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/system01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/sysaux01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/undotbs01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdbseed/system01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdbseed/sysaux01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/users01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdbseed/undotbs01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdb1/system01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdb1/sysaux01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdb1/undotbs01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (datafile) file name /u01/app/oradata/DGUARD/pdb1/users01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (tempfile) file name /u01/app/oradata/DGUARD/temp01.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (tempfile) file name /u01/app/oradata/DGUARD/pdbseed/temp012022-07-05_14-13-22-854-PM.dbf conflicts with a file used by the target database
RMAN-05158: WARNING: auxiliary (tempfile) file name /u01/app/oradata/DGUARD/pdb1/temp01.dbf conflicts with a file used by the target database

contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u01/app/oradata/DGUARD/temp01.dbf";
   set newname for tempfile  2 to
 "/u01/app/oradata/DGUARD/pdbseed/temp012022-07-05_14-13-22-854-PM.dbf";
   set newname for tempfile  3 to
 "/u01/app/oradata/DGUARD/pdb1/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/u01/app/oradata/DGUARD/system01.dbf";
   set newname for datafile  3 to
 "/u01/app/oradata/DGUARD/sysaux01.dbf";
   set newname for datafile  4 to
 "/u01/app/oradata/DGUARD/undotbs01.dbf";
   set newname for datafile  5 to
 "/u01/app/oradata/DGUARD/pdbseed/system01.dbf";
   set newname for datafile  6 to
 "/u01/app/oradata/DGUARD/pdbseed/sysaux01.dbf";
   set newname for datafile  7 to
 "/u01/app/oradata/DGUARD/users01.dbf";
   set newname for datafile  8 to
 "/u01/app/oradata/DGUARD/pdbseed/undotbs01.dbf";
   set newname for datafile  9 to
 "/u01/app/oradata/DGUARD/pdb1/system01.dbf";
   set newname for datafile  10 to
 "/u01/app/oradata/DGUARD/pdb1/sysaux01.dbf";
   set newname for datafile  11 to
 "/u01/app/oradata/DGUARD/pdb1/undotbs01.dbf";
   set newname for datafile  12 to
 "/u01/app/oradata/DGUARD/pdb1/users01.dbf";
   restore
   from  nonsparse   from service
 'dguard'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oradata/DGUARD/temp01.dbf in control file
renamed tempfile 2 to /u01/app/oradata/DGUARD/pdbseed/temp012022-07-05_14-13-22-854-PM.dbf in control file
renamed tempfile 3 to /u01/app/oradata/DGUARD/pdb1/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

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 12-JUL-22
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 dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oradata/DGUARD/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:42
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oradata/DGUARD/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:19
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oradata/DGUARD/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oradata/DGUARD/pdbseed/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:17
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oradata/DGUARD/pdbseed/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 dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oradata/DGUARD/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oradata/DGUARD/pdbseed/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00009 to /u01/app/oradata/DGUARD/pdb1/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:27
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oradata/DGUARD/pdb1/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:26
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oradata/DGUARD/pdb1/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oradata/DGUARD/pdb1/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
Finished restore at 12-JUL-22

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'dguard'
           archivelog from scn  2706595;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 12-JUL-22
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=36
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service dguard
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=37
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 12-JUL-22

datafile 1 switched to datafile copy
input datafile copy RECID=5 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=6 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=7 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=8 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdbseed/system01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=9 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdbseed/sysaux01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=10 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/users01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=11 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdbseed/undotbs01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=12 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdb1/system01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=13 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdb1/sysaux01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=14 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdb1/undotbs01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=15 STAMP=1109846182 file name=/u01/app/oradata/DGUARD/pdb1/users01.dbf

contents of Memory Script:
{
   set until scn  2707595;
   recover
   standby
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 12-JUL-22
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 36 is already on disk as file /u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch1_36_1109253977.arc
archived log for thread 1 with sequence 37 is already on disk as file /u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch1_37_1109253977.arc
archived log file name=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch1_36_1109253977.arc thread=1 sequence=36
archived log file name=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch1_37_1109253977.arc thread=1 sequence=37
media recovery complete, elapsed time: 00:00:02
Finished recover at 12-JUL-22

contents of Memory Script:
{
   delete clone force archivelog all;
}
executing Memory Script

released channel: ORA_DISK_1
released channel: ORA_AUX_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=147 device type=DISK
deleted archived log
archived log file name=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch1_36_1109253977.arc RECID=1 STAMP=1109846179
deleted archived log
archived log file name=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch1_37_1109253977.arc RECID=2 STAMP=1109846180
Deleted 2 objects

Finished Duplicate Db at 12-JUL-22

Recovery Manager complete.

11.在备库上运行如下命令apply redo log

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

12.检查 standby数据库是否运行成功

可以在主从机器上运行如下SQL查看运行状态

SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;

ROLE                        THREAD#  SEQUENCE# ACTION
------------------------ ---------- ---------- ------------
log writer                        0          0 IDLE
redo transport monitor            0          0 IDLE
gap manager                       0          0 IDLE
redo transport timer              0          0 IDLE
archive local                     0          0 IDLE
archive redo                      0          0 IDLE
archive redo                      0          0 IDLE
archive redo                      0          0 IDLE
RFS ping                          1         43 IDLE
RFS archive                       0          0 IDLE
RFS archive                       0          0 IDLE

ROLE                        THREAD#  SEQUENCE# ACTION
------------------------ ---------- ---------- ------------
managed recovery                  0          0 IDLE
recovery logmerger                1         43 APPLYING_LOG
recovery apply slave              0          0 IDLE
recovery apply slave              0          0 IDLE
recovery apply slave              0          0 IDLE
recovery apply slave              0          0 IDLE
RFS async                         1         43 IDLE

18 rows selected.

SQL>
 

参考文档

Creating a Physical Standby DatabaseYou can manually create a physical standby database in maximum performance mode using asynchronous redo transport and real-time apply, the default Oracle Data Guard configuration.https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/creating-oracle-data-guard-physical-standby.html#GUID-CA9076B9-3360-4A36-87AF-3390B391CEFF

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值