1. 首页
  2. IT资讯

oracle10g单实例转化为oracle10g rac(二)__多灾多难

    前期可能大家看过我轻描淡写式讲述过,如何基于本主题进行操作。网上及官方文档很为全备及详尽。经过配置后,或许是第一次配置,手有些生,同时也发现:

 1,对于rac的基本架构掌握不够精深,比如控制文件,日志文件,撤消表空间在多个rac节点如何分配等
 2,由于用到了rman,在配置及测试过程中,发现对于rman有备份及恢复,大家掌握的太少,也是半桶水的水平。
 3,目前感觉srvctl出错,提供的信息过于模糊,最终定位问题;可能还是主要依靠于各个rac实例的alert及相关trace文件
 4,rac环境的asm的学习也要继续,比如:asm的磁盘组是同时在rac所有asm实例中同时mount,还是只是在某个asm实例mount;手工及自动mount磁盘组如何设置
 5,单实例转化rac是个细活,步骤很多,但特别烦杂,一定要细心;在实施前要三思而谋。可以罗列出一些最可能出问题的列表,理清实施的思路,这相当重要;古人云,凡事预则立,不预则废。讲得就是这个道理.

好了,进入正题:

系统环境:

 1,三个节点,二个节点是要部署rac环境的节点,并提前安装及配置好了clusterware及db software,同时利用netca或netmgr配置了listener.ora及tnsnames.ora;另一个节点建立了一个单实例的数据库,采用asm存储
 2,源单实例数据库及目标rac数据库均采用asm存储,为了方便,配置磁盘组为data及arch
(i注:为了节省文字,我单实例数据库及rac数据库以下均采用缩写:centos5及

实施步骤:

1, 用rman对centos5进行,全库及控制文件,归档文件的备份
          注:以上脚本不提供了,很简单
2,在centos51及centos52上,依据centos5上面的asm实例的init及密码文件,修改成适用于rac环境的文件,内容如下:
-bash-3.00$ more init+ASM1.ora

##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# Cluster Database
###########################################
cluster_database=true  —新增,单实例无
 
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/u01/app/oracle/admin/+ASM/bdump
core_dump_dest=/u01/app/oracle/admin/+ASM/cdump
user_dump_dest=/u01/app/oracle/admin/+ASM/udump
 
###########################################
# Miscellaneous
###########################################
instance_type=asm
 
###########################################
# Pools
###########################################
large_pool_size=12M
 
###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=exclusive
 
asm_diskgroups=’DATA’,’ARCH’  –根据你构建有磁盘组,配置此参数
 
 
+ASM2.instance_number=2  —新增,适用于rac环境
+ASM1.instance_number=1
 
-bash-3.00$ ls -l orapw*
-rw-r—–  1 oracle oinstall 1536 Apr 11 05:50 orapw+ASM1  –如无此文件,请用orapwd工具新建

3,利用scp把以上第1步利用rman产生的备份文件传到centos52对应的目录下

4,在centos5上,创建临时的pfile文件(用于修改为rac环境的spfile文件)

   修改后的内容如下:
-bash-3.00$ more initcentos51.ora    –所有的配置文件spfile,pfile,密码在$ORACLE_HOME/dbs下面
SPFILE=’+DATA/centos5/spfilecentos5.ora’
其具体内容如下:
centos5.__db_cache_size=96468992  –可适量加大,sga各组件可加大
centos5.__java_pool_size=4194304
centos5.__large_pool_size=4194304
centos5.__shared_pool_size=58720256
centos5.__streams_pool_size=0
*.audit_file_dest=’/u01/app/oracle/admin/centos5/adump’   —这些dump目录预前在centos51,cento52上mkdir -p建好
*.background_dump_dest=’/u01/app/oracle/admin/centos5/bdump’
*.compatible=’10.2.0.1.0′
*.control_files=’+DATA/centos5/control01.ctl’,’+DATA/centos5/control02.ctl’,’+DATA/centos5/control03.ctl’
*.core_dump_dest=’/u01/app/oracle/admin/centos5/cdump’
*.db_block_size=8192
*.db_domain=”
*.db_file_multiblock_read_count=16
*.db_name=’centos5′
*.db_recovery_file_dest=’+ARCH’
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=centos5XDB)’
*.job_queue_processes=10
*.log_archive_dest_1=’LOCATION=+DATA/centos5/’
*.log_archive_format=’%t_%s_%r.dbf’
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile=’EXCLUSIVE’
*.sga_target=167772160
*.undo_management=’AUTO’
*.undo_tablespace=’UNDOTBS1′
*.user_dump_dest=’/u01/app/oracle/admin/centos5/udump’

—下面为rac特定的内容
*.cluster_database_instances=2
*.cluster_database=true
centos51.thread=1
centos51.instance_number=1
centos51.undo_tablespace=’UNDOTBS1′   —这个东东到后面会手工添加,不然第二个centos52 rac实例启不来
centos52.thread=2
centos52.instance_number=2

5,在centos51上,启动数据库到nomount,准备还原数据库(datafile,controlfile and etc)
 export ORACLE_SID=centos51
 sqlplus ‘/as sysdba’
 startup nomount pfile=’/u01/app/oracle/transform/inittransform.ora’
 create spfile=’+DATA/centos5/spfilecentos5.ora’ from pfile /u01/app/oracle/transform/inittransform.ora’ —利用pfile生成spfile,主要目的把spfile 存储在共享存储上面的磁盘组data上

 show parameter control_files —如果你单实例与rac环境要存储的磁盘组的路径有变化,请用alter system set 进行修改,须重启数据库;由于我单实例与rac磁盘组名字是一致的,故不需要这个步骤

6,在centos51上,通过rman还原及恢复单实例centos5为rac数据库
 rman target /
 restore controlfile from tag ”;   —我在第1步对centos5进行备份时用了tag,这就是tag的作用,在生产中请一定要制定一个规范,有可性性,不然不如不用

 alter database mount;
 restore database;

 recover database;—这步报错了,先不管它(提示找不到可用的日志文件)

 alter database open;—不成,没法,加上resetlogs打开了rac数据库

7,在centos51上在,添加用于centos52 rac实例的undotbs2撤消表空间
create undo tablespace undotbs2 datafile ‘+DATA/centos5/undotbs2’ size 200m;

8,在centos51上,把新转换的rac数据库注册到crs
   srvctl add database -d centos5 -o $ORACLE_HOME
   srvctl add instance -d centos5 -i centos51 -n capitek1
   srvctl add instance -d centos5 -i centos52 -n capitek2
   srvctl start instance -d centos5 – centos51

9,可根据你的测试环境,运行rac特定的数据字典sql文件
      (注:$ORACLE_HOME/rdbms/admin)
       经测:我没有用,因为我以前通过dbca创建过数据库)哈哈
 
       控制文件及日志文件我手工进行了添加,后来经测试,oracle会自动进行添加redo及controlfile
10,利用srvctl启动第二个centos52 rac实例

后记:

1,我在recover database时,提示undo tablespace不致,由于考虑到内容清晰,请参考我下一篇文章
2,对于深层次的恢复我掌握还是不到位

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-659750/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/192798.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code