Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

37、Oracle 10g 安全与 SQL 增强功能及 SQL*Plus 改进 本文详细介绍了 Oracle 10g 在安全、SQL 功能以及 SQL*Plus 工具方面的多项增强和改进。重点涵盖虚拟专用数据库(VPD)的列级控制和策略类型、审计功能的统一跟踪、SQL 在商业智能应用中的增强(如 MERGE 命令、分区外连接和 MODEL 子句)、物化视图的快速刷新与查询重写优化、初始化参数改进、正则表达式支持、SQL*Plus 的 DESCRIBE 命令增强、文件名支持空格、SPOOL 命令扩展、预定义变量增加、SHOW 命令变化以及调用方式的优化。通过实际应用案例和总结展望,展示了 阅读详情

Oracle 10g 物化视图语法如下:

create materialized view [view_name]
refresh [fast|complete|force]
[
on [commit|demand] |
start with (start_time) next (next_time)
]
as
{创建物化视图用的查询语句}

以上是Oracle创建物化视图(Materialized View,以下简称MV)时的常用语法,各参数的含义如下:

  1. refresh [fast|complete|force] 视图刷新的方式:

    fast: 增量刷新.假设前一次刷新的时间为t1,那么使用fast模式刷新物化视图时,只向视图中添加t1到当前时间段内,主表变化过的数据。
          为了记录这种变化,建立增量刷新物化视图还需要一个物化视图日志表。
          create materialized view log on (主表名)。(多张表时,此语句也生效,创建后,原来的表中会多出两类视图表:MLOG$_table_name和RUPD$_table_name)
    
    complete: 全部刷新。相当于重新执行一次创建视图的查询语句。
    
    force: 这是默认的数据刷新方式。当可以使用fast模式时,数据刷新将采用fast方式;否则使用complete方式。
    
  2. MV数据刷新的时间:

    on demand: 在用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据(可以使用JOB定时刷新);
    on commit: 当主表中有数据提交的时候,立即刷新MV中的数据;
    start ……:从指定的时间开始,每隔一段时间(由next指定)就刷新一次;
    
    全刷新mv_test物化视图:
    
begin
     dbms_mview.refresh(TAB=>'MV_TEST',
                        METHOD=>'COMPLETE',
                        PARALLELISM=>8);
end;
/

增量刷新:

begin
     dbms_mview.refresh(TAB=>'MV_TEST',
                        METHOD=>'FAST',
                        PARALLELISM=>1);
end;
/

或者,也可以这样执行:

exec dbms_mview.refresh('MV_TEST','F');
dbms_mview.refresh('表名', 'F')   --快速刷新,也就是增量刷新
dbms_mview.refresh('表名', 'C')   --完全刷新

实例演示:

以下是我通过创建物化视图,实现不同数据库间表级别的数据同步的一个过程记录,(两台服务器A和B,其中要把数据从A节点的表zh_major_item同步到B节点上)。目前实现同步的过程还只是一个单向的过程,也就是从A节点 —> B节点:

主要步骤:

  1. 在A节点创建原表和物化视图日志
  2. 在B节点创建连接A节点的远程链接
  3. 在B节点处,创建目标表和与目标表名称相同的物化视图
1. 在A节点创建原表和物化视图日志:
--在源A处 创建物化视图日志
sqlplus tianzhi_smart/tianzhi_smart@localhost:1521/orcl

--原表zh_major_item之前已经存在,这里就不赘述表创建的过程了
--创建物化视图日志
create materialized view log on zh_major_item;
2. 在B节点创建连接A节点的远程链接:
--在目标B处 创建远程连接
--如果没有创建远程连接的权限,需要登录sysdba,为用户授权;

--之所以跟上面一样,因为我的用户名和密码相同而已
sqlplus tianzhi_smart/tianzhi_smart@localhost:1521/orcl

--创建远程连接 db_link
create public database link db_link_A 
    connect to tianzhi_smart 
    identified by "tianzhi_smart" 
    using '192.168.56.6:1521/ORCL';

--验证是否创建成功
select * from zh_major_item@db_link_A ;
3. 在B节点处,创建目标表和与目标表名称相同的物化视图:
--B节点处创建目标表bc_major_item
create table bc_major_item 
as select * from zh_major_item@db_link_A where 1=2;

