Oracle 12.1新特性:在线rename或relocate数据文件

在Oracle12.1之前的版本中要重命名数据文件或移动数据文件需要关闭数据库或把表空间/数据文件置为offline状态才可以,参考之前总结的Oracle修改数据文件名/移动数据文件。但到了12.1版本,可以直接在数据文件online状态下把数据文件重命名或移动数据文件。

要实现这一功能需要使用ALTER DATABASE MOVE DATAFILE 语句,语法如下

ALTER DATABASE MOVE DATAFILE ( ‘filename‘ | ‘ASM_filename‘ | file_number )
 [ TO ( ‘filename‘ | ‘ASM_filename‘ ) ]
 [ REUSE ] [ KEEP ]

下面在12.2版本测试这一功能

[email protected]>select * from v$version;

BANNER										     CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production		  0
PL/SQL Release 12.2.0.1.0 - Production							  0
CORE	12.2.0.1.0	Production								  0
TNS for Linux: Version 12.2.0.1.0 - Production						  0
NLSRTL Version 12.2.0.1.0 - Production							  0

1、创建测试表空间及数据文件:

[email protected]>create tablespace t_move datafile ‘/home/oracle/t_move.dbf‘ size 50m ;

Tablespace created.

[email protected]>col name for a50
[email protected]>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name=‘T_MOVE‘;

NAME						   STATUS
-------------------------------------------------- -------
/home/oracle/t_move.dbf 			   ONLINE

现在数据文件‘/home/oracle/t_move.dbf‘为ONLINE状态

2、执行重命名操作

[email protected]>alter database move datafile ‘/home/oracle/t_move.dbf‘ to ‘/home/oracle/t_move01.dbf‘;

Database altered.

[email protected]>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name=‘T_MOVE‘;

NAME						   STATUS
-------------------------------------------------- -------
/home/oracle/t_move01.dbf			   ONLINE

[email protected]>!ls -l /home/oracle/t_move01.dbf
-rw-r----- 1 oracle oinstall 52436992 Jul 11 16:07 /home/oracle/t_move01.dbf

[email protected]>!ls -l /home/oracle/t_move.dbf
ls: cannot access /home/oracle/t_move.dbf: No such file or directory

可以看到文件名从t_move.dbf改为了t_move01.dbf,原文件已经不存在了。

3、执行移动目录操作

[email protected]>alter database move datafile ‘/home/oracle/t_move01.dbf‘ to ‘/u01/app/oracle/oradata/ora12c/t_move01.dbf‘;

Database altered.

[email protected]>!ls -l /u01/app/oracle/oradata/ora12c/t_move01.dbf
-rw-r----- 1 oracle oinstall 52436992 Jul 11 16:10 /u01/app/oracle/oradata/ora12c/t_move01.dbf

[email protected]>!ls -l /home/oracle/t_move01.dbf
ls: cannot access /home/oracle/t_move01.dbf: No such file or directory

[email protected]>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name=‘T_MOVE‘;

NAME						   STATUS
-------------------------------------------------- -------
/u01/app/oracle/oradata/ora12c/t_move01.dbf	   ONLINE

从上面的结果可以看到数据文件从‘/home/oracle‘目录移动到了‘/u01/app/oracle/oradata/ora12c‘目录下了。

4、copy数据文件到目标目录,保留原文件

[email protected]>alter database move datafile  ‘/u01/app/oracle/oradata/ora12c/t_move01.dbf‘ to ‘/home/oracle/t_move01.dbf‘ keep;

Database altered.

[email protected]>select d.name,d.status from v$datafile d,v$tablespace t where t.ts#=d.ts# and t.name=‘T_MOVE‘;

NAME						   STATUS
-------------------------------------------------- -------
/home/oracle/t_move01.dbf			   ONLINE

[email protected]>!ls -l /home/oracle/t_move01.dbf
-rw-r----- 1 oracle oinstall 52436992 Jul 11 16:15 /home/oracle/t_move01.dbf

[email protected]>!ls -l /u01/app/oracle/oradata/ora12c/t_move01.dbf
-rw-r----- 1 oracle oinstall 52436992 Jul 11 16:15 /u01/app/oracle/oradata/ora12c/t_move01.dbf

从上面的结果可以看到数据文件改为了/home/oracle/t_move01.dbf,但原来的数据文件仍然被保留。

5、移动数据文件到ASM存储

--文件系统到ASM
ALTER DATABASE MOVE DATAFILE ‘/u01/oracle/rbdb1/user1.dbf‘ 
  TO ‘+dgroup_01/data/orcl/datafile/user1.dbf‘;
