表的重新再同步(无需时间窗口)

如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,但实际业务始终24小时可用,不能提供时间窗口,

则可以参照以下步骤。(因较为复杂,使用需谨慎!)

1)确认ext/dpe/rep进程均无较大延迟,否则等待追平再执行操作;

2)停止目标端的rep进程;

注意:步骤3-5为将源端数据通过exp/imp导入到目标端,客户也可以选择其它初始化方式,比如expdp/impdp。

3)在源端获得当前的scn号。例如:

select to_char(current_scn) from v$database;

以下以获得的scn号为1176681为例

4)在源端使用exp导出所需重新初始化的表或者几张表数据,并且指定到刚才记下的scn号。例如:

exp <username>/<password> tables=ctais2.SB_ZSXX grants=n statistics=none triggers=n compress=n FLASHBACK_SCN=1176681

5)通过ftp传输到目标端;

6)在目标端,使用imp导入数据;

导入数据之前,先把目标端对应的表删除

nohup imp goldengate/XXXXX file=nanhai.dmp fromuser=ctais2 touser=ctais2 ignore=y &

7)如果这些表有外键,在目标端检查这些外键并禁止它们(记得维护dirsql下的禁止和启用外键的脚本SQL);

8)编辑目标端对应的rep参数文件,在其map里面加入一个过滤条件,只对这些重新初始化的表应用指定scn号之后的记录

(一定要注意不要修改本次初始化之外的其它表,会造成数据丢失!):

map source.mytab, target target.mytab, filter ( @GETENV ("TRANSACTION", "CSN") >     1176681 ) ;

9)确认参数无误后,启动目标端的rep进程;

10)使用info repxx或者lag repxx直到该进程追上,停止该进程去掉filter即可进入正常复制。

时间: 2024-10-17 12:15:39

表的重新再同步(无需时间窗口)的相关文章

表的重新再同步(需时间窗口)

如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,可以参照以下步骤. 1)确认需要修改的表无数据变化 (如果有条件建议停止应用系统并锁定除去sys和goldengate以外的其它所有用户防止升级期间数据变化, 或者锁定所要再同步的表): 2)重启dpe进程(为了能够对统计信息清零): 3)停止目标端的rep进程: 4)在源端使用exp导出该表或者几张表数据.例如: exp goldengate/XXXX file=nanhai.dmp tables=ctais2.SB_ZSXX gr

[转帖]别再问“分库分表”了,再问就崩溃了!

别再问“分库分表”了,再问就崩溃了! https://www.cnblogs.com/butterfly100/p/9034281.html “ 在谈论数据库架构和数据库优化的时候,我们经常会听到分库分表,分库分表其实涉及到很多难题,今天我们来汇总一下数据库分库分表解决方案. 图片来自 Pexels 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限. 当单表的数据量达到 1000W 或 100G 以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能

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

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

javascript小技巧:同步服务器时间、同步倒计时

之前在网上看到有人提问,如何在页面上同步显示服务器的时间,其实实现方法有几种,可能一般人立马就想到可以使用Ajax每隔一秒去请求服务器,然后将服务器获取到时间显示在页面上,这样虽然能够实现,但存在一个很大的问题,那就是每隔一秒去请求服务器,这样如果用户多了,服务器就会崩溃(内存占用率会很大),所以在我看来,这种方法不可行,我这里给出一种解决方案,能够实现同步服务器时间.同步倒计时,却不占用服务器太多资源,下面我给写实现的思路 第一步,当用户第一次浏览页面时,服务器首先获取当前时间并显示在页面上(

配置NTP,同步服务器时间

配置NTP,同步服务器时间          项目中的服务器越来越多起来,最近又在做几个服务器上的数据库同步,同步出错就去查看日志,于是就发现了一个一直被忽视的小小问题---几台服务器的时间不一致.          于是查阅相关资料,决定用NTP(Network Time Protocol,网络时间协议)--是用来使网络中的各个计算机时间同步的一种协议.它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms.来实现几台

使用ntpdate命令同步服务器时间出现“the NTP socket is in use, exiting”

今天将一台Centos服务器还原快照后,出现了如下问题: 然后使用ntpdate命令手动同步服务器时间,出现如下提示: [[email protected] tools]# ntpdate 220.231.55.106 4 Nov 12:02:59 ntpdate[29800]: the NTP socketis in use, exiting 解决方法: 第一步:#service ntp stop 第二步:#ntpdate ntp.neu.edu.cn 问题得到解决:

linux同步网络时间

如何让linux时间与internet时间同步(centos) 文章内容来源:http://www.cnblogs.com/itxiongwei/p/5556558.html 笔者在使用linux时(虚拟机),经常会发现使用一段时间后,linux时间和我的 宿主机(真实机)的时间不一致,而宿主机的时间确实是internet时间,安装linux时选择的时区也是Asia/Shanghai,那么今天我分享 的即为如何让linux时间与internet时间同步 在解决问题之前,我们首先来了解下面几个知识

哈希表---线性探测再散列(hash)

//哈希表---线性探测再散列 #include <iostream> #include <string> #include <stdio.h> #include <string.h> #define m 10000 #define NULLkey -1 using namespace std; int HashTable[m]; int Hash_search( int k) { int p0, pi; p0=hash(k); //函数运算值 if(Has

ntpdate同步网络时间

说明: 新安装服务器,时间常常不准确.特别是多台服务器之间做均衡的,如果时间不准确,有可能导致生成的时间戳不对,出现数据错乱. 实现: 1.设置时区 # rm -rf /etc/localtime # ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 2.CentOS系统,安装ntp时间同步工具 # yum install -y ntp # ntpdate -u 202.120.2.101 # date 以下是国内常见的NTP服务器 n