数据库管理平台DMP

深信服数据库管理平台(DMP)提供MySQL、Oracle的RDS功能,支持全生命周期管理、自动MySQL主从切换、故障自愈、事务一致性备份、监控告警等,能够实现业务快速上线、资源快速分发、数据安全保护,提供SLA保障,使数据库运维复杂度大幅下降,帮助客户减少被动性救火工作,专注业务创新。
点击可切换产品版本
知道了
不再提醒
DMP 2.3.0
{{sendMatomoQuery("数据库管理平台DMP","使用Oracle 物化视图")}}

使用Oracle 物化视图

更新时间:2023-09-04

您还可以使用 Oracle 物化视图复制功能高效地迁移大型数据集。复制功能可以使目标表与源表持续保持同步,因此,如需要,可在稍后完成向 DMP 的实际转换。设置复制功能时,需使用 DMP 实 例到源数据库的数据库链接。物化视图的一项要求是,允许从目标数据库访问源数据库。

在以下示例中,源数据库启用了访问规则,因此,DMP目标数据库可通过 SQLNet 与源数据库连接。

1. 在源实例和 DMP 目标实例上创建用户账户,并使用同一密码进行身份验证。

create user dblink_user identified by <password>

default tablespace users temporary tablespace temp;

grant create session to dblink_user;

grant select any table to dblink_user;

grant select any dictionary to dblink_user;

 

2. 使用新创建的 dblink_user 创建 DMP 目标实例到源实例的数据库链接。

create database link remote_site

connect to dblink_user identified by <password>

using '(description=(address=(protocol=tcp) (host=<myhost>) (port=<listener port>)) (connect_data=(sid=<sourcedb sid>)))';

3. 测试链接:

select * from v$instance@remote_site;

4. 使用主键和源实例上的物化视图日志创建示例表。

create table customer_0 tablespace users as select rownum id, o.* 

from all_objects o, all_objects x where rownum <= 1000000;

alter table customer_0 add constraint pk_customer_0 primary key (id) using index;

create materialized view log on customer_0;

5. 在目标实例上,创建物化视图。

CREATE MATERIALIZED VIEW customer_0 BUILD IMMEDIATE REFRESH FAST AS SELECT * FROM cust_dba.customer_0@remote_site;

6. 在目标 DMP 实例上,刷新物化视图。

exec DBMS_MV.REFRESH('CUSTOMER_0', 'f');

7. 删除物化视图并包括 PRESERVE TABLE 子句,以便保留物化视图容器表及其内容。

DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;

--保留的表拥有与已删除物化视图相同的名称。