11g使用非duplicate方式创建物理standby要注意的问题总结

时间:2021-11-17 05:53:02

在上篇博文中,使用了duplicate方式来创建物理standby http://blog.csdn.net/aaron8219/article/details/38434579

今天来说说在11g中採用非duplicate方式创建备库碰到的一些问题,并做个总结。

在10g中,通常能够使下面几种方法创建备库控制文件

RMAN> backup current controlfile for standby format 'c:\ctl_%U';

RMAN> backup full database format 'c:\backup\full_%U'
include current controlfile for standby;

RMAN> copy current controlfile for standby to 'c:\backup\control01.ctl';

SQL> alter database create standby controlfile as 'c:\backup\control01.ctl';



前两种生成的是备库控制文件的备份集,须要在nomount状态下,用RMAN命令restore,如:

SQL> startup nomount

RMAN> restore controlfile from 'c:\backup\xxxx';



而后两种是直接创建备库控制文件。

一种是通过RMAN命令的方式。还有一种是通过SQL命令的方式,创建出来的备库控制文件,能够直接拷贝到备库目标路径后用来启动备库到mount状态,如:

拷贝到C:\app\oracle\oradata\tc并冗余(CONTROL01.CTL,CONTROL02.CTL)后,能够直接在备库运行

SQL> startup mount --直接启动到mount状态,不须要RMAN恢复



可是在11g中,RMAN备份不再支持以“backup current controlfile for standby”或“include current controlfile for standby”来创建备库控制文件,尽管命令仍然能够运行成功,可是当你在备库恢复完控制文件并启动到mount状态下,你会发现这个控制文件依然是主库的控制文件,如:

RMAN> restore controfile from 'c:\backup\xxxx';

RMAN> alter database mount;

SQL> select database_role from v$database;





DATABASE_ROLE

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

PRIMARY --注意,数据库角色是由控制文件决定的。这里是primary,说明是用主库控制文件启动的





假设没有注意到这点,那么当你恢复完数据库文件。并启用REDO APPLY的时候,就会报错,提示不是备用数据库。

所以。假设不是用duplicate方式来创建备库的话。要注意使用创建文件的方式直接生成备库控制文件,而不是生成RMAN备份集





上次使用了RMAN的duplicate方式来配置DG物理备库。那么这次就用非duplicate方式来做一次。事实上步骤大致和10g是一致的。能够參考我曾经搭建10g DG的博客,惟一不同的是,不再使用备份集来恢复备库控制文件





详细步骤(略),直接跳到完毕数据库数据文件恢复后





--查看备库的日志文件



SQL> set lin 120 pages 120

SQL> col member for a60

SQL> select group#,member from v$logfile;





    GROUP# MEMBER

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

         2 C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605

         2 +FRA/tc/onlinelog/group_2.258.855057607

         1 C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597

         1 +FRA/tc/onlinelog/group_1.257.855057601

         3 C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587

         3 +FRA/tc/onlinelog/group_3.259.855058591

         4 C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593

         4 +FRA/tc/onlinelog/group_4.260.855058595

         5 C:\APP\ORACLE\ORADATA\TC\STB_REDO05.LOG

         6 C:\APP\ORACLE\ORADATA\TC\STB_REDO06.LOG

         7 C:\APP\ORACLE\ORADATA\TC\STB_REDO07.LOG

         8 C:\APP\ORACLE\ORADATA\TC\STB_REDO08.LOG

         9 C:\APP\ORACLE\ORADATA\TC\STB_REDO09.LOG





--对照一下主库的日志文件



SQL> set lin 120 pages 120

SQL> col member for a60

SQL> select group#,member from v$logfile;





    GROUP# MEMBER

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

         2 +DATA/tc/onlinelog/group_2.262.855057605

         2 +FRA/tc/onlinelog/group_2.258.855057607

         1 +DATA/tc/onlinelog/group_1.261.855057597

         1 +FRA/tc/onlinelog/group_1.257.855057601

         3 +DATA/tc/onlinelog/group_3.266.855058587

         3 +FRA/tc/onlinelog/group_3.259.855058591

         4 +DATA/tc/onlinelog/group_4.267.855058593

         4 +FRA/tc/onlinelog/group_4.260.855058595





