最近因为业务需求,需要在两个数据库之间做双向实时同步,遂实践了一把Oracle的流复制,遇到了很多疑难问题,最终也貌似成功,现记录如下。

我是使用OEM来实现流复制的。

10.进行流复制的两个数据库的实例名不一样,于是我把其中一个数据库实例重装了,哭~~~

20.两个数据库都需要打开归档模式。

30.进行流复制配置前两台数据库需要同步的数据最好一模一样。否则在同步过程中可能会操作一些本库中不存在的数据从而导致同步错误。

40.使用sys用户登录,在数据移动->设置中创建流管理员用户,两个库都要创建。

50.使用流管理员用户登录,进入数据移动->设置。选择同步的方式。我这里选的是按方案同步。选择特定方案后,需填写目标服务器相关参数。然后在下一步中点开高级选项,勾选双向复制,然后下一步,再下一步即可。

55.当提交后,OEM生成了一个调度去做同步的准备工作。在我的电脑上运行了将近五分钟。在运行过程中可能会报错,这时正确的做法是回到数据移动->设置,按照上面的提示进行回滚或继续操作。如果直接删除相关调度或别的资源,可能会导致无法再次配置流复制。我后来只好通过闪回数据库的方式才实现操作回滚。

60.创建成功后,进入数据移动->管理复制中,可看观察捕获,传播,应用三个图表来获取当前同步信息。其中捕获是通过分析当前日志来获取数据结构与数据内容的变化。传播是将变化同步到目标机器上。应用是将获取的变化应用到本库中。

我在配置流复制时遇到了好几个错误,其中大部分是提示找不到目标服务器或对象。后来我通过在/etc/host里直接指定ip与机器名的对应关系,又试了几次后,居然成功了。其次,在OEM提示配置成功的同时,仍然报了好几个别的错,后来我试了试在两边分别操作数据,发现都能同步成功,索性就不管了。

在实际使用中,还发现了以下问题

10.在实际使用中发现流复制无法同步序列值的变化,后来采取了间隔步长来规避这个问题。

Stream为什么不同步sequence的取值

oracle stream不会同步sequence值的变化如何解决

Oracle Streams Conflict Resolution

20. ORA-26786错误。在报错的服务器上执行下面的脚本来覆盖冲突。例如

DECLARE
cols DBMS_UTILITY.NAME_ARRAY;
BEGIN
cols(1) := 'DQHJMC';
DBMS_APPLY_ADM.SET_UPDATE_CONFLICT_HANDLER(
object_name => 'LandSystem.LS_CASE_BWA',
method_name => 'OVERWRITE',
resolution_column => 'DQHJMC',
column_list => cols);
END;

其中cols表示需要执行的列,object_name表示表名,method_name表示解决策略,resolution_column表示判断依据列。

解决冲突后,把method_name设为null再执行一次删除这个策略。

Managing Oracle Streams Conflict Detection and Resolution

DBMS_APPLY_ADM.SET_UPDATE_CONFLICT_HANDLER (P)

streams双向复制冲突规则(SET_UPDATE_CONFLICT_HANDLER)

参考

ORA-23616: 执行块 11 时失败 (相对于脚本)

有用Oracle 11gR2(11.2.0.2.0)作Stream兄弟吗?看看我这个错误,能提供点文章参考吗?

Oracle 流复制实践笔记的更多相关文章

  1. oracle数据库基于(streams流复制)的双机热备配置手册

    ------------------------------------------------------------------------------- 主数据库: 操作系统:windows 2 ...

  2. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……

    热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...

  3. Java分享笔记:使用缓冲流复制文件

    [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加快节点流对文件操作的速度 2.BufferedInputStream:输入缓冲流 3 ...

  4. MS SQL到Oracle的数据迁移笔记

    MS SQL到Oracle的数据迁移笔记 一.任务背景 旧系统使用MS SQL Server数据库,新系统使用Oracle数据库,现在需要将旧系统中的数据迁移到新系统中,旧数据按照约定的规则转换后,能 ...

  5. Python编程从入门到实践笔记——操作列表

    Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...

  6. PostgreSQL流复制记录

    参考了别人的部分,添加了自己在实践中的内容,仅做记录. 1.同步流复制中 主机操作 1.1postgresql.conf wal_level = hot_standby # 这个是设置主为wal的主机 ...

  7. java IO流 复制图片

    (一)使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // St ...

  8. Postgressql高可用(pgpool+异步流复制)

    文档结构: 由于博主之前是Oracle dba,oracle 高可用一般是rac,以及搭建ADG,一个是基于实例的高可用,一个是基于数据的容灾,甚至也有rac+adg的方式.Postgres有同步和异 ...

  9. 基于 Docker 和 GitLab 的前端自动化部署实践笔记

    基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...

随机推荐

  1. CentOS 7.0下配置MariaDB数据库

    刚刚配置了下CentOS 7.0版本的服务器,配置数据库时发现# mysql_secure_installation命令用不了,之后网上查了一下发现CentOS 7.0版本用MariaDB替换了mys ...

  2. 数位DP HDU3555

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  3. JSP + AJAX完整实例及代码

    (1)发送请求index.jsp,注意引入jquery.min.js文件 <%@ page language="java" contentType="text/ht ...

  4. SQL server 子查询、设置主键外键、变量及变量查询

    一.子查询 子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这 ...

  5. 服务器租用中网络ping值过高的原因

    其实在网络ping值过程中常常会有很多情况影响这个ping值问题,包括丢包现象,不稳定等等.究竟ping值的大小传输速度与哪些问题有关呢?是什么原因会影响他的速度呢?16年服务器租用运营经验的上市ID ...

  6. JSONObject简介

    JSONObject简介 本节摘要:之前对JSON做了一次简单的介绍,并把JSON和XML做了一个简单的比较:那么,我就在想,如果是一个json格式的字符串传到后台,需要怎么对其处理?如果前台页面需要 ...

  7. HDU 1828 Picture(线段树扫描线求周长)

    Picture Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  8. NEC学习 ---- 布局 -三列, 左右定宽,中间自适应

    ---恢复内容开始--- 这个布局很牛掰, 我觉得学习价值很大. 通过这个的学习, 我发现, 能将简单的事情做好, 就距离成功不远了. 其实布局就是利用所学知识, 活用. 在没看这个之前, 发现自己的 ...

  9. situations where MyISAM will be faster than InnoDB

    http://www.tocker.ca/categories/myisam Converting MyISAM to InnoDB and a lesson on variance I'm abou ...

  10. [转]手机浏览器的User-Agent汇总

    手机浏览器的User-Agent汇总 之前介绍的 更简洁的方式修改Chrome的User Agent,轻松体验移动版网络这种简洁的方法好像只适用于Chrome, Chrome不只是浏览界面简洁,对应的 ...