rac双节点级连dataguard的实施手记备忘

测试环境:IBM AIX5.2 ,ORACLE9204 RAC

172.16.102.202,172.16.102.204 构成rac 结构primary
172.16.102.181,172.16.102.182构成rac结构的第一级standby
172.16.102.202,172.16.102.204构成rac结构的第二级standby

命名规则:

primary instance_name 为eport1,eport2。
第一级dataguard的instance_name为dg1_eport1/2。
第三级为dg2_eport1/2。

--------------------------------------
***********make directory*************
--------------------------------------
mkdir -p /oracle9/app/oracle/admin/eport/bdump
mkdir -p /oracle9/app/oracle/admin/eport/cdump
mkdir -p /oracle9/app/oracle/admin/eport/create
mkdir -p /oracle9/app/oracle/admin/eport/pfile
mkdir -p /oracle9/app/oracle/admin/eport/udump

/oracle9/app/oracle/product/9.2.0/bin/orapwd file=/oracle9/app/oracle/product/9.2.0/dbs/orapweport1 password=eport  entries=10
--------------------------------------
*************create database*************
--------------------------------------
connect SYS/eport as SYSDBA
startup nomount pfile="/oracle9/app/oracle/product/9.2.0/dbs/init_eport1.ora";
CREATE DATABASE eport
MAXINSTANCES 32
MAXLOGHISTORY 0
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
DATAFILE '/dev/rpsdb2_035' SIZE 1000M reuse
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/rpsdb2_076' SIZE 100M reuse
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/rpsdb2_083' SIZE 100M reuse
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET UTF8
LOGFILE GROUP 1 ('/dev/rpsdb2_095') SIZE 10M,
GROUP 2 ('/dev/rpsdb2_120') SIZE 10M;

CREATE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/rpsdb2_135' SIZE 100M reuse ;
CREATE TABLESPACE "USERS" LOGGING DATAFILE '/dev/rpsdb2_148' SIZE 100M  EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO ;
--------------------------------------
************run catalog*******
--------------------------------------
@/oracle9/app/oracle/product/9.2.0/rdbms/admin/catalog.sql;
@/oracle9/app/oracle/product/9.2.0/rdbms/admin/catproc.sql;
connect SYSTEM/manager
@/oracle9/app/oracle/product/9.2.0/sqlplus/admin/pupbld.sql;
connect SYSTEM/manager
set echo on
spool /oracle9/app/oracle/product/9.2.0/assistants/dbca/logs/sqlPlusHelp.log
@/oracle9/app/oracle/product/9.2.0/sqlplus/admin/help/hlpbld.sql helpus.sql;
--------------------------------------
**********cluster view******
--------------------------------------
@/oracle9/app/oracle/product/9.2.0/rdbms/admin/catclust.sql;
--------------------------------------
**********post dbcreate actions*********
--------------------------------------
@/oracle9/app/oracle/product/9.2.0/rdbms/admin/utlrp.sql;
alter database datafile '/dev/rpsdb2_035' autoextend off;
alter database datafile '/dev/rpsdb2_083' autoextend off;
alter database datafile '/dev/rpsdb2_135' autoextend off;
alter database datafile '/dev/rpsdb2_148' autoextend off;
shutdown immediate;
create spfile='/dev/rpsdb2_164' FROM pfile='/oracle9/app/oracle/product/9.2.0/dbs/init_dg1_eport1.ora';
startup;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 3 ('/dev/rpsdb2_187') SIZE 10M,
 GROUP 4 ('/dev/rpsdb2_193') SIZE 10M;
ALTER DATABASE ENABLE PUBLIC THREAD 2;

--------------------------------------
*****raw device tablesapce map and their size****
--------------------------------------
/dev/rpsdb2_035 system    1000
/dev/rpsdb2_076 temp      100
/dev/rpsdb2_083 undo1     100
/dev/rpsdb2_095 redo01_t1 10
/dev/rpsdb2_120 redo02_t1 10
/dev/rpsdb2_135 undo2     100
/dev/rpsdb2_148 users     100
/dev/rpsdb2_187 redo01_t2 10
/dev/rpsdb2_193 redo02_t2 10

然后节点2上建立initeport2.ora 内容spfile='/dev/rpsdb2_164';
mkdir -p /oracle9/app/oracle/admin/eport/bdump
mkdir -p /oracle9/app/oracle/admin/eport/cdump
mkdir -p /oracle9/app/oracle/admin/eport/create
mkdir -p /oracle9/app/oracle/admin/eport/pfile
mkdir -p /oracle9/app/oracle/admin/eport/udump
/oracle9/app/oracle/product/9.2.0/bin/orapwd file=/oracle9/app/oracle/product/9.2.0/dbs/orapweport2 password=eport

--------------------------------------
**********init.ora********************
--------------------------------------
###########################################
# Cluster Database
###########################################
cluster_database_instances=2
remote_listener=LISTENERS_ORA8
cluster_database=true
eport1.instance_name=eport1
eport2.instance_name=eport2
eport1.instance_number=1
eport2.instance_number=2
eport1.local_listener=LISTENER_ORA81
eport2.local_listener=LISTENER_ORA82
eport2.thread=2
eport1.thread=1
eport2.undo_tablespace=UNDOTBS2
eport1.undo_tablespace=UNDOTBS1