因为主库没有创建备库日志文件,所以眼下仅仅有在线日志文件,共4组,分配给2个THREAD。每一个THREAD使用2组。而且每组有2个MEMBER,一个放在+DATA,还有一个放在+FRA

通过观察发现,此时在备库控制文件里记录的2个日志组位置。一个是通过LOG_FILE_NAME_CONVERT參数指定的从'+DATA/TC/ONLINELOG'转换到了'C:\APP\ORACLE\ORADATA\TC\',可是并没有指定过'+FRA/TC/ONLINELOGFILE',所以也就是如今看到的状态,+FRA那部分依旧是主库的结构。可是备库是採用单实例本地磁盘的结构,并没有使用ASM磁盘组,那么这样2组日志,在备库应该怎么使用呢?

能够发现,事实上此时在备库数据文件文件夹‘C:\APP\ORACLE\ORADATA\TC\’中,并没有生成‘GROUP_1.261.855057597’,‘GROUP_2.262.855057605’。‘GROUP_3.266.855058587’,‘GROUP_4.267.855058593’这4个在线日志文件,更别说是+FRA相应的4个文件了,即。在我们恢复数据库数据文件的时候,仅仅会恢复数据文件和暂时文件,那么应该怎样创建这几个文件呢?

開始。我想到的是先把全然不可能存在的+FRA那组在线日志文件的内容。从备库控制文件里删除





SQL> alter database drop logfile '+FRA/tc/onlinelog/group_1.257.855057601';

alter database drop logfile '+FRA/tc/onlinelog/group_1.257.855057601'

*

第 1 行出现错误:

ORA-01514: 日志说明中出现错误: 没有此类日志

ORA-01517: 日志成员: '+FRA/tc/onlinelog/group_1.257.855057601'





非常正常,由于并没有这个路径,就算有,ONLINE REDO LOG也不会在“RMAN> restore database;”命令中恢复





--尝试重建控制文件



SQL> oradebug setmypid

已处理的语句

SQL> alter database backup controlfile to trace;





数据库已更改。

SQL> oradebug tracefile_name

C:\APP\ORACLE\diag\rdbms\tcdg\tc\trace\tc_ora_1792.trc





用oradebug能够轻松地跟踪到详细的trace文件,而不须要运行复杂的sql查询语句





去目标路径打开这个tc_ora_1792.trc文件,能够发现创建控制文件的语句。这里选择NORESETLOGS。内容例如以下:





STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "TC" NORESETLOGS FORCE LOGGING ARCHIVELOG

    MAXLOGFILES 192

    MAXLOGMEMBERS 3

    MAXDATAFILES 1024

    MAXINSTANCES 32

    MAXLOGHISTORY 292





*** 2014-08-13 09:30:03.000

LOGFILE





*** 2014-08-13 09:30:04.265

  GROUP 1 (

    'C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597',

    '+FRA/tc/onlinelog/group_1.257.855057601'

  ) SIZE 50M BLOCKSIZE 512,

  GROUP 2 (

    'C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605',

    '+FRA/tc/onlinelog/group_2.258.855057607'

  ) SIZE 50M BLOCKSIZE 512,

  GROUP 3 (

    'C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587',

    '+FRA/tc/onlinelog/group_3.259.855058591'

  ) SIZE 50M BLOCKSIZE 512,

  GROUP 4 (

    'C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593',

    '+FRA/tc/onlinelog/group_4.260.855058595'

  ) SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

--   GROUP 5 'C:\APP\ORACLE\ORADATA\TC\STB_REDO05.LOG'  SIZE 50M BLOCKSIZE 512,

--   GROUP 6 'C:\APP\ORACLE\ORADATA\TC\STB_REDO06.LOG'  SIZE 50M BLOCKSIZE 512,

