PanguSync大数据量初始化脚本

2024-05-11 21:52

本文主要是介绍PanguSync大数据量初始化脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于数据库增量同步软件PanguSync初始化最大超时时间为600s,如果初始数据量很大,第一次部署时可能会超时,可以先停止任务,使用以下Sql语句进行初始化,以下语句可以分步执行,初始化完成后,后续无需再执行耗时的初始化。

Sqlserver

源操作:1.创建字段
alter table 表名 Add C_PanguSyncSourceTimestamp datetime2(6) not null default sysdatetime()2.设置初始化分批时间
WITH NumberedRows AS (    SELECT    C_PanguSyncSourceTimestamp ,    ROW_NUMBER() OVER (ORDER BY [主键] desc) AS RowNum    FROM    表名  
)    
UPDATE Nr    
SET Nr.C_PanguSyncSourceTimestamp  = DATEADD(MILLISECOND, -Nr.RowNum, SYSDATETIME())    
FROM    NumberedRows Nr;3.创建索引
CREATE INDEX  I_PanguSyncSourceTimestamp  on 表名(C_PanguSyncSourceTimestamp ) WITH (ONLINE = ON)
--------------------------------------------------------------------------------------------------------
目标操作:1.创建字段
alter table 表名 Add C_PanguSyncTargetTimestamp datetime2(6) not null default '2000-01-01 00:00:00.000000'2.设置初始化分批时间如果存在C_PanguSyncSourceTimestamp字段:WITH NumberedRows AS (    SELECT    C_PanguSyncTargetTimestamp,C_PanguSyncSourceTimestamp ,ROW_NUMBER() OVER (ORDER BY (select NULL)) AS RowNum    FROM    表名 
)    
UPDATE Nr    
SET Nr.C_PanguSyncSourceTimestamp =Nr.C_PanguSyncSourceTimestamp ,Nr.C_PanguSyncTargetTimestamp = DATEADD(MILLISECOND, -Nr.RowNum, CAST('2000-01-01 00:00:00.000' AS DATETIME))    
FROM    NumberedRows Nr;如果不存在C_PanguSyncSourceTimestamp字段:WITH NumberedRows AS (    SELECT    C_PanguSyncTargetTimestamp,    ROW_NUMBER() OVER (ORDER BY (select NULL)) AS RowNum    FROM    表名   
)    
UPDATE Nr    
SET Nr.C_PanguSyncTargetTimestamp = DATEADD(MILLISECOND, -Nr.RowNum, CAST('2000-01-01 00:00:00.000' AS DATETIME))    
FROM    NumberedRows Nr;3.创建索引
CREATE INDEX  I_PanguSyncTargetTimestamp  on 表名(C_PanguSyncTargetTimestamp ) WITH (ONLINE = ON)

Mysql

源操作:1.创建字段
alter table `源表` Add column `C_PanguSyncSourceTimestamp` timestamp(6) not null default current_timestamp(6) ON UPDATE CURRENT_TIMESTAMP(6);2.设置分批时间
SET @row_number = 0;  
UPDATE  `源表`  SET  C_PanguSyncSourceTimestamp = TIMESTAMPADD(MICROSECOND, -(@row_number:=@row_number + 1), CAST(current_timestamp(6) AS DATETIME(6)))3.创建索引
CREATE INDEX  I_PanguSyncSourceTimestamp   on `源表` (`C_PanguSyncSourceTimestamp`)
--------------------------------------------------------------------------------------------------------------------------------------
目标操作:1.创建字段
alter table `目标表` Add column  C_PanguSyncTargetTimestamp  timestamp(6) NOT NULL DEFAULT '2000-01-01 00:00:00.000000'2.设置分批时间如果存在C_PanguSyncSourceTimestamp字段:SET @row_number = 0;  
UPDATE  `目标表`  SET C_PanguSyncSourceTimestamp=C_PanguSyncSourceTimestamp,C_PanguSyncTargetTimestamp = TIMESTAMPADD(MICROSECOND, -(@row_number:=@row_number + 1), CAST('2000-01-01 00:00:00.000000' AS DATETIME(6)))如果不存在C_PanguSyncSourceTimestamp字段:SET @row_number = 0;  
UPDATE  `目标表`  SET  C_PanguSyncTargetTimestamp = TIMESTAMPADD(MICROSECOND, -(@row_number:=@row_number + 1), CAST('2000-01-01 00:00:00.000000' AS DATETIME(6)))3.创建索引
CREATE INDEX  I_PanguSyncTargetTimestamp   on `目标表` (`C_PanguSyncTargetTimestamp`)

这篇关于PanguSync大数据量初始化脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980755

相关文章

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

C++类和对象之初始化列表的使用方式

《C++类和对象之初始化列表的使用方式》:本文主要介绍C++类和对象之初始化列表的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C++初始化列表详解:性能优化与正确实践什么是初始化列表?初始化列表的三大核心作用1. 性能优化:避免不必要的赋值操作2. 强

SpringIOC容器Bean初始化和销毁回调方式

《SpringIOC容器Bean初始化和销毁回调方式》:本文主要介绍SpringIOC容器Bean初始化和销毁回调方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录前言1.@Bean指定初始化和销毁方法2.实现接口3.使用jsR250总结前言Spring Bea

Spring实现Bean的初始化和销毁的方式

《Spring实现Bean的初始化和销毁的方式》:本文主要介绍Spring实现Bean的初始化和销毁的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Bean的初始化二、Bean的销毁总结在前面的章节当中介绍完毕了ApplicationContext,也就

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代