<->环境准备

         线上单实例oracle11g(PD1),已经运行了一段时间,属于单点实例,按照云上一不小心发生的vm文件故障来看,这个很危险,所以需要做高可用。

所以今天在线上刚刚新装了oracle备库实例(PD2),现在需要在PD1和PD2上做一个dataguard用来高可用。PD1为master库,PD2为standby库。

 

PS:需要注意的是,在安装PD2的时候,备库PD2的各种目录路径都要保持和主库PD1一致。

 

1,确保主库状态

查看主库状态:

SQL> selectname,open_mode,database_role,log_mode,force_logging from v$database;

NAME         OPEN_MODE              DATABASE_ROLE        LOG_MODE     FOR

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

POWERDES READ WRITE            PRIMARY            ARCHIVELOG   YES

SQL>

#1 如果这里没有开启归档不是ARCHIVELOG,则手动设置归档,归档模式的设置:

1、shutdown abort;

2、alter database mount;

3、alter database archive log;

4、alter database open;

#2 如果这里不是YES是NO,则需要使用命令alter databaseforce logging;强制归档

SQL> show parameter name;

NAME                                        TYPE       VALUE

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

db_file_name_convert                   string

db_name                                 string     powerdes

db_unique_name                           string     powerdes

global_names                         boolean FALSE

instance_name                               string     powerdes

lock_name_space                 string

log_file_name_convert                 string

service_names                                string     powerdes

SQL>

确保数据库的归档模式:

SQL> archive log list;

Database log mode        Archive Mode

Automatic archival         Enabled

Archive destination       USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     4510

Next log sequence to archive   4512

Current log sequence             4512

SQL>

2,配置监听、口令,传输到备库

2.1 listenor.ora文件配置静态监听

配置前为两台数据库配置静态监听(因dataguard需要设置db_unique_name,环境配置好后会出现两个不同的instance,如果是动态监听,会默认的监听到db_unique_name的监听上去,导致原来的db_name所在的实例无法连接,因此需要配置好静态监听)

主库监听:

[oracle@plys1 admin]$ more listener.ora

# listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

# 配置静态监听

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = powerdes) # 这里如果GLOBAL_DBNAME和SID_NAME是一样的话,只需要设置下SID_NAME就可以了,否则2个都要设置上。

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

)

)

# 本机监听

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.161.3.11)(PORT = 1521))

)

ADR_BASE_LISTENER = /oracle/app/oracle

[oracle@plys1 admin]$

从库监听:

[oracle@plys02 admin]$ more listener.ora

# listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

# 配置静态监听

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

(PROGRAM = extproc)

)

(SID_DESC =# 这里如果GLOBAL_DBNAME和SID_NAME是一样的话,只需要设置下SID_NAME就可以了,否则2个都要设置上。

(GLOBAL_DBNAME=pdunq_dg)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/dbhome_1)

(SID_NAME = powerdesdg2)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.161.3.13)(PORT = 1521))

)

)

ADR_BASE_LISTENER = /oracle/app/oracle

[oracle@plys02 admin]$

2.2 tnsnames.ora配置复制服务

修改主库的tnsnames.ora配置:

[oracle@plys1 admin]$ vim tnsnames.ora

# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

POWERDES =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.161.3.11)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = powerdes)

)

)

PD1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.161.3.11)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = pdunq)

)

)

PD2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.161.3.13)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = powerdes)

)

)

传输到备库:

[oracle@plys1 admin]$ scp tnsnames.ora 192.161.3.13:/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/

The authenticity of host '192.161.3.13 (192.161.3.13)' can't be established.

RSA key fingerprint is 67:0f:7d:69:e8:ed:9c:7e:b4:9d:36:35:2f:68:a2:d9.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.161.3.13' (RSA) to the list of known hosts.

oracle@192.161.3.13's password:

tnsnames.ora                                                                                                                                                                                                                                100%  697     0.7KB/s   00:00

[oracle@plys1 admin]$

2.3传输口令文件到备库

# 在主库设定口令文件:

