使用 gt-checksum 迁移表结构到 GreatSQL

checksum校验和示例和工具 CRC校验工具 http://www.metools.info/code/c15.html http://www.ip33.com/crc.html 校验算法: CRC-16 CRC-16/X25 两者貌似不一样 #include <stdio.h&gt; #include <stdlib.h&gt; #include <string.h&gt; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef 阅读详情

使用 gt-checksum 迁移表结构到 GreatSQL

背景

本文以从 ORACLE 迁移到 GreatSQL 为例讲述如何使用 gt-checksum 迁移表结构。

关于gt-checksum

gt-checksum是GreatSQL社区开源的一款静态数据库校验修复工具,支持MySQL、Oracle等主流数据库。其商业版本近期新增了表结构迁移功能,如下是一个简单的表结构迁移使用案例。

本次使用的是 gt-checksum 商业版本

配置gc-task.cnf

gc-task.cnf是gt-checksum的初始配置文件,内容包括源端目标端DB连接串以及迁移对象列表等信息,位于gt-checksum程序的config-simple目录下,gt-cheksum会根据gc-task.cnf来生成表结构迁移相关配置文件。

$ cd ${gtdir}
$ cp -r config-simple config
$ cd config

$ vi gc-task.cnf
#源端URL
srcDSN = "oracle|user/password@ip:port/sid"
#目标端URL                                        
dstDSN = "mysql|user:password@tcp(ip:port)/information_schema?charset=utf8mb4"
#待迁移对象列表   
object = "qianyi" 
#object中 库名表名的分隔符                                                                               
limiter = "," 
#任务类型 struct表示迁移表结构                                                                                   
active = struct 

配置迁移对象列表

以迁移PCMS库下BMSQL_WAREHOUSE BMSQL_CONFIG BMSQL_DISTRICT_TMP三张普通表为例 配置方式如下:

配置格式 库名 分隔符 表

文件位置 与gt-checksum在同级目录

配置示例

$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP

迁移对象列表配置方式说明

object 支持如下四种配置方式:

  • 一般情况 无需映射(迁移到目标端后,库名表名不变)
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP

映射关系示意图

SOURCE                 -->  DEST
#示例1:PCMS,BMSQL_WAREHOUSE
PCMS.BMSQL_WAREHOUSE   --> PCMS.BMSQL_WAREHOUSE
  • 库映射 (迁移到目标端后,表名不变,库名改变)
PCMS:WLKY,BMSQL_WAREHOUSE
PCMS:WLKY,BMSQL_CONFIG
PCMS:WLKY,BMSQL_DISTRICT_TMP

映射关系示意图

SOURCE                 -->  DEST
#示例1:PCMS:WLKY,BMSQL_WAREHOUSE
PCMS.BMSQL_WAREHOUSE   --> WLKY.BMSQL_WAREHOUSE
  • 表映射 (迁移到目标端后,库名不变,表名改变)
PCMS,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS,BMSQL_CONFIG:BMSQL_CONFIG_0429
PCMS,BMSQL_DISTRICT_TMP:BMSQL_DISTRICT_TMP_0429

映射关系示意图

SOURCE                 -->  DEST
#示例1:PCMS,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS.BMSQL_WAREHOUSE   --> PCMS.BMSQL_WAREHOUSE_0429
  • 库表映射 (迁移到目标端后,库名表名都改变)
PCMS:WLKY,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS:WLKY,BMSQL_CONFIG:BMSQL_CONFIG_0429
PCMS:WLKY,BMSQL_DISTRICT_TMP:BMSQL_DISTRICT_TMP_0429

映射关系示意图

SOURCE                 -->  DEST
#示例1:PCMS:WLKY,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS.BMSQL_WAREHOUSE   --> WLKY.BMSQL_WAREHOUSE_0429

