oracle 12c R1 線上遷移資料檔案、線上遷移表分區或者子分區例子

來源:互聯網
上載者:User

線上重定義資料檔案:
在oracle 12c R1之前的版本中,如果線上移動資料檔案需要將資料表空間或者資料檔案離線,然後作業系統mv,recover後online資料檔案或者資料表空間,在oracle 12c R1後可以直接線上重定義資料檔案,這個過程使用者可以進行查詢、DML以及DDL的任務,另外資料檔案也可以直接在存放裝置間遷移,比如ASM到檔案系統的相互遷移。

SQL> select 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上的文章。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.