eport1.log_archive_dest_1='location=/archivelog01/eport'
eport2.log_archive_dest_1='location=/archivelog/eport'
eport1.log_archive_dest_2='service=dg1_181 lgwr reopen=60'

eport1.log_archive_start=true
eport2.log_archive_start=true
db_name=eport

control_files=("/dev/rpsdb2_027")
 .....略

--------------------------------------
**crt standbyshutdown and dd*************
--------------------------------------
primary(202)上的dd脚本
dd if=/dev/rpsdb2_035 of=/archivelog01/eport/trans/system.dd    bs=1048576 count=1002
dd if=/dev/rpsdb2_076 of=/archivelog01/eport/trans/temp.dd      bs=1048576 count=102
dd if=/dev/rpsdb2_083 of=/archivelog01/eport/trans/undo1.dd     bs=1048576 count=102
dd if=/dev/rpsdb2_095 of=/archivelog01/eport/trans/redo01_t1.dd bs=1048576 count=12
dd if=/dev/rpsdb2_120 of=/archivelog01/eport/trans/redo02_t1.dd bs=1048576 count=12
dd if=/dev/rpsdb2_135 of=/archivelog01/eport/trans/undo2.dd     bs=1048576 count=102
dd if=/dev/rpsdb2_148 of=/archivelog01/eport/trans/users.dd     bs=1048576 count=102
dd if=/dev/rpsdb2_187 of=/archivelog01/eport/trans/redo01_t2.dd bs=1048576 count=12
dd if=/dev/rpsdb2_193 of=/archivelog01/eport/trans/redo02_t2.dd bs=1048576 count=12

 在第一级standby(181)上有与primary完全一致的裸设备,所以上面dd的结果直接ftp到181并dd

dd of=/dev/rpsdb2_035 if=/archivelog01/eport/system.dd    bs=1048576 count=1002
dd of=/dev/rpsdb2_076 if=/archivelog01/eport/temp.dd      bs=1048576 count=102
dd of=/dev/rpsdb2_083 if=/archivelog01/eport/undo1.dd     bs=1048576 count=102
dd of=/dev/rpsdb2_095 if=/archivelog01/eport/redo01_t1.dd bs=1048576 count=12
dd of=/dev/rpsdb2_120 if=/archivelog01/eport/redo02_t1.dd bs=1048576 count=12
dd of=/dev/rpsdb2_135 if=/archivelog01/eport/undo2.dd     bs=1048576 count=102
dd of=/dev/rpsdb2_148 if=/archivelog01/eport/users.dd     bs=1048576 count=102
dd of=/dev/rpsdb2_187 if=/archivelog01/eport/redo01_t2.dd bs=1048576 count=12
dd of=/dev/rpsdb2_193 if=/archivelog01/eport/redo02_t2.dd bs=1048576 count=12

 第二级dataguard仍在primary上,所以必须与primary进行文件映射,202eport 与202 dg2_eport的映射表
dd if=/dev/rpsdb2_035  of=/dev/rpsdb1_002 bs=1048576 count=1002
dd if=/dev/rpsdb2_076  of=/dev/rpsdb1_003 bs=1048576 count=102
dd if=/dev/rpsdb2_083  of=/dev/rpsdb1_004 bs=1048576 count=102
dd if=/dev/rpsdb2_095  of=/dev/rpsdb1_007 bs=1048576 count=12 
dd if=/dev/rpsdb2_120  of=/dev/rpsdb1_008 bs=1048576 count=12 
dd if=/dev/rpsdb2_135  of=/dev/rpsdb1_005 bs=1048576 count=102
dd if=/dev/rpsdb2_148  of=/dev/rpsdb1_006 bs=1048576 count=102
dd if=/dev/rpsdb2_187  of=/dev/rpsdb1_009 bs=1048576 count=12 
dd if=/dev/rpsdb2_193  of=/dev/rpsdb1_010 bs=1048576 count=12 

202_dg2的控制文件
dd if=/archivelog01/eport/trans/standby.ctl of=/dev/rpsdb1_011 bs=1048576


ftp下面文件到181


--------------------------------------
**********create standby controlfile******
--------------------------------------

alter database force logging;
startup mount pfile='init_eport1.ora' --修改cluster_database=false
alter database archivelog;
alter database create standby controlfile as '/archivelog01/standby.ctl';
--------------------------------------
**********make standby step****************
--------------------------------------

on 181
orapwd file=orapwdg1_eport1.ora password=eport

将上面生成的standby.ctl 分别dd入第一二级控制文件裸设中

-------------------------------
tnsnames.ora on 181**********
-----------------------------

dg1_181 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=172.16.102.181)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = dg1_eport1)
    )
  )
 
dg_202 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=172.16.102.202)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = eport1)
    )
  )
dg_204 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=172.16.102.204)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = eport2)
    )
  )
