Rename Oracle Managed File (OMF) datafiles in ASM(ZT)
Recently I was asked to rename a tablespace. The environment was Oracle version 11.2.0.3 (both database and clusterware/ASM).
This is the test case I build to understand how that works:
(I couldn’t find a clean, straightforward description how to do that, which is why I blog it here)
I created an empty tablespace ‘test1′ for test purposes:
SYS@v11203 AS SYSDBA> create bigfile tablespace test1 datafile size 10m;
(I use bigfile tablespaces only with ASM. Adding datafiles is such a labour intensive work, bigfile tablespaces elimenate that, when auto extent is correctly set)
A tablespace can be easily renamed with the alter tablespace rename command:
SYS@v11203 AS SYSDBA> alter tablespace test1 rename to test2;
This changes the Oracle data dictionary to reflect a new name. This doesn’t touch the underlying datafile.
To rename the datafile in ASM, offline the tablespace, copy the datafile using RMAN, rename the datafile in the Oracle data dictionary, and online the tablespace again:
Offline the tablespace:
SYS@v11203 AS SYSDBA> alter tablespace test2 offline;
Copy the datafile using RMAN:
RMAN> copy datafile '+DATA/v11203/datafile/test1.268.789380535' to '+DATA'; Starting backup at 23-JUL-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=28 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=+DATA/v11203/datafile/test1.268.789380535
output file name=+DATA/v11203/datafile/test2.269.789380645 tag=TAG20120723T082404 RECID=1 STAMP=789380644
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 23-JUL-12
Rename the datafile in the Oracle data dictionary:
SYS@v11203 AS SYSDBA> alter database rename file '+DATA/v11203/datafile/test1.268.789380535' to '+DATA/v11203/datafile/test2.269.789380645';
Please mind the ‘old’ filename is at ‘input datafile’, and the ‘new’ filename is at ‘output file name’ with the RMAN output.
Next, and finally: online the tablespace:
SYS@v11203 AS SYSDBA> alter tablespace test2 online;
(the old datafile is gone)
Update:
The RMAN copy command and data dictionary update could also be done with RMAN backup as copy and switch datafile:
Status of the database after renaming:
SYS@v11203 AS SYSDBA> select file_id, file_name, tablespace_name from dba_data_files;
Offline the tablespace (my database is in NOARCHIVELOG, online backup (as copy) can only be done in ARCHIVELOG, when doing so, the datafile needs recovery):
RMAN> sql "alter tablespace test2 offline"; sql statement: alter tablespace test2 offline
Backup the datafile as copy. It is very convenient to use file number (file_id), this makes it much simpler to do this:
RMAN> backup as copy datafile 7 format '+DATA'; Starting backup at 23-JUL-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=+DATA/v11203/datafile/test1.269.789411511
output file name=+DATA/v11203/datafile/test2.268.789411665 tag=TAG20120723T170105 RECID=2 STAMP=789411665
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 23-JUL-12
Now switch to the backup copy:
RMAN> switch datafile 7 to copy; datafile 7 switched to datafile copy "+DATA/v11203/datafile/test2.268.789411665"
And online the tablespace again:
RMAN> sql "alter tablespace test2 online"; sql statement: alter tablespace test2 online
Please mind this leaves the old datafile in place, so it needs to be removed explicitly:
RMAN> delete noprompt copy of datafile 7; released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=44 device type=DISK
List of Datafile Copies
======================= Key File S Completion Time Ckp SCN Ckp Time
------- ---- - --------------- ---------- ---------------
5 7 A 23-JUL-12 1779771 23-JUL-12
Name: +DATA/v11203/datafile/test1.268.789415137 deleted datafile copy
datafile copy file name=+DATA/v11203/datafile/test1.268.789415137 RECID=5 STAMP=789415216
Deleted 1 objects
An alternative is to do this with asmcmd, but it’s far less elegant:
$ asmcmd rm -f +DATA/v11203/datafile/test1.269.789411511
Rename Oracle Managed File (OMF) datafiles in ASM(ZT)的更多相关文章
- ORACLE managed file(OMF)
ORACLE managed file (OMF) Oracle自动创建和删除OMF文件 不用操心文件的命名约定 在手动管理文件时容易错误删除数据文件(OMF降低这种风险) Oracle自动删除不再需 ...
- Oracle管理文件OMF (oracle managed files)
简化dba的管理操作 1:启用 omf 23:16:04 SYS@orcl> show parameter DB_CREATE_FILE_DEST NAME TYPE VALUE ------- ...
- [置顶] How to create Oracle 11g R2 database manually in ASM?
Step 1: Specify an Instance Identifier (SID) export ORACLE_SID=maomi Step 2: Ensure That the Require ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.2.Oracleasm Createdisk ASM磁盘失败:Instantiating disk: failed
1.错误信息:Instantiating disk: failed [root@linuxrac1 /]# /usr/sbin/oracleasm createdisk OCR_VOTE /dev/s ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:3.安装Oracle RAC-3.1.安装并配置ASM驱动
3.1.安装并配置ASM驱动 3.3.1.检查内核 [root@linuxrac2 etc]# uname -r 2.6.18-164.el5 下载以下rpm包(注意rpm包版本和Linux内核版本一 ...
- ORACLE CONTROL FILE 笔记
控制文件包含的信息: 1.数据库的名字 2.联机重做日志文件和数据文件的名字和位置 3.数据库创建的时间戳 4.当前日志的序列号 5.检查点信息 6.备份信息 TIP:数据 ...
- Oracle 11gR2用gpnp profile存放ASM的spfile路径
从Oracle 11gR2开始,GI集成了ASM,OCR/VOTEDISK也存放在ASM磁盘组了(11gR2以前需要存放于裸设备中),同时ASM的功能较10g也有很大增强. 我们先引入一个问题:11g ...
- Oracle 11gR2 RAC DBCA无法识别ASM磁盘组(ORA-19504,ORA-15045,ORA-17502,ORA-15081)
ORA-19504: failed to create file "+DATA" ORA-15045: ASM file name '+DATA' is not in refere ...
- oracle RAC如何正确地删除ASM磁盘组
1.登录到命令行 切换到grid用户 [grid@swnode1 ~]$ sqlplus / as sysasm SQL*Plus: Release Production on Wed May :: ...
随机推荐
- Spark性能优化指南--基础篇
前言 开发调优 调优概述 原则一:避免创建重复的RDD 原则二:尽可能复用同一个RDD 原则三:对多次使用的RDD进行持久化 原则四:尽量避免使用shuffle类算子 原则五:使用map-side预聚 ...
- Elasticsearch安装笔记
下载安装包 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.zip 开始执行bin/./el ...
- volist/foreach下,点击循环中的一个进行操作
第一种方法,是给点击元素绑定事件,用ajax将值传到控制器中,其中传的值,用jquery选择器选择值. 1.在html中 <foreach name="save" item= ...
- Zabbix的基本安装配置
/////////////////下面开始我的表演///////////////// 1.安装zabbixyum install -y epel-release安装rpm包的LAMP环境: yum i ...
- JAVA实现多线程的四种方式
JAVA多线程实现方式: 1.继承Thread类(无返回值) 2.实现Runnable接口(无返回值) 3.实现Callable接口,通过FutureTask包装器来创建Threak线程(有返回值) ...
- spring mvc中,如何在 Java 代码里,获取 国际化 内容
首先,在Spring的application.xml中定义 <bean id="messageSource" class="org.springframework. ...
- 32 python 并发编程之协程
一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去 ...
- 二叉排序树的应用(java)
package com.tree.find; public class TestSearchBST { private static class BiNode{ int data; BiNode lc ...
- stl_algo.h
stl_algo.h // Filename: <stl_algo.h> // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...
- java 实现插入排序
sorted数组第0个位置没有放数据 从sorted数组的第二个数据开始处理 package com.learn; public class InsertionSort { public static ...