--   GROUP 7 'C:\APP\ORACLE\ORADATA\TC\STB_REDO07.LOG'  SIZE 50M BLOCKSIZE 512,

--   GROUP 8 'C:\APP\ORACLE\ORADATA\TC\STB_REDO08.LOG'  SIZE 50M BLOCKSIZE 512,

--   GROUP 9 'C:\APP\ORACLE\ORADATA\TC\STB_REDO09.LOG'  SIZE 50M BLOCKSIZE 512

DATAFILE





*** 2014-08-13 09:30:04.765

  'C:\APP\ORACLE\ORADATA\TC\SYSTEM.256.855057451',

  'C:\APP\ORACLE\ORADATA\TC\SYSAUX.257.855057453',

  'C:\APP\ORACLE\ORADATA\TC\UNDOTBS1.258.855057453',

  'C:\APP\ORACLE\ORADATA\TC\USERS.259.855057453',

  'C:\APP\ORACLE\ORADATA\TC\EXAMPLE.264.855057687',

  'C:\APP\ORACLE\ORADATA\TC\UNDOTBS2.265.855058289'

CHARACTER SET ZHS16GBK

;





--去掉+FRA在线日志文件内容后。运行创建语句



SQL> STARTUP NOMOUNT

SQL> CREATE CONTROLFILE REUSE DATABASE "TC" NORESETLOGS FORCE LOGGING ARCHIVELOG

  2      MAXLOGFILES 192

  3      MAXLOGMEMBERS 3

  4      MAXDATAFILES 1024

  5      MAXINSTANCES 32

  6      MAXLOGHISTORY 292

  7  LOGFILE

  8    GROUP 1 (

  9      'C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597'

 10    ) SIZE 50M BLOCKSIZE 512,

 11    GROUP 2 (

 12      'C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605'

 13    ) SIZE 50M BLOCKSIZE 512,

 14    GROUP 3 (

 15      'C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587'

 16    ) SIZE 50M BLOCKSIZE 512,

 17    GROUP 4 (

 18      'C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593'

 19    ) SIZE 50M BLOCKSIZE 512

 20  -- STANDBY LOGFILE

 21  --    GROUP 5 'C:\APP\ORACLE\ORADATA\TC\STB_REDO05.LOG'  SIZE 50M BLOCKSIZE

 512,

 22  --    GROUP 6 'C:\APP\ORACLE\ORADATA\TC\STB_REDO06.LOG'  SIZE 50M BLOCKSIZE

 512,

 23  --    GROUP 7 'C:\APP\ORACLE\ORADATA\TC\STB_REDO07.LOG'  SIZE 50M BLOCKSIZE

 512,

 24  --    GROUP 8 'C:\APP\ORACLE\ORADATA\TC\STB_REDO08.LOG'  SIZE 50M BLOCKSIZE

 512,

 25  --    GROUP 9 'C:\APP\ORACLE\ORADATA\TC\STB_REDO09.LOG'  SIZE 50M BLOCKSIZE

 512

 26  DATAFILE

 27    'C:\APP\ORACLE\ORADATA\TC\SYSTEM.256.855057451',

 28    'C:\APP\ORACLE\ORADATA\TC\SYSAUX.257.855057453',

 29    'C:\APP\ORACLE\ORADATA\TC\UNDOTBS1.258.855057453',

 30    'C:\APP\ORACLE\ORADATA\TC\USERS.259.855057453',

 31    'C:\APP\ORACLE\ORADATA\TC\EXAMPLE.264.855057687',

 32    'C:\APP\ORACLE\ORADATA\TC\UNDOTBS2.265.855058289'

 33  CHARACTER SET ZHS16GBK

 34  ;

CREATE CONTROLFILE REUSE DATABASE "TC" NORESETLOGS FORCE LOGGING ARCHIVELOG

*

第 1 行出现错误:

ORA-01503: CREATE CONTROLFILE 失败