[oracle@plys01dbs]$ orapwd file=orapw$ORACLE_SID password=313pd-ys2037 entries=10 force=yignorecase=Y

[oracle@plys01dbs]$

# 传输到备库

[oracle@plys1 dbs]$ scp orapwpowerdes 192.161.3.13:$ORACLE_HOME/dbs

oracle@192.161.3.13's password:

orapwpowerdes                                                                                                                                               100% 1536     1.5KB/s   00:00

[oracle@plys1 dbs]$

# 覆盖备库口令文件

[oracle@plys02 admin]$ cd $ORACLE_HOME/dbs

[oracle@plys02 admin]$ cp orapwpowerdes orapwpowerdesdg2

[oracle@plys02 dbs]$ ll ora*

-rw-r----- 1 oracle oinstall 1536 May 2314:37 orapwpowerdes

-rw-r----- 1 oracle oinstall 1536 May 2314:22 orapwpowerdesdg2

[oracle@plys02 dbs]$

3,在线设置主库参数

# 设置参数

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(powerdes,pdunq_dg)';

ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/flash_recovery_area/archivelog LGWR VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=powerdes';

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=PD2 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdunq_dg';

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE';

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER';

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO';

ALTER SYSTEM SET FAL_SERVER=pdung;

ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/home/oradata/powerdes','/home/oradata/powerdes' scope=spfile;

ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/home/oradata/powerdes','/home/oradata/powerdes' scope=spfile;

# 写入启动参数文件

SQL> create pfile from spfile;

File created.

SQL>

4,把主库最近的备份传输到备库同样的目录之上

[oracle@plys1 data]$  scp -r 2016-05-20 192.161.3.13:/backupdisk/backup/data/

oracle@192.161.3.13's password:

arch_POWERDES_20160520_6050.bak                                                                                                                              100%   24MB  12.2MB/s   00:02

full_POWERDES_20160520_6049.bak                                                                                                                              100%   10GB  10.1MB/s   17:36

rman_backup.log                                                                                                                                              100%   60KB  60.1KB/s   00:00

arch_POWERDES_20160520_6048.bak                                                                                                                              100%   26MB  13.2MB/s   00:02

[oracle@plys1 data]$

5,修改备库参数并启动到nomount

修改备库启动参数文件:

cd $ORACLE_HOME/dbs

vim initpowerdesdg2.pra

#DG CONFIG

*.log_archive_config='dg_config=(powerdes,pdunq_dg)'

*.log_archive_dest_1='LOCATION=/oracle/app/oracle/flash_recovery_area/archivelog LGWR VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pdunq_dg'

*.log_archive_dest_2='SERVICE=PD1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=powerdes

*.standby_file_management='AUTO'

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.fal_server=pdunq_dg

*.db_unique_name=pdunq_dg

PS:将*.log_archive_dest_2=后面的DB_UNIQUE_NAME改成primary的DB_UNIQUE_NAME值改为powerdes,这样在做switchover的时候,新的primary能通过这个将redo日志传到新的standby上面去。
log_archive_dest_N 目的是告诉数据库,把归档放到那里去可选项,首先是本地,然后考虑远程的从库,所以,假设A是主库,B是从库,切换之后B是主库,A是从库,所以,log_archive_dest_N需要设置为对方

把备库启动到nomount:

SQL> startup nomount;

ORACLE instance started.

Total System Global Area 1.1825E+10 bytes

Fixed Size              2217024 bytes

Variable Size              6039800768 bytes

Database Buffers    5771362304 bytes

Redo Buffers                11849728 bytes

SQL>

6,在master库PD1上使用auxiliary启动连接

[oracle@plys1 dbs]$  rman target sys/313pd_ys2016@PD1 auxiliarysys/313pd_ys2016@PD2

Recovery Manager: Release 11.2.0.1.0 -Production on Mon May 23 15:26:17 2016

Copyright (c) 1982, 2009, Oracle and/or itsaffiliates.  All rights reserved.

connected to target database: POWERDES(DBID=3391761643)

connected to auxiliary database: POWERDES(not mounted)

RMAN>

7,使用duplicate target 进行数据复制

