Oracle 12C 新特性之在线重命名、迁移活跃的数据文件
Oracle 数据库 12c 版本中对数据文件的迁移或重命名不再需要太多繁琐的步骤,可以使用 ALTER DATABASE MOVE DATAFILE 这样的 SQL 语句对数据文件进行在线重命名和移动。而当此数据文件正在传输时,终端用户可以执行查询,DML以及 DDL 方面的任务。另外,数据文件可以在存储设备间迁移,如从非 ASM 迁移至 ASM,反之亦然。
一、 重命名数据文件:
-- 注意,我这里是在名为 PDB01 的 pdb 容器内演示的。
SQL> show con_name
CON_NAME
------------------------------
PDB01
-- 查看原数据文件名
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.
-- 重命名
SQL> ALTER DATABASE MOVE DATAFILE '/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb.dbf' TO
'/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb01.dbf';
Database altered.
-- 检查重命名结果
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.
二、迁移数据文件到其他路径
-- 注意,我这里是在名为 PDB01 的 pdb 容器内演示的。
SQL> show con_name
CON_NAME
------------------------------
PDB01
-- 查看数据文件原路径
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/andycdb/pdb01/system01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/sysaux01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/undotbs01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/users01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb01.dbf
/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf
6 rows selected.
-- 检查数据文件的确存在原路径下
[oracle@12c ~]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/
[oracle@12c pdb01]$ ll bbb*
total 769412
-rw-r-----. 1 oracle oinstall 2105344 May 13 04:22 bbb01.dbf
-rw-r-----. 1 oracle oinstall 2105344 May 13 04:22 bbb02.dbf
-- 迁移数据文件到新路径
SQL>ALTER DATABASE MOVE DATAFILE '/home/oracle/app/oracle/oradata/andycdb/pdb01/bbb02.dbf' TO '/home/oracle/app/oracle/oradata/andycdb/pdb01/new/bbb02.dbf';
Database altered.
-- 核实数据文件是否存在迁移路径下
[oracle@12c pdb01]$ ll
total 769412
-rw-r-----. 1 oracle oinstall 2105344 May 13 04:22 bbb01.dbf
drwxr-x---. 2 oracle oinstall 4096 May 13 04:31 new
-rw-r-----. 1 oracle oinstall 387981312 May 13 04:15 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 272637952 May 13 04:30 system01.dbf
-rw-r-----. 1 oracle oinstall 67117056 May 12 07:02 temp01.dbf
-rw-r-----. 1 oracle oinstall 104865792 May 13 04:30 undotbs01.dbf
-rw-r-----. 1 oracle oinstall 14426112 May 13 04:10 users01.dbf
-rw-r-----. 1 oracle oinstall 5251072 May 12 06:42 users01.dbf.bak
[oracle@12c pdb01]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/new
[oracle@12c new]$ ll
total 2056
-rw-r-----. 1 oracle oinstall 2105344 May 13 04:31 bbb02.dbf
说明:迁移数据文件到新路径,自动完成了操作系统层面数据文件的移动。
补充(其他几种迁移类型):
1. 从非 ASM 迁移数据文件至 ASM:
SQL>ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '+DG_DATA';
2. 将数据文件从一个 ASM 磁盘群组迁移至另一个 ASM 磁盘群组:
SQL>ALTER DATABASE MOVE DATAFILE '+DG_DATA/DBNAME/DATAFILE/users_01.dbf ' TO '+DG_DATA_02';
3. 在数据文件已存在于新路径的情况下,以相同的命名将其覆盖:
SQL>ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' REUSE;
4. 复制文件到一个新路径,同时在原路径下保留其拷贝:
SQL>ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' KEEP;
当通过查询 v$session_longops 动态视图来移动文件时,你可以监控这一过程。另外,
你也可以引用 alert.log,Oracle 会在其中记录具体的行为。
Oracle 12C 新特性之在线重命名、迁移活跃的数据文件的更多相关文章
- Oracle 12c新特性
转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1) 多租户架构是Oracle 12c(12.1)的新增重磅特性 ...
- Oracle 12C 新特性之扩展数据类型(extended data type)
Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...
- Oracle 12C 新特性之表分区或子分区的在线迁移
Oracle 12c 中迁移表分区或子分区到不同的表空间不再需要复杂的过程.与之前版本中未分区表进行在线迁移类似,表分区或子分区可以在线或是离线迁移至一个不同的表空间.当指定了 ONLINE 语句,所 ...
- Oracle 12c新特性(For DBA)
一: Multitenant Architecture (12.1.0.1) 多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...
- ORACLE 12C新特性——CDB与PDB
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...
- Oracle 12C 新特性之非分区表转分区表online clause(不停业务+索引有效)
12c以前非分区表需要转换为分区, 如果不停业务的话可以使用在线重定义,只有在表进行切换的时候会有短暂的锁表. 12c 中alter table online clause 实现了表上现有的索引有效, ...
- Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)
说明:版本12.2.0.1 12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/wr ...
- Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED
Oracle12c开始,我们在获取SQL语句的执行计划时,也会经常看到"TABLE ACCESS BY INDEX ROWID BATCHED"操作,那么,这个操作到底是什么意思呢 ...
- Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集
一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...
随机推荐
- maven assembly 配置详解
Maven Assembly插件介绍 博客分类: 项目构建 你是否想要创建一个包含脚本.配置文件以及所有运行时所依赖的元素(jar)Assembly插件能帮你构建一个完整的发布包. Assembl ...
- 关于Future
1 为什么需要Callable和Future Runnable没有返回值,也不抛异常,这样主线程不能知道子线程的执行结果. 为了解决这个问题就有了Callable和Future.Callable提供的 ...
- 【python】-- 面向对象引子、概念
面向过程编程 1.编程范式 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马 ...
- can not find java.util.map java.lang.Double问题
mybatis @Param注解和ParamType属性不能共存
- 8.Django模型类例子
这里定义4个模型 作者:一个作者有姓名 作者详情:包括性别,email,出生日期, 出版商:名称,地址,城市,省,国家,网站 书籍:名称,日期 分析: 作者详情和作者一对一的关系 一本书可以有多个作者 ...
- [iOS]通过JS调用iOS函数时的URL编码问题
在前面的文章:[iOS]在WebApp中怎样使用JS调用iOS的函数 中,提到了怎样使用JS通过改动URL调用iOS的内部函数. 当中会遇到一个问题,就是编码问题.比方通过URL调用弹窗,在里面写上内 ...
- Android中的资源访问
Android中的资源是指非代码部分,指外部文件. assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取. r ...
- GDI+在绘制验证码中的使用
GDI+最简单的理解就是用来绘图的.其中包括点.直线.矩形.字符串等等. 先简单来个例子,说明如何在winform窗体中绘制一条直线,并且这条直线不随着窗体的移动而消失. using System; ...
- 【leetcode刷题笔记】Max Points on a Line
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...
- shell 批量创建_备份 mysql 数据库 表
#!/bin/bash user=root password= socket=/var/lib/mysql/mysql.sock mycmd="mysql -u$user -p$passwo ...