--通过远程连接向A节点建立一个与目标表(bc_major_item)名称相同的物化视图    
--使用on prebuilt table注册新的物化视图,注意view名称必须和表名称一样
--使用on prebuilt table创建的物化视图被删除后,原来的表不被删除
--注意这里我创建是refresh fast on demand 类型的物化视图
 create materialized view bc_major_item 
 on prebuilt table refresh fast on demand 
 as select * from zh_major_item@db_link_A ;
4.在B节点处,刷新物化视图
 --刷新物化视图
 exec dbms_mview.refresh('bc_major_item ','C');

 --刷新后,查询目标表,比对是否和原表数据相同
 select * from bc_major_item ;
5.升级采用存储过程+定时任务JOB方式,定时刷新物化视图

    --创建存储过程,进行增量刷新
    create or replace procedure refresh_bc_major_item
    as
    begin
        dbms_mview.refresh('bc_major_item','F');
    end;
    /

    --创建任务JOB
    SQL> variable job1 number;
    SQL>begin
 dbms_job.submit(:job1,'refresh_bc_major_item;',sysdate,'sysdate+1/(86400)');  
    end;
    /

    --运行JOB
    SQL> begin
       dbms_job.run(:job1);
      end;
      /
6.进一步优化:

可以再写一个存储过程+定时任务JOB,定时清空物化视图日志。

文章更新记录

v1.0 – 表面是实现了同步,其实查询的只是视图,并没有完成如题目所指的问题
v2.0 – 将目标表和物化视图建立联系,真正实现数据同步。2016.12.6

参考文章:

  1. Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
  2. oracle中使用物化视图实现表的同步
Oracle物化视图优化与智能查询管理 本文介绍了Oracle数据库中SQL Access Advisor的使用,它能有效地分析和建议物化视图的需求,以优化数据库性能。同时,探讨了物化视图的创建、编辑以及聚合查询的高级功能Rollup和Cube。此外,还介绍了Oracle数据库资源管理器的主动查询管理功能,它有助于更好地管理复杂查询工作负载,确保业务智能分析的效率。 阅读详情

相关推荐

小程序HTTPS证书配置踩坑记:为什么Android访问失败而iOS正常?

本文深入剖析了小程序开发中常见的跨平台网络问题:Android访问HTTPS接口失败而iOS正常。核心原因在于服务器(如Nginx)HTTPS证书链配置不完整,Android系统对此校验严格,而iOS相对宽松。文章提供了从问题诊断、使用在线工具检测到修复Nginx证书链配置的完整解决方案,并总结了HTTPS部署的最佳实践,帮助开发者从根本上避免此类“玄学”故障。

weixin_29207149的博客 394

oracle物化视图 增量,【转】创建增量同步Oracle物化视图问题

我们采用Oracle的物化视图增量刷新机制定时将数据库A上的某个表的数据同步到另一个数据库B上。我们常用的最简单的实现步骤是这样。首先在数据库A上确认该表有主键,然后建立在这个表上建立物化视图日志如“CREATEMATERIALIZED VIEW LOG ONT_tablename;”,再到数据库B上创建数据库链接和快速刷新的物化视图如“create materialized viewmv_tab...

weixin_28890693的博客 976

嘉立创EDA实战:4层板叠层设计避坑指南(附阻抗计算技巧)

本文详细解析了嘉立创EDA在4层PCB叠层设计中的实战技巧与避坑指南,涵盖经典叠层方案对比、介质厚度选择、电源系统设计及高速信号完整性优化。特别介绍了阻抗计算工具的应用,帮助工程师在高速电路设计中实现性能与成本的最佳平衡。

sea99的博客 966

oracle 物化视图_oracel 11gR2使用物化视图实现增量抽取数据

