风影子
作者风影子·2012-07-20 09:41
数据库管理员·深圳

仅更换磁盘阵列的oracle rac数据库迁移方法讨论

字数 3389阅读 12914评论 2赞 3
    昨天早上我一长沙的同学向我讨教一个迁移方案,HP的小机,数据库是oracle 10g rac,使用裸设备,数据量大概是4T左右,停机时间也有要求,具体没细问。这种案例我确实还没实施过。当时也没给出好建议,只是建议数据量这么大,又要停机要求的话可以考虑dataguard做主备,同步完后进行切换。
    在我离开上一家公司的时候,手上还有一个迁移的项目,oracle 9i rac环境,只更换两台小机,其它什么都不换。后来我给的方案是新增一台PC机器建DG进行同步后切换用来接管业务,新机器接上原存储安装好RAC后再做DG与PC机同步,同步完后再进行切换。
    刚好晚上上网时看到itpub有个贴子,迁移场景居然惊人的相似,很多高手都提出了自己的看法,我这里对这些方法进行一下收集,做为参考,说不定以后自己还用得着。(经确认,就是我同学的同事发的贴子,看来我有福知道最后使用的是什么方法了)

    ITPUB讨论贴地址:
oracle更换磁盘阵列
http://www.itpub.net/thread-1636377-1-1.html

环境描述:
目前环境:
1、数据库平台为Oracle 10g + RAC;
2、操作系统均为HPUX 11.31
3、硬件平台为HP小型机RX8640,HP存储EVA4000;4、创建了两个数据库,每个节点都启用了两个实例
要求:
准备将新的EVA4400阵列替换现有EVA4000阵列。
允许停机时间最长8小时


请问有什么好的方案和思路吗? 
方法一:
如果你用的裸设备,
1.将数据库使用RMAN执行物理备份。
2.关闭数据库,保留所有的rman备份、归档备份、归档、和Redo日志文件。(也可以在正常关闭数据库,在MOUNT模式下备份数据库,这样就只需要数据库保留备份文件)
3.使用ocrconfig手动备份ocr。
4.停止crs,确保所有的进程断掉之后,使用dd备份votedisk。
5.把所有的备上面列出的备份和日志等拷贝到存储以外的地方。
6.断开老存储,停止老存储。(确保在出现问题的时候打开老存储就能启动数据库)。
7.挂载,划分新的存储,......
8.先dd把votedisk恢复了,再用ocrconfig -restore恢复ocr。
9.确保crs组件进程都能正常启动。
10.手动确保只有一个节点启动实例到mount状态。
11.使用rman结合set newname的方式执行数据库的完全恢复。
12.重启数据库及crs,验证数据库的正确性。

方法二:
 
停机;
阵列到阵列镜像;
挂新阵列;
开机拉库。

方法三:

用ASM把2个阵列全弄进去做成2个冗余,然后慢慢删除旧的阵列,我感觉这个方案就很好啊。(这里是裸设备,如果ASM的话可做参考)

方法四:

涉及到ocr votedisk集群级别和数据库级别的迁移,首先迁移ocr和votedisk到新的存储,然后数据库级别的迁移可以采取rman的backup as copy到新的存储上,也是先日志组冗余然后删除以前存储上的日志组,然后把数据文件的日志文件的omf管理位置设置到新的磁盘组,、restore控制文件到mount,此时需要停机,也是数据级别的唯一需要停机的地方,然后switch database to copy,此时相对rman backup辈分级别会快很多,最后做个recover open resetlogs即可。

方法五:

单实例下这么做过,不知道RAC是否可以:
可以先把新阵列挂在另外一个服务器上(或PC server上也行),在上面安装和你源库一样版本的数据库和环境(环境变量,书库名都完全一样),然后用rman异机恢复,把源库恢复到新阵列上,检查无误之后,再把新阵列挂到源服务器上,启动数据库即可。

方法六:
答:8小时停机,给你个基本思路,可以这样: 再找个主机,在新存储上建个Standby,就是DG。数据同步的差不多后,停掉主库,将新存储挂到主库。
这样的话,加上处理OCR、VOting盘,一共停机时间不会太久,一个小时足以。

