Chinaunix首页 | 论坛 | 博客
  • 博客访问: 496885
  • 博文数量: 161
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-25 01:20
文章分类

全部博文(161)

文章存档

2011年(44)

2010年(47)

2009年(48)

2008年(22)

我的朋友

分类: Oracle

2011-07-13 13:45:27

Oracle 10.2.0.5 物理standby database 环境搭建RMAN形式

Arch asysnc

基本参数                   

primary  

IP:172.16.4.199

Oracle_sid:dgrman

db_unique_name:dgr_pd

fal_server:dgr_st

fal_client:dgr_pd

status:open

 

standby

IP:172.16.4.198

Oracle_sid:dgrman

db_unique_name:dgr_st

fal_server:dgr_st

fal_client:dgr_pd

status:mount   |can open with read only 

Primary 端的配置

主库设置为force logging 模式 (备库也设置,双向切换)

SQL> alter database force logging;

主库设为归档模式

SQL> archive log list; 

SQL> shutdown immediate 

SQL> startup mount 

SQL>alter system set log_archive_format='arch%t_%s_%r.arc' scope=spfile sid='*' ;

SQL> alter database archivelog; 

SQL> archive log list; 

   

密码文件

[oracle@localhostdbs]$ orapwd file=/oracle/product/10.2.0/db_1/dbs/orapwdg password=ank88ank

如果已经存在,就不用创建了。 缺省情况下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感)

修改初始化参数文件

添加的参数

*.DB_UNIQUE_NAME='dgr_pd' 

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgr_pd,dgr_st)'

*.log_archive_dest_1='location=/oradata/10g_archive/dgrman  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgr_pd' 

*.LOG_ARCHIVE_DEST_2='SERVICE=dgr_st ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgr_st'

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE 

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE 

*.standby_file_management='AUTO'

*.FAL_SERVER='dgr_st' 

*.FAL_CLIENT='dgr_pd'     

/*or*/

alter system set DB_UNIQUE_NAME='dgr_pd'  scope=spfile sid='*'  ;

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgr_pd,dgr_st)' scope=spfile sid='*'  ;

alter system set log_archive_dest_1='location=/oradata/10g_archive/dgrman  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgr_pd' scope=spfile sid='*'  ; 

alter system set LOG_ARCHIVE_DEST_2='SERVICE=dgr_st ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgr_st' scope=spfile sid='*'  ;

alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE  scope=spfile sid='*'  ;

alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE  scope=spfile sid='*'  ;

alter system set standby_file_management='AUTO' scope=spfile sid='*'  ;

alter system set FAL_SERVER='dgr_st'  scope=spfile sid='*'  ;

alter system set FAL_CLIENT='dgr_pd'   scope=spfile sid='*'  ;

--需要注意的是

*.log_archive_max_processes=1

*.log_archive_format='arch%t_%s_%r.arc'

*.remote_login_passwordfile='EXCLUSIVE'

如果主库和备库的数据文件位置不同,还需要加如下2个参数:

*.log_file_name_convert='/u02/oradata/dgtest/','/u03/oradata/dgtest/'

*.db_file_name_convert='/u02/oradata/dgtest/','/u03/oradata/dgtest/'

启动库

SQL> shutdown immediate

SQL> startup nomount  

SQL>alter database mount 

SQL>alter database open 

ORACLE instance started.

Total System Global Area  167772160 bytes

Fixed Size                  1218316 bytes

Variable Size              79694068 bytes

Database Buffers           83886080 bytes

Redo Buffers                2973696 bytes

Database mounted.

Database opened.

SQL>create pfile='/oradata/standby.ora' from spfile ;  --备库的用

 

修改listener.ora 和tnsnames.ora 文件

Listener.ora 文件

SID_LIST_LISTENER =

  (SID_LIST =

   (SID_DESC = 

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /oracle/product/10.2.0/db_1)

      (PROGRAM = extproc)

    )

    (SID_DESC = 

      (GLOBAL_DBNAME = dgrman)

      (ORACLE_HOME = /oracle/product/10.2.0/db_1)

      (SID_NAME = dgrman)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = yyj.mchz)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )

