一、需求
Oracle 11gR1 RAC存储计划更换,数据库版本为11.1.0.7,无停机维护窗口。

二、环境准备
1、主机环境、OS环境
2、安装11.1.0.6.0版Clusterware(linux.x64_11gR1_clusterware.zip)
3、安装11.1.0.6.0版RDBMS SOFTWARE(linux.x64_11gR1_database_1013.zip)
4、升级到11.1.0.7.0版本(分别升级Clusterware和RDBMS)(p6890831_111070_Linux-x86-64.zip)
5、APPLY 3个PSU,UPDATE到11.1.0.7.14
p14739378_111070_Linux-x86-64.zip、p11724936_111070_Linux-x86-64.zip、p11724953_111070_Linux-x86-64.zip、p6880880_111000_Linux-x86-64.zip(Opatch)
6、创建监听器、创建库
SQL> select * from dba_registry_history;
# crs_stat -t

三、存储配置
因无停机时间,必须通过滚动方式,否则修改存储可能导致节点重启
1、节点1
1)先停节点1实例
# srvctl stop instance -d ora11g -i ora11g1
# srvctl stop asm -n rac1
# crs_stat -t
2)连接新存储,重启iscsi识别存储设备
# service iscsi restart
3)fdisk格式化新增存储,并修改rawdevices文件让系统启动时挂载裸设备
# vi /etc/sysconfig/rawdevices
--添加如下:
/dev/raw/raw1 /dev/sdb1
.....
/dev/raw/raw5 /dev/sdf1
4)裸设备映射
# vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
......
ACTION=="add", KERNEL=="/dev/sdf1",RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="81",RUN+="/bin/raw /dev/raw/raw5 %M %m"
KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="640"
5)重启udev
# start_udev
6)重启rawdevices服务
# service rawdevices restart
7)查看raw设备
# ls -l /dev/raw
8)创建ASM磁盘
# /etc/init.d/oracleasm createdisk newasmdsk /dev/sdo1
# oracleasm listdisks
9)启动监听、实例
# srvctl start listener -n rac1
# srvctl start asm -n rac1
# srvctl start instance -d ora11g -i ora11g1
# crs_stat -t

2、节点2
与节点1操作基本相同,仅因节点1已创建ASM磁盘,则节点2在节点1的步骤8)扫描即可
# oracleasm scandisks
# oracleasm listdisks

通过如上操作,成功将新的存储连接并识别到划分好的lun,这期间是采用滚动方式的,所以业务不会中断。

四、OCR迁移
1、查看ocr存储位置以及其他信息
# ocrcheck
或查看/etc/oracle/ocr.loc
/dev/raw/raw10、/dev/raw/raw11位ocr盘,且/dev/raw/raw10上是ocr的镜像
2、确保crs健康运行
# crsctl check crs
3、通过ocrconfig命令可以在线迁移ocr
# ocrconfig -replace ocr /dev/raw/raw1
# ocrconfig -replace ocrmirror /dev/raw/raw2
注:一个是ocr,另一个是ocrmirror,分别对应/etc/oracle/ocr.loc的ocrconfig_loc和ocrmirrorconfig_loc所指的位置
4、检查是否迁移成功
# ocrcheck
扩展:Oracle 11g R2版本,ocrconfig命令增强了一些,更改ocr位置的命令也有所改变,如下:
ocrconfig -replace <current filename> -replacement <new filename>

五、迁移表决盘
1、查看表决磁盘当前存放路径
# crsctl query css votedisk
2、11g R2之前版本,只能采用添加删除的方式进行迁移。首先删除一个,因为当前有3个存放路径,所以删除一个并不产生影响
# crsctl delete css votedisk /dev/raw/raw9
# crsctl add css votedisk /dev/raw/raw5
# crsctl delete css votedisk /dev/raw/raw8
# crsctl add css votedisk /dev/raw/raw4
注意:当试图删除表决磁盘首个存放路径的时候报错:
# crsctl delete css votedisk /dev/raw/raw7
Failure 8 with Cluster Synchronization Services while deleting voting disk.
添加force选项强制删除
# crsctl delete css votedisk /dev/raw/raw7 -force
# crsctl query css votedisk
# crsctl add css votedisk /dev/raw/raw3
3、查看表决盘是否迁移成功
# crsctl query css votedisk
扩展:Oracle 11g R2中crsctl命令增强很多,其中针对votedisk的操作也增多了replace功能:
crsctl replace – replaces the location of voting files
可见,在这个版本上DBA可以在线替换存储位置。

