Oracle从文件系统迁移到ASM存储
环境:RHEL 6.4 + Oracle 11.2.0.4
需求:数据库存储由文件系统迁移到ASM
- 1.1 编辑参数文件指定新的控制文件路径
- 1.2 启动数据库到nomount模式
- 1.3 RMAN恢复控制文件
- 1.4 启动数据库到mount模式
- 1.5 RMAN Copy 数据文件
- 1.6 RMAN Switch 数据文件
- 1.7 RMAN Switch 临时文件,并打开数据库
- 1.8 迁移重做日志文件
- 1.9 服务器参数文件,并重启数据库
- 1.10 验证各文件存储位置
数据库存储迁移到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存储的更多相关文章
- 将数据库从普通文件系统迁移到ASM中
数据库存储的是普通的文件系统,现在将数据库迁移到ASM存储中. 准备ASM环境: [oracle@kel ~]$ asmcmd ASMCMD> ls ASM/ KEL/ ASMCMD> 在 ...
- Oracle 11g R2 RAC with ASM存储迁移--Rman copy&ASM Rebalance(一)
ASM GROUP-Rman copy迁移 0x00--环境介绍 VMware版本:VMware12pro 主机操作系统:RHEL6.5_64 共享存储使用VMWARE创建共享磁盘文件 数据库版本:O ...
- 如何快速将Linux文件系统迁移到Azure存储
概述 前一段时间一直在给一个客户将原先搭载在Linux(客户使用的是CentOS 7.0)上的NFS快速迁移到Azure存储上,并且为了保证数据完整性还需要另开一个存储做冷备,架构图如下: 通过Cli ...
- Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中
在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问.而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找 ...
- 使用RMAN迁移文件系统数据库到ASM
--================================== -- 使用RMAN迁移文件系统数据库到ASM --================================== 在实际 ...
- Oracle DB 使用RMAN将数据库移植到ASM存储区
1. 完全关闭数据库. 2. 关闭数据库并修改服务器参数文件,以使用Oracle Managed Files (OMF). 3. 编辑并执行以下RMAN 脚本: STARTUP NOMOUNT; RE ...
- Oracle冷备迁移脚本(文件系统)
Oracle冷备迁移脚本(文件系统) 两个脚本: 配置文件生成脚本dbinfo.sh 网络拷贝到目标服务器的脚本cpdb16.sh 1. 配置文件生成脚本 #!/bin/bash #Usage: cr ...
- Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考
操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...
- [置顶] Oracle 11g ASM:如何在 ASMCMD 命令行工具中创建 Oracle ACFS 文件系统
实验环境:Oracle 11g R2 RAC (11.2.0.3.5) Oracle Enterprise Linux 5.6 x86 1.创建 ASM 磁盘组 在两节点 ...
随机推荐
- 用CIL写程序:你好,沃尔德
前言: 项目紧赶慢赶总算在年前有了一些成绩,所以沉寂了几周之后,小匹夫也终于有时间写点东西了.以前匹夫写过一篇文章,对CIL做了一个简单地介绍,不过不知道各位看官看的是否过瘾,至少小匹夫觉得很不过瘾. ...
- Windows平台分布式架构实践 - 负载均衡
概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...
- RxJS + Redux + React = Amazing!(译二)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- c#语言规范
0x00 分类 C#语言规范主要有两个来源,即我们熟知的ECMA规范和微软的规范.尽管C#的ECMA规范已经前后修订4次,但其内容仅仅到C# 2.0为止.所以慕容为了方便自己和各位方便查询,在此将常见 ...
- 非技术1-学期总结&ending 2016
好久好久没写博客了,感觉动力都不足了--12月只发了一篇博客,好惭愧-- 今天是2016年最后一天,怎么能不写点东西呢!! 学期总结 大学中最关键一年的第一个学期,共4个月.前20天在学网络方面的,当 ...
- Oracle:一个用户操作多个表空间中表的问题(转)
原文地址:http://blog.csdn.net/shmiloy001/article/details/6287317 首先,授权给指定用户. 一个用户的默认表空间只能有一个,但是你可以试下用下面的 ...
- NodeJS使用mysql
1.环境准备 手动添加数据库依赖: 在package.json的dependencies中新增, "mysql" : "latest", { "nam ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- XSS 前端防火墙 —— 整装待发
到目前为止,我们把能用前端脚本防御 XSS 的方案都列举了一遍. 尽管看起来似乎很复杂累赘,不过那些是理论探讨而已,在实际中未必要都实现.我们的目标只是为了预警,能发现问题就行,并非要做到滴水不漏的程 ...