命令:duplicatetarget database for standby from active database nofilenamecheck;

开始同步,这里消耗时间比较长,因为需要写入数据文件到备库上面:

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

Starting Duplicate Db at 23-MAY-16

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=1885 device type=DISK

contents of Memory Script:

{

backup as copy reuse

targetfile  '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/orapwpowerdes' auxiliary format

'/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/orapwpowerdesdg2'   ;

}

executing Memory Script

Starting backup at 23-MAY-16

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=4245 device type=DISK

Finished backup at 23-MAY-16

contents of Memory Script:

{

backup as copy current controlfile for standby auxiliary format  '/oracle/app/oracle/oradata/powerdes/control01.ctl';

restore clone controlfile to  '/oracle/app/oracle/flash_recovery_area/powerdes/control02.ctl' from

'/oracle/app/oracle/oradata/powerdes/control01.ctl';

}

executing Memory Script

Starting backup at 23-MAY-16

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

copying standby control file

output file name=/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_powerdes.f tag=TAG20160523T160425 RECID=5 STAMP=912614666

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 23-MAY-16

Starting restore at 23-MAY-16

using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: copied control file copy

Finished restore at 23-MAY-16

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

"/home/oradata/powerdes/temp01.dbf";

set newname for tempfile  2 to

"/home/oradata/powerdes/temp02.dbf";

set newname for tempfile  3 to

"/home/oradata/powerdes/temp03.dbf";

set newname for tempfile  4 to

"/home/oradata/powerdes/temp04.dbf";

switch clone tempfile all;

set newname for datafile  1 to

"/home/oradata/powerdes/system01.dbf";

set newname for datafile  2 to

"/home/oradata/powerdes/sysaux01.dbf";

set newname for datafile  3 to

"/home/oradata/powerdes/undotbs01.dbf";

set newname for datafile  4 to

"/home/oradata/powerdes/users01.dbf";

set newname for datafile  5 to

"/home/oradata/powerdes/powerdesk01.dbf";

set newname for datafile  6 to

"/home/oradata/powerdes/plas01.dbf";

set newname for datafile  7 to

"/home/oradata/powerdes/pl01.dbf";

set newname for datafile  8 to

"/home/oradata/powerdes/help01.dbf";

set newname for datafile  9 to

"/home/oradata/powerdes/adobelc01.dbf";

set newname for datafile  10 to

"/home/oradata/powerdes/sms01.dbf";

set newname for datafile  11 to

"/home/oradata/powerdes/plcrm01.dbf";

set newname for datafile  12 to

"/home/oradata/powerdes/powerdesk02.dbf";

set newname for datafile  13 to

"/home/oradata/powerdes/datagm01.dbf";

backup as copy reuse

datafile  1 auxiliary format

"/home/oradata/powerdes/system01.dbf"   datafile

2 auxiliary format

"/home/oradata/powerdes/sysaux01.dbf"   datafile

3 auxiliary format

"/home/oradata/powerdes/undotbs01.dbf"   datafile

4 auxiliary format

"/home/oradata/powerdes/users01.dbf"   datafile

5 auxiliary format

"/home/oradata/powerdes/powerdesk01.dbf"   datafile

6 auxiliary format

"/home/oradata/powerdes/plas01.dbf"   datafile

7 auxiliary format

"/home/oradata/powerdes/pl01.dbf"   datafile

8 auxiliary format

"/home/oradata/powerdes/help01.dbf"   datafile

9 auxiliary format

"/home/oradata/powerdes/adobelc01.dbf"   datafile

10 auxiliary format

"/home/oradata/powerdes/sms01.dbf"   datafile

11 auxiliary format

"/home/oradata/powerdes/plcrm01.dbf"   datafile

12 auxiliary format

"/home/oradata/powerdes/powerdesk02.dbf"   datafile

13 auxiliary format

"/home/oradata/powerdes/datagm01.dbf"   ;

sql 'alter system archive log current';

}

executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /home/oradata/powerdes/temp01.dbf in control file

renamed tempfile 2 to /home/oradata/powerdes/temp02.dbf in control file