添加SID_DESC 部门

注意:SID_LIST_LISTENER 配置的是静态注册,如果没有该参数,而且Data Guard 启动顺序又不正确,那么在主库可能会报 PING[ARC1]: Heartbeat failed to connect to standby 'orcl_st'. Error is 12514. 错误,导致归档无法完成。

Oracle Listener 动态注册 与 静态注册

Tnsnames.ora 文件

DGR_ST =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dgrman)

    )

  )

DGR_PD =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dgrman)

    )

  )

 

将密码文件,参数文件copy到备库

scp orapwdgrman 172.16.4.198:$ORACLE_HOME/dbs

备份主库

vi rmanbackup.sh

rman target / <

{

allocate channel ch00 type disk;

allocate channel ch01 type disk;

backup  format '/oracle/tmp/%U.bak' database plus archivelog;

backup  format '/oracle/tmp/control%U.ctl' current controlfile for standby;

release channel ch00;

release channel ch01;

}

EOF

--do

export ORACLE_SID=dgrman

rman target /

backup  format '/oracle/tmp/%U.bak' database plus archivelog;

backup  format '/oracle/tmp/control%U.ctl' current controlfile for standby;

exit

Standby 端配置

修改listener.ora 和 tnsnames.ora 文件

如果不存在,就从主库上copy 过去。

修改初始化参数文件

dgrman.__db_cache_size=113246208

dgrman.__java_pool_size=4194304

dgrman.__large_pool_size=4194304

dgrman.__shared_pool_size=58720256

dgrman.__streams_pool_size=0

*.audit_file_dest='/oracle/admin/dgrman/adump'

*.background_dump_dest='/oracle/admin/dgrman/bdump'

*.compatible='10.2.0.5.0'

*.control_files='/oradata/10g/dgrman/control01.ctl','/oradata/10g/dgrman/control02.ctl','/oradata/10g/dgrman/control03.ctl'

*.core_dump_dest='/oracle/admin/dgrman/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='dgrman'

*.db_recovery_file_dest='/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.db_unique_name='dgr_st'

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

*.fal_client='dgr_st'

*.fal_server='dgr_pd'

*.job_queue_processes=10

*.log_archive_config='DG_CONFIG=(dgr_pd,dgr_st)'

*.log_archive_dest_1='location=/oradata/10g_archive/dgrman  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgr_st'

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

*.log_archive_dest_state_1='ENABLE'

*.log_archive_dest_state_2='ENABLE'

*.log_archive_format='arch%t_%s_%r.arc'

*.open_cursors=300

*.pga_aggregate_target=60817408

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=184549376

*.standby_file_management='AUTO'

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/oracle/admin/dgrman/udump'

保存为std.ora

启动实例

export ORACLE_SID=dgrman

SQL>startup nomount pfile='/oradata/st.ora'

SQL>create spfile from pfile='/oradata/st.ora'

SQL>shutdown immediate

SQL>startup nomount

不打开控制文件,控制文件通过Duplicate 来传输

恢复

Duplicate Standby

方式一

rman target / catalogrman/rmanpwd@catalogdb auxiliary sys/sys@standby

RUN

{

# If desired, issue a SET command to terminate recovery at a specified point.

# SET UNTIL SCN 143508;

DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK

duplicate target database for standby nofilenamecheck

dorecover;

}

方式二(k)

rman target sys/ank88ank@dgr_pd 

connect auxiliary sys/ank88ank@dgr_st

duplicate target database for standby nofilenamecheck;

方式三

vi rmarestore.sh

rman target system/ank88ank@dgr_pd  auxiliary system/ank88ank@dgr_st  <

duplicate target database for standby nofilenamecheck;

EOF

#NOFILENAMECHECK 表示主备的数据文件路径一致

8Duplicate 完成后Standby只处于正常的Mount状态.应打开Recover

 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

$lsnrctl start

--------------------------------------------------------------------------End

阅读(565) | 评论(0) | 转发(0) |
0

上一篇:Oracle latch

下一篇:Oracle recover a lost datafile

给主人留下些什么吧!~~