当前位置: 首页 > news >正文

Oracle高级复制

在开始之前,需要简单说明一下,目前公司有几个项目都采用Oracle作为数据库平台,并且有的项目使用到了Oracle的数据库复制技术,其中也遇到了一些问题,因此在这里,我对Oracle的复制技术谈一下我个人的理解,希望能够对采用Oracle数据库的项目组有所帮助。其中在文中使用到的SQL脚本都是经过检验可以运行的。
  首先简单介绍和数据库复制有关的基本概念,然后探讨Oracle数据复制技术中的几个重要模型,最后介绍Oracle的数据复制管理器以及如何利用它来配置和维护复制环境。 
  在文章的开头,我想首先简单谈一下复制的基本概念,也就是什么是复制?复制简单地说就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。Oracle高级复制,也称为对称复制,第一次是在Oracle 7.1.6版本中出现的,在这之前的Oracle版本中,Oracle数据复制方法仅有只读快照形式的基本复制一种方法。随着Oracle版本的每一次升级,数据复制的功能、管理以及速度等方面都得到了很大的改进和完善。目前,由于对分布式数据环境需求的不断增长,越来越多的应用提出了数据复制的需求。 
1.基本概念
1. 分布式数据库技术
分布式数据库技术是目前我们经常提及的分布式计算的一个重要组成部分,该技术允许数据在多个服务器端共享。采用分布式数据库技术,一个本地服务器可以存取不同物理地点的远程服务器上的数据;也可以使所有的服务器均可以持有数据的拷贝/复制,这样分布式系统中的所有服务器均可进行本地存取。
设计一个分布式计算解决方案首先需要考虑的问题就是应用的完整性、复杂性、性能和可用性以及响应时间等,同时还需要考虑的是对于不同的应用需求是采用实时存取远程数据还是采用延迟存取远程数据。这对于数据复制来讲就是采取实时更新复制方案还是延迟数据复制方案。 
2. 同步和异步的概念 
同步分发数据库技术是一种实时远程存取和实时更新数据的技术。这种技术可以保证应用的完整性降低了应用的复杂性,但是如果系统存在网络存取速度很慢这样的问题,相应响应时间就会很慢。 
异步分发数据库技术是一种延迟远程存取和延迟传播对数据更新的技术。这种技术具有很高的可用性和很短的响应时间。相比同步分发数据库技术就显得复杂一些,为了确保应用的完整性需要仔细考虑和设计。 
对于实际的商业问题,必须权衡这两种技术的利弊最终选择最佳的解决方案,有些问题选用同步技术比较适合,也有一些问题采用异步技术是比较好的解决方案,还有一些问题必须综合这两种技术。 
3. 复制的概念 
复制,顾名思义就是将数据库中的数据拷贝到不同物理地点的数据库中以支持分布式应用,它是整个分布式计算解决方案的一个重要组成部分。上面介绍了同步和异步的概念,这里针对复制也存在同步复制和异步复制的问题。 
同步复制,复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。这种技术适用于那些对于实时性要求较高的商业应用中。 
异步复制,所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。这些不同的事务间可以间隔几秒,几分种,几小时,也可以是几天之后。复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。 
4. 更新冲突 
在异步复制环境中,对于所有应用最关键的就是要确保数据的一致性。我们来看下面这种情况会有什么后果发生呢?在同一时间对同一个表的同一行数据的同一列在两个不同的地点作更新。这种情况就会发生称之为更新冲突的错误。为保证数据的一致性,更新冲突必须被检测到并且处理以确保在不同地点的数据元素保持同样的值。更新冲突可以通过限制"所有权" 到单一节点或者将更新某个特定数据元素的权利限制到某一具体节点的方法
 
*************************************************************
 
为了使公司oracle数据库 不让其他用户导出,如何操作
 
-- 如果是用数据泵导出和导入的话
所有的Oracle用户都可以在默认情况下使用数据泵实用程序。但是,必须有特殊的权限EXP_FULL_DATABASE和IMP_FULL_DATABASE才能执行高级任务。这些角色的授予将使你成为一个授权用户。并能够执行以下任务:
-- *(01). 导出和导入用户所拥有的数据库对象;
-- *(02). 加入并修改由其他用户启动的作业;
-- *(03). 在数据泵导入作业中使用所有新的重映射的功能。
 
如罗兄所说:移除导出数据泵权限
 
当然前提是有权限,没有权限的话怎么导出
 
 
 
***********************************************************
PL/SQL Developer导入导出数据库方法及说明
 
PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。
导出步骤:
1 tools ->export user object 选择选项,导出.sql文件。
2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件。
导入步骤:
注:导入之前最好把以前的表删除,当然导入另外数据库除外。
1 tools->import tables->SQL Inserts 导入.sql文件。
2 tools->import talbes->Oracle Import然后再导入dmp文件。
一些说明:
Tools->Export User Objects导出的是建表语句(包括存储结构)。
Tools->Export Tables里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:
Oracle Export
Sql Insert
pl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 。
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。

转载于:https://www.cnblogs.com/huapox/archive/2012/06/01/3251516.html

相关文章:

  • 浅谈回归(二)——Regression 之历史错误翻译
  • JS判断浏览器类型和屏幕分辨率来调用不同的CSS样式
  • CentOS 6.7 如何启用中文输入法
  • Citrix XenDesktop 引发的学案(四)-与“您的虚拟桌面”之间的连接失败,状态(1030)...
  • 云计算成朝阳产业,未来发展已成趋势
  • js去掉html标签和去掉字符串文本的所有的空格
  • 关于Flurry的数据统计
  • 使用wix制作安装包
  • 使用Windows8开发Metro风格应用七
  • 黑马程序猿——15,String,StringBuffer,基本数据类型包装对象
  • linux libpcap的性能问题,请大家注意绕行。
  • LVS与KEEPALIVED实现高性能高可用负载均衡服务器
  • Vue(二)header组件开发
  • Yii性能调整
  • predict_proba 的使用
  • 「面试题」如何实现一个圣杯布局?
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 03Go 类型总结
  • isset在php5.6-和php7.0+的一些差异
  • Javascript 原型链
  • Laravel5.4 Queues队列学习
  • MaxCompute访问TableStore(OTS) 数据
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • React-redux的原理以及使用
  • Redis学习笔记 - pipline(流水线、管道)
  • SpiderData 2019年2月23日 DApp数据排行榜
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vue2.x学习三:事件处理生命周期钩子
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 前端知识点整理(待续)
  • 使用 @font-face
  • 思维导图—你不知道的JavaScript中卷
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 大数据全解:定义、价值及挑战
  • 数据库巡检项
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #1014 : Trie树
  • #android不同版本废弃api,新api。
  • #define用法
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2)(2.10) LTM telemetry
  • (C语言)字符分类函数
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net 微服务 服务保护 自动重试 Polly
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 使窗口永不获得焦点
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • /etc/shadow字段详解
  • [ 数据结构 - C++] AVL树原理及实现