六、ASM存储迁移
1、登录asm实例,查看当前磁盘组信息
$ export ORACLE_SID=+ASM1
$ sqlplus / as sysasm
SQL> select NAME, ALLOCATION_UNIT_SIZE, STATE, TOTAL_MB, FREE_MB USABLE_FILE_MB from gv$asm_diskgroup;
SQL> select failgroup, name from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATADG');
2、为DATADG磁盘中添加新的ASM磁盘
SQL> alter diskgroup DATADG add disk 'ORCL:NEWASMDSK' name new_asmdsk REBALANCE POWER 10;
注:添加多个asm磁盘方式:alter diskgroup DATADG add disk 'ORCL:ASM1', 'ORCL:ASM2', 'ORCL:ASM3' rebalance power n;
3、查看asm磁盘rebalance进度,完成后v$asm_operation记录将消失
SQL> select * from v$asm_operation;
4、添加ASM磁盘后的状态
SQL> select name, allocation_unit_size, state, total_mb, free_mb usable_file_mb from gv$asm_diskgroup;
SQL> select failgroup, name, path from v$asm_disk where group_number=(select group_number from v$asm_diskgroup where name = 'DATADG');
5、删除旧的ASM磁盘
SQL> alter diskgroup DATADG drop disk OLDASMDSK rebalance power 5;
SQL> select * from v$asm_operation;
6、检查数据库状态以及数据情况
至此,Oracle数据库已全部使用新存储了,可以在OS级别上卸载旧存储了。

七、卸载旧存储
同样采用滚动方式卸载旧磁盘。
1、节点1
# srvctl stop instance -d ora11g -i ora11g1
# srvctl stop asm -n rac1
# crs_stat -t
# oracleasm listdisks
# /etc/init.d/oracleasm deletedisk OLDASMDSK
修改/etc/sysconfig/rawdevices和/etc/udev/rules.d/60-raw.rules,清除旧磁盘信息,并重启udev和rawdevices服务。
# crs_stat -t
# srvctl start listener -n rac1
# srvctl start asm -n rac1
# srvctl start instance -d ora11g -i ora11g1
# crs_stat -t

2、节点2
# srvctl stop instance -d ora11g -i ora11g2
# srvctl stop asm -n rac2
# crs_stat -t
# oracleasm scandisks
# oracleasm listdisks
修改/etc/sysconfig/rawdevices和/etc/udev/rules.d/60-raw.rules,清除旧磁盘信息,并重启udev和rawdevices服务。
# crs_stat -t
# srvctl start listener -n rac2
# srvctl start asm -n rac2
# srvctl start instance -d ora11g -i ora11g2
# crs_stat -t

注:确认系统可用性(生产环境下可能不允许),手动重启OS
[root@rac1 ~]# srvctl stop database -d ora11g
[root@rac1 ~]# srvctl stop asm -n rac1
[root@rac1 ~]# srvctl stop asm -n rac2
[root@rac1 ~]# srvctl stop nodeapps -n rac1
[root@rac1 ~]# srvctl stop nodeapps -n rac2
[root@rac1 ~]# crsctl stop crs
[root@rac1 ~]# shutdown -r now

[root@rac2 ~]# crsctl stop crs
[root@rac2 ~]# shutdown -r now
重启之后:
# raw -qa
# ocrcheck
# crsctl query css votedisk
# 检查数据文件与数据状态

