需要复制Oracle 11G中非常大的表的内容

时间:2013-03-15 19:39:23

标签: oracle oracle11g

我们有一个每天存储数十亿行的数据库。它是一个11G oracle数据库,RAC支持相同的站点HA和跨站点的活动数据保护。我们不得不将块大小从16k更改为8k。由于这不是在线更改,因此我们必须使用数月的数据重命名表并创建新表。现在我们需要将原始表中的数据转换为新表。

直接路径插入将锁定表,并且常规插入会导致大量RAC等待。不知道是否有人有任何最佳实践将大量数据从一个表移动到另一个表而不会阻止其他进程将数据写入新表(快速)

2 个答案:

答案 0 :(得分:1)

CREATE TABLE new_table_name
TABLESPACE table_space_name
NOLOGGING
PARALLEL 4
AS SELECT * FROM existing_table_name ;

答案 1 :(得分:0)

create table <new table name> as <existing table name>;   
// its create a clone table with data.


create table <new table name> as <existing table name> 
where 1==2 <any false condition>;                        
// its create a clone table without data.