renamed tempfile 3 to /home/oradata/powerdes/temp03.dbf in control file

renamed tempfile 4 to /home/oradata/powerdes/temp04.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

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 23-MAY-16

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile file number=00005 name=/home/oradata/powerdes/powerdesk01.dbf

output file name=/home/oradata/powerdes/powerdesk01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:08:35

channel ORA_DISK_1: starting datafile copy

input datafile file number=00006 name=/home/oradata/powerdes/plas01.dbf

output file name=/home/oradata/powerdes/plas01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00012 name=/home/oradata/powerdes/powerdesk02.dbf

output file name=/home/oradata/powerdes/powerdesk02.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:55

channel ORA_DISK_1: starting datafile copy

input datafile file number=00003 name=/home/oradata/powerdes/undotbs01.dbf

output file name=/home/oradata/powerdes/undotbs01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:55

channel ORA_DISK_1: starting datafile copy

input datafile file number=00002 name=/home/oradata/powerdes/sysaux01.dbf

output file name=/home/oradata/powerdes/sysaux01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:25

channel ORA_DISK_1: starting datafile copy

input datafile file number=00001 name=/home/oradata/powerdes/system01.dbf

output file name=/home/oradata/powerdes/system01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00011 name=/home/oradata/powerdes/plcrm01.dbf

output file name=/home/oradata/powerdes/plcrm01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45

channel ORA_DISK_1: starting datafile copy

input datafile file number=00007 name=/home/oradata/powerdes/pl01.dbf

output file name=/home/oradata/powerdes/pl01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45

channel ORA_DISK_1: starting datafile copy

input datafile file number=00004 name=/home/oradata/powerdes/users01.dbf

output file name=/home/oradata/powerdes/users01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00010 name=/home/oradata/powerdes/sms01.dbf

output file name=/home/oradata/powerdes/sms01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07

channel ORA_DISK_1: starting datafile copy

input datafile file number=00008 name=/home/oradata/powerdes/help01.dbf

output file name=/home/oradata/powerdes/help01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07

channel ORA_DISK_1: starting datafile copy

input datafile file number=00009 name=/home/oradata/powerdes/adobelc01.dbf

output file name=/home/oradata/powerdes/adobelc01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07

channel ORA_DISK_1: starting datafile copy

input datafile file number=00013 name=/home/oradata/powerdes/datagm01.dbf

output file name=/home/oradata/powerdes/datagm01.dbf tag=TAG20160523T160433

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

Finished backup at 23-MAY-16

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=5 STAMP=912615845 file name=/home/oradata/powerdes/system01.dbf

datafile 2 switched to datafile copy

input datafile copy RECID=6 STAMP=912615845 file name=/home/oradata/powerdes/sysaux01.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=7 STAMP=912615845 file name=/home/oradata/powerdes/undotbs01.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=8 STAMP=912615845 file name=/home/oradata/powerdes/users01.dbf

datafile 5 switched to datafile copy

input datafile copy RECID=9 STAMP=912615845 file name=/home/oradata/powerdes/powerdesk01.dbf

datafile 6 switched to datafile copy

input datafile copy RECID=10 STAMP=912615845 file name=/home/oradata/powerdes/plas01.dbf

datafile 7 switched to datafile copy

input datafile copy RECID=11 STAMP=912615845 file name=/home/oradata/powerdes/pl01.dbf

datafile 8 switched to datafile copy

input datafile copy RECID=12 STAMP=912615845 file name=/home/oradata/powerdes/help01.dbf

datafile 9 switched to datafile copy

input datafile copy RECID=13 STAMP=912615845 file name=/home/oradata/powerdes/adobelc01.dbf

datafile 10 switched to datafile copy

input datafile copy RECID=14 STAMP=912615845 file name=/home/oradata/powerdes/sms01.dbf

datafile 11 switched to datafile copy

input datafile copy RECID=15 STAMP=912615845 file name=/home/oradata/powerdes/plcrm01.dbf

datafile 12 switched to datafile copy

input datafile copy RECID=16 STAMP=912615845 file name=/home/oradata/powerdes/powerdesk02.dbf

