Oracle 11g Active Data Guard搭建、管理(4)

使用备库的 SID 修改其名字。你需要对 pfile 做如下修改:

根据你备库的配置和文件位置,你可能需要修改 AUDIT_FILE_DEST,CONTROL_FILES 和 DISPATCHERS 参数(也许还有其他需要修改的参数)。

LOG_ARCHIVE_DEST_1 参数中的 db_unique_name 修改为备库的相应唯一名(这里是orcl_standby

LOG_ARCHIVE_DEST_2 参数,修改为主库对应的服务名和数据库唯一名(这里是orcl_primary

FAL_SERVER 参数修改指向主库的服务名。

增加如下参数:

db_unique_name=ORCL_standby

db_file_name_convert 和 log_file_name_convert。如果主备库的数据文件、日志文件位置不同,需要设置这两个参数。

$ vim /home/Oracle/initdg.ora

******************************************************

orcl.__db_cache_size=2835349504

orcl.__java_pool_size=16777216

orcl.__large_pool_size=184549376

orcl.__oracle_base='/data/oracle/app/oracle'#ORACLE_BASEset from environment

orcl.__pga_aggregate_target=2516582400

orcl.__sga_target=3774873600

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=671088640

orcl.__streams_pool_size=0

*.audit_file_dest='/data/oracle/app/oracle/admin/orcl/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/data/oracle/app/oracle/oradata/orcl/control01.ctl','/data/oracle/app/oracle/fast_recovery_area/orcl/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='orcl'

*.db_recovery_file_dest='/data/oracle/app/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=20480M

*.db_unique_name='orcl_standby'

*.diagnostic_dest='/data/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.fal_server='orcl_primary'

*.local_listener='for_db'

*.log_archive_config='dg_config=(orcl_primary,orcl_standby)'

*.log_archive_dest_1='location=use_db_recovery_file_destvalid_for=(all_logfiles, all_roles) db_unique_name=orcl_standby'

*.log_archive_dest_2='service=orcl_primary lgwrsync valid_for=(online_logfile,primary_role) db_unique_name=orcl_primary'

*.memory_target=6000M

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=610

*.standby_file_management='AUTO'

*.undo_tablespace='UNDOTBS1'

******************************************************

14、创建备用数据库的密码文件

使用oracle帐号登录,设置的密码要保证主库、备用库是相同。也可以复制主库密码文件到备库。

$ rm $ORACLE_HOME/dbs/orapw$ORACLE_SID

$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=sysoracle entries=4

备注:

如果你不是使用 SSL 做重做日志传输验证(一般来说不会),那么你需要使用密码文件做验证。你必须创建密码文件,并且设置参数 REMOTE_LOGIN_PASSWORDFILE 为 EXCLUSIVE 或 SHARED。一般数据库默认就有密码文件,并且此参数默认为 EXECUSIVE。先检查下这两项,如果不是默认,设置方法如下:

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;

测试远程登录

$ sqlplus sys/sysoracle@orcl_primary as sysdba

$ sqlplus sys/sysoracle@orcl_standby as sysdba

15、将备库启动到nomount状态,然后连接主库进行RMAN duplicate操作

SQL> conn /as sysdba

SQL> create spfile frompfile='/home/oracle/initdg.ora';

SQL> startup nomount

备注:

若启动出现 ORA-32004: obsoleteor deprecated parameter(s) specified for RDBMS instance,则查看日志,

文本格 式的alert文件在哪里呢?看一下动态视图V$DIAG_INFO吧。

SQL> select * from v$diag_info ;

$ tail -f /data/oracle/app/oracle/diag/rdbms/orcl_standby/orcl/trace/alert_orcl.log

看看有无类似过期参数提示:

WARNING: The background_dump_dest init.ora parameter has beendeprecated.

16、RMAN同时连接主库与备库

在备库机器上执行(主库为启动startup,备库为nomount状态)

$ rman target sys/sysoracle@orcl_primary auxiliary sys/sysoracle@orcl_standby

Recovery Manager: Release 11.2.0.4.0 -Production on Tue May 20 11:45:02 2014

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

connected to target database: ORCL(DBID=4079000510)

connected to auxiliary database: ORCL (notmounted)

RMAN>

17、RMAN通过网络在线duplicate复制主库数据到备库

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

Starting Duplicate Db at 20-MAY-14

using target database control file insteadof recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=315 devicetype=DISK

…… 省略

Finished Duplicate Db at 20-MAY-14

RMAN> exit

Recovery Manager complete.

18将备库置于active dataguard模式下

在Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,数据库需要处于mount状态。从11g开始,应用redo的时候,物理备库可以处于read-only模式,这就称为Active Data Guard 。通过Active Data Guard,可以在物理备库进行查询或者导出数据,从而减少对主库的访问和压力。

$ sqlplus /nolog

SQL> conn /as sysdba

查看状态

SQL> select open_mode,database_role,db_unique_name from v$database;

OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME

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

MOUNTED PHYSICAL STANDBY orcl_standby

1)打开备库(Dataguard只能启动备库到readonly模式)

SQL> alter database open;

2)启用实时重做应用

选项“USING CURRENT LOGFILE”的含义是当备库收到日志后,尽快完成恢复。

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

取消备库的自动恢复

取消Redo Apply

SQL> alter database recover managed standby database cancel;

3)查看状态

状态“READ ONLY WITH APPLY”即表示此时备库处于Read Only状态的同时可以接受主库传过来的日志进行恢复,以便达到备库可以即时查看到主库变化的目的。

SQL> select open_mode,database_role,db_unique_name from v$database;

OPEN_MODE DATABASE_ROLEDB_UNIQUE_NAME

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

READ ONLY WITH APPLY PHYSICAL STANDBY orcl_standby

查看日志状态

SQL> select status from v$standby_log;

STATUS

----------

ACTIVE

ACTIVE

UNASSIGNED

SQL> select member from v$logfile;

MEMBER

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

/data/oracle/app/oracle/fast_recovery_area/ORCL_STANDBY/onlinelog/o1_mf_3_9qon4l1s_.log

/data/oracle/app/oracle/fast_recovery_area/ORCL_STANDBY/onlinelog/o1_mf_2_9qon4hjg_.log

/data/oracle/app/oracle/fast_recovery_area/ORCL_STANDBY/onlinelog/o1_mf_1_9qon4f3v_.log

/data/oracle/app/oracle/fast_recovery_area/ORCL_STANDBY/onlinelog/o1_mf_11_9qon4nh8_.log

MEMBER

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

/data/oracle/app/oracle/fast_recovery_area/ORCL_STANDBY/onlinelog/o1_mf_12_9qon4s8k_.log

/data/oracle/app/oracle/fast_recovery_area/ORCL_STANDBY/onlinelog/o1_mf_13_9qon4y3c_.log

6 rows selected.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0daa89d8e248aa8f8e0e67d68181ff6c.html