Oracle 11gR1 RAC存储迁移方案的更多相关文章

  1. Oracle 11g R2 RAC with ASM存储迁移--Rman copy&ASM Rebalance(一)

    ASM GROUP-Rman copy迁移 0x00--环境介绍 VMware版本:VMware12pro 主机操作系统:RHEL6.5_64 共享存储使用VMWARE创建共享磁盘文件 数据库版本:O ...

  2. Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中

    在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问.而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找 ...

  3. Oracle 11G RAC For ASM 利用RMAN COPY进行存储迁移

    转载请注明出处 一.需求背景 客户数据库存储空间接近存满,需购置一台新的存储,进行数据迁移,客户允许少量停机时间. 二.实施方法讨论 利用ASM rebalance 进行迁移 可以实现0宕机进行迁移, ...

  4. Oracle - 通过dg,完成单实例到rac的迁移

    一.概述 本文将介绍如何给单实例搭建一个rac dg,以及如何对其进行角色转换,完成从单实例到rac的迁移.预先具备的知识(rac搭建,单实例-单实例dg搭建) 二.实验环境介绍 主库(已有数据库实例 ...

  5. Oracle存储过程向Hadoop迁移中的问题及方案

    本文记录Oracle存储过程向Hadoop迁移中遇到的问题及响应的解决办法,作为初学者,文中内容有不妥之处欢迎指正, 1.不支持IN中的子查询,Solution,使用INNER JOIN将子查询操作添 ...

  6. 【转】Oracle 10g RAC TAF

    本人转自:http://www.cnblogs.com/future2012lg/archive/2013/10/12/3365978.html Oracle RAC 同一时候具备HA(High Av ...

  7. Oracle 11g RAC 环境下单实例非缺省监听及端口配置

    如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...

  8. [转帖]Oracle 11G RAC For Windows 2008 R2部署手册

    Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次) https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 ...

  9. Oracle 11gR2 RAC 新特性说明

    最近接触了一下Oracle 11g R2 的RAC,发现变化很大. 所以在自己动手做实验之前还是先研究下它的新特性比较好. 一.    官网介绍 先看一下Oracle 的官网文档里对RAC 新特性的一 ...

随机推荐

  1. 史上最全python面试题详解(三)(附带详细答案(关注、持续更新))

    38.面向对象深度优先和广度优先是什么? 39.面向对象中super的作用? 40.是否使用过functools中的函数?其作用是什么? Python自带的 functools 模块提供了一些常用的高 ...

  2. CSS网页中导入特殊字体@font-face属性详解

    @font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中. 语法规则 首先我们一起来看看@font-face的语法规则: @font-face { font-fami ...

  3. MongoDB日志文件过大的解决方法

    MongoDB的日志文件在设置 logappend=true 的情况下,会不断向同一日志文件追加的,时间长了,自然变得非常大. 解决如下:(特别注意:启动的时候必须是--logpath指定了log路径 ...

  4. Android为TV端助力 转载弩的博客

    Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息. Android.mk将是GNU Makefile的一部分,且将被Build System解析 ...

  5. [Objective-C]用Block实现链式编程

    看这篇博客时最快让你上手ReactiveCocoa之基础篇看到作者介绍链式编程那一块,发现自己的钻研精神不足.想想自己使用链式编程也有段时间了,对,就是 Masonry 库.自己一直享受点语法带来的效 ...

  6. 设计模式—桥接模式的C++实现

    这是Bwar在2009年写的设计模式C++实现,代码均可编译可运行,一直存在自己的电脑里,曾经在团队技术分享中分享过,现搬到线上来. 1. 装饰模式简述 1.1 目的 将抽象部分与它的实现部分分离,使 ...

  7. MapReduce ----倒排索引

    分别建立三个文件: file1txt file2.txt file3.txt 文件内容分别是: MapReduce is simple 和 MapReduce is powerful is simpl ...

  8. C#核心基础--浅谈类和对象的概念

    浅谈类和对象的概念 一.什么是类?什么是对象? 学习一门面向对象编程语言,我们必须得知道什么是类?什么是对象? 类(Class)实际上是对某种类型的对象定义变量和方法的原型.它表示对现实生活中一类具有 ...

  9. Markdonw基本语法学习

    Markdonw基本语法 二级标题 三级标题 ----ctrl+r 粗体 ctrl+b 斜体 ctr+i #include<stdio.h> void main() { printf(&q ...

  10. 自动化测试基础篇--Selenium浏览器操作

    摘自https://www.cnblogs.com/sanzangTst/p/7462056.html  学习 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法 ...