物化视图数据同步到mysql_oracle-使用物化视图完成数据同步
物化视图数据同步到mysql_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/⽬录下)
以上 步骤完成之后,元数据库就会向⽬标数据库同步要同步的表的数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。