datafile 13 switched to datafile copy

input datafile copy RECID=17 STAMP=912615845 file name=/home/oradata/powerdes/datagm01.dbf

Finished Duplicate Db at 23-MAY-16

RMAN>

8,将主库的LOG_ARCHIVE_DEST_STATE_2设置为ENABLE

# alter system setlog_archive_dest_state_2='enable';

SQL> alter system setlog_archive_dest_state_2='enable';

System altered.

SQL>

9,在主库备库上添加standby文件

# 在主库备库上执行:

alter database add standby logfile group 4 ('/home/oradata/powerdes/redo_dg_021.log') size 200M;

alter database add standby logfile group 5 ('/home/oradata/powerdes/redo_dg_022.log') size 200M;

alter database add standby logfile group 6 ('/home/oradata/powerdes/redo_dg_023.log') size 200M;

# 在主库备库上查看:

SQL> select member from v$logfile;

MEMBER

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

/home/oradata/powerdes/redo03.log

/home/oradata/powerdes/redo02.log

/home/oradata/powerdes/redo01.log

/home/oradata/powerdes/redo_dg_021.log

/home/oradata/powerdes/redo_dg_022.log

/home/oradata/powerdes/redo_dg_023.log

6 rows selected.

SQL>

SQL> SELECT GROUP#, BYTES FROM V$STANDBY_LOG;

GROUP#  BYTES

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

4   52428800

5   52428800

6   52428800

SQL>

10,准备开启备库redo应用

启动standby的redo应用的两种方式:

(1)默认的物理DG启动应用后,在主库arch日志被完整写入后才会开始应用该arch log

SQL> alter database recover managedstandby database disconnect from session;

(2)可以添加current logfile参数,使得应用当前正在读写,还没有完成归档的日志

SQL> alter database recover managedstandby database using current logfile disconnect from session;

(3)开启多个并行度提高应用效率

SQL> alter database recover managedstandby database parallel 8 using current logfile disconnect from session;

(4)关闭REDO应用

SQL> alter database recover managedstandby database using current logfile disconnect from session nodelay;

(5)取消延时应用

SQL> alter database recover managedstandby database cancel;

我们这里采用第二种,可以实时在备库拿到最新记录数据:

SQL>  alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL>

11,打开备库

# 在mount状态应用

SQL> alter database recover managedstandby database using current logfile disconnect from session;

Database altered.

# 取消延时应用

SQL> alter database recover managedstandby database cancel;

Database altered.

# 打开库

SQL> alter database open;

Database altered.

# 再次应用redo,添加current logfile参数,使得应用当前正在读写,还没有完成归档的日志

SQL> alter database recover managedstandby database using current logfile disconnect from session;

Database altered.

SQL>

# 查看备库状态

SQL> selectgroup#,thread#,sequence#,archived,status from v$standby_log;

GROUP#    THREAD#  SEQUENCE# ARC STATUS

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

4         1           4729 YES ACTIVE

5         0              0 YES UNASSIGNED

6         0              0 YES UNASSIGNED

SQL>

# 去检查主库备库的当前归档日志, archive log list;

SQL> archive log list;

Database log mode        Archive Mode

Automatic archival         Enabled

Archive destination        /oracle/app/oracle/flash_recovery_area/archivelog

Oldest online log sequence     4727

Next log sequence to archive   4729

Current log sequence             4729

SQL>

# 去查下备库standby是否已经完全应用了:

SQL> select sequence#,applied from v$archived_log order by sequence# asc;

SEQUENCE# APPLIED

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

4722 YES

4723 YES

4724 YES

4725 YES

4726 YES

4727 YES

4728 YES

7 rows selected.

SQL>

OK,发现传输过来的日志已经被应用了,主库备库保持一致,至此在线上由单实例扩展而成dataguard高可用就成功做完了。

12,问题记录redo log路径不一致

备库上是:

SQL> select member from v$logfile;

MEMBER

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

/oracle/app/oracle/flash_recovery_area/PDUNQ_DG/onlinelog/o1_mf_3_cn5hk8b1_.log

