`
dengqsintyt
  • 浏览: 288720 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

oracle-使用物化视图完成数据同步

 
阅读更多

最近在做一个项目,涉及到数据库同步的相关知识,后来通过向单位的dba学习,最终选择了oracle的自身同步:使用物化视图完成数据的同步,具体步骤如下:

需求:要求从源数据库用户向目标数据库用户同步数据。

第一步:创建源数据库(schema)--source用户

SQL> create user source identified by "password";
SQL> grant connect,resource to source;
SQL> GRANT CREATE MATERIALIZED VIEW TO source;
SQL> grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to source;

第二步:创建目标数据库(schema)--target用户

SQL> create user target identified by "password";
SQL> grant connect,resource to target ;
SQL> GRANT CREATE MATERIALIZED VIEW TO target ;
SQL> grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to target ;

 第三步:登录源数据库用户--source用户,执行所有sql语句。

SQL> conn  source/password;(此语句为linux,登录用户命令)
SQL> @/home/dengqs/all.sql;
(注意:假设你所有表的all.sql文件在/home/dengqs/目录下)

 第四步:登录目标数据库用户--target用户,创建目标用户下的dblink。

SQL>conn  target/password;(此语句为linux,登录用户命令)
SQL> CREATE PUBLIC DATABASE LINK 名称
 CONNECT TO 用户名(原库)
 IDENTIFIED BY "密码"
 USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 源库ip)(PORT = 源库端口))) (CONNECT_DATA = (SERVER = DEDICATED) (SID= 源库sid)))';

例子如下:
CREATE PUBLIC DATABASE LINK link_target CONNECT TO source IDENTIFIED BY "password"  USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 192.168.1.1)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SID= dengqsxxx)))';

 第五步:登录源数据库--source用户,创建物化视图log

SQL> conn  source/password;

 

SQL> create materialized view log on 	要同步的表名称;
注意:如果需要同步的表有多个要同步到目标数据,就执行多次,假设要同步t_users,t_message.则执行:如下:
SQL> create materialized view log on  t_users;
SQL> create materialized view log on  t_message;

 

第六步:登录目标数据用户--target用户,创建物化视图

SQL> conn  source/password;
CREATE MATERIALIZED VIEW 	物化视图名称(就是同步数据的表名称)	refresh force on demand  start with sysdate next sysdate + 1/1440 AS SELECT * FROM 	要同步的表的名称(跟物化视图名称一样)@第四步创建的dblink的名称;

例如:CREATE MATERIALIZED VIEW 	t_office 	refresh force on demand  start with sysdate next sysdate + 1/1440 AS SELECT * FROM 	t_office@link_target;

 

第七步骤:登录目标数据库用户--target用户,创建不同步表的数据结构

SQL> conn  source/password;
SQL> @/home/dengqs/butongbu.sql;
(注意:假设你不同步的表的butongbu.sql文件在/home/dengqs/目录下)

 

以上 步骤完成之后,元数据库就会向目标数据库同步要同步的表的数据。

 

 

 

 

 

分享到:
评论

相关推荐

    Oracle物化视图应用详解

    Oracle物化视图应用详,有实例和各属性介绍

    使用Oracle物化视图实现数据同步复制的研究与实现.pdf

    使用Oracle物化视图实现数据同步复制的研究与实现.pdf

    基于Oracle物化视图日志的数据同步技术研究.pdf

    基于Oracle物化视图日志的数据同步技术研究.pdf

    oracle远程数据同步

    该方案是测试成功的,源数据库是oracle10.2.0.3.0,目标数据库是oracle10.2.0.3.0,使用dblink和触发器和物化视图进行数据的同步,并且做到了数据的实时更新。

    阿里巴巴开源的Oracle数据迁移同步工具yugong.zip

    整个数据迁移过程,分为两部分:全量迁移增量迁移过程描述:增量数据收集 (创建oracle表的增量物化视图)进行全量复制进行增量复制 (可并行进行数据校验)原库停写,切到新库架构说明: 一个Jvm Container对应多个...

    database.rar

    yugong 数据同步工具最近看了阿里基于oracle的数据库迁移项目yugong,其也是基于物化视图进行的实现。差异在于: 1、虽然都是基于物化视图,但yugong项目仅使用物化视图日志,且创建物化视图日志时使用了参数PRIMARY...

    Oracle分布式系统数据复制技术

    按照复制站点的类型,数据复制可分为多主控站点复制、物化视图复制及混合复制。数据复制通过在多个站点上建立备份,能够提高数据的安全性,同时也提高了数据的可用性,这是因为如果一个站点出现了问题,用户可以选择...

    oracle错误大全

    oracle错误大全,很全的错误解释,从ORA-00001到ORA-02149

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    Oracle Stream-安装配置

     在9iR2之前高级复制应用比较广泛,高级复制也分两种:多主复制和基于物化视图的复制,就我理解其最大的劣势是大数据量下效率堪优,并且对于 ddl的支持不够友好。从技术实现思路上与streams几无相同之处,倒是逻辑...

    yugong:阿里巴巴去Oracle数据迁移同步工具(全量+增量,目标支持MySQLDRDS)

    yugong译意: 愚公移山语言: 纯java开发定位: 数据库迁移 (目前主要支持oracle / mysql / DRDS)项目介绍整个数据迁移过程,分为两部分:全量迁移增量迁移过程描述:增量数据收集 (创建oracle表的增量物化视图)进行...

    oracle dba 必备技能

    Grow That DBA Career.doc ORACLE 数据库管理员的职责.doc 数据备份系统总体方案.pdf 容灾中心系统总体方案.pdf 采用两级物化视图同步数据的方案.doc 性能相关参数.pdf 使用oracle 8i分析工具...

    SQL&PL SQL FAQ第二版

    3.怎么样使用物化视图来同步数据 4.怎么样在线创建索引或者重构索引/表 5.怎么样编译失效对象 6.怎么样在管理自动undo表空间 7.怎么样管理临时表空间与临时文件 8.怎么样管理分区表与分区索引 9.怎么样管理LOB...

    七号信令监测系统中基于Oracle的数据同步方案研究

    七号信令监测系统中采集的大量数据信息需要在多个分布式站点进行同步,本文为其数据的同步提供了...该方案基于Oracle的高级复制,利用多级物化视图实现,在保证数据一致性、完整性的前提下实现了上下级数据的快速刷新。

Global site tag (gtag.js) - Google Analytics