环境:RHEL 6.4 + Oracle 11.2.0.4

需求:数据库存储由文件系统迁移到ASM

数据库存储迁移到ASM磁盘组

Reference

数据库存储迁移到ASM磁盘组

实验环境前期准备:
- 文件系统数据库模拟环境《[Oracle 11g静默安装简明版](http://www.cnblogs.com/jyzhao/p/5001782.html)》
- ASM实例和磁盘组模拟环境《[单机静默安装GI软件并创建ASM实例和ASM磁盘组](http://www.cnblogs.com/jyzhao/p/5012949.html)》

迁移前原数据库各文件存储信息查询如下:

--控制文件
select name from v$controlfile;
--数据文件
select name from v$datafile;
--临时文件
select name from v$tempfile;
--日志文件
select member from v$logfile;
--参数文件
show parameter pfile --查询结果如下
SQL> select name from v$controlfile; NAME
--------------------------------------------------------------------------------
/u02/oradata/jingyu/control01.ctl
/u02/app/oracle/fast_recovery_area/jingyu/control02.ctl SQL> select name from v$datafile; NAME
--------------------------------------------------------------------------------
/u02/oradata/jingyu/system01.dbf
/u02/oradata/jingyu/sysaux01.dbf
/u02/oradata/jingyu/undotbs01.dbf
/u02/oradata/jingyu/users01.dbf SQL> select name from v$tempfile; NAME
--------------------------------------------------------------------------------
/u02/oradata/jingyu/temp01.dbf SQL> select member from v$logfile; MEMBER
--------------------------------------------------------------------------------
/u02/oradata/jingyu/redo03.log
/u02/oradata/jingyu/redo02.log
/u02/oradata/jingyu/redo01.log SQL> show parameter pfile NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u02/app/oracle/product/11.2.0
/dbhome_1/dbs/spfilejingyu.ora

1.1 编辑参数文件指定新的控制文件路径

```
SQL> create pfile='/tmp/pfile.ora' from spfile;
SQL> shutdown immediate
-- 修改controlfile参数值
$ vi /tmp/pfile.ora
controlfile='+DATA1/control01.ctl'
```

1.2 启动数据库到nomount模式

```
SQL> startup nomount pfile='/tmp/pfile.ora'
```

1.3 RMAN恢复控制文件

注意Oracle用户需要有读写ASM磁盘的权限

RMAN> restore controlfile from '/u02/oradata/jingyu/control01.ctl';

1.4 启动数据库到mount模式

```
RMAN> alter database mount;
```

1.5 RMAN Copy 数据文件

```
RMAN> backup as copy database format '+DATA1';
```

1.6 RMAN Switch 数据文件

```
RMAN> switch database to copy;
```

1.7 RMAN Switch 临时文件,并打开数据库

```
RMAN> run {
set newname for tempfile 1 to '+DATA1';
switch tempfile all;
}

RMAN> ALTER DATABASE OPEN;

<h2 id="1.8">1.8 迁移重做日志文件</h2>

set linesize 200

col member for a60

SQL> SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#;

SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA1' TO GROUP 1;

SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA1' TO GROUP 2;

SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA1' TO GROUP 3;

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE MEMBER '/u02/oradata/jingyu/redo01.log';

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE MEMBER '/u02/oradata/jingyu/redo02.log';

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE MEMBER '/u02/oradata/jingyu/redo03.log';

SQL> ALTER SYSTEM CHECKPOINT;

SQL> SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#;

<h2 id="1.9">1.9 服务器参数文件,并重启数据库</h2>

-- 在ASM磁盘组中创建服务器参数文件

SQL> create spfile='+DATA1' from pfile='/tmp/pfile.ora';

-- 正常关闭数据库

SQL> shutdown immediate

-- 删除$ORACLE_HOME/dbs/spfilejingyu.ora

$ rm $ORACLE_HOME/dbs/spfilejingyu.ora

-- 建立$ORACLE_HOME/dbs/initjingyu.ora,编辑内容指定ASM磁盘组中的服务器参数文件。

$ vi initjingyu.ora

spfile='+DATA1/JINGYU/PARAMETERFILE/spfile.266.897474951'

--启动数据库(会自动找到参数文件进而转到ASM磁盘组中的服务器参数文件)

SQL> startup

<h2 id="1.10">1.10 验证各文件存储位置</h2>

select name from v$datafile union all

select name from v$tempfile union all

select member from v$logfile union all

select name from v$controlfile;

show parameter pfile

结果如下:

SQL> select name from v$datafile union all

2 select name from v$tempfile union all

3 select member from v$logfile union all

4 select name from v$controlfile;

NAME

+DATA1/jingyu/datafile/system.257.897474123

+DATA1/jingyu/datafile/sysaux.258.897474149

+DATA1/jingyu/datafile/undotbs1.259.897474165

+DATA1/jingyu/datafile/users.261.897474169

+DATA1/jingyu/tempfile/temp.262.897474267

+DATA1/jingyu/onlinelog/group_1.263.897474349

+DATA1/jingyu/onlinelog/group_2.264.897474359

+DATA1/jingyu/onlinelog/group_3.265.897474363

+DATA1/control01.ctl

9 rows selected.

Elapsed: 00:00:00.02

SQL> show parameter pfile

NAME TYPE VALUE


spfile string +DATA1/jingyu/parameterfile/sp

file.266.897474951

至此,数据库存储已经成功由文件系统全部迁移到ASM。
<h1 id="2">Reference</h1>
- Steps To Migrate/Move a Database From Non-ASM to ASM And Vice-Versa (文档 ID 252219.1)

Oracle从文件系统迁移到ASM存储的更多相关文章

  1. 将数据库从普通文件系统迁移到ASM中

    数据库存储的是普通的文件系统,现在将数据库迁移到ASM存储中. 准备ASM环境: [oracle@kel ~]$ asmcmd ASMCMD> ls ASM/ KEL/ ASMCMD> 在 ...

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

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

  3. 如何快速将Linux文件系统迁移到Azure存储

    概述 前一段时间一直在给一个客户将原先搭载在Linux(客户使用的是CentOS 7.0)上的NFS快速迁移到Azure存储上,并且为了保证数据完整性还需要另开一个存储做冷备,架构图如下: 通过Cli ...

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

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

  5. 使用RMAN迁移文件系统数据库到ASM

    --================================== -- 使用RMAN迁移文件系统数据库到ASM --================================== 在实际 ...

  6. Oracle DB 使用RMAN将数据库移植到ASM存储区

    1. 完全关闭数据库. 2. 关闭数据库并修改服务器参数文件,以使用Oracle Managed Files (OMF). 3. 编辑并执行以下RMAN 脚本: STARTUP NOMOUNT; RE ...

  7. Oracle冷备迁移脚本(文件系统)

    Oracle冷备迁移脚本(文件系统) 两个脚本: 配置文件生成脚本dbinfo.sh 网络拷贝到目标服务器的脚本cpdb16.sh 1. 配置文件生成脚本 #!/bin/bash #Usage: cr ...

  8. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  9. [置顶] Oracle 11g ASM:如何在 ASMCMD 命令行工具中创建 Oracle ACFS 文件系统

    实验环境:Oracle 11g R2 RAC (11.2.0.3.5)                Oracle Enterprise Linux 5.6 x86 1.创建 ASM 磁盘组 在两节点 ...

随机推荐

  1. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  2. 基于netty http协议栈的轻量级流程控制组件的实现

    今儿个是冬至,所谓“冬大过年”,公司也应景五点钟就放大伙儿回家吃饺子喝羊肉汤了,而我本着极高的职业素养依然坚持留在公司(实则因为没饺子吃没羊肉汤喝,只能呆公司吃食堂……).趁着这一个多小时的时间,想跟 ...

  3. netty5 HTTP协议栈浅析与实践

      一.说在前面的话 前段时间,工作上需要做一个针对视频质量的统计分析系统,各端(PC端.移动端和 WEB端)将视频质量数据放在一个 HTTP 请求中上报到服务器,服务器对数据进行解析.分拣后从不同的 ...

  4. PHP类和对象之重载

    PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的.属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值.读取.判断属性是否设置.销毁属性. ...

  5. Android开发学习—— Fragment

    #Fragment* 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容* 生命周期方法跟Activity一致,可以理解把其为就是一个Activity* 定义布局文件作 ...

  6. maven打包插件:appassembler

    1.打包成bat 打包命令:mvn clean package appassembler:assemble <plugin> <groupId>org.codehaus.moj ...

  7. SQL面试笔试经典题(Part 1)

    本文是在Cat Qi的原贴的基础之上,经本人逐题分别在MySql数据库中实现的笔记,持续更新... 参考原贴:http://www.cnblogs.com/qixuejia/p/3637735.htm ...

  8. slf4j

    Simple Logging Facade for Java (SLF4J) slf4j可以看成是对各个日志框架的一种抽象,它提供了一套通用的日志使用接口. 下面是slf4j的几个版本比较: 1.6. ...

  9. 洛谷P1547 Out of Hay

    题目背景 奶牛爱干草 题目描述 Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发.农场之间总共有M (1 <= M <= 10,0 ...

  10. .Net中的AOP读书笔记系列之AOP介绍

    返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注 ...