转载请注明出处


一、需求背景

客户数据库存储空间接近存满,需购置一台新的存储,进行数据迁移,客户允许少量停机时间。

二、实施方法讨论

  • 利用ASM rebalance 进行迁移

    可以实现0宕机进行迁移,过程简单,但迁移时间周期太长。

  • 利用rman copy进行迁移

    需要少量停机时间,迁移时间短,过程复杂。

结合客户的需求,最终采用的是rman copy进行存储迁移。

三、实施项目步骤

  • 添加新ASM磁盘
  • 备份
  • 数据迁移
  • 删除原存储

3.1 添加新ASM盘

3.1.1 查询原ASM磁盘信息

运行以下sql命令

SET PAGES 1000
SET LINES 1000
COL PATH FOR A30
SELECT A.GROUP_NUMBER,
B.NAME ASM_NAME,
A.NAME DISK_NAME,
A.FAILGROUP,
A.PATH,
B.TYPE,
A.TOTAL_MB,
A.FREE_MB
FROM V$ASM_DISK A, V$ASM_DISKGROUP B
WHERE A.GROUP_NUMBER = B.GROUP_NUMBER;

3.1.2 划分磁盘

存储工程师安照需求划分存储,并采用多路径软件。

略

3.1.3 绑定ASM 盘

根据不同的操作系统,使用不同的方法进行绑定。

绑定过程略

3.2 备份

备份包括ocr、votedisk

3.2.1 备份ocr与votedisk

 # ocrconfig -manualbackup    --手工备份 (需root用户)

 # ocrconfig -showbackup      --查看备份

 # ocrconfig -restore <filename>  --恢复ocr

11G 中只需只需上面的命令,就能同时备份ocr与vote

3.3 数据迁移

3.3.1 创建ASM Diskgroup

利用asmca命令创建以下diskgroup:
ocrdg --存放ocr与vote
newdata --存放数据文件

3.3.2 迁移ocr,vote

添加ocr信息至ocrdg上(root用户)
# ocrconfig -add +OCRDG 检查ocr
# ocrcheck 查看votedisk信息(grid用户)
$ crsctl query css votedisk 迁移votedisk(grid用户)
$ crsctl replace votedisk +OCRDG

3.3.3 创建asm实例spfile至ocrdg上

SQL> create pfile='/home/grid/asmspfile.ora' from spfile;
SQL> create spfile='+OCRDG' from pfile='/home/grid/asmspfile.ora';

3.3.4 迁移数据库文件至新磁盘上

3.3.4.1 创建数据库spfile至newdata上

SQL> create pfile='/home/oracle/orcl_pfile.ora' from spfile='+DATADG/orcl/spfileorcl.ora';
SQL> create spfile='+NEWDATA' from pfile='/home/oracle/orcl_pfile.ora';

3.3.4.2 查询数据文件信息

 SQL> select ''''||file_name||'''' from dba_data_files; 

3.3.4.3 利用rman copy备份数据库

$ vi rman_copy.sh

----------

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
rman target / nocatalog log=/tmp/rman_copy.log<<EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
copy
datafile '+DATADG/orcl/datafile/system.259.874699969' to '+NEWDATA',
datafile '+DATADG/orcl/datafile/sysaux.260.874699995' to '+NEWDATA',
datafile '+DATADG/orcl/datafile/undotbs1.261.874700013' to '+NEWDATA',
datafile '+DATADG/orcl/datafile/undotbs2.263.874700041' to '+NEWDATA',
datafile '+DATADG/orcl/datafile/users.264.874700049' to '+NEWDATA';
}
EOF rman target / nocatalog log=/tmp/rman_copy.log append <<EOF
copy current controlfile to '+NEWDATA';
EOF --赋予执行权限
$ chmod +x rman_copy.sh

3.3.4.4 拷贝控制文件,并确认控制文件新的存放位置