/oracle/app/oracle/flash_recovery_area/PDUNQ_DG/onlinelog/o1_mf_2_cn5hk7cl_.log

/oracle/app/oracle/flash_recovery_area/PDUNQ_DG/onlinelog/o1_mf_1_cn5hk6db_.log

13,问题记录ORA-16057

Errors in file/oracle/app/oracle/diag/rdbms/powerdes/powerdes/trace/powerdes_arc1_2626.trc:

ORA-16057: server not in Data Guardconfiguration

PING[ARC1]: Heartbeat failed to connect tostandby 'PD2'. Error is 16057.

在主库上查看db_unique_name:

SQL> show parameter db_unique_name;

NAME                                        TYPE       VALUE

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

db_unique_name                           string     powerdes

SQL>

Ok,重新设置LOG_ARCHIVE_CONFIG,设置前面的为powerdes,

ALTER SYSTEM SETLOG_ARCHIVE_CONFIG='DG_CONFIG=(powerdes,pdunq_dg)';

参考:http://czmmiao.iteye.com/blog/1311070

看到alert日志还在报新的错误:ORA-16057: server not in Data Guard configuration

Errors in file/oracle/app/oracle/diag/rdbms/powerdes/powerdes/trace/powerdes_arc1_2626.trc:

ORA-16057: server not in Data Guardconfiguration

PING[ARC1]: Heartbeat failed to connect tostandby 'PD2'. Error is 16057.

Mon May 23 18:43:06 2016

解决方法:

在primary  主库上:重启下到备库的连接就好了:

ALTER SYSTEM SETlog_archive_dest_state_2='DEFER' SCOPE=BOTH;

ALTER SYSTEM SETlog_archive_dest_state_2='ENABLE' SCOPE=BOTH;

PS:这个是oracle 的一个bug

14,问题记录RMAN-04006: error from auxiliary database

在备库启动到nomount后用tns测试连接时发现数无法连接,报错信息如下:

[oracle@plys1 admin]$  rman target sys/313pd_ys2016@PD1 auxiliarysys/313pd_ys2016@PD2

Recovery Manager: Release 11.2.0.1.0 -Production on Mon May 23 14:32:38 2016

Copyright (c) 1982, 2009, Oracle and/or itsaffiliates.  All rights reserved.

connected to target database: POWERDES(DBID=3391761643)

RMAN-00571:===========================================================

RMAN-00569: =============== ERROR MESSAGESTACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00554: initialization of internalrecovery manager package failed

RMAN-04006: error from auxiliary database:ORA-01031: insufficient privileges

[oracle@plys1 admin]$

原因是11g之后动态监听不支持在nomount状态下远程的tns访问,自己的服务器中配置的监听一直是动态的,然后需要设置好静态注册,在listenr.ora文件里面。之后在登录连接就正常了。

参考:http://blog.itpub.net/12679300/viewspace-1127775/

参考文章、SID各种NAME的名称:http://blog.itpub.net/7590112/viewspace-1064826/

参考文章、静态注册动态注册:http://blog.itpub.net/7590112/viewspace-1064826/

