1、 在vmware下配置ORACLE的RAC+DG 精品文档 在vmware下配置ORACLE的RAC+DG 我用虚拟机装了rac+ a Single Instance Physical Standby 已经配置成功了。并能进行自动的切换.我在这里就先贴一个,其实这个帖子我在这个联接很久就发布.但是还有好多朋友没有发现( ... p;extra=&page=6) 一、系统的准备工作 1.对系统IP地址的规划 [oracle@rac2 dbs]$ cat /etc/hosts # Do not remove the following line, or vario
2、us programs # that require network functionality will fail. 127.0.0.1 localhosts 192.168.20.152 rac2 --RAC2主库 192.168.20.151 rac1 --RAC1主库 10.10.10.2 rac2-priv 10.10.10.1 rac1-priv 192.168.20.139 pri-rac --DATAGUARD的备用库 2.安装配置好ORACLE9I RAC的数据
3、库和数据库软件能正常的启动和关闭数据库 INST_ID INSTANCE_NUMBER INSTANCE_NAME HOST_NAME STATUS ---------- --------------- ---------------- ------------ ------------ 2 2 devdb2 rac2 OPEN 1 1 devdb1 rac1 OPEN SQL> l 1* select in
4、st_id,instance_number,instance_name,host_name,status from gv$instance SQL> / COMP_ID COMP_NAME VERSION STATUS -------- ----------------------------------- ---------- ----------- CATALOG Oracle9i Catalog Views 9.2.0.4.0 VALID CATPROC Oracle9i Packages an
5、d Types 9.2.0.4.0 VALID OWM Oracle Workspace Manager 9.2.0.1.0 VALID JAVAVM JServer JAVA Virtual Machine 9.2.0.4.0 VALID XML Oracle XDK for Java 9.2.0.6.0 VALID CATJAVA Oracle9i Java Packages 9.2.0.4.0 VALID ORDIM Oracle int
6、erMedia 9.2.0.4.0 VALID SDO Spatial 9.2.0.4.0 LOADED CONTEXT Oracle Text 9.2.0.4.0 VALID XDB Oracle XML Database 9.2.0.4.0 VALID WK Oracle Ultra Search 9.2.0.4.0 VALID COMP_ID
7、 COMP_NAME VERSION STATUS -------- ----------------------------------- ---------- ----------- ODM Oracle Data Mining 9.2.0.1.0 LOADED APS OLAP Analytic Workspace 9.2.0.4.0 LOADED XOQ Oracle OLAP API 9.2.0
8、4.0 LOADED AMD OLAP Catalog 9.2.0.4.0 VALID RAC Oracle9i Real Application Clusters 9.2.0.4.0 VALID 16 rows selected. SQL> l 1* select comp_id,comp_name,version,status from dba_registry 3.安装配置好备用库上的数据库软件和配置好数据库的环境变量这些文件 RAC1和RAC2上的环境变量 [oracle@rac2 dbs]$ cat /
9、home/oracle/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH PATH=$PATH:$HOME/bin #ORACLE_BASE 可以定位到盘阵上/data export ORACLE_BASE=/home/oracle/product
10、export ORACLE_HOME=/home/oracle/product/9.2.0.4 export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin export ORACLE_OWNER=oracle export ORACLE_SID=devdb2 export ORACLE_TERM=xterm export LD_ASSUME_KERNEL=2.4.19 export THREADS_FLAG=native export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORA
11、CLE_HOME/lib export NLS_LANG="American_america.zhs16gbk" # export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data #export DISPLAY=:0 #export LANG=en_US #export GDM_LANG= en_US #export LC= en_US #export PATH export DBCA_RAW_CONFIG=/home/oracl
12、e/DBCA_RAW_CONFIG.txt unset USERNAME PRI-RAC备用库的环境变量 [oracle@pri-rac devdb]$ cat /home/oracle/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH PATH=$PAT
13、H:$HOME/bin #ORACLE_BASE 可以定位到盘阵上/data export ORACLE_BASE=/home/oracle/product export ORACLE_HOME=/home/oracle/product/9.2.0.4 export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin export ORACLE_OWNER=oracle export ORACLE_SID=devdb export ORACLE_TERM=xterm export LD_ASSUME_KERNEL
14、2.4.19 export THREADS_FLAG=native export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export NLS_LANG="American_america.zhs16gbk" # export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data #export DISPLAY=:0 #export LANG=en_US #export GDM
15、LANG= en_US #export LC= en_US #export PATH export DBCA_RAW_CONFIG=/home/oracle/DBCA_RAW_CONFIG.txt unset USERNAME 4.安装配置RAC1,RAC2,PRI-RAC主机网络listener.ora文件和tnsnames.ora文件 在RAC1和RAC2上的listener.ora和tnsnames.ora文件 这个是RAC2的listener.ora文件内容 [oracle@rac2 admin]$ cat listener.ora # LISTENER.ORA.RAC2 Ne
16、twork Configuration File: /home/oracle/product/9.2.0.4/network/admin/listener.ora.rac2 # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) ) ) ) SID_LIST_LI
17、STENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle/product/9.2.0.4) (PROGRAM = extproc) ) (SID_DESC = (ORACLE_HOME = /home/oracle/product/9.2.0.4) (SID_NAME = devdb2) ) ) 这个是RAC1上的listener.ora文件内容 [oracle@rac1 admin]
18、 cat listener.ora # LISTENER.ORA.RAC1 Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/listener.ora.rac1 # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PO
19、RT = 1521)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle/product/9.2.0.4) (PROGRAM = extproc) ) (SID_DESC = (ORACLE_HOME = /home/oracle/product/9.2.0.4) (SID_NAME = devdb1) ) ) 这个是
20、RAC2的 tnsnames.ora文件内容 [oracle@rac2 admin]$ cat tnsnames.ora # TNSNAMES.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/tnsnames.ora # Generated by Oracle configuration tools. LISTENER_DEVDB1 = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) INST1_HTTP = (D
21、ESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = MODOSE) (PRESENTATION = http://HRService) ) ) DEVDB2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT
22、 = 1521)) (CONNECT_DATA = (SERVICE_NAME = devdb) (INSTANCE_NAME = devdb2) ) ) DEVDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = devdb) (INSTANCE_NAME = devdb1) ) ) DEVDB = (DESCRIPTION
23、 (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = devdb) ) ) LISTENERS_DEVDB = (ADDRESS_LIST =
24、 (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) ) LISTENER_DEVDB2 = (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) STANDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.13
25、9)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = devdb) ) ) 这个两个TNS是我们主要使用的DEVDB是做为主库的。Standby是作为备用库的TNS 这个是RAC1上的TNSNAMES.ORA文件的内容 [oracle@rac1 admin]$ cat tnsnames.ora # TNSNAMES.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/tnsnames.ora # Gener
26、ated by Oracle configuration tools. LISTENER_DEVDB1 = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) INST1_HTTP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = MOD
27、OSE) (PRESENTATION = http://HRService) ) ) DEVDB2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = devdb) (INSTANCE_NAME = devdb2) ) ) DEVDB1 = (DESCRIPTION = (ADDRESS_L
28、IST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = devdb) (INSTANCE_NAME = devdb1) ) ) STANDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521)) ) (CONNECT
29、DATA = (SERVICE_NAME = devdb) ) ) DEVDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED)
30、 (SERVICE_NAME = devdb) ) ) LISTENERS_DEVDB = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) ) LISTENER_DEVDB2 = (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) 以上在配置好要进行相应的测试,也测试能否连同各个数据库 这个p
31、ri-rac备用库的listener.ora和tnsnames.ora文件内容 [oracle@pri-rac admin]$ cat listener.ora # LISTENER.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168
32、20.139)(PORT = 1521)) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = devdb) (ORACLE_HOME = /home/oracle/product/9.2.0.4) (SID_NAME = devdb) ) ) 以下是tnsname.ora文件内容 [oracle@pri-rac admin]$ cat tnsnames.ora # TNSNAMES.ORA Network Configuration File: /
33、home/oracle/product/9.2.0.4/network/admin/tnsnames.ora # Generated by Oracle configuration tools. INST1_HTTP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = MODOSE)
34、 (PRESENTATION = http://HRService) ) ) STANDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = devdb) ) ) DEVDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (P
35、ROTOCOL = TCP)(HOST = 192.168.20.151)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.152)(PORT = 1521)) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = devdb) ) ) 以上在配置好要进行相应的测试,也测试能否连同各个数据库 5.安装和配置pri-rac上的参数文件initdevdb.
36、ora文件 安装和配置pri-rac上的参数文件initdevdb.ora文件,并配置好相应的密码文件和dataguard的相关参数 。 其实initdevdb.ora文件可以从RAC1或者RAC2的机器上COPY过来,然后再把带有RAC的项目去掉 $sqlpluc /nolog SQL>conn / as sysdba SQL>create pfile from spfile; scp $ORACLE_HOME/dbs/initdevdb1.ora pri-ra:$ORACLE_HOME/dbs 再修改相应的的参数,以下是pri-rac上的initdevdb.ora文件内容: [orac
37、le@pri-rac dbs]$ cat initdevdb.ora *.aq_tm_processes=1 *.background_dump_dest='/home/oracle/product/admin/devdb/bdump' *.compatible='9.2.0.0.0' *.control_files='/home/oracle/product/oradata/devdb/control01.ctl','/home/oracle/product/or adata/devdb/control02.ctl','/home/oracle/product/oradata/devdb/
38、control03.ctl' *.core_dump_dest='/home/oracle/product/admin/devdb/cdump' *.db_block_size=8192 *.db_cache_size=33554432 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='devdb' *.dispatchers='(PROTOCOL=TCP) (SERVICE=devdbXDB)' *.fast_start_mttr_target=300 *.hash_join_enabled=TRUE *.instanc
39、e_name='devdb' *.java_pool_size=20971520 *.job_queue_processes=10 *.large_pool_size=33554432 *.open_cursors=300 *.pga_aggregate_target=25165824 *.processes=150 *.query_rewrite_enabled='FALSE' *.remote_login_passwordfile='EXCLUSIVE' *.shared_pool_size=33554432 *.sort_area_size=524288 *.star_transform
40、ation_enabled='FALSE' *.timed_statistics=TRUE *.undo_management='AUTO' *.undo_retention=10800 *.undo_tablespace='UNDOTBS1' *.user_dump_dest='/home/oracle/product/admin/devdb/udump' ########################################### # DATA GURAD 备用库的参数配置 ########################################### *.aq_tm
41、processes=1 #*.compatible='9.2.0.0.0' *.log_archive_start=true *.log_archive_dest_1='LOCATION=/home/oracle/archive/primary' --本地归档的归档日志位置 *.log_archive_dest_2='service=devdb mandatory reopen=60' --传输到备用库上的归档日志位 置 *.log_archive_format='%t_%s.dbf' *.db_file_name_convert='/home/oracle/product/o
42、radata/devdb/','/home/oracle/product/oradata/ devdb/' *.log_file_name_convert='/home/oracle/product/oradata/devdb/','/home/oracle/product/oradata /devdb/' *.utl_file_dir='/home/oracle' *.standby_archive_dest='/home/oracle/archive/primary' --备用库上的归档日志目录 *.standby_file_management='AUTO' *.fal_serv
43、er='devdb' *.fal_client='standby' 在这里一定要注意db_file_name_convert,log_file_name_convert参数的值配置,在RMAN恢复他的时候 ,要采用,如且一定要保证配置的正确。同时也要创建好相应的目录$ORACLE_BASE/admin/devdb/bdump cdump这些相应的目录,如果感觉难创建可以直接从RAC1或者RAC2上COPY过来,然后修改下 alter_devdb.log文件,就OK了。 6.配置NFS在PRI-RAC上配置 修改pri-rac备库机器上的/etc/exports文件 [oracle@pr
44、i-rac dbs]$ cat /etc/exports /home/oracle/product/backup *(async,rw) 添加此行。 启动portmap service portmap start 启动NFS service NFS start [root@pri-rac ~]# service nfs restart 关闭 NFS mountd:[失败] 关闭 NFS 守护进程:[失败] 关闭 NFS quotas:[失败] 关闭 NFS 服务: [失败] 启动 NFS 服务: [ 确定 ] 关掉 NFS 配额:[ 确定 ] 启动
45、NFS 守护进程:[ 确定 ] 启动 NFS mountd:[ 确定 ] 在RAC1和RAC2的机器上分别挂载上此目录 [root@rac2 bin]# mount -t nfs -o rw,noac,hard,timeo=600,wsize=32768,rsize=32768,vers=3,proto=tcp 192.168.20.139:/home/oracle/product/backup /home/oracle/product/backup [root@rac2 bin]# df -h Filesystem 容量 已用 可用 已用% 挂载点
46、/dev/sda1 13G 5.5G 6.7G 45% / none 345M 0 345M 0% /dev/shm 192.168.20.139:/home/oracle/product/backup 13G 7.5G 4.8G 61% /home/oracle/product/backup 上面此目录要在RAC1和RAC2上分别挂载上。 到此准备工作已经完成。下面要开始备份RAC库,以及他的控制文件和日志文件 二、为physical standby库备份RA
47、C数据库 在做好以上这些准备后,我们就可以开始备份RAC数据库了。 全库备份RAC数据库以及控制文件 run { allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb1; allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb2; backup da
48、tabase plus archivelog delete all input; backup current controlfile for standby; release channel c1; } RMAN> run { 2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb1; 3> allocate channel c2 device type disk format '/home/oracle/
49、product/backup/full_%U_%I.dbf' connect sys/stu01@devdb2; 4> backup database ; 5> release channel c1; 6> release channel c2; 7> } allocated channel: c1 channel c1: sid=24 devtype=DISK allocated channel: c2 channel c2: sid=19 devtype=DISK Starting backup at 23-OCT-09 channel c1: starting full datafile backupset channel c1: specifying datafile(s) in backupset channel c2: starting full datafile backupset channel c2: specifying datafile(s) in backupset input datafile fno=00002 name=/home/oracle/product/oradata/devdb/undotbs01.dbf input datafile fno=00011 name=