ORA-01565: 标识文件 'C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597' 时出错

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

本地路径相应的在线日志不存在,刚才也已经说明了。那么是不是要把控制文件里的LOGFILE整段都去掉呢?

这个我没有做測试,认为应该不用这么复杂。确保主库远程归档路径没有ERROR后。直接在备库启用REDO APPLY





SQL> recover managed standby database disconnect from session

完毕介质恢复。

此时查看日志文件的状态,会发现。备库会对在线日志文件做CLEARING操作,从第1组到第4组,逐个进行,直到清除完成。在清除的同一时候,会在数据文件文件夹中创建在线日志文件。





SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CURRENT

         2          3 CLEARING

         3          2 INACTIVE

         4          2 INACTIVE





SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CURRENT

         2          3 UNUSED

         3          3 CLEARING

         4          2 INACTIVE





SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CURRENT

         2          3 UNUSED

         3          3 UNUSED

         4          3 CLEARING





SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CURRENT

         2          3 UNUSED

         3          3 UNUSED

         4          3 UNUSED





能够看到,CLEARING操作更新了原来备库控制文件里错误的在线日志文件路径。而且在原来的基础上,又加了1组在线日组,而且会把还未使用到的日志组状态变成UNUSED。眼下每一个在线日志组有3个成员,一个在实例名tc以下,一个在DB_UNIQUE_NAME(TCDG)以下,还有一个在FLASH_RECOVERY_AREA以下。这个能够通过查看v$logfile视图得到确认





SQL> col member for a70

SQL> select group#,member from v$logfile;





    GROUP# MEMBER

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

         2 C:\APP\ORACLE\ORADATA\TC\GROUP_2.262.855057605

         2 C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_2_9YOKR04W_.LOG

         1 C:\APP\ORACLE\ORADATA\TC\GROUP_1.261.855057597

         1 C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_1_9YOKQ7G5_.LOG

         3 C:\APP\ORACLE\ORADATA\TC\GROUP_3.266.855058587

         3 C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_3_9YOKRRJ3_.LOG

         4 C:\APP\ORACLE\ORADATA\TC\GROUP_4.267.855058593

         4 C:\APP\ORACLE\ORADATA\TCDG\ONLINELOG\O1_MF_4_9YOKSH5V_.LOG

         5 C:\APP\ORACLE\ORADATA\TC\STB_REDO05.LOG

         6 C:\APP\ORACLE\ORADATA\TC\STB_REDO06.LOG

         7 C:\APP\ORACLE\ORADATA\TC\STB_REDO07.LOG

         8 C:\APP\ORACLE\ORADATA\TC\STB_REDO08.LOG

         9 C:\APP\ORACLE\ORADATA\TC\STB_REDO09.LOG

         1 C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_1_9YOKQC7T_.LOG

         2 C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_2_9YOKRBMK_.LOG

         3 C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_3_9YOKRY8S_.LOG

         4 C:\APP\ORACLE\FLASH_RECOVERY_AREA\TCDG\ONLINELOG\O1_MF_4_9YOKSK5C_.LOG





--查看数据文件



SQL> select file#,ts#,name from v$datafile;





     FILE#        TS# NAME

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

         1          0 C:\APP\ORACLE\ORADATA\TC\SYSTEM.256.855057451

         2          1 C:\APP\ORACLE\ORADATA\TC\SYSAUX.257.855057453

         3          2 C:\APP\ORACLE\ORADATA\TC\UNDOTBS1.258.855057453

         4          4 C:\APP\ORACLE\ORADATA\TC\USERS.259.855057453

         5          6 C:\APP\ORACLE\ORADATA\TC\EXAMPLE.264.855057687

         6          5 C:\APP\ORACLE\ORADATA\TC\UNDOTBS2.265.855058289





--查看暂时文件



SQL> select file#,ts#,name from v$tempfile;





     FILE#        TS# NAME

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

         1          3 C:\APP\ORACLE\ORADATA\TCDG\DATAFILE\O1_MF_TEMP_9YOKLBG5_.TMP