ASMCD> cd +newdata/orcl/CONTROLFILE
ASMCMD> ls
Backup.261.960651757
ASMCMD> cp Backup.261.960651757 control01.dbf
ASMCMD> cp Backup.261.960651757 control02.dbf

3.3.4.5 修改spfile参数

#control_files:
SQL> alter system set control_files='+newdata/orcl/CONTROLFILE/control01.dbf','+newdata/orcl/CONTROLFILE/control02.dbf' scope=spfile; #db_create_file_dest
SQL> alter system set db_create_file_dest='+NEWDATA' SCOPE=SPFILE; #archive:
SQL> alter system set log_archive_dest_1='LOCATION=+NEWDATA'

3.3.4.6 利用集群命令,更改数据库状态(oracle用户)

停止数据库
$ srvctl stop database -d orcl 启动至mount状态
$ srvctl start database -d orcl -o mount SQL> show parameter control_files

3.3.4.7 rename数据库

数据文件
SQL> alter database rename file '+DATADG/orcl/datafile/sysaux.260.874699995' to '+newdata/orcl/datafile/SYSAUX.258.960651703';
SQL> alter database rename file '+DATADG/orcl/datafile/system.259.874699969' to '+newdata/orcl/datafile/SYSTEM.256.960651621';
SQL> alter database rename file '+DATADG/orcl/datafile/undotbs1.261.874700013' to '+newdata/orcl/datafile/UNDOTBS1.257.960651621';
SQL> alter database rename file '+DATADG/orcl/datafile/undotbs2.263.874700041' to '+newdata/orcl/datafile/UNDOTBS2.259.960651707';
SQL> alter database rename file '+DATADG/orcl/datafile/users.264.874700049' to '+newdata/orcl/datafile/USERS.260.960651735'; temp文件
SQL> alter database rename file '+DATADG/orcl/tempfile/temp.262.874700019' to '+newdata';

3.3.4.8 recover 数据库

$ rman target /
RMAN> recover database;

3.3.4.9 以open resetlogs方式打开数据库

SQL> alter database open resetlogs;

3.3.4.10 修改redo日志

--增加redo日志组
alter database add logfile thread 1 group 5 '+Newdata' size 50m;
alter database add logfile thread 1 group 6 '+Newdata' size 50m;
alter database add logfile thread 2 group 7 '+Newdata' size 50m;
alter database add logfile thread 2 group 8 '+Newdata' size 50m; --删除redo日志组
select GROUP#,status from v$log; 当status状态为inactive和unused状态时可以删除。 alter database drop logfile group 4;
alter database drop logfile group 2;
alter database drop logfile group 1;
alter database drop logfile group 3;

3.3.4.11 集群修改信息

$ srvctl modify database -d orcl -n orcl -p +NEWDATA/orcl/spfileorcl.ora

$ srvctl modify database -d orcl -n orcl -a NEWDATA

3.3.4.12 以集群方式启动数据库

$ srvctl stop database -d orcl
$ srvctl start database -d orcl

3.4 删除原存储

--删除原OCR,vote磁盘组
# ocrconfig -delete +CRSDG
# ocrcheck
确认信息
# crsctl query css votedisk --dismount disk(每个节点)
$ sqlplus / as sysasm
SQL> ALTER DISKGROUP CRSDG DISMOUNT;
SQL> alter diskgroup DATADG dismount; --drop disk(任一节点执行)
$ sqlplus / as sysasm
SQL> drop diskgroup CRSDG force including contents;
SQL> drop diskgroup DATADG force including contents; --delete resource(任一节点执行)
$ crsctl delete resource ora.NEWOCR.dg
$ crsctl delete resource ora.DATADG.dg

