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

需要在Oracle 11G中复制一个非常大的表的内容,oracle,oracle11g,Oracle,Oracle11g,我们有一个每天存储数十亿行的数据库。它是一个11G oracle数据库,对于同一站点HA启用RAC,对于跨站点HA启用active dataguard。我们必须将块大小从16k更改为8k。由于这不是在线更改,我们必须使用数月的数据重命名该表,并创建一个新表。现在我们需要将原始表中的数据放入新表中 直接路径插入将锁定表,常规插入将导致大量RAC等待。想知道是否有人有什么最佳实践可以将大量数据从一个表移动到另一个表,而不停止其他进程将数据写入新表(快速)创建表为; //它可以创建一个包含数据的克隆表

我们有一个每天存储数十亿行的数据库。它是一个11G oracle数据库,对于同一站点HA启用RAC,对于跨站点HA启用active dataguard。我们必须将块大小从16k更改为8k。由于这不是在线更改,我们必须使用数月的数据重命名该表,并创建一个新表。现在我们需要将原始表中的数据放入新表中

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

创建表为;
//它可以创建一个包含数据的克隆表。
将表创建为
其中1==2;
//它可以创建一个没有数据的克隆表。

您是否已授权使用分区选项?有这么大的桌子,你真的应该这么做。听起来对你来说是个工作。
CREATE TABLE new_table_name
TABLESPACE table_space_name
NOLOGGING
PARALLEL 4
AS SELECT * FROM existing_table_name ;
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.