导出Oracle表的一部分

时间:2014-03-31 12:25:24

标签: oracle database-administration

我有一个大小超过2.5 TB的数据库,现在我需要在一段时间内删除数据并想要移动到磁带。它是一个财务数据,现在我只能保留以前的财务年度数据。我没有空间来保留整个数据库。

我的要求是备份特定持续时间的数据并转入磁带。

提前感谢你。

1 个答案:

答案 0 :(得分:0)

您可以创建分区表。每个分区都有自己的存储子句,因此可以存储在不同的表空间中 - 即使在不同的媒体上也是如此。 从分区表中,您可以轻松导出单个分区,然后在需要时将其删除。

示例:

CREATE TABLE MY_TABLE(
  COL_A NUMBER,
  COL_DATE DATE)
TABLESPACE SMALL_DATA
PARTITION BY RANGE (COL_DATE)
(  
  PARTITION VALUES LESS THAN (TO_DATE(' 1900-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) TABLESPACE OLD_DATA,  
  PARTITION VALUES LESS THAN (TO_DATE(' 2013-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) TABLESPACE CURRENT_DATA
);

使用包DBMS_REDEFINITION,您可以将现有表重新定义为分区表。请注意,要重新定义,您需要两倍的表格空间。