物化视图(materialized view) 实现数据迁移、数据定时同步
近日公司有一个9i 的Oracle数据库,运行效率低下。想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多。只有三张表。业务压力也不大,就想到了使用物 化视图的方式将数据同步过来。
1.1 环境
| 数据库主机 | IP地址 | TNS | DB_LINK | ORACLE 版本 |
|---|---|---|---|---|
| db2 | 10.100.99.114 | to_118 | 11G | |
| db1 | 10.100.99.118 | 9iG |
上面是本次操作测试的环境。说明: 将9i 数据库中的表实时同步到11G.
1.2 在db2配置指向db1的tns
配置tns 方便创建dblink。当然不配置也可以创建。此步完全依赖于个人爱好。 我习惯配置,在创建dblink时,会更简洁一些。TNS如下:
t118 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.99.114)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ktdb)
)
)
1.3 在db2的数据库中创建dblink
create public database link to_118 connect to test identified by test123 using 't118';
1.4 给db1中相应的表上添加物化视图日志
1.4.1 有主键表
create table test(id number,name varchar2(20));
alter table test add constraint pk_testid primary key(id);
create materialized view log on test with primary key;
对于有主键的表,日志依赖于主键。
create materialized view log on test with primary key;
1.4.2 无主键表
对于无主键的表,依赖于rowid
create table test_noprimarykey(id number,name varchar2(20));
create materialized view log on test_noprimarykey with rowid;
1.5 在db2上创建物化视图
分布式查询中(也就是使用db_link), 不能以on commit 方式指定刷新方式,创建时会遇到ORA-12054.
1.5.1 有主键表的物化视图
CREATE MATERIALIZED VIEW dbmon.test
(id,name)
REFRESH force
start with sysdate next sysdate+1/1440 # 指定刷新频率为1分钟
AS
SELECT id,name FROM dbmon.test@to_118;
1.5.2 无主键表的物化视图
CREATE MATERIALIZED VIEW test_noprimarykey
(id,name)
REFRESH force
start with sysdate next sysdate+1/1440 # 指定刷新频率为1分钟
WITH rowid
AS
SELECT id,name FROM dbmon.test_noprimarykey@to_118;
1.6 测试数据同步
在db1数据库插入数据后,稍等 1分钟,然后连到db2数据库查看结果。
1.6.1 有主键表
在db1 上向表中插入一行数据:
insert into test values(1,'aaa');
commit;
1.6.2 无主键表
insert into test values(1,'bbb');
commit;
物化视图(materialized view) 实现数据迁移、数据定时同步的更多相关文章
- [terry笔记]物化视图 materialized view基础学习
一.物化视图定义摘录: 物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...
- PLSQL_Oracle物化视图Material View的基本概念和用法 (概念)
2014-06-08 Created By BaoXinjian
- DB2物化视图(Materialized Query Tables, MQT)
DB2的物化视图MQT是基于查询结果定义的一个表,MQT中包括的数据来自MQT定义所基于的一个或多个表, 使用MQT能够显著提高查询的操作性能. 数据库的视图和MQT都是基于一个查询来定义的.每当视图 ...
- Redis 数据迁移 & 数据审计
Redis 数据迁移 安装迁移工具 # 安装依赖 [root@dbtest03 ~]# yum install -y automake libtool autoconf bzip2 git # 拉取工 ...
- 详解Oracle数据货场中三种优化:分区、维度和物化视图
转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...
- Oracle性能调优之物化视图用法简介
目录 一.物化视图简介 二.实践:创建物化视图 一.物化视图简介 物化视图分类 物化视图分类,物化视图语法和as后面的sql分为: (1) 基于主键的物化视图(主键物化视图) (2)基于Rowid的物 ...
- ClickHouse性能优化?试试物化视图
一.前言 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS):目前我们使用CH作为实时数仓用于统计分析,在做性能优化的时候使用了 物化视图 这一特性作为优化手段,本文主 ...
- Oracle远程数据建物化视图(materialized)创建简单记录,以及DBLINK的创建
目的:实现远程数据库访问及其相应表的定时同步 一.远程数据库dblink的创建 select * from dba_db_links; select * from user_sys_privs;--查 ...
- Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 ...
随机推荐
- gulp 入门使用
gulp 入门使用 使用场景 相信大家在传统的开发模式下 都是 html + css + js 然后静态文件不经过任何处理 部署到服务器,这样会有很多漏洞例如: 1.在网站上查看F12 就可以看到 ...
- pixy&STM32使用记录(串口&SPI外设)
先踏踏实实的把stm32的外设串口,SPI搞清楚,不要眼高手低,看不起小事.用SPI通信将pixy的数据读出来,将数据用串口发到串口助手上,然后处理数据,利用STM32的定时器调节pwm,控制电机,先 ...
- Apache Flink教程
1.Apache Flink 教程 http://mp.weixin.qq.com/mp/homepage?__biz=MzIxMTE0ODU5NQ==&hid=5&sn=ff5718 ...
- 线性回归中常见的一些统计学术语(RSE RSS TSS ESS MSE RMSE R2 Pearson's r)
TSS: Total Sum of Squares(总离差平方和) --- 因变量的方差 RSS: Residual Sum of Squares (残差平方和) --- 由误差导致的真实值和估计值 ...
- 「洛谷3338」「ZJOI2014」力【FFT】
题目链接 [BZOJ] [洛谷] 题解 首先我们需要对这个式子进行化简,否则对着这么大一坨东西只能暴力... \[F_i=\sum_{j<i} \frac{q_iq_j}{(i-j)^2}-\s ...
- P4180 严格次小生成树[BJWC2010] Kruskal,倍增
题目链接\(Click\) \(Here\). 题意就是要求一个图的严格次小生成树.以前被题面吓到了没敢做,写了一下发现并不难. 既然要考虑次小我们就先考虑最小.可以感性理解到一定有一种次小生成树,可 ...
- 快速删除C#代码中的空白行
使用正则表达式 ^\s*\n 选中内容或类全部替换为空
- dpdk之路-环境部署
dpdk实验环境部署 1.实验环境说明 vmware workstatioin 12 centos 7.5.1804 dpdk-stable-18.11.1 2.实验步骤 (1)虚拟机安装 http: ...
- jmeter中的参数化
1.那些场景需要参数化? 1.登陆认证信息 2.一些和时间相关的,违反时间约束的[时间点和当前时间不一致的情况等等] 3.一些受其他字段约束的[例如字段的一些限制条件] 4.一些来自于其他数据源[例如 ...
- VMware Workstation 常见问题解决
本文以FAQ的方式进行整理,大家可以根据关键字进行查找即可. 问题一:VMware 安装64位操作系统报错“此主机支持Intel VT-x, 但Intel VT-x处于禁用状态” 问题二:This v ...