oracel 11gR2使用物化视图实现增量抽取数据我们现在从oracle中获取增量数据导入其它库中,一般使用物化视图是比较好的方案。使用物化视图实现增量抽取我们先来创建一个简单例子无主键表是否能增量同步?创建无主键表table_no_pkdrop table table_no_pk ;CREATE TABLE table_no_pk(id number(10) NOT NULL, stname ...

weixin_39905500的博客 628

【技术解析】AlexNet——从ReLU到Dropout的深度学习关键突破

本文深入解析AlexNet在深度学习领域的关键突破,重点探讨了ReLU激活函数和Dropout技术的革命性应用。作为卷积神经网络的里程碑,AlexNet通过ReLU解决梯度消失问题,利用Dropout有效防止过拟合,为现代深度学习模型奠定了重要基础。这些创新技术至今仍在计算机视觉和自然语言处理等领域发挥重要作用。

weixin_33719619的博客 272

FMCW雷达基本原理(通俗易懂)篇2

FMCW雷达(Frequency Modulated Continuous Wave Radar)是一种使用频率调制连续波的雷达系统。它使用一个发射器发射一个连续波,但是这个连续波的频率会在一定的范围内不断变化。当这个连续波遇到一个目标物体并被反射回来时,接收器会检测到这个反射波的频率变化,并计算出目标物体的距离和速度等信息。FMCW雷达的原理可以理解为:1.发射器发射一个连续波,这个波的频率会从一个固定的起始频率开始,逐渐变化至一个固定的终止频率。

研二小学鸡的博客 7692

oracle物化视图同步,Oracle中怎么样使用物化视图来同步数据

一、怎么样刷新mv可以用来同步数据,一般采用主键同步或者是ROWID同步,我们这里只讨论主键同步(Rowid同步其实是为Rowid在目标表上创建了一个隐含索引,原理跟主键同步一样)。mv的主要原理就是记录更改的日志,并同步到远程。一个简单的例子:SQL>create materialized view log ontable_name;SQL>create materialized v...

weixin_39541693的博客 594

【深度学习】基于BERT模型的情感分析(附实战完整代码+数据集)

情感分类是一个快速发展的研究领域,尽管众多模型和数据集在二分类任务中显示出很高的准确性,但细粒度的情感分类任务仍然是一个很大改进空间的领域。分析SST-5数据集,Munikar等人的先前工作表明,嵌入工具BERT允许使用简单的模型来实现最新的准确性。

aaaa_hsjsueu的博客 2万+

Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步

Oracle 11g 物化视图语法如下: create materialized view [view_name] refresh [fast|complete|force] [ ...

weixin_34244102的博客 331

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

天天酷科研的博客 896

博途PLC S7-1200/1500 ModbusTcp通信SCL代码篇(轮询)

博途PLC MODBUS TCP的详细讲解和注意事项,可以参看下面这篇博文,这里不在赘述。这篇作为SCL代码篇主要给出SCL语言下的轮训写法和注意事项。博途PLC1200/1500PLC ModbusTcp通信(轮询处理)_RXXW_Dor的博客-优快云博客。............

RXXW_Dor的博客 8424

创建增量同步Oracle物化视图问题

我们采用Oracle的物化视图增量刷新机制定时将数据库A上的某个表的数据同步到另一个数据库B上。 我们常用的最简单的实现步骤是这样。首先在数据库A上确认该表有主键,然后建立在这个表上建立物化视图日志如“CREATE MATERIALIZED VIEW LOG ON T_tablename;”,再到数据库B上创建数据库链接和快速刷新的物化视图如“create materialized view...

miki西游 不积跬步,无以至千里;不积小流,无以成江海 1181

关于DEJA_VU3D - Cesium功能集专栏说明

专栏主要目的是对工作中基于Cesium实现过的功能进行整合,暂时打算一周2-3更的样子来更新,每一篇都会奉上完整源代码(尽可能把代码简洁一些)。功能实现大多数是自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小130个左右的功能,后续也会不断的更新。..........................................

总得学点什么的博客 2万+

oracle物化视图

原文URL: oracle 10g物化视图简介 2012-05-09 17:33:55|分类:ORACLE性能|标签:oracle物化视图|举报|字号订阅 下载LOFTER我的照片书| 环境oracle 10g 10.2.0.4 linux ...

H405282968的博客 221

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

[转载]oracle物化视图

原文URL:http://lzfhope.blog.163.com/blog/static/636399220124942523943/?suggestedreading&wumii 环境oracle 10g 10.2.0.4 linux 64 要大而专业的看oracle自己的文档-sql参考。 说实话,oracle需要学习的内容太多,每个都看过去,实在太费事。 所以如...

H405282968的博客 177

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

针对某个表使用高级复制进行数据同步示例

  高级复制与流复制概念: 高级复制(Advanced Replication) 高级复制也称为对称复制,分为多主体站点复制(Multiple Master Rplication)、物化视图站点复制(Materialized View Replication)和前两种的混合复制。高级复制主要是用在对称的、等同的数据库(仅限Oracle数据库之间)表之间的(单向或双向)的复制,以满足分布式应...

weixin_34190136的博客 201

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

27.Oracle11g的闪回Flashback

Oracle11g中的闪回Flashback是一种数据库恢复和查询工具,它允许用户在不需要恢复数据库的情况下,快速地查看和恢复数据的历史状态。闪回Flashback提供了一系列功能,可以帮助用户回溯到某个时间点或某个特定的数据库状态,而无需使用传统的数据库恢复方法。Oracle 11g中的闪回(Flashback)功能是一种数据库恢复和查询技术,它允许用户在不需要从备份中恢复数据的情况下,快速地回滚数据库对象的状态或者查询历史数据。

qq_46645079的博客 1845

Oracle Database 10g:为 DBA 提供的最佳特性-前9到12周(转贴)

Oracle Database 10g:为 DBA 提供的最佳特性-前9到12周第 9 周 RMAN  RMAN 的功能更强大,它具有重新设计的增量备份模式、增量备份的脱机恢复、预览恢复、复原日志进行恢复、文件压缩等功能。  大多数人都认同 RMAN 是用于 Oracle 数据库备份的实际工具。但是与它们所具有的强大功能相比,RMAN 的早期版本并未提供人们所期待的一些功能。就像许

笨笨狗!~罗望军~的专栏 994

Oracle物化视图创建全过程(转)

我们如果遇到需要从其它系统的数据库中取数据进行统计分析的问题,可疑选择使用ORACLE的ODI工具进行抽数,但是对方提供的数据库用户下没有任何对象,只是有查询所有表的权限,因此无法做数据反向。 于是决定使用物化视图,把对方数据库中的数据拿过来,虽然数据量比较大,但是每月只拿一次,而且如果设置成增量更新,也不会太慢。现在记录下物化视图的创建过程(以一张表为例)。 一、准备条件以及备注 假设双...

shuigunixiang的博客 150

Oracle压缩数据

Oracle压缩数据的方法介绍

红孩儿编程大师 1428

Oracle表压缩

从Oracle9iR2 开始,ORACLE提供了表/表空间压缩技术,以减少磁盘开销,节省空间,并在某些情况下提高查询性能。 表压缩是如何工作的在Orcle9i第2版中,表压缩特性通过删除在数据库表中发现的重复数据值来节省空间。压缩是在数据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以便储存在该数据块中的多个位置上出现的数据的单一拷贝。这一被保留的空间被...

在路上 3344

Oracle 压缩表与压缩表空间

从Oracle9iR2 开始,ORACLE提供了表/表空间压缩技术,以减少磁盘开销,节省空间,并在某些情况下提高查询性能。 表压缩是如何工作的在Orcle9i第2版中,表压缩特性通过删除在数据库表中发现的重复数据值来节省空间。压缩是在数据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以便储存在该数据块中的多个位置上出现的数据的单一拷贝。这一被保留的空间被称作符号表(symbol table)。被标识为要进行压缩的数据只存储在该符号表中,而不是在数据...

woailyoo0000的博客 4868

异构数据库迁移不求人:用Oracle dblink实时同步PostgreSQL数据的5个关键步骤

本文详细介绍了通过Oracle dblink实现异构数据库实时同步的5个关键步骤,涵盖环境准备、ODBC配置、dblink优化、数据同步方案及生产运维要点。特别针对Oracle与PostgreSQL的数据类型转换和同步延迟问题提供实战解决方案,帮助企业在混合架构下实现高效数据交互。

weixin_28314575的博客 363

【Oracle】ORACLE 12c DB In-Memory相关参数

本篇文章对DB In-Memory涉及到的参数进行介绍: 首先看一下DB In-Memory相关的所有参数: SQL> show parameter INMEMORY    NAME                                 TYPE        VALUE ------------------------------------ ----------- ----

badly9的专栏 1592
上一篇: Oracle中视图的创建和处理方法
下一篇: Firefox下“event is not defined”的解决方案
javaee_sunny
博客等级 码龄11年 90粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值