Oracle 按分区同步数据到另一个库

需求

A库中某些大表(1年数据量10+亿条)数据只保留最近3个月数据,超过3个月的数据,都迁移到B库中保存,然后删除A库中已经迁移的数据。

A库

1
2
3
--  创建视图,指定分区条件
CREATE OR REPLACE VIEW V_IM_WX_LOG AS
SELECT * FROM IM_WX_LOG PARTITION(P2019Y03);

B库

1
2
3
4
5
-- 为A库视图创建同义词
CREATE SYNONYM V_IM_WX_LOG FOR V_IM_WX_LOG@DBLN_WEIXINDB_KBT;
-- 同步数据
CREATE TABLE IM_WX_LOG_P2019Y03 AS
SELECT * FROM V_IM_WX_LOG;

A库

1
2
3
4
5
6
ALTER TABLE IM_WX_LOG DROP PARTITION P2019Y03;
-- 如果索引不是nologging local类型,则需要重建索引
alter index PK_ID rebuild online;

-- 或者直接使用以下语句
ALTER TABLE IM_WX_LOG DROP PARTITION P2019Y03 UPDATE IDEXES;
  • 本文作者: forever杨
  • 本文链接: https://blog.yl-online.top/posts/4d2ee75e.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。如果文章内容对你有用,请记录到你的笔记中。本博客站点随时会停止服务,请不要收藏、转载!