Oracle端表结构

  CREATE TABLE "PCMS"."BMSQL_WAREHOUSE"
   (        "W_ID" NUMBER(*,0) NOT NULL ENABLE,
        "W_YTD" NUMBER(12,2),
        "W_TAX" NUMBER(4,4),
        "W_NAME" VARCHAR2(10),
        "W_STREET_1" VARCHAR2(20),
        "W_STREET_2" VARCHAR2(20),
        "W_CITY" VARCHAR2(20),
        "W_STATE" CHAR(2),
        "W_ZIP" CHAR(9),
         CONSTRAINT "BMSQL_WAREHOUSE_PKEY" PRIMARY KEY ("W_ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"


  CREATE TABLE "PCMS"."BMSQL_CONFIG"
   (        "CFG_NAME" VARCHAR2(30),
        "CFG_VALUE" VARCHAR2(50),
         PRIMARY KEY ("CFG_NAME")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"


  CREATE TABLE "PCMS"."BMSQL_DISTRICT_TMP"
   (        "D_W_ID" NUMBER(*,0) NOT NULL ENABLE,
        "D_ID" NUMBER(*,0) NOT NULL ENABLE,
        "D_YTD" NUMBER(12,2),
        "D_TAX" NUMBER(4,4),
        "D_NEXT_O_ID" NUMBER(*,0),
        "D_NAME" VARCHAR2(10),
        "D_STREET_1" VARCHAR2(20),
        "D_STREET_2" VARCHAR2(20),
        "D_CITY" VARCHAR2(20),
        "D_STATE" CHAR(2),
        "D_ZIP" CHAR(9)
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"

生成gc-struct.cnf

gc-struct.cnf是表结构迁移的任务配置文件,gt-checksum根据gc-task.cnf来生成,放在gt-checksum同级目录下,生成方式如下:

$ ./gt-checksum  -f config/gc-task.cnf

如下输出表示配置文件生成成功

$ ./gt-checksum  -f config/gc-task.cnf
-- gt-checksum init configuration files -- 
-- gt-checksum init log files -- 
-- gt-checksum check parameter legality--
godror WARNING: discrepancy between DBTIMEZONE ("+00:00"=0) and SYSTIMESTAMP ("+08:00"=800) - set connection timezone, see https://github.com/godror/godror/blob/master/doc/timezone.md
----begin read table object file and init table meta data---
----begin write data to xls ---
[gt_tableObjectOptimizer_2024-10-14T14-59-34.xlsx] 元数据校对Excel表格已生成
----begin general gt-checksum config file ---
[gc-struct.cnf] 配置文件已生成
-- gt-task Table object sorting completed !!! --

编辑gc-struct.cnf

gc-struct.cnf中部分参数根据gc-task.cnf生成,无需修改,还有部分参数是默认配置,需要根据项目实际情况来修改,此处仅展示表结构迁移过程中部分必改参数,其余参数及其含义见文件内容。

tableJoin = left
#表关联方式  left表示以源端的库表对象为准,目标端不存在的做迁移,已存在的做校验  默认为join,表结构迁移时需改为left

fix = table
#生成SQL的方式 file表示将生成的建表SQL写入文件中;table表示将生成的建表SQL直接去目标端执行 此处以table为例

迁移表结构

gc-struct.cnf配置完成后即可开始迁移表结构,需要注意的是要提前在目标端创建数据库。

greatsql> CREATE DATABASE pcms;

执行表结构迁移

$ ./gt-checksum -f gc-struct.cnf

如下输出表示表结构迁移任务完成

$ ./gt-checksum -f gc-struct.cnf 
-- gt-checksum init configuration files -- 
-- gt-checksum init log files -- 
-- gt-checksum check parameter legality--
godror WARNING: discrepancy between DBTIMEZONE ("+00:00"=0) and SYSTIMESTAMP ("+08:00"=800) - set connection timezone, see https://github.com/godror/godror/blob/master/doc/timezone.md
-- gt-checksum begin check table --
~~~~~~~~~~~~~~~~~~~~~~~~~~gt-checksum start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Overall progress: [>                                                  ] 0.00%

----------------------------Dividing line------------------------------------
##########################gt-checksum end######################################
Monitor Turned closed
~~~~~~~~~~~~~~~~~~~~~~~~~~gt-checksum start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Overall progress: [==================================================>] 100.00%

##########################gt-checksum end######################################
Verification is over and data collection is in progress. Please wait...

Check end
** gt-checksum Overview of results **
Check time:  21.10s (Seconds)
seq        schema        table                     checkMode        issue Type        fix Type        chkStat
3          PCMS          BMSQL_DISTRICT_TMP        struct           no                table           bad    
1          PCMS          BMSQL_CONFIG              struct           no                table           bad    
2          PCMS          BMSQL_WAREHOUSE           struct           no                table           bad    

----------------**********----------------
gt-checksum report: totalTime: 21.101560578 (Seconds) checkTables: 3 normalTabls: 0 abnormalTables: 3 missTables: 0 

GreatSQL验证

greatsql> USE pcms
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
greatsql> SHOW tables;
+--------------------+
| Tables_in_pcms     |
+--------------------+
| bmsql_config       |
| bmsql_district_tmp |
| bmsql_warehouse    |
+--------------------+
3 rows in set (0.00 sec)

greatsql> DESC bmsql_config;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| CFG_NAME  | varchar(30) | NO   | PRI | NULL    |       |
| CFG_VALUE | varchar(50) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

greatsql> DESC bmsql_district_tmp;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| D_W_ID      | decimal(40,0) | NO   | MUL | NULL    |       |
| D_ID        | decimal(40,0) | NO   |     | NULL    |       |
| D_YTD       | decimal(12,2) | YES  |     | NULL    |       |
| D_TAX       | decimal(4,4)  | YES  |     | NULL    |       |
| D_NEXT_O_ID | decimal(40,0) | YES  |     | NULL    |       |
| D_NAME      | varchar(10)   | YES  |     | NULL    |       |
| D_STREET_1  | varchar(20)   | YES  |     | NULL    |       |
| D_STREET_2  | varchar(20)   | YES  |     | NULL    |       |
| D_CITY      | varchar(20)   | YES  |     | NULL    |       |
| D_STATE     | char(2)       | YES  |     | NULL    |       |
| D_ZIP       | char(9)       | YES  |     | NULL    |       |
+-------------+---------------+------+-----+---------+-------+
11 rows in set (0.00 sec)

greatsql> DESC bmsql_warehouse;
+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| W_ID       | decimal(40,0) | NO   | PRI | NULL    |       |
| W_YTD      | decimal(12,2) | YES  |     | NULL    |       |
| W_TAX      | decimal(4,4)  | YES  |     | NULL    |       |
| W_NAME     | varchar(10)   | YES  |     | NULL    |       |
| W_STREET_1 | varchar(20)   | YES  |     | NULL    |       |
| W_STREET_2 | varchar(20)   | YES  |     | NULL    |       |
| W_CITY     | varchar(20)   | YES  |     | NULL    |       |
| W_STATE    | char(2)       | YES  |     | NULL    |       |
| W_ZIP      | char(9)       | YES  |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
9 rows in set (0.00 sec)

到此表结构成功从 Oracle 迁移到 GreatSQL。

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

数据校验与修复工具 - GT-Checksum 开源发布 首先,创建一个Checksum实例,并配置要校验和修复的数据库、表和字段,以及校验算法。最后,再次执行校验操作,以验证数据是否已成功修复。它能够帮助用户确保数据的完整性和准确性,并在校验失败时自动修复损坏的数据。数据修复:当数据校验失败时,GT-Checksum可以自动修复损坏的数据。它可以根据校验算法计算出的校验值,与数据库中的实际数据进行比较,并对不一致的数据进行修复。它具有用户友好的界面和灵活的功能,使得数据校验和修复变得更加简单和高效。该工具可以对数据库中的数据进行校验,确保数据的完整性和准确性。 阅读详情

相关推荐

gt-checksum-开源静态数据库校验修复工具-MySQL主从复制数据一致性校验-MGR组复制节点修复-上云下云迁移数据验证-异构数据库Oracle到MySQL迁移校验-定期高.zip

gt-checksum_开源静态数据库校验修复工具_MySQL主从复制数据一致性校验_MGR组复制节点修复_上云下云迁移数据验证_异构数据库Oracle到MySQL迁移校验_定期高.zip嵌入式通信协议与 Debug 实战指南

Mysql、Oracle数据比对工具GT-Checksum

【代码】mysql、oracle数据比对工具。

qq_34692500的博客 812

checksum-validator(V1.1.6)

windows平台上,非常好用的哈希值计算工具,可以实现自动对比功能。同时支持一键导出MD5,SHA1,SHA256,SHA512值。

好用的数据校验&修复工具gt-checksum开源啦

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1. 背景介绍2. 功能特性3. gt-checksum使用3.1 标准使用案例3.2 直接在命令行模式下使用3.3 使用极简配置文件案例4. 项目信息5. 开源发布会不用说,看名字也知道,gt-checksum工具是数据校验工具。没错,gt-checksum 是GreatSQL社区新增的成员,它是 一款静态数据库校验...

老叶茶馆 1108

基于非对称纳什谈判的多微网电能共享运行优化策略(Matlab代码实现)

基于非对称纳什谈判的多微网电能共享运行优化策略(Matlab代码实现)内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际上内容并未围绕Plecs或全桥LLC谐振变换器展开详细论述,而是罗列了大量基于Matlab/Simulink和Python的科研仿真项目标题及相关技术方向,涵盖电力系统、无人机控制、微电网优化、路径规划、状态估计、信号处理、电动汽车调度、电力电子变换器等多个领域。其中包括多种优化算法(如粒子群、遗传算法、NSGA-II)、控制策略(如PID、MPC、滑模控制)、仿真建模(如LLC谐振变换器、DAB变换器、PWM整流器)以及具体应用场景的研究实现。尽管提及“隔离型全桥LLC谐振变换器建模及参数设计资料”,但全文缺乏对该主题的具体描述、模型细节或仿真分析,仅作为条目之一出现。因此,该文档实质是一份科研项目资源清单或代码合集目录,而非针对某一主题的深入文章。; 适合人群:具备一定Matlab/Simulink或Python编程基础,从事电气工程、自动化、控制科学、电力电子、新能源系统等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①为科研工作者提供丰富的课题参考与复现资源,涵盖优化调度、控制系统设计、电力电子仿真等方向;②辅助完成硕士/博士论文、期刊论文复现、课程设计或项目开发,提升研究效率与创新性;③通过已有模型和代码快速搭建仿真平台,聚焦算法改进与性能优化。; 阅读建议:此文档应作为科研资源索引使用,读者可根据自身研究方向筛选相关条目,结合配套代码与参考资料进行深入学习与实践。对于希望研究全桥LLC谐振变换器的用户,需注意本文档未提供完整内容,建议查找标注的“仿真+设计报告+计算书”等附件资源以获取详细信息。

TCP报文 Flood攻击原理与防御方式

TCP交互过程中包含SYN、SYN-ACK、ACK、FIN和RST报文,这几类报文也可能会被攻击者利用,海量的攻击报文会导致被攻击目标系统资源耗尽、网络拥塞,无法正常提供服务。接下来我们介绍几种常见的Flood攻击的原理和防御方式。

qq_32044265的博客 4219

使用 gt-checksum 分析迁移对象

本文以从 ORACLE 迁移到 GreatSQL 为例,介绍用 gt-checksum 分析迁移对象,含配置、执行及结果解析,完整呈现分析流程。

GreatSQL2021的博客 741

android广告SDK原理详解(附源码)

广大的开发者吃糠咽菜开发了一两款APP,获取了一些流量后自然就会想到流量变现,一般情况下大家会选择到百度联盟或者Google Admob这些广告服务提供商注册开发者账号,在自己的APP里面加上几行广告位代码,集成他们的广告SDK包。然后谋事在人,成事在天,只有每天看报表查查收益。   也有一些开发者为了能够提高自己的变现水平,同时接入了好几家的sdk,哪家出的收益高一点我就出哪家的广告,但是这

rmcgogo的博客 1万+

GreatSQL社区首款开源工具亮相丨数据校验&修复工具gt-checksum开源啦!

1、MySQL主从复制场景:主从复制中断后较长时间才发现,且主从间差异的数据量太多,这时候通常只能重建复制从库,如果利用 pt-table-checksum 先校验主从数据一致性后 ,再利用 pt-table-sync 工具修复差异数据,这个过程要特别久,时间代价太大。作为MySQL DBA,相信应该都听说过Percona出品的pt-table-checksum & pt-table-sync 工具(没听说过的绝对不是合格的MySQL DBA,嘿嘿),可以用它俩进行数据校验及修复工作,非常好用。

GreatDB的博客 974

iSLIP算法实战:如何用Python模拟交换机优先级匹配(附完整代码)

本文详细介绍了如何使用Python实现iSLIP算法,模拟交换机优先级匹配过程。通过核心的指针滑动逻辑和迭代循环策略,构建了一个完整的iSLIP算法模拟器,并加入可视化模块以直观展示匹配过程。文章还提供了完整的代码框架和性能优化建议,适合网络工程师和Python开发者直接集成到测试环境中。

weixin_29313239的博客 251

STM32L433使用DSP库配置过程

STM32L433中有FPU,在使用中为了使用其中的部分函数,需要对其进行配置。     配置成功后做些总结,留待后续复习备忘,同时也希望有朋友像我一样使用DSP库配置时少走弯路,留作交流。

在在在的博客 4550

GreatSQL 异步复制及搭建

复制就是将一个数据库数据复制到一个或多个数据库上,复制的过程是异步的,其工作原理是通过binlog(二进制日志)记录事务变更然后传送到从库并重放事务,保持数据一致。

GreatSQL2021的博客 1390

RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)

本文记录的是利用中的模块优化的目标检测网络模型。通过局部特征提取器、周围环境提取器、联合特征提取器和全局环境提取器来提取局部特征、周围环境和全局环境信息,充分利用不同层次的信息。本文将其应用到中,并进行二次创新,使网络能够更好的处理多类别目标的分类能力。CGNet: A Light-Weight Context Guided Network for Semantic Segmentation1️⃣ 首先通过局部特征提取器floc(∗)floc(*)floc(∗)和周围环境提取器fsur(∗)f_{sur }

Limiiiing的博客 1350

一文读懂网络报问中的检验和(checksum)—— 原理+举例+代码

如何求解网络报文中的checksum? 最近在学习计算机网络,在运输层和网络层部分存在各种协议TCP、UDP、IP、ICMP等等,而在这些报文中都存在一个公共的字段——检验和(checksum)。接下来,我将从什么是检验和、检验和怎么算、检验和计算示例、python代码计算检验和这几个部分详细介绍。 什么是检验和? 检验和是存在于各种报文中的一个字段,它存在的目的是验证报文在网络传输过程中的完整性...

Andy的博客 6万+

一文搞懂YOLO各版本差异:v5易用、v8多任务、v10低延迟,该怎么选?

YOLOv5的“易用”是为了降低入门门槛,适合新手启蒙和旧项目维护;YOLOv8的“多任务”是为了满足工业需求,成为目前的主流版本;YOLOv10的“低延迟”是为了适配边缘计算,代表未来的发展趋势。选型的核心不是“选最新的”,而是“选最适合自己场景的”。记住选型口诀,按场景对号入座,就能避开99%的坑。希望这篇文章能帮你彻底搞懂各版本差异,选对属于自己的YOLO版本!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1169

RK3588高速接口实战-PCIE

摘要: RK3588的PCIe接口支持PCIe 3.0x4和PCIe 2.1x1/x2,具备Root Complex和Endpoint模式,适用于NVMe SSD、5G模块等高速设备。硬件设计需注意85Ω/100Ω阻抗匹配、220nF AC耦合电容及100MHz参考时钟。设备树需配置控制器节点、PHY模式和IOMMU映射(RC模式用iommu-map,EP模式用iommus)。调试时可通过lspci检查链路状态,dmesg查看训练日志,perf分析性能。常见问题包括设备识别失败(检查复位时序、PHY配置)、

weiyvyy的博客 505

数据驱动世界:开源数据库工具大合集

在现代数据驱动的世界中,数据集成工具变得至关重要。以下介绍几款神级开源数据集成工具,它们在不同场景下提供了强大的数据迁移、同步和管理能力。1. RedisShake简介:RedisShake是阿里云开源的迁移工具,用于Redis数据迁移和同步的工具,支持单机,主从,哨兵和集群数据增量和全量数据传输。优点:支持全量和增量数据同步,适合不同场景。高性能,适合大数据量的传输。支持不同版...

qq_34692500的博客 1849

国社科基金申报书“选题与说明依据”用AI怎么写?借助Gemini 3 Pro一次理清研究演进逻辑

研究进展部分要明确指出已有研究的不足与局限,比如方法不足、数据或材料受限、研究视角单一等等局限,之后要找准研究切入点,自然引申出自己的研究问题。为提升课题申报书的质量,学术史梳理要遵循述评结合、中外结合、新老结合的原则,不仅“述”,更要“评”,兼顾国内研究与国际学术动态,统筹经典研究与最新成果。它是对选题的整体概述,需阐明研究的具体问题、视角以及核心概念。2)存在问题或争议:结合已有研究或实践现状,指出该领域在理论建构、测量工具、实践应用或研究结论方面仍存在的不足、空白或争议,明确研究的必要性;

智能AI让学术科研更容易 942

gt-checksum 1.2.1发布,新增表结构校验及修复等超实用特性

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。重要的话先说,今晚(3月20日)19:30 gt-checksum新版本发布会,扫码(或点文末阅读原文)预约gt-checksum 1.2.0版本发布后,受到了广大社区用户的热烈响应。短短几天,便有几十个star,以及社区用户提交了十几条issue反馈问题,更有热心用户帮忙优化了Dockerfile,据说还有某大厂计划...

老叶茶馆 300

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

gt-checksum 2.0.0 版本重磅升级:多维度优化,让数据库校验更高效精准!

还扩展了索引检测修复能力,新增前缀、函数索引检测修复,同时支持 MySQL 生成列全场景,完善一致性校验。gt-checksum 2.0.0 版本迎来重大升级,围绕三大核心方向全面提升,修复多项关键问题,完善测试覆盖,使数据库结构与数据一致性校验更高效精准稳定。gt-checksum 2.0.0 版本升级全面且深入,从功能到性能、兼容性等多方面优化,有望提升数据库校验效率与准确性,推动行业发展。新增端到端回归脚本,优化测试用例版本兼容格式,完善测试体系通用性。

programmerjob的博客 29

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

gt-checksum v4.0.0 新功能解读系列文章(1):断点续传——大任务中断不再从头跑

resume是 gt-checksum v4.0.0 新增的核心参数,用于控制数据校验和修复任务的断点续传行为。该参数同时适用于(数据校验)和repairDB(数据修复)两个工具。gt-checksum v4.0.0 的断点续传功能,从根本上解决了大规模校验任务"中断即重来"的痛点。通过本地进度文件记录表级别和 chunk 级别的完成状态,配合 fixsql 安全边界校验、行数缓存、过期保护等机制,确保续传后的校验结果准确可靠。

GreatSQL2021的博客 367

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

数据库表自增主键超过代码Integer长度问题

需要核对历史表(特别是数据量较大的表)查看是否有和表实体类中长度冲突的,需要做全面审核,防止出现该类问题。通过修改java实体类的类型,变更为Long型,不能修改表字段长度,因为大量数据会导致表锁死。如果自增主键无业务属性,通过重置自增主键当前值,快速修复。

韩小文的博客 636

mysql数据比较工具_mysql主从数据对比工具简介

1Checksum1.1 checksum原理checksum table的原理是对表中的数据进行一行一行的较验和计算,在执行checksum命令时,表会被加一个读锁(read lock),因此对于大表,这是一个很耗时的过程。读锁:又叫S锁/共享锁;当MySQL的一个进程为某一表开启读锁之后,其他的进程包含自身都没有权利去修改这表表的内容。但是所有的进程还是可以读出表里面的内容的。但是不能实现更新...

weixin_36443823的博客 2470

数据库校验利器升级!gt-checksum v1.2.3 正式发布

🎉 数据库校验利器 gt-checksum v1.2.3 正式发布,功能全面升级! 🚀 支持跨库映射、存储过程 / 触发器校验,智能防 OOM,修复 SQL 更完善。 ⚡ 性能提升 3 倍,适配多场景数据一致性校验,运维更省心。

GreatSQL2021的博客 969

checksum校验和算法总结

本文的目的是对常用的checksum算法进行总结,并不断完善和补充,以备后期在项目中直接使用。

liuxu324的博客 2161
上一篇: DML操作报列不存在?
下一篇: 【GreatSQL优化器-08】statistics和index dives
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值