Oracle 11G RAC For ASM 利用RMAN COPY进行存储迁移的更多相关文章

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

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

  2. Oracle 11g RAC运维总结

    转至:https://blog.csdn.net/qq_41944882/article/details/103560879 1 术语解释1.1 高可用(HA)什么是高可用?顾名思义我们能轻松地理解是 ...

  3. Oracle 11g RAC环境下Private IP修改方法及异常处理

    Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 ...

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

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

  5. Oracle 11g RAC 应用补丁简明版

    之前总结过<Oracle 11.2.0.4 RAC安装最新PSU补丁>, 这次整理为简明版,忽略一切输出的显示,引入一些官方的说明,增加OJVM PSU的补丁应用. 环境:RHEL6.5 ...

  6. oracle 11g RAC安装节点二执行结果错误CRS-5005: IP Address: 192.168.1.24 is already in use in the network

    [root@testdb11b ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInvento ...

  7. Oracle 11g RAC 修改各类IP地址

    Oracle 11g RAC 修改各类IP地址 首先,我们都知道Oracle 11g RAC中的IP主要有:Public IP.VIP.SCAN VIP.Private IP这几种. 一般这类改IP地 ...

  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 11g rac 的ip地址

    本文转载自:细说oracle 11g rac 的ip地址 http://blog.sina.com.cn/s/blog_4fe6d4250102v5fa.html 以前搭建oracle rac的时候( ...

随机推荐

  1. 蒟蒻ACMer回忆录 · 一段弱校ACM的奋斗史

    三年半的ACM生涯终于迎来了终点,退役之时,感慨万分,故写此文以纪念逝去的时光,那些为ACM拼搏的日子,那段弱校ACM的奋斗史. 三年半的ACM生涯,窝见证了CUMT从打铁到铜牌的突破,又见证了从铜牌 ...

  2. 使用ansible对远程主机上的ssh公钥进行批量分发

    使用ansible对远程主机上的ssh公钥进行批量分发或者是删除修改操作 ansible内置了一个authorized_key模块,这个模块很好用,我们使用这个模块可以对远程 主机上的ssh公钥进行批 ...

  3. 2017年“嘉杰信息杯” 中国大学生程序设计竞赛全国邀请赛 Highway

    Highway Accepted : 122   Submit : 393 Time Limit : 4000 MS   Memory Limit : 65536 KB Highway In ICPC ...

  4. Math Show CodeForces - 846B

    题目 题意: 有n个任务,每个任务有k个子任务,有m的时间来完成任务.每个任务的第i个子任务需要时间都是ti.完成一个子任务获得一分,完成一个大任务的所有子任务额外得一分.问如何在时间不超过m的情况下 ...

  5. linux的目录结构详细介绍

    linux的目录结构详细介绍 1. /目录(根目录) 2./ect/目录 特定主机系统范围内的配置文件. 3./usr/目录 默认软件都会存于该目录下.用于存储只读用户数据的第二层次:包含绝大多数的用 ...

  6. 题解报告:hdu 1969 Pie(二分)

    Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no ...

  7. Bootstrap基本理论

    Bootstrap,来自 Twitter,是目前最受欢迎的前段框架.Bootstrap是基于HTML.CSS.JAVASCRIPT的,它简洁灵活,使得Web开发更加快捷 Bootstrap特点:优雅, ...

  8. Java基础--java简介

    1.Java的起源: Oak  -->  Java 2.Java的发展 Java1.0 Java2 JavaSE:Java平台标准版 JavaME:微型版 JavaEE:企业版 Sun公司 or ...

  9. APM系列-国外新兴厂商New Relic vs. AppDynamics

    前: New Relic的上市使得IT和资本界开始重新重视APM,当然跟传统APM相比,New Relic还是有相当的创新,另外还有一点是目前的创业潮导致的企业级需求增大. In recent yea ...

  10. Nagios的服务器监控

    第一部分是主机外监控,比如:主机是否存活,WEB服务是否正常,MySQL服务是否正常等内容,再主机外通过访问其端口即可得知.这些监控命令再安装nagios-plugins-1.4.13.tar.gz时 ...