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.
-- 检查数据文件的确存在原路径下
[[email protected] ~]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/
[[email protected] 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.
-- 核实数据文件是否存在迁移路径下 
[[email protected] 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
[[email protected] pdb01]$ cd /home/oracle/app/oracle/oradata/andycdb/pdb01/new
[[email protected] 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 会在其中记录具体的行为。

时间: 2025-01-02 04:35:09

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

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

Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字符的大小会降低对LOB数据类型的使用.为了启用扩展字符大小,你必须将MAX_STRING_SIZE的初始数据库参数设置为EXTENDED. 实验流程:1.查看参数max_string_size默认值SQL> show parameter max_string_sizeNAME     TYPE VA

Oracle 12c新特性对于业务上的一些影响总结

1.不可见字段 在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性.继承前者并发扬光大,Oracle 12c R1中引入了不可见字段思想.在之前的版本中,为了隐藏重要的数据字段以避免在通用查询中显示,我们往往会创建一个视图来隐藏所需信息或应用某些安全条件. 在12c R1中,你可以在表中创建不可见字段.当一个字段定义为不可见时,这一字段就不会出现在通用查询中,除非在SQL语句或条件中有显式的提及这一字段,或是在表定义中有DESCRIBED.要添加或是

Oracle 12c新特性(For DBA)

一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器数据库(container database)中可以存放多个Pluggable Databases,每个Pluggable Database均独立于其他Pluggable Database. 对于外部应用程序和开发者来说,Pluggable Databases看上去就是一个普通的12.1版本之前的单

Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Oracle Database 12c Release 2, if you use Oracle Universal Installer (OUI) or Oracle Database Configuration Assistant (DBCA) to create a database, then t

Oracle 12c 新特性之 数据库内归档(In-Database Archiving)

Oracle Database 12c中引入了 In-Database Archiving的新特性, 该特性允许用户通过对表上的数据行标记为inactive不活跃的,以归档数据. 这些inactive的数据行可以通过压缩进一部优化,且对应用来说默认不可见.该特性可以对现有代码做最少改动的情况下,实现了这种"标记删除"的功能和需求. 12c之前:有些应用有"标记删除"的概念,即不是删除数据,而是数据依然保留在表中,只是对应用不可见而已.这种需求通常通过如下方法实现:1

Oracle 12c 新特性之varchar2长度最大值支持到32767

在oracle 12c之前版本,varchar2和nvarchar2数据类型的字段长度最大值是4000,在12c版本已扩展最大值支持到32767,也就是32kb,而参数MAX_STRING_SIZE就是控制扩展数据类型extended data type的最大长度: standard:代表12c之前的长度限制,即varchar2和nvarchar2 4是4000 bytes,raw是2000,且系统           默认是standard: extended:代表12c 32k string

oracle 12c 新特性之不可见字段

在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性.继承前者并发扬光大,Oracle 12c 中引入了不可见字段思想.在之前的版本中,为了隐藏重要的数据字段以避免在通用查询中显示,我们往往会创建一个视图来隐藏所需信息或应用某些安全条件. 在12c中,你可以在表中创建不可见字段.当一个字段定义为不可见时,这一字段就默认不会出现在通用查询中,除非在SQL语句或条件中有显式的提及这一字段,或是在表定义中有DESCRIBED.要添加或是修改一个不可见字段是非

Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)

实验准备:-- 创建实验表CREATE TABLE p_andy(ID number(10), NAME varchar2(40))PARTITION BY RANGE (id)(PARTITION p1 VALUES LESS THAN (10),PARTITION p2 VALUES LESS THAN (20));Table created.-- 查看现在表的分区:SQL> col table_name for a25col partition_name for a25select tab

Oracle 12C 新特性 - “可插拔数据库”功能

Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积数据库的管理和迁移工作. 下面我们体验一下可插拔数据库的CDB和PDB的操作: 基本信息:根容器(CDB):CUP可插拔数据库(PDB):TEA 启动根容器:[[email protected] ~]$ export ORACLE_SID=cup[[email protected] ~]$ sqlplus /