物化视图同步数
1. 用途
现在需要把生产数据库中的部分数据同步到数据仓库中,考虑到成本和便捷性,采用定期刷新物化视图的方式同步数据。
2. 整体实施思路
l 首先创建一个dblink,可以访问远程数据库。
l 在本地创建一个物化视图,存储远程数据表,当远程数据表有变化时,会定时刷新到物化视图中。
l 创建oracle job定时刷新表
3. 需要同步的表如下
序号
|
表中文名称
|
表名
|
说明
|
1
|
订单表
|
OMORDER
|
订单主表,保存订单的基础信息
|
2
|
订单明细表
|
ORDERDETAIL
|
存放订单里商品的信息
|
4.1.4. 配置步骤
4.1 配置数据仓库中tns连接
testrac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.122)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.123)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jscn)
)
)
|
测试:
[oracle@testrac1 goldengate]$ sqlplus sys/sys@ testrac as sysdba
SQL> select count(*) from SYS.GV_$INSTANCE
4.2 创建dblink
语法:
create public database link dblink_nameconnect to username identified by passwd using 'tns_name'
说明:
dblink_name :是dblink名称
username:是远端的用户名
passwd:是远端的秘密
'tns_name' :是tnsnames.ora中的连接字符串名称
示例如下:
SQL> create public database link testrac connect to jscn identified by jscn using 'testrac';
SQL> select count(*) from SYS.GV_$INSTANCE@testrac;
COUNT(*)
----------
2
|
4.3 创建物化视图同步数据
4.3.1 在源用户上执行以下,创建物化视图日志
说明:
对于已定义主键的表,分别执行以下 sql:
create materialized view log on 表名 withprimary key;
对于未定义主键的表,分别执行以下 sql:
creatematerialized view log on 表名 with rowid;
使用sql语句:
select 'creatematerialized view log on '||table_name||' withprimary key;' fromuser_tables;
create materialized view log on thh with primary key;
--这两个没有主键,特殊对待
create materialized view log on USER_ORDER_INTE with rowid;
|
4.3.2 在目标用户上执行以下 sql,创建物化视图
创建物化视图语法如下:
create materialized view [view_name]
refresh [fast|complete|force] with [primaryid | rowid]
[
on [commit|demand] |
start with (start_time) next (next_time)
]
as
{创建物化视图用的查询语句}
使用sql语句:
select 'create materializedview '||table_name||' refresh faston demand as select * fromthh@testrac;' fromuser_tables;
create materialized view CONSIGNEE_ADDRESS refresh fast on demand as select * from thh@testrac;
create materialized view CUSTOMER refresh fast on demand as select * from thh@testrac;
|
4.3.3 创建定时任务
定时任务放在每天凌晨3点执行任务。
BEGIN
DBMS_MVIEW.refresh (
LIST=> 'OMORDER,ORDERDETAIL,ORDERTRACER,THH,THH_SUB,VACCOUNTREASON,CONSIGNEE_ADDRESS,LOGISTICS_COMPANY,PRODUCT,PRODUCT_CATE_REL,PRODUCTCATEGORY,STORE,STORE_INFO,CUSTOMER,CUSTOMER_INFO,USER_ORDER_INTE,GIFT_CARDS,GIFT_CARDS_TYPE,GIFT_CARDS_LOG,PROMOTIONS_OFFERS,JOIN_PROMOTIONS,TEL_EMAIL_RECORD,dealcategory,YDORDER,YDORDERTRACER,PRODUCT_BRAND,THH_LOGS',
METHOD => 'F',
PARALLELISM => 1);
END;
|
分享到:
相关推荐
创建DB_LINK脚本 多个数据库之间互相访问不能缺少的方式,必须看看。
采用dmv sys.dm_db_index_usage_stats 获取数据表的最后访问时间
在警告日志中过滤db_link的方法 ——由于本人平时也会下载一些资源,所以非常抱歉对该资源收取C币,还望理解。
该存储过程实现源数据库按照时间同步更新计算库的过程 实现表的同步以及动态表某期间的数据同步。 该存储过程主要演示了: 1.dblink创建和dblink的使用; 2.如何使用字典表和游标实现选择性数据同步。
去掉db_link中的.com
可利用此插件,下载db_autopwn的执行脚本,并且复制到/opt/metasploit/msf3/plugins/中。 运行:load db_autopwn.rb 提示,每次使用都得运行一次load db_autopwn ================================================...
这套技术,如果你能用心掌握,足可以帮助你在任何一家互联网大公司站稳脚跟!
二、 实验内容 (一)创建数据库和模式 1、通过 SQL 语句创建图书信息管理数据库,命名为"db_Library" ,数据文件和日志文件放在 D 盘下以自己学号和姓名命名的文件夹中,数据文件的逻辑名为 db_Library_data,数据...
python_DB__SOCKET开源,主要针对数据的操作和网操作。
DB_GP21_ACAM 数据手册,内容全面详细,希望大家喜欢哦!
① 在“图书读者数据库”(Book_Reader_DB)中,先用视图创建向导的方法创建视图View1和View2。其中View1包括书号、书名、定价、数量等属性。View2包括读者号、读者姓名、单位、电话、书号、书名、借阅日期、应归还...
为什么要将输入信号点DI_AI映射到DB数据块中或V数据存储区
① 在“图书读者数据库”(Book_Reader_DB)中,先用视图创建向导的方法创建视图View1和View2。其中View1包括书号、书名、定价、数量等属性。View2包括读者号、读者姓名、单位、电话、书号、书名、借阅日期、应归还...
DB2的数据同步经验总结 学习起来很方便的
与此同时,数据访问的效率将直接影响到软件的质量。一个数据访问缓慢的系统是客户无法容忍的。一个好的系统必然有一个高效的数据访问方法。由此可见,数据访问在软件开发过程中是非常重要的。如果能统一对数据的访问...
没有DB2,DB3,DB4的数据集!!!!!! 说明:FVC2002 DB1的A库中有 8*100 张图片,B库中有8*10 张图片, 即总共有110根手指,每根手指有八张图片,一共有880张指纹图片。 DB1数据集是由Optical Sensor "TouchView II...
Create_S7DB_V11 从Excel生成DB数据Create_S7DB_V11.xls
db_crm数据库结构.sql
数据库数据类型__oracle_db2_mysql_sql_server.pdf
DB_CreateSqlE包含Asp 和Exe两个版本的SQL脚本生成与编辑软件,Access可以直接导入SQLserver,用多个目前流行的Access整站和论坛数据库测试(测试最大的80M...直接执行Access数据导入到SQL2000服务器(表结构和数据)