最近在做一个项目,涉及到数据库同步的相关知识,后来通过向单位的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物化视图实现数据同步复制的研究与实现.pdf
基于Oracle物化视图日志的数据同步技术研究.pdf
该方案是测试成功的,源数据库是oracle10.2.0.3.0,目标数据库是oracle10.2.0.3.0,使用dblink和触发器和物化视图进行数据的同步,并且做到了数据的实时更新。
整个数据迁移过程,分为两部分:全量迁移增量迁移过程描述:增量数据收集 (创建oracle表的增量物化视图)进行全量复制进行增量复制 (可并行进行数据校验)原库停写,切到新库架构说明: 一个Jvm Container对应多个...
yugong 数据同步工具最近看了阿里基于oracle的数据库迁移项目yugong,其也是基于物化视图进行的实现。差异在于: 1、虽然都是基于物化视图,但yugong项目仅使用物化视图日志,且创建物化视图日志时使用了参数PRIMARY...
按照复制站点的类型,数据复制可分为多主控站点复制、物化视图复制及混合复制。数据复制通过在多个站点上建立备份,能够提高数据的安全性,同时也提高了数据的可用性,这是因为如果一个站点出现了问题,用户可以选择...
oracle错误大全,很全的错误解释,从ORA-00001到ORA-02149
其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...
在9iR2之前高级复制应用比较广泛,高级复制也分两种:多主复制和基于物化视图的复制,就我理解其最大的劣势是大数据量下效率堪优,并且对于 ddl的支持不够友好。从技术实现思路上与streams几无相同之处,倒是逻辑...
yugong译意: 愚公移山语言: 纯java开发定位: 数据库迁移 (目前主要支持oracle / mysql / DRDS)项目介绍整个数据迁移过程,分为两部分:全量迁移增量迁移过程描述:增量数据收集 (创建oracle表的增量物化视图)进行...
Grow That DBA Career.doc ORACLE 数据库管理员的职责.doc 数据备份系统总体方案.pdf 容灾中心系统总体方案.pdf 采用两级物化视图同步数据的方案.doc 性能相关参数.pdf 使用oracle 8i分析工具...
3.怎么样使用物化视图来同步数据 4.怎么样在线创建索引或者重构索引/表 5.怎么样编译失效对象 6.怎么样在管理自动undo表空间 7.怎么样管理临时表空间与临时文件 8.怎么样管理分区表与分区索引 9.怎么样管理LOB...
七号信令监测系统中采集的大量数据信息需要在多个分布式站点进行同步,本文为其数据的同步提供了...该方案基于Oracle的高级复制,利用多级物化视图实现,在保证数据一致性、完整性的前提下实现了上下级数据的快速刷新。