mbk文件导入到oracle,Oracle基于物化视图的远程数据复制

物化视图简介:

远程表复制功能:可以借助数据库链接(dblink),在远程数据库中建立一个本地表的副本,用该方式实现表的定时同步。物化视图存储基于远程表的数据,也可以称为快照。

加速查询功能:物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,在执行查询时,可以直接查询物化视图,或者通过查询重写定位到物化视图,来加快速度。

本文使用物化视图的远程表复制功能。

源端配置:

ip

172.27.9.55

Oracle version

11.2.0.4

sid

whbkdb

user

user_mv

tablespace

TS_MV_TEST

table

tt

MATERIALIZED VIEW LOG

MLOG$_T1

目标端配置:

ip

172.27.9.56

Oracle version

11.2.0.4

sid

whbkdb

user

user_mbk

tablespace

TS_BK

dblink

mv

MATERIALIZED VIEW

mv_bk

源端搭建

1.创建表空间

SQL> conn / as sysdba

Connected.

SQL> CREATE TABLESPACE "TS_MV_TEST" LOGGING DATAFILE '/orasvr/whbkdb/ts_mv_test/TS_MV_TEST01.dbf ' SIZE 512M AUTOEXTEND ON NEXT  128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

Tablespace created.

表空间名为TS_MV_TEST

2.创建用户

CREATE USER USER_MV

IDENTIFIED BY USER_MV

DEFAULT TABLESPACE TS_MV_TEST

PROFILE DEFAULT

ACCOUNT UNLOCK;

GRANT CONNECT TO USER_MV;

GRANT RESOURCE TO USER_MV;

GRANT CREATE DATABASE LINK TO USER_MV;

GRANT CREATE MATERIALIZED VIEW TO USER_MV;

ALTER USER USER_MV QUOTA UNLIMITED ON TS_MV_TEST;

创建用户USER_MV

3.创建表

SQL> conn user_mv/user_mv;

Connected.

SQL> create table tt(id int,name varchar2(30));

Table created.

使用user_mv用户登陆,创建表tt

4.新建索引和约束

create unique index PK_tt on tt (id) tablespace TS_MV_TEST;

ALTER TABLE tt ADD (  CONSTRAINT PK_tt  PRIMARY KEY  (ID)  USING INDEX PK_tt  ENABLE VALIDATE);

新建唯一索引pk_tt和约束pk_tt

5.创建物化视图日志

SQL> CREATE MATERIALIZED VIEW LOG ON tt with primary key;

Materialized view log created.

创建物化视图日志

图片.png

创建物化视图日志的同时会生成表MLOG$_TT,当使用primary key时,oracle创建临时表 RUPD$_基础表。

目标端搭建

1.创建表空间

SQL> CREATE TABLESPACE "TS_BK" LOGGING DATAFILE '/orasvr/whbkdb/ts_bk/TS_BK01.dbf ' SIZE 512M AUTOEXTEND ON NEXT  128M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

Tablespace created.

创建表空间TS_BK

2.创建用户

CREATE USER USER_BK

IDENTIFIED BY USER_BK

DEFAULT TABLESPACE TS_BK

PROFILE DEFAULT

ACCOUNT UNLOCK;

GRANT CONNECT TO USER_BK;

GRANT RESOURCE TO USER_BK;

GRANT CREATE DATABASE LINK TO USER_BK;

GRANT CREATE MATERIALIZED VIEW TO USER_BK;

ALTER USER USER_BK QUOTA UNLIMITED ON TS_BK;

创建用户user_bk

3.创建dblink

SQL> conn  user_bk/user_bk;

Connected.

SQL> create database link mv connect to user_mv identified by user_mv using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.27.9.55 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = whbkdb) ) )';

Database link created.

使用user_bk登陆,创建dblink mv

4.创建物化视图

CREATE MATERIALIZED VIEW mv_bk

BUILD IMMEDIATE

REFRESH FORCE

ON DEMAND

next sysdate+1/2880

with primary key

AS

SELECT * from user_mv.tt@mv;

创建物化视图mv_bk,手工方式刷新,sysdate+1/2880表示每半分钟刷新一次

图片.png

可以看到在创建物化视图的同时会新建同名表mv_bk

测试

源端插入测试数据

SQL> insert into tt values(1,'A');

1 row created.

查看目标端物化视图mv_bk

SQL> select * from mv_bk;

ID NAME

---------- ------------------------------

1 A

源端清空表数据

SQL> delete from tt;

查看目标端物化视图

SQL> select * from mv_bk;

no rows selected

至此Oracle基于物化视图的远程数据复制搭建测试完成,本文搭建脚本下载

可以到Linux公社资源站下载:

------------------------------------------分割线------------------------------------------

具体下载目录在 /2018年资料/9月/9日/Oracle基于物化视图的远程数据复制/

------------------------------------------分割线------------------------------------------

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值