--ASM到ASM
ALTER DATABASE MOVE DATAFILE ‘+dgroup_01/data/orcl/datafile/user1.dbf‘ 
  TO ‘+dgroup_02/data/orcl/datafile/user1.dbf‘;

参考:http://docs.oracle.com/database/121/ADMIN/dfiles.htm#ADMIN13837

时间: 2024-10-24 23:18:53

Oracle 12.1新特性:在线rename或relocate数据文件的相关文章

Oracle 12.2新特性----在线move表

Oracle12.2版本之前,对表做move操作时会对表加exclusive锁,表上无法执行DML操作.虽然move操作有ONLINE子句,但只适用于IOT表,不适用于堆表.这就意味着在对表做move操作时,无法执行任何DML操作,如果对关键表做move操作时只能停业务来完成.到了Oracle12.2版本,推出了一个新特性----在线move表,对于普通堆表可以在move过程中执行DML操作. 下面以11.2.0.4和12.2.0.1这两个版本为对比,观察这一新特性. 1.11.2.0.4版本的

Oracle 12.2新特性----在线把非分区表转为分区表

在Oracle12.2版本之前,如果想把一个非分区表转为分区表常用的有这几种方法:1.建好分区表然后insert into select 把数据插入到分区表中:2.使用在线重定义(DBMS_REDEFINITION)的方法.它们的币是:第一种方法,如果对表有频繁的DML操作,尤其是update操作,就需要停业务来做转换.第二种方法可以在线进行操作,不需要停业务,但操作步骤比较复杂,且可能出错. Oracle12cR2版本中提供了一种新特性,一条语句就可以把非分区表转换为分区表,语法如下: ALT

Oracle 12.1新特性----使用RMAN从备份中实现recover table

在Oracle12c版本之前,使用RMAN能恢复的级别为数据库级别和表空间级别,如果只有一张表需要恢复,而在数据库级别或表空间级别做恢复,影响范围就太大了.因此12.2版本中提供了一个新特性使用RMAN在表级别做恢复,并且恢复过程中不影响数据库的正常使用.这一功能不仅可以恢复表,还可以恢复表分区. 下面在12.2版本上做表级别恢复的实验 [email protected]>select * from v$version; BANNER      CON_ID ------------------

Oracle Audit Vault and Database Firewall 12.2 新特性

Oracle Audit Vault and Database Firewall 12.2 新特性 Audit Vault Server的备份恢复组件被集成进AVDF产品. 当Audit Vault Agent(审计代理)重新启动或AVDF升级收,Audit Trail(审计线索)将会自动启动. AVCLI组件可以非交互式使用,通过存储在AVCLI的Wallet里存储管理员的认证信息. 可以使用Auidit Vault Agent(审计代理)的处理线程数量优化主机处理的性能. 可以配置Datab

Oracle DB 12c新特性:raw device 裸设备不再受支持

Oracle DB 12c新特性:raw device 不再受支持. 参考自: Announcement of De-Support of using RAW devices in Oracle Database Version 12.1 (Doc ID 578455.1) 细节: De-Support of Raw 本文的目录是通知在oracle database 12.1版本中对raw device不再支持. 这意味着,若是使用oracle database 12.1版本,将不能把数据文件,

【翻译自mos文章】Oracle 11gR2 relink 新特性

Oracle 11gR2 relink 新特性 来源于: Oracle 11gR2 Relink New Feature (文档 ID 883299.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.0 to 11.2.0.0 [Release 11.2] Generic UNIX 解决方案: I) Oracle 11gR2有2种方法来relink $ORACLE_HOME中的binary 1)传统的方法:relink a

【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡

原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing Node.js v0.12的新特性 -- Cluster采用轮询调度算法来进行负载均衡 November 19, 2013 by Ben Noordhuis 欢迎来到由Node的核心提交者 Ben Noordhuis 和 Bert Belder撰写的系列博文的第一篇.本系列可能由7-8篇构成,主要涵盖

版本12.1新特性:优先级负载均衡法

如果不希望负载均衡,一组服务器down掉才启用下一组怎么办?在以前版本的实现方法是backup vserver,或者做个反向的monitor.如果实现的组比较多,逻辑上还是有些复杂的. 而在 12.1单独实现了最简单的逻辑:优配先级 新版多了一个按钮 优先级负载均衡 建立vserver时定义下面有几组备份服务器 定义好后插入服务器组,每组直接选定优先级就可以了 版本12.1新特性:优先级负载均衡法 原文地址:http://blog.51cto.com/netscaler/2120602

12c新特性 在线操作数据文件

我们都知道,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 datafil