azure云上 在线将oracle单实例扩展成oracle dataguard高可用集群的详细过程相关推荐

  1. 【Nginx那些事】nginx配置实例(四)搭建高可用集群

    [Nginx那些事]nginx配置实例(四)搭建高可用集群 nginx 实现高可用 安装keepalived keepalived配置 主Nginx服务器配置 从nginx服务器配置 脚本文件权限设置 ...

  2. 零基础带你一步步搭建Nacos高可用集群(史上最详细,赛过教科书!)为此我准备了三台云服务器+云数据库

    容我先说一句:节日快乐!永远九岁的我们当然不能错过,奥里给!{容我先说一句:节日快乐!永远九岁的我们当然不能错过,奥里给!}容我先说一句:节日快乐!永远九岁的我们当然不能错过,奥里给! 如果你不懂jd ...

  3. K8S高可用集群架构部署 dashborad插件部署 Nginx实现动静分离 K8S在线升级

    K8S官方文档 注意:该集群每个master节点都默认由kubeadm生成了etcd容器,组成etcd集群.正常使用集群,etcd的集群不能超过一半为down状态. docker的namespace: ...

  4. 高可用集群 heartbeatv1实例

    -------   高可用集群的简单配置   -------- 地址规划 主节点:HA1 172.16.21.13   hostname node2.magedu.com 备节点: HA2 172.1 ...

  5. 在CentOS7上安装配置Corosync高可用集群过程全记录

    在CentOS7上安装配置Corosync高可用集群过程全记录 一.环境.拓朴及其他准备工作: 1-1:准备网络YUM源环境: All Nodes OS CentOS 7.3 x86_64: # wg ...

  6. 云服务器大数据高可用集群搭建-----hadoop篇

    目录 一.集群配置 二.集群规划 三.Hadoop.Zookeeper.Java.Centos版本 四.Linux配置 4.1 主机名配置 4.1.1 修改Linux主机名 4.1.2 修改linux ...

  7. ⑬云上场景:蜻蜓fm,基于ECS构建的转码集群

    蜻蜓fm是华语地区最好的收音机APP,同样是年度App Store最佳收听广播电台的工具.提供全球3000多个电台频道,以及点播内容,24小时不间断提供在线收听,打造跨地域收听广播的完美服务. 蜻蜓与 ...

  8. mongodb高可用集群01---单实例、主从模式、一主多从模式

    单实例: 1)建立mongodb测试文件 #存放整个mongodb文件 mkdri -p /data/mongodbtest/single #mongodb数据文件 mkdir /data/mongo ...

  9. MongoDB 单节点升级为副本集高可用集群

    文章目录 项目背景 副本集架构 升级架构前注意事项 一.原单节点MongoDB配置信息 1.1 原配置文件 1.2 在原来配置文件增加副本集配置 二.新增节点信息 2.1 新增节点配置文件 2.2 启 ...

最新文章

  1. VB与EXCEL的相互勾通
  2. hdu 4419 Colourful Rectangle (离散化扫描线线段树)
  3. 使用VoiceFliter-Lite改进设备上的语音识别
  4. 【洛谷2986】【USACO10MAR】伟大的奶牛聚集
  5. 苹果电池健康几天掉1点
  6. 剑指offer——3.实现数组中重复数字查找
  7. PHP特性整合(PHP5.X到PHP7.1.x)
  8. C# webclient UploadStringAsync如何得到变量?
  9. vsftp服务日志不能显示中文临时解决(crontab五秒更新)
  10. Oracle中的常用日期函数
  11. vue集成spreadjs
  12. 深度对话“百度超级链” | 链上存证,司法效率助推器
  13. Ubuntu安装OpenCV4记录
  14. 经济学和计算机考研哪个较难,经济学考研难吗,经济学为什么考研这么难!!!!?...
  15. 【DL】第 1 章:神经网络相关核心概念
  16. 计算机里的文档怎么设置密码,文件夹怎么设置密码,教您如何给电脑上文件夹设置密码...
  17. 同城信息小程序服务器,同城小程序正式上线,这大概是目前信息量最大的小程序了...
  18. 计算机未来设计建筑,未来设计的趋势解析,参数化设计及创意设计案例欣赏
  19. windows画图板 ESL转RGB 实现区间渐变色
  20. 赵小楼《天道》《遥远的救世主》深度解析(134)做了你该做的,就要受你该受的

热门文章

  1. 因特网,万维网,互联网什么区别?
  2. windows10 家庭版 Hyper-V 虚拟机服务开启与应用 (一)
  3. WebGL编程指南-24 同时使用漫反射光和环境反射光、立方体平移旋转缩放变换时漫反射光和环境反射光处理
  4. android弹出对话框
  5. 在线教育网站的一些瞎折腾……
  6. java留言系统_JAVA留言板系统.doc
  7. MIMO信道的信道容量
  8. oracle sql语句加速选项,Oracle SQL优化基本步骤
  9. LoadRunner的组成
  10. 几倍根号用学生计算机,几倍根号几怎么算不要网上抄的 祥细的 例如2√2 3√3 4√4 怎么算...