注意默认是的暂时文件存放位置是在TCDG以下,而不是tc,能够不做处理。但假设认为别扭,能够先添加一个暂时表空间,指定暂时文件存放到tc文件夹下,然后再删除现有的暂时表空间,注意删除的时候要指定including contents and datafiles。才会在删除表空间的时候连数据文件一起删除

最后,再做一个DG同步測试(注意运行各命令时的TIME)



--主库:



SQL> set time on; --为了使主备库两边的操作更加能说明问题,设置操作时间

10:47:59 SQL> archive log list

数据库日志模式            存档模式

自己主动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     53

下一个存档日志序列   54

当前日志序列           54

10:48:05 SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          2 ACTIVE

         2          2 CURRENT  --当前CURRENT在group2。注意后面切换日志后的STATUS

         3          2 INACTIVE

         4          2 INACTIVE





10:48:31 SQL> select sequence#,thread#,applied,archived fromv$archived_log where sequence#>49 order by 1;





 SEQUENCE#    THREAD# APPLIED   ARC

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

        50          1 YES       YES

        50          1 NO        YES

        51          1 YES       YES

        51          1 NO        YES

        52          1 YES       YES

        52          1 NO        YES

        53          1 NO        YES

        53          1 YES       YES





10:49:35 SQL> create user zlm identified by aaron8219;  --注意创建用户的时间。在备库能否马上使用





用户已创建。





10:50:45 SQL> conn zlm/aaron8219

ERROR:

ORA-01045: 用户 ZLM 没有 CREATE SESSION 权限; 登录被拒绝





警告: 您不再连接到 ORACLE。

10:51:06 SQL> grant create session,resource to zlm;

SP2-0640: 未连接

10:51:37 SQL> conn /as sysdba

已连接。

10:51:43 SQL> grant create session,resource to zlm;





授权成功。





10:51:52 SQL> conn zlm/aaron8219

已连接。

10:51:59 SQL> create table test1(int number,name varchar2(10));





表已创建。





10:52:27 SQL> insert into test1 values(1,'aaron8219');





已创建 1 行。

10:52:48 SQL> commit;





提交完毕。

10:53:13 SQL> alter system archive log current;

alter system archive log current

*

第 1 行出现错误:

ORA-01031: 权限不足





10:53:29 SQL> conn /as sysdba

已连接。

10:53:41 SQL> alter system archive log current;  --有了这个操作,备库才会接受到主库变更。才干登陆zlm用户





系统已更改。





10:54:16 SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          2 CURRENT  --注意,因为是在节点1上做的操作。始终仅仅会用到group1和group2这2个日志组

         2          2 ACTIVE

         3          2 INACTIVE

         4          2 INACTIVE





10:55:32 SQL> drop user zlm;

drop user zlm

*

第 1 行出现错误:

ORA-01922: 必须指定 CASCADE 以删除 'ZLM'









10:57:05 SQL> drop user zlm
cascade; --注意drop用户的时间,对比备库此时对该用户的操作情况





用户已删除。





10:57:16 SQL> conn zlm/aaron8219

ERROR:

ORA-01017: username/口令无效; 登录被拒绝





警告: 您不再连接到 ORACLE。

10:58:32 SQL> alter system archive log current;

SP2-0640: 未连接

10:58:43 SQL> conn /as sysdba

已连接。

10:58:51 SQL> alter system archive log current;  --备库从这个时间点開始,无法再连接到zlm用户,由于已删除





系统已更改。

10:59:23 SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          2 ACTIVE

         2          2 CURRENT  --再次切换日志后,CURRENT又回到group2

         3          2 INACTIVE

         4          2 INACTIVE





10:59:29 SQL>





--备库:





SQL> set time on;

10:48:46 SQL> archive log list

数据库日志模式            存档模式

自己主动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     53

下一个存档日志序列   0

当前日志序列           54