dg2_202 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=172.16.102.202)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = dg2_eport1)
    )
  )
dg2_204 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST=172.16.102.204)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = dg2_eport2)
    )
  ) 
 
下面设备用于standby dataguard (dg2_eport1,dg2_eport2)需要用log_file_name_conver和data_file_name_conver进行处理
 
#psdb1_002   rpsdb2_035   system  
#psdb1_003   rpsdb2_076   temp    
#psdb1_004   rpsdb2_083   undo1   
#psdb1_007   rpsdb2_135   undo2   
#psdb1_008   rpsdb2_148   users   
#               
#psdb1_005   rpsdb2_095   redo11_t1  
#psdb1_006   rpsdb2_120   redo21_t1  
#psdb1_009   rpsdb2_187   redo11_t2  
#psdb1_010   rpsdb2_193   redo21_t2


倒入202的dg2的脚本

dd if=/dev/rpsdb2_035 of=/dev/rpsdb1_002 bs=1048576
dd if=/dev/rpsdb2_076 of=/dev/rpsdb1_003 bs=1048576
dd if=/dev/rpsdb2_083 of=/dev/rpsdb1_004 bs=1048576
dd if=/dev/rpsdb2_135 of=/dev/rpsdb1_007 bs=1048576
dd if=/dev/rpsdb2_148 of=/dev/rpsdb1_008 bs=1048576
dd if=/dev/rpsdb2_095 of=/dev/rpsdb1_005 bs=1048576
dd if=/dev/rpsdb2_120 of=/dev/rpsdb1_006 bs=1048576
dd if=/dev/rpsdb2_187 of=/dev/rpsdb1_009 bs=1048576
dd if=/dev/rpsdb2_193 of=/dev/rpsdb1_010 bs=1048576

-------------------------------
***crt standby redo logfile on 181**********
-----------------------------

alter database add standby logfile   ('/dev/rpsdb2_003') size 10m ;                                                                
alter database add standby logfile   ('/dev/rpsdb2_006') size 10m ;
alter database add standby logfile   ('/dev/rpsdb2_008') size 10m ;
alter database add standby logfile   ('/dev/rpsdb2_014') size 10m ;
alter database add standby logfile   ('/dev/rpsdb2_036') size 10m ;
alter database add standby logfile   ('/dev/rpsdb2_038') size 10m ;

-------------------------------
***initdg1_eport1.ora 181上第一级standby参数文件节选*
-----------------------------
cluster_database_instances=2
remote_listener=LISTENERS_ORA8
cluster_database=true
dg1_eport1.instance_name=dg1_eport1
dg1_eport2.instance_name=dg1_eport2
dg1_eport1.instance_number=1
dg1_eport2.instance_number=2
dg1_eport1.local_listener=LISTENER_ORA81
dg1_eport2.local_listener=LISTENER_ORA82
dg1_eport2.thread=2
dg1_eport1.thread=1
dg1_eport2.undo_tablespace=UNDOTBS2
dg1_eport1.undo_tablespace=UNDOTBS1

*.log_archive_start=true

*.log_archive_dest_1='location=/archivelog01/eport'
*.log_archive_dest_2='service=dg2_202'
*.standby_archive_dest='/archivelog01/eport/arch'
*.fal_client='dg1_181'
*.fal_server='dg_202','dg_204'

rac的standby只能在一个节点上进行恢复,所以有上面的fal写法

-------------------------------
***initdg2_eport1.ora 202上第二级standby参数文件节选*
-----------------------------
cluster_database_instances=2
remote_listener=LISTENERS_ORA8
cluster_database=true
dg2_eport1.instance_name=dg2_eport1
dg2_eport2.instance_name=dg2_eport2
*.lock_name_space='dg2eport'
dg2_eport1.instance_number=4
dg2_eport2.instance_number=5
dg2_eport1.local_listener=LISTENER_ORA81
dg2_eport2.local_listener=LISTENER_ORA82
dg2_eport2.thread=2
dg2_eport1.thread=1
dg2_eport2.undo_tablespace=UNDOTBS2
dg2_eport1.undo_tablespace=UNDOTBS1

*.log_archive_start=true

*.log_archive_dest_1='location=/archivelog01/dg2_eport'

*.fal_client='dg2_202'
*.fal_server='dg1_181'

*.standby_archive_dest='/archivelog01/dg2_eport/arch'
*.standby_file_management=auto

*.remote_login_passwordfile='exclusive'

*.db_file_name_convert='/dev/rpsdb2_035','/dev/rpsdb1_002','/dev/rpsdb2_083','/dev/rpsdb1_004','/dev/rpsdb2_135','/dev/rpsdb1_005','/dev/rpsdb2_148','/dev/rpsdb1_006'
                      
*.log_file_name_convert='/dev/rpsdb2_095','/dev/rpsdb1_007','/dev/rpsdb2_120','/dev/rpsdb1_008','/dev/rpsdb2_187','/dev/rpsdb1_009','/dev/rpsdb2_193','/dev/rpsdb1_010'

第一二级dataguard启动一个节点即可。

转载请注明出处与作者

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值