我们都知道,oracle pre-12c之前,若是想要把一个数据文件改名或者迁移,
必须在归档模式下先把这个数据文件offline之后,
然后进行OS上的copy或者rename 操作,
最后在sqlplus里面进行alter database rename file x to Y;
如果不是archivelog模式在offline数据文件的时候就会遇到ORA-01145
SQL> alter database datafile 8 offline;
alter database datafile 8 offline
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled
 
12c oracle 增强了这个功能,我们可以在线进行数据文件的改名和迁移,而无需offline 数据文件,甚至都可以不打开归档的情况下进行操作,这无疑oracle在非停机运维的能力上又增强了。
 
下面是改名的一个操作输出,当然移动路径也可以用这个办法:
SQL> archive log list;
Database log mode No Archive Mode --<<<<<非归档
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 517
Current log sequence 519 SQL> ALTER DATABASE MOVE DATAFILE '/refresh/home/app/oracle/oradata/orcl/users01.dbf' to '/refresh/home/app/oracle/oradata/orcl/users02.dbf' ; Database altered.
 
上述执行成功后,原有数据文件就直接被清理了,如果你想保留原有的数据文件,可以指定 Keep 关键字来实现,注意此参数不适用原数据文件采用OFM的场景。
SQL> ALTER DATABASE MOVE DATAFILE '/refresh/home/app/oracle/oradata/orcl/users02.dbf' to '/refresh/home/app/oracle/oradata/orcl/users01.dbf' keep;  --<<keep 原有数据文件

Database altered.

SQL> host ls -l /refresh/home/app/oracle/oradata/orcl/user*
-rw-r----- 1 oracle oracle 352591872 Dec 17 07:19 /refresh/home/app/oracle/oradata/orcl/users01.dbf
-rw-r----- 1 oracle oracle 352591872 Dec 17 07:19 /refresh/home/app/oracle/oradata/orcl/users02.dbf
 
可以看到原有数据文件并没有删除,若是目标文件已经存在,可以通过reuse 参数来覆盖,下面是没加reuse和使用reuse之后的输出
SQL> ALTER DATABASE MOVE DATAFILE '/refresh/home/app/oracle/oradata/orcl/users01.dbf' to '/refresh/home/app/oracle/oradata/orcl/users02.dbf'  ;
ALTER DATABASE MOVE DATAFILE '/refresh/home/app/oracle/oradata/orcl/users01.dbf' to '/refresh/home/app/oracle/oradata/orcl/users02.dbf'
*
ERROR at line 1:
ORA-01119: error in creating database file
'/refresh/home/app/oracle/oradata/orcl/users02.dbf'
ORA-27038: created file already exists
Additional information: 1 SQL> ALTER DATABASE MOVE DATAFILE '/refresh/home/app/oracle/oradata/orcl/users01.dbf' to '/refresh/home/app/oracle/oradata/orcl/users02.dbf' reuse ; Database altered. SQL> host ls -l /refresh/home/app/oracle/oradata/orcl/user*
-rw-r----- 1 oracle oracle 352591872 Dec 17 07:23 /refresh/home/app/oracle/oradata/orcl/users02.dbf
没有使用keep ,user01.dbf已经删除了。
 
当然上述操作都是支持ASM的,参考语句如下:
ALTER DATABASE MOVE DATAFILE '/u01/oracle/rbdb1/user1.dbf'  TO '+DG1/data/orcl/datafile/user1.dbf';
ALTER DATABASE MOVE DATAFILE '+DG1/data/orcl/datafile/user1.dbf' TO '+DG2/data/orcl/datafile/user1.dbf';

12c新特性 在线操作数据文件的更多相关文章

  1. Oracle 12c新特性

    转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

  2. Maclean Liu对Oracle Database 12c新特性研究汇总

    Maclean Liu关于DB 12c新特性的研究文章如下: [Oracle Database 12c新特性] In-Database Archiving数据库内归档 [Oracle Database ...

  3. 11g新特性与12c新特性

    1. 11g新特性概图 管理新特性> 开发新特性> 2. 12c 新特性概图

  4. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  5. Oracle 12C 新特性之在线重命名、迁移活跃的数据文件

    Oracle 数据库 12c 版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤,可以使用 ALTER DATABASE MOVE DATAFILE 这样的 SQL 语句对数据文件进行在线重命名和移 ...

  6. 12C新特性 -- 共享asm口令文件

    12C中,ASM口令文件,可以提供本地.远程登录asm的验证.当然,要想使用asm口令文件验证,必须为每个asm创建一个口令文件. 如果是使用asm存储,asmca在配置asm磁盘组的会后,会自动为a ...

  7. Oracle Database 12c 新特性 - Pluggable Database

    在Oracle Database 12c中,可组装式数据库 - Pluggable Database为云计算而生.在12c以前,Oracle数据库是通过Schema来进行用户模式隔离的,现在,可组装式 ...

  8. [翻译] Oracle Database 12c 新特性Multitenant

    译自官方白皮书http://www.oracle.com/technetwork/database/plug-into-cloud-wp-12c-1896100.pdf,包含新的云计算相关技术的介绍. ...

  9. GoldenGate 12c 新特性 Credential Store and USERIDALIAS

    GoldenGate 12C的Credential Store and USERIDALIAS新特性有点类似存储钱夹,提高了配置的易用性和安全性. --生成credentialstore文件 GGSC ...

随机推荐

  1. OA项目之Mybatis多表链接查询

    xml文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC & ...

  2. 移动开发在路上-- IOS移动开发系列 多线程一

    类似于什么是进程什么是线程在这里我就不多浪费时间了(Google一下什么都有)! 废话不多说先上图,我相信大家都是喜欢看图的人,俗话说得好,求图求真相吗?虽然这里只有屌丝一个但是真相还是会有的... ...

  3. windows下安装ssdb

    官方下载 http://ssdb.io/docs/install.html 这是官方网站 官方建议 Do not run SSDB server on Windows system for a pro ...

  4. js(对象,入口函数,函数)

    对象: 创建: var myObject = {};/* 声明对象字面变量*/ 添加值: myObject.name="Jener"; myObject.age=25; 代码格式: ...

  5. Day 07 字符串内置方法和爬虫基础3

    目录 异常处理 LeetCode使用之两数之和(示例) 字符串内置方法 爬虫基础3 selenium基本使用 selenium模拟百度登录 selenium爬取京东商品信息 异常处理 try: pri ...

  6. Butterknife Attribute value must be constant

    背景 在下面的R.id.rv_msg_remind 标红,然后鼠标附上去,显示attribute value must be contant.如下: @BindView(R.id.rv_msg_rem ...

  7. 【hibernate】常用注解

    [hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================== ...

  8. 来看下,C# WebService WSDL自动生成代码,数组参数的BUG。。。ArrayOfString

    ArrayOfString ArrayOfString ArrayOfString 解决C#客户端 ArrayOfString 参数问题.(希望搜索引擎能搜到,帮你解决神奇的ArrayOfString ...

  9. 使用 Vue + axios 时,返回状态200,返回值被浏览器拦截

    目录 一.前言 二.解决方案 1. 在全局定义 2. 单独定义 一.前言 在使用 Vue + TypeScript + axios 时,后端已经配置了Cors的前提下,但是在请求接口的时候,返回状态为 ...

  10. wc命令统计目录下所有文件行数

    想统计一下最近一个项目的代码行数,一个一个文件统计显然不是程序员的思维,wc命令可以统计一个文本的行数,结合find命令可以实现我的需求(注意符号):