10:48:48 SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CLEARING

         2          3 CURRENT  --与主库一開始的STATUS相应,主库每切换一次,备库也切换一次

         3          3 UNUSED

         4          3 UNUSED





10:49:07 SQL> select sequence#,thread#,applied,archived from v$archived_log wher

e sequence#>49 order by 1;





 SEQUENCE#    THREAD# APPLIED   ARC

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

        50          1 YES       YES

        51          1 YES       YES

        52          1 YES       YES

        53          1 YES       YES





已选择8行。

10:50:00 SQL> conn zlm/aaron8219  --主库是在10:53:41时刻才切换日志的,早于该时间点,并没有zlm用户

ERROR:

ORA-01017: username/口令无效; 登录被拒绝





警告: 您不再连接到 ORACLE。

10:53:59 SQL> conn zlm/aaron8219  --仅仅有备库应用了主库切换的归档日志后,备库才干同步主库数据

已连接。

10:54:41 SQL> select * from test1;





       INT NAME

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

         1 aaron8219





10:54:50 SQL> conn /as sysdba

已连接。

10:55:58 SQL> conn zlm/aaron8219

已连接。

10:56:21 SQL> select group#,members,status from v$log;

select group#,members,status from v$log

                                  *

第 1 行出现错误:

ORA-00942: 表或视图不存在





10:56:33 SQL> conn /as sysdba

已连接。

10:56:44 SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CURRENT  --此时主库已经发生过一次切换。所以CURRENT从group2到group1上

         2          3 CLEARING

         3          3 UNUSED

         4          3 UNUSED





10:56:47 SQL> conn zlm/aaron8219

已连接。

10:57:56 SQL> select * from test1;  --主库在10:57:05时刻进行了drop
user。但zlm用户依旧能够查询





       INT NAME

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

         1 aaron8219





10:59:06 SQL> select * from test1;  --主库在10:58:51时刻进行了日志切换,备库应用了这个归档,zlm无法查询

select * from test1

              *

第 1 行出现错误:

ORA-00942: 表或视图不存在





10:59:46 SQL> conn zlm/aaron8219  --之后也无法继续连接zlm用户,由于删除用户的操作已经在备库生效

ERROR:

ORA-01017: username/口令无效; 登录被拒绝





警告: 您不再连接到 ORACLE。

10:59:50 SQL> conn /as sysdba

已连接。

11:00:02 SQL> select group#,members,status from v$log;





    GROUP#    MEMBERS STATUS

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

         1          3 CLEARING

         2          3 CURRENT  --主库经过第2次切换日志后,备库在线日志又从group1回到了group2

         3          3 UNUSED

         4          3 UNUSED

11:00:05 SQL>

非duplicate方式搭建物理standby总结:

1.在11g中,用传统方法来创建备库能够和10g一样,可是要注意用直接创建文件的方式来生成备库控制文件。而不是用备份集。

2.开启REDO APPLY以后,会自己主动清除控制文件里旧的信息(这里指存放路径)。并马上逐个生成ONLINE REDO LOGFILE,会在原来的基础上再多加一组在线日志。

3.和採用duplicate方式创建的备库结果一致,每组也是生成3个在线日志成员,惟一的差别就是在duplicate中必须用SET NEWNAME FOR TEMPFILE 1 TO 'C:\xxxx'。来指定一个路径和文件名称,否则会报冲突。无法完毕duplicate。

4.须要拷贝主库password文件到备库对应位置,而duplicate是自己主动在备库创建的,duplicate还能用spfile參数指定并在备库直接生成spfile,而普通方式在完毕后须要手动创建一个spfile。

