oracle 12c 数据迁移,oracle 12c R1 在线迁移数据文件、在线迁移表分区或者子分区例子...

oracle 12c r1版本有许多的新功能了,这个我们来介绍的就是在线迁移数据文件、在线迁移表分区或者子分区例子了,这也是oracle 12c r1版本新特性了,下面来看看。

在线重定义数据文件:

在oracle 12c R1之前的版本中,如果在线移动数据文件需要将表空间或者数据文件离线,然后操作系统mv,recover后online数据文件或者表空间,在oracle 12c R1后可以直接在线重定义数据文件,这个过程用户可以进行查询、DML以及DDL的任务,另外数据文件也可以直接在存储设备间迁移,比如ASM到文件系统的相互迁移。

SQL>  name from v$datafile;

NAME

-----------------------------------------------------------------------------------------------------------------------------------------

/oracle12c/app/oracle12/oradata/oracle12c/system01.dbf

/oracle12c/app/oracle12/oradata/oracle12c/sysaux01.dbf

/oracle12c/app/oracle12/oradata/oracle12c/undotbs01.dbf

/oracle12c/app/oracle12/oradata/oracle12c/undotbs02.dbf

/oracle12c/app/oracle12/oradata/oracle12c/users01.dbf

在线移动数据文件

SQL> alter database move datafile '/oracle12c/app/oracle12/oradata/oracle12c/users01.dbf' to '/oracle12c/app/oracle12/oradata/oracle12c/users02.dbf';

Database altered.

SQL> !ls -l /oracle12c/app/oracle12/oradata/oracle12c/

total 2258588

-rw-r-----. 1 oracle12 oinstall   10141696 Dec 16 23:31 control01.ctl

-rw-r-----. 1 oracle12 oinstall   52429312 Dec 16 23:30 redo01.log

-rw-r-----. 1 oracle12 oinstall   52429312 Dec 16 22:00 redo02.log

-rw-r-----. 1 oracle12 oinstall   52429312 Dec 16 23:13 redo03.log

-rw-r-----. 1 oracle12 oinstall  880812032 Dec 16 23:28 sysaux01.dbf

-rw-r-----. 1 oracle12 oinstall 1006641152 Dec 16 23:30 system01.dbf

-rw-r-----. 1 oracle12 oinstall   62922752 Dec 16 23:23 temp01.dbf

-rw-r-----. 1 oracle12 oinstall   68165632 Dec 16 23:28 undotbs01.dbf

-rw-r-----. 1 oracle12 oinstall    1056768 Dec 16 23:18 undotbs02.dbf

-rw-r-----. 1 oracle12 oinstall  149430272 Dec 16 23:22 users02.dbf

在线移动数据文件并且保留之前的数据文件位置

SQL> alter database move datafile '/oracle12c/app/oracle12/oradata/oracle12c/users02.dbf' to '/oracle12c/app/oracle12/oradata/oracle12c/users01.dbf' keep;

Database altered.

SQL> !ls -l /oracle12c/app/oracle12/oradata/oracle12c/

total 3185324

-rw-r-----. 1 oracle12 oinstall   10141696 Dec 16 23:40 control01.ctl

-rw-r-----. 1 oracle12 oinstall   52429312 Dec 16 23:40 redo01.log

-rw-r-----. 1 oracle12 oinstall   52429312 Dec 16 23:40 redo02.log

-rw-r-----. 1 oracle12 oinstall   52429312 Dec 16 23:40 redo03.log

-rw-r-----. 1 oracle12 oinstall  880812032 Dec 16 23:40 sysaux01.dbf

-rw-r-----. 1 oracle12 oinstall 1006641152 Dec 16 23:40 system01.dbf

-rw-r-----. 1 oracle12 oinstall   62922752 Dec 16 23:23 temp01.dbf

-rw-r-----. 1 oracle12 oinstall   68165632 Dec 16 23:40 undotbs01.dbf

-rw-r-----. 1 oracle12 oinstall    1056768 Dec 16 23:40 undotbs02.dbf

-rw-r-----. 1 oracle12 oinstall  549199872 Dec 16 23:40 users01.dbf

-rw-r-----. 1 oracle12 oinstall  549199872 Dec 16 23:40 users02.dbf

在线迁移表分区或者子分区:

SQL> CREATE TABLE t_part

(

id   NUMBER,

name VARCHAR2(100)

)

partition BY range

(

id

)

(

partition p1 VALUES less than(1000) TABLESPACE users,

partition pmax VALUES less than(maxvalue) TABLESPACE test

)

SQL> show user;

USER is "SYS"

SQL>  alter table t_part move partition p1 tablespace test;

Table altered.

SQL> alter table t_part move partition p1 tablespace test online;

alter table t_part move partition p1 tablespace test online

*

ERROR at line 1:

ORA-14809: ONLINE MOVE PARTITION not supported for this schem

这里需要注意在线迁移表分区或者子分区的特性只对非SYS用户使用,SYS用户不支持这个特性

SQL> conn xiaoyu/xiaoyu

Connected.

SQL>  alter table t_part move partition p1 tablespace test  update indexes online;

Table altered.

这里的在线迁移并不会影响该表的DML操作,为了满足在线迁移的特性,oracle需要引入锁机制,这个会导致下降并且产生大量的redo,影响程度取决于表分区或者子分区的大小,当然oracle推出的新特性可能也会存在一定的隐患,这个需要dba多去关注mos上的文章。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值