主库 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

Oracle 19c DataGuard 实践相关推荐

  1. 数据库周刊62丨央企2021年数据库成交公告,国产占90%;流数据库HStreamDB开源;MySQL主从双写导致数据丢失;Oracle 19c升级最佳实践;PG日常工作分享;MySQL MGR运维指

    热门资讯 [1.中央国家机关2021年数据库成交公告:国产数据库份额占90% [摘要]据央采网3月19日发布的<中央国家机关2021年数据库软件协议供货采购项目成交公告>显示事务型数据库管 ...

  2. oracle dataguard详解,Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向

    Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向 在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强, ...

  3. c oracle 多条语句,Oracle 实践:如何编写一条 sql 语句获取数据表的全部索引信息(兼容 Oracle 19c、Oracle 11g)...

    一.引言 部门使用 Oracle 已经有一些时日,最近在工作中遇到了这么一个需求: 我们希望拿到某些数据表的全部索引信息,对索引信息进行检查,检查是否有漏掉没有创建的索引 这个需求,核心的点在于,我需 ...

  4. 资源放送丨Oracle 20C DataGuard 新特性解读PPT视频

    前段时间,墨天轮分享了云和恩墨高级工程师 章芋文 带来的直播< Oracle 20C DataGuard 新特性解读>,在这里我们共享一下PPT和视频,供大家参考学习. 从Oracle官方 ...

  5. 本周四直播:Oracle 19c 升级实战分享

    主题摘要 随着数据库产品迭代和企业内部IT内部需求的驱动,数据库升级是数据库管理员经常要面对的问题,oracle 19c版本推出来过后,经过几年的沉淀已经逐步成为新系统建设中数据库版本的首选,针对存量 ...

  6. Oracle 19c: RAC 集群技术的坚持与放弃(含PPT下载)

    在 OOW 上发布出来关于 Oracle RAC 集群的几篇文章,可以让我们一睹 Oracle RAC集群技术的发展路线. (关注本公众号,回复 2018OOW 在 RAC 目录下是本文参考的3个PP ...

  7. Oracle 19c升级路径与QA

    1关于19c升级实验环境和脚本 实验环境不需要预约,请访问下边的URL链接,下载实验虚机和查阅实验脚本. https://mikedietrichde.com/database-upgrade-han ...

  8. RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1)

      RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1) 转到底部 文档内容 用途   适用范围   详细信息   RAC 平台特 ...

  9. oracle 19c 静默安装

    摘要 linux 无桌面环境下,静默安装oracle 19c. 1.安装前准备工作 1.1关闭防火墙 systemctl stop firewalld systemctl disable firewa ...

最新文章

  1. 谈谈数据库中MyISAM与InnoDB区别
  2. 0 开发的准备工作一一虚拟机virturalbox
  3. python集合应用场景_十、python 集合的定义与使用
  4. java 解析xls 文件_java简单解析xls文件的方法示例【读取和写入】
  5. 它们翻滚着的飞秋下载
  6. 程序猿bug修改名句
  7. pytest-allure测试报告
  8. 使用XmlPullParser
  9. linux-practice(23-24)
  10. 美团服务器不稳定号码保护,美团打车号码保护功能,搭建用户安全的防火墙
  11. php返回代码翻译,php 在线翻译函数代码
  12. VC中三种常见中文内码的转换方法
  13. 2020牛客暑期多校训练营(第九场) Groundhog and Gaming Time
  14. 64位win7下安装SQL Server 2008(图文解说版)
  15. 刚开始投资黄金理财,怎么扩大自己的小金库
  16. docker发布自己的镜像到docker hub上
  17. 对计算机财务管理的理解,计算机财务管理.doc
  18. python机器学习初探
  19. win 32学习笔记(三) 消息队列
  20. 中科院院士!南京大学,迎来新校长

热门文章

  1. 智慧建筑云平台接入架构设计
  2. 如何提高酒店入住率?
  3. 喜茶皇茶茶叶带您走上致富之路
  4. Safari访问本地html,safari本地文件读取漏洞之扩展攻击面 | CN-SEC 中文网
  5. 爆炸式的工作机会和多项目同步
  6. Android自定义拍照上传界面,Android自定义dialog——设置头像(拍照,相册)
  7. php mkdir函数_php中mkdir函数用法实例分析
  8. excel数据按某列分类并新建sheet类工作表
  9. 布隆过滤器(BloomFilter)原理和实现
  10. 只需3步全自动破解器帮你做