登录主备库查看归档状态
主库:
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_ DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS OPEN_MODE
---------- ---------- -------------------- ------------------------------ -------------------- ------------------------------
TEST test PRIMARY MAXIMUM PERFORMANCE TO STANDBY READ WRITE
备库:
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_ DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS OPEN_MODE
---------- ---------- -------------------- ------------------------------ -------------------- ------------------------------
TEST test1 PHYSICAL STANDBY MAXIMUM PERFORMANCE NOT ALLOWED READ ONLY WITH APPLY
SQL> select value from v$dataguard_stats;
VALUE
-------------------------
+00 00:00:00
+00 00:00:00
SQL> recover managed standby database cancel;
Media recovery complete.
SQL> shutdown immediate
Database closed.
Database dismounted.
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +DATA
Oldest online log sequence 28
Next log sequence to archive 30
Current log sequence 30
SQL> alter system switch logfile;
System altered.
Elapsed: 00:00:00.09
SQL> /
System altered.
Elapsed: 00:00:00.03
SQL> /
System altered.
Elapsed: 00:00:00.02
SQL> /
System altered.
Elapsed: 00:00:00.03
SQL> /
System altered.
Elapsed: 00:00:00.01
[root@asm1 ~]# su - grid
[grid@asm1 ~]$ asmcmd
ASMCMD> cd data/test/arch*
ASMCMD> ls
2021_08_19/
2021_08_20/
ASMCMD> cd 2021_08_20
ASMCMD> ls
thread_1_seq_27.300.1081047797
thread_1_seq_28.301.1081047815
thread_1_seq_29.302.1081059237
thread_1_seq_30.303.1081060247
thread_1_seq_31.304.1081060249
thread_1_seq_32.305.1081060249
thread_1_seq_33.306.1081060251
thread_1_seq_34.307.1081060251
thread_1_seq_35.308.1081060613
thread_1_seq_36.309.1081060613
ASMCMD> rm thread_1_seq_32.305.1081060249
ASMCMD> rm thread_1_seq_33.306.1081060251
SQL> startup
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2257880 bytes
Variable Size 545262632 bytes
Database Buffers 289406976 bytes
Redo Buffers 2355200 bytes
Database mounted.
Database opened.
SQL> recover managed standby database disconnect;
Media recovery complete.
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_ DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS OPEN_MODE
---------- ---------- -------------------- ------------------------------ -------------------- ------------------------------
TEST test1 PHYSICAL STANDBY MAXIMUM PERFORMANCE NOT ALLOWED READ ONLY WITH APPLY
SQL> select value from v$dataguard_stats;
VALUE
-------------------------
+00 00:12:26
14
存在延迟,日志报出现GAP,缺失32-33
SQL> select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 32 33
Elapsed: 00:00:00.04
SQL> select to_char(current_scn) from v$database;
TO_CHAR(CURRENT_SCN)
----------------------------------------
1071483
Elapsed: 00:00:00.01
先生成一个备库控制文件
SQL> alter database create standby controlfile as '/orabak/standby.ctl';
Database altered.
Elapsed: 00:00:00.84
增量备份
RMAN> run
2> {
3> allocate channel a1 type disk;
4> allocate channel a2 type disk;
5> backup incremental from scn 1071483 database format '/orabak/incre_%d_%T_%U';
6> }
released channel: ORA_DISK_1
allocated channel: a1
channel a1: SID=45 device type=DISK
allocated channel: a2
channel a2: SID=54 device type=DISK
Starting backup at 2021-08-20 07:33:16
channel a1: starting full datafile backup set
channel a1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/test/datafile/system.270.1081022317
input datafile file number=00004 name=+DATA/test/datafile/users.272.1081022317
input datafile file number=00003 name=+DATA/test/datafile/undotbs1.261.1081022317
channel a1: starting piece 1 at 2021-08-20 07:33:16
channel a2: starting full datafile backup set
channel a2: specifying datafile(s) in backup set
input datafile file number=00002 name=+DATA/test/datafile/sysaux.260.1081022317
input datafile file number=00005 name=+DATA/test/datafile/example.264.1081022395
channel a2: starting piece 1 at 2021-08-20 07:33:16
channel a1: finished piece 1 at 2021-08-20 07:34:11
piece handle=/orabak/incre_TEST_20210820_0n06vehs_1_1 tag=TAG20210820T073316 comment=NONE
channel a1: backup set complete, elapsed time: 00:00:55
channel a1: starting full datafile backup set
channel a1: specifying datafile(s) in backup set
channel a2: finished piece 1 at 2021-08-20 07:34:11
piece handle=/orabak/incre_TEST_20210820_0o06vehs_1_1 tag=TAG20210820T073316 comment=NONE
channel a2: backup set complete, elapsed time: 00:00:55
including current control file in backup set
channel a1: starting piece 1 at 2021-08-20 07:34:14
channel a1: finished piece 1 at 2021-08-20 07:34:15
piece handle=/orabak/incre_TEST_20210820_0p06vejj_1_1 tag=TAG20210820T073316 comment=NONE
channel a1: backup set complete, elapsed time: 00:00:01
Finished backup at 2021-08-20 07:34:15
released channel: a1
released channel: a2
将备份传到备库
[oracle@asm1 orabak]$ ll
total 26504
-rw-r-----. 1 oracle asmadmin 10043392 Aug 20 07:56 stanby.ctl
-rw-r-----. 1 oracle asmadmin 319488 Aug 20 08:13 incre_TEST_20210820_0q06vgqt_1_1
-rw-r-----. 1 oracle asmadmin 4825088 Aug 20 08:12 incre_TEST_20210820_0r06vgqt_1_1
-rw-r-----. 1 oracle asmadmin 1859584 Aug 20 08:12 incre_TEST_20210820_0s06vgqt_1_1
-rw-r-----. 1 oracle asmadmin 10092544 Aug 20 08:13 incre_TEST_20210820_0t06vgsb_1_1 [oracle@asm1 orabak]$ scp * rhel6:/orabak
oracle@rhel6's password:
incre_TEST_20210820_0q06vgqt_1_1 100% 312KB 312.0KB/s 00:00
incre_TEST_20210820_0r06vgqt_1_1 100% 4712KB 4.6MB/s 00:00
incre_TEST_20210820_0s06vgqt_1_1 100% 1816KB 1.8MB/s 00:00
incre_TEST_20210820_0t06vgsb_1_1 100% 9856KB 9.6MB/s 00:00
stanby.ctl 100% 9808KB 9.6MB/s 00:00
RMAN> catalog start with '/orabak/';
searching for all files that match the pattern /orabak/
List of Files Unknown to the Database
=====================================
File Name: /orabak/stanby.ctl
File Name: /orabak/incre_TEST_20210820_0s06vgqt_1_1
File Name: /orabak/incre_TEST_20210820_0q06vgqt_1_1
File Name: /orabak/incre_TEST_20210820_0r06vgqt_1_1
File Name: /orabak/incre_TEST_20210820_0t06vgsb_1_1
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /orabak/stanby.ctl
File Name: /orabak/incre_TEST_20210820_0s06vgqt_1_1
File Name: /orabak/incre_TEST_20210820_0q06vgqt_1_1
File Name: /orabak/incre_TEST_20210820_0r06vgqt_1_1
File Name: /orabak/incre_TEST_20210820_0t06vgsb_1_1
SQL> select name from v$datafile;
NAME
------------------------------------------------------------------------------
+DATA/test1/datafile/system.258.1080695371
+DATA/test1/datafile/sysaux.259.1080695373
+DATA/test1/datafile/undotbs1.261.1080695419
+DATA/test1/datafile/users.262.1080695445
+DATA/test1/datafile/example.260.1080695373
Elapsed: 00:00:00.02
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2257880 bytes
Variable Size 545262632 bytes
Database Buffers 289406976 bytes
Redo Buffers 2355200 bytes
[oracle@rhel6 ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Mon Aug 16 08:23:45 2021
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: TEST (not mounted)
RMAN> restore controlfile from '/orabak/stanby.ctl';
Starting restore at 2021-08-16 08:24:28
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=26 device type=DISK
channel ORA_DISK_1: copied control file copy
output file name=+DATA/test1/controlfile/current.256.1080695337
output file name=+DATA/test1/controlfile/current.257.1080695337
Finished restore at 2021-08-16 08:24:29
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
SQL> alter system set standby_file_management=manual sid='*';
System altered.
Elapsed: 00:00:00.02
SQL> alter database rename file '+DATA/test/datafile/system.270.1081022317' TO '+DATA/test1/datafile/system.258.1080695371'
2 ;
Database altered.
Elapsed: 00:00:00.07
SQL> alter database rename file '+DATA/test/datafile/sysaux.260.1081022317' TO '+DATA/test1/datafile/sysaux.259.1080695373';
Database altered.
Elapsed: 00:00:00.03
SQL> alter database rename file '+DATA/test/datafile/undotbs1.261.1081022317' TO '+DATA/test1/datafile/undotbs1.261.1080695419' ;
Database altered.
Elapsed: 00:00:00.02
SQL> alter database rename file '+DATA/test/datafile/users.272.1081022317' TO '+DATA/test1/datafile/users.262.1080695445';
Database altered.
Elapsed: 00:00:00.02
SQL> alter database rename file '+DATA/test/datafile/example.264.1081022395' TO '+DATA/test1/datafile/example.260.1080695373' ;
Database altered.
Elapsed: 00:00:00.01
SQL> alter system set standby_file_management=auto sid='*';
System altered.
SQL> alter system set standby_file_management=manual sid='*';
System altered.
Elapsed: 00:00:00.02
SQL> alter database rename file '+DATA/test/datafile/system.270.1081022317' TO '+DATA/test/datafile/system.258.1080695371';
SQL>
SQL>
SQL> alter database rename file '+DATA/test/datafile/system.270.1081022317' TO '+DATA/test1/datafile/system.258.1080695371';
Database altered.
Elapsed: 00:00:00.07
SQL> alter database rename file '+DATA/test/datafile/sysaux.260.1081022317' TO '+DATA/test1/datafile/sysaux.259.1080695373';
Database altered.
Elapsed: 00:00:00.03
SQL> alter database rename file '+DATA/test/datafile/undotbs1.261.1081022317' TO '+DATA/test1/datafile/undotbs1.261.1080695419' ;
Database altered.
Elapsed: 00:00:00.02
SQL> alter database rename file '+DATA/test/datafile/users.272.1081022317' TO '+DATA/test1/datafile/users.262.1080695445';
Database altered.
Elapsed: 00:00:00.02
SQL> alter database rename file '+DATA/test/datafile/example.264.1081022395' TO '+DATA/test1/datafile/example.260.1080695373' ;
Database altered.
Elapsed: 00:00:00.01
SQL> alter system set standby_file_management=auto sid='*';
System altered.
RMAN> RECOVER DATABASE NOREDO;
Starting recover at 2021-08-16 09:01:55
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: +DATA/test1/datafile/system.258.1080695371
channel ORA_DISK_1: reading from backup piece /orabak/incre_TEST_20210820_0q06vgqt_1_1
channel ORA_DISK_1: piece handle=/orabak/incre_TEST_20210820_0q06vgqt_1_1 tag=TAG20210820T081213
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00002: +DATA/test1/datafile/sysaux.259.1080695373
destination for restore of datafile 00004: +DATA/test1/datafile/users.262.1080695445
channel ORA_DISK_1: reading from backup piece /orabak/incre_TEST_20210820_0r06vgqt_1_1
channel ORA_DISK_1: piece handle=/orabak/incre_TEST_20210820_0r06vgqt_1_1 tag=TAG20210820T081213
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00003: +DATA/test1/datafile/undotbs1.261.1080695419
destination for restore of datafile 00005: +DATA/test1/datafile/example.260.1080695373
channel ORA_DISK_1: reading from backup piece /orabak/incre_TEST_20210820_0s06vgqt_1_1
channel ORA_DISK_1: piece handle=/orabak/incre_TEST_20210820_0s06vgqt_1_1 tag=TAG20210820T081213
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished recover at 2021-08-16 09:01:58
RMAN>
RMAN>
RMAN> alter database open;
database opened
SQL> select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS from v$instance;
INSTANCE_NAME HOST_NAME VERSION STARTUP_TIME STATUS
---------------- ------------------------ ----------------- ------------------- ---------
test1 rhel6 11.2.0.4.0 2021-08-16 08:21:41 OPEN
Elapsed: 00:00:00.00
SQL> set linesize 180
SQL> col name for a10
SQL> col DB_UNIQUE_NAME for a10
SQL> col DATABASE_ROLE for a20
SQL> col PROTECTION_MODE for a30
SQL> col SWITCHOVER_STATUS for a20
SQL> col OPEN_MODE for a30
SQL> SELECT NAME,DB_UNIQUE_NAME,DATABASE_ROLE,PROTECTION_MODE, SWITCHOVER_STATUS, OPEN_MODE FROM V$DATABASE;
NAME DB_UNIQUE_ DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS OPEN_MODE
---------- ---------- -------------------- ------------------------------ -------------------- ------------------------------
TEST test1 PHYSICAL STANDBY MAXIMUM PERFORMANCE RECOVERY NEEDED READ ONLY
Elapsed: 00:00:00.06
SQL> recover managed standby database disconnect;
Media recovery complete.
SQL> select value from v$dataguard_stats;
VALUE
----------------------------------------------------------------
+00 00:40:42
+00 02:34:33
14
Elapsed: 00:00:00.00
SQL> select * from v$archive_gap;
no rows selected
Elapsed: 00:00:00.04
主库切下归档
SQL> select value from v$dataguard_stats;
VALUE
----------------------------------------------------------------
+00 00:00:00
+00 00:00:00
14
Elapsed: 00:00:00.01