问:这个方式一般情况是可行的, 但是lz的环境是RAC且有连个实例,我感觉操作起来会比较的麻烦,压力还是很大的

答:这个也好办。在新存储上留同样大小的OCR盘和Voting盘,停掉主库Cluster,用DD命令将OCR、Voting分别复制到新存储中,修改ocr.loc文件,改变OCR的位置到新存储上的OCR盘,再使用crsctl修改Voting盘位置到新存储的Voting,就可以了。

我们有一套两节点RAC,备库只有一台主机,是单实例,但主、备存储是一模一样的。如果主库存储挂掉,就是将主库切换到备库存储。
OCR盘、Voting盘每隔几个小时,从主库用dd备份到备库存储。

问:
由于服务器上都有两个实例,所以服务器压力挺大,如果客户不能提供其他的主机做DG,是否还有其他的方法呢? 
答: 这个方法我做熟。其他方法没搞过。

找个压力低的时候,可以在周末,3T,搭DG、赶数据,两天时间是够的。真正停主库也就一个小时左右。

将DG的cpu_count设低点,比如说,设为2。内存也小点。这样对主库CPU、内存影响不大,就是会占一些IO带宽,要从主库存储拷贝数据文件吗。
一般IO带宽都很大的,占不满。

你可以直接用RMAN的映像拷贝,从主库存储直接拷贝到备库存储,这样不需要Backup再Restore。拷贝3T数据应该还是很快的。 

方法七:
答:
只是更换磁盘阵列,可以在线做LVM磁盘镜像,不需要停机啊

ASM存储的话停机时间10分钟就够了把
如果是 raw lv  直接mirror 应该没有问题, 然你要有FC SAN  

问:
服务器系统HP-UN,可以在线做LV镜像吗 

答:
如果主机可以同时识别到2个阵列的LUN的话,没有任何问题。

问:
HP-UX的LV镜像具体要怎么做呢?,使用什么命令? 类似AIX的MIRRORVG吗
答:

从网上帮你找个操作步骤,本人多次进行过这种数据迁移,总数据应该超过100T,没有问题,放心做吧。

方案:采用新旧阵列逻辑卷镜象的方式完成数据迁移
  卷组vgdata使用lvextend –m 1命令迁移 

  # vgextend vgdata <CxTxDx>
  # lvextend –m 1 <source LV> < CxTxDx >
  在成功迁移后,可考虑拆除镜像关系,移区FC60的配置:
  # lvextend –m 0 <LV name> < CxTxDx >
  # vgreduce vgdata < CxTxDx >
  优点以及注意事项:
  1、  线操作,不用停业务,只是在拆除FC60修改双机时需要短暂停业务。
  2、  lvextend命令迁移数据之前,应保存所有的FC60上vg的配置信息。由于镜像关系,FC60与VA7400阵列可同时工作一段时间,一旦任何一个阵列发生故障,均可确保至少还有一个阵列完好。该方案可以在镜象完成后FC60与VA7400共同稳定运行一段时间后再进行FC60磁盘阵列的拆除以及修改双机配置中的锁盘信息,实施风险小。
  优缺点:
  1、  在线操作,受磁盘读取速度限制,操作时间较长
  FC60的 vgdata在最初创建LV时,所有LV均不能做stripe(一种数据平均分布于磁盘的技术),该技术对采用了分带技术的LV不能支持镜。

方法八:
在新盘阵上建dg备库,最后主备切换(我最初就属于这种想法)
最好另找一台主机,或者,如果原来并算太忙的话,也可以在一台主机上再建个DG,内存分的小一点,几百M就行。 

方法九:(我的一点想法)
不知道从应用的角度出发能不能想到点办法,如大表数据都是采用分区表的话,可先再建实例到新存储上,然后恢复最新一个月的分区和其它非分区表数据。这样再把旧存储去掉可以让系统继续运行,历史数据再慢慢的进行恢复,时间就不是问题了。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论2 条评论

myguangzhoumyguangzhou技术经理Uniwise
2012-09-12 13:19
不要以为只有AIX才有镜像功能啊
yuyuluyuyulu系统工程师自由职业
2012-07-26 10:56
如果所有LV都可进行镜像,我个人觉得方法七是最好的。这种方法和目前流行CDP数据保护的方法是一致的。推荐使用
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广