Oracle 12C 新特性之在线重命名、迁移活跃的数据文件
来源:互联网 发布:百度云盘mac历史版本 编辑:程序博客网 时间:2024/05/16 23:40
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 会在其中记录具体的行为。
一、 重命名数据文件:
-- 注意,我这里是在名为 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 会在其中记录具体的行为。
0 0
- Oracle 12C 新特性之在线重命名、迁移活跃的数据文件
- 12C新特性之在线迁移活跃的数据文件
- oracle 12c:新特性-在线重命名和重新定位活跃数据文件
- ORACLE12C新特性之在线迁移活跃的数据文件
- Oracle 12C 在线重命名和迁移数据文件
- Oracle 12C 新特性之表分区或子分区的在线迁移
- 12c 的新特性 数据文件的在线移动
- oracle 12c:新特性-表分区或子分区的在线迁移
- Oracle12c新特性(1)-在信重命名数据文件和迁移数据文件
- 在线迁移oracle数据文件 20
- Oracle数据文件的特性
- Oracle数据文件的特性
- oracle数据库工作笔记之迁移oracle的dbf数据文件
- Oracle 12C的十二个新特性
- 如何迁移Oracle的数据文件
- 迁移oracle的dbf数据文件
- Oracle备份之数据文件等的转移,迁移
- Oracle 12c新特性
- 在使用mybatis时遇到查询结果返回为空(NULL)的情况,但是查数据库能查到
- 关于js中的作用域和作用域链以及常见的问题和结果方法
- java.lang.ClassNotFoundException
- 【天道酬勤】 腾讯、百度、网易游戏、华为Offer及笔经面经
- View框架浅析
- Oracle 12C 新特性之在线重命名、迁移活跃的数据文件
- web服务器架构
- Struts2配置
- 南阳理工oj 整数划分(DP)
- 布隆过滤器
- C的学习笔记
- 包含min函数的栈
- c与java数据传输
- {题解}[jzoj5101]【GDOI2017 day2】凡喵识图