一、需求
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. JavaScript开发工具大全

    译者按: 最全的JavaScript开发工具列表,总有一款适合你! 原文: THE ULTIMATE LIST OF JAVASCRIPT TOOLS 译者: Fundebug 为了保证可读性,本文采 ...

  2. If you did this already, delete the swap file ".git/.MERGE_MSG.swp"

    出现这种情况一般是不正常退出造成的,找到隐藏文件后删除解决

  3. Spring之AOP的注解配置

    配置过程可以简单的分为3步: 1,业务类配置 在业务类前加入,将业务类交由Spring管理 @Component("s") 这个表示,这个业务类的Bean名字为 s . 2,将切点 ...

  4. 2018-11-23 手工翻译Vue.js源码:尝试重命名标识符与文本

    续前文: 手工翻译Vue.js源码第一步:14个文件重命名 对core/instance/索引中的变量, 方法进行重命名如下(题图): import { 混入初始化 } from './初始化' im ...

  5. phpcms调用指定文章内容模型的ID

    一.使用GET调用Phpcms V9指定id页面数据方法 {pc:get sql="SELECT * FROM cmsyou_news WHERE id='55'" cache=& ...

  6. C# 动态输出Dos命令执行结果

    本文以一个简单的小例子讲解如何将命令行信息实时的输出到文本框中.仅供学习分享使用,如有不足之处,还请指正. 概述 在C#程序开发过程中,有时需要运行其它的程序并获得输出的结果来进行进一步的处理.一般第 ...

  7. js导出Excel表格

    js导出Excel表格 直接上代码: 红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句.如果返回值中没有这样的格式,红色部分可以不写. ...

  8. Android使用Glide加载https链接的图片不显示的原因

    平时我们使用Glide加载http网址的图片的时候,图片可以正常加载出来,但是如果服务器端加上了安全认证,当加载自签名的https图片的时候就会报如下错误(证书路径验证异常). 我们如果不修改Glid ...

  9. Mysql 自定义函数示例

    创建定义函数的的基本语法如下 # DELIMITER是用来设置边界符的 DELIMITER // CREATE FUNCTION 函数名(形参列表) RETURNS 返回类型 begin # 函数体 ...

  10. macOS下MySQL 8.0 安装与配置教程

    一.前言 1.本教程主要内容 适用Homebrew安装MySQL MySQL 8.0 基础适用于配置 MySQL shell管理常用语法示例(用户.权限等) MySQL字符编码配置 MySQL远程访问 ...