11g使用非duplicate方式创建物理standby要注意的问题总结的更多相关文章

  1. Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)

    过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...

  2. Duplicate复制数据库并创建物理StandBy(spfile+不同实例名)

    过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...

  3. Duplicate复制数据库并创建物理StandBy(spfile版本)

    过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...

  4. Oracle 10gR2 Dataguard搭建(非duplicate方式)

    Oracle 10gR2 Dataguard搭建(非duplicate方式) 我的实验环境: 源生产库(主库): IP地址:192.168.1.30 Oracle 10.2.0.5 单实例 新DG库( ...

  5. Duplicate复制数据库并创建物理StandBy(pfile版本)

    1设定环境如下: Primary数据库 IP 172.17.22.16 SID orcl Standby数据库 IP 172.17.22.17 SID orcl 设置提示,以区分操作的位置 prima ...

  6. 使用DUPLICATE 方式创建ORACLE 11G DG备库环境

    我的最佳实践 ① 手动创建好初始化参数文件: *.audit_file_dest='E:\APP\XJXU\ADMIN\ORASTAND\ADUMP'*.control_files='E:\APP\X ...

  7. 使用RMAN DUPLICATE...FROM ACTIVE DATABASE创建物理standby database

    Applies to: Oracle Server - Enterprise Edition - Version 11.1.0.6 to 11.2.0.4 [Release 11.1 to 11.2] ...

  8. Oracle Data Guard 创建物理Standby数据库

    创建物理备库 机器名                    a1                    a2                    IP:                    192 ...

  9. duplicate命令创建physical standby数据库报RMAN-03015 ORA-17628

    The following error is reported trying to create a Physical Standby database using "duplicate f ...

随机推荐

  1. [译]Godot系列教程五 - 制作Godot编辑器插件

    制作插件 下文仅针对2.1版本. 关于插件 插件是为编辑器扩展出更多有用工具的重要方式.它可以完全用GDScript和标准场景开发,甚至都不需重新加载编辑器就可生效.不像模块,你无需创建C++代码.也 ...

  2. pandas 前后行操作

    一.前后行满足条件 问题: 各位老师好,我有一个dataframe 产品 数据1 数据2 A 1 2 B 4 5 C 6 3 我想找出比如这一行数据1>数据2 AND 数据1的上一行3 AND ...

  3. vs操作快捷键

      注释:        先CTRL+K,然后CTRL+C取消注释: 先CTRL+K,然后CTRL+U 解析命名空间:shift+alt+f10   或Ctrl + .    调试快捷键 F6:   ...

  4. 转 C#中静态方法与非静态方法区别比较

    C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析. C#的类中可以包含两种方法:C#静态方法与非静态方法.那么他们的定义有什么不同呢?他们在使用 ...

  5. 使用Python3爬虫抓取网页来下载小说

    很多时候想看小说但是在网页上找不到资源,即使找到了资源也没有提供下载,小说当然是下载下来用手机看才爽快啦! 于是程序员的思维出来了,不能下载我就直接用爬虫把各个章节爬下来,存入一个txt文件中,这样, ...

  6. php之array_column 的使用

    听说只有大牛级的高工才知道的函数array_column () 讲真,我才知道. (PHP 5 >= 5.5.0, PHP 7) array_column - 返回数组中指定的一列 说明 arr ...

  7. 【leetcode】476. Number Complement

    problem 476. Number Complement solution1: class Solution { public: int findComplement(int num) { //正 ...

  8. 「WC2018」州区划分(FWT)

    「WC2018」州区划分(FWT) 我去弄了一个升级版的博客主题,比以前好看多了.感谢 @Wider 不过我有阅读模式的话不知为何 \(\text{LATEX}\) 不能用,所以我就把这个功能删掉了. ...

  9. XtraBackup之踩过的坑

    xtrabackup相信目前使用已经非常广泛了,备份innodb表的首选工具,但是其中还是有点小坑,虽然发生的概率不大,但是我还是踩坑了.关于xtrabackup的详细参考请查阅官方文档http:// ...

  10. 【WEB前端开发最佳实践系列】JavaScript篇

    一.养成良好的编码习惯,提高可维护性 1.避免定义全局变量和函数,解决全局变量而导致的代码“污染”最简单的额方法就是把变量和方法封装在一个变量对象上,使其变成对象的属性: var myCurrentA ...