我们有一个每天存储数十亿行的数据库。它是一个 11G 的 Oracle 数据库,为同一站点 HA 启用 RAC,为跨站点启用活动数据保护。我们不得不将块大小从 16k 更改为 8k。由于这不是在线更改,我们不得不用几个月的数据重命名表并创建一个新表。现在我们需要将原始表中的数据放入新表中。
直接路径插入会锁定表,而常规插入会导致大量 RAC 等待。想知道是否有人有任何最佳实践可以将大量数据从一个表移动到另一个表而不阻止其他进程将数据写入新表(快速)
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.