信创
文章平均质量分 77
夏 克
Shylock
展开
-
核心系统国产平台迁移验证
信息技术应用创新,旨在实现信息技术领域的自主可控,保障国家信息安全。金融领域又是关系国家经济命脉的行业,而对核心交易系统的信息技术应用创新是交易所未来将要面临的重大挑战。为了推进国产化进程,选取核心交易系统的典型模块,实践了基于鲲鹏平台的迁移验证,在各技术栈迁移流程方法、性能调优、典型问题等方面,做了大量的探索与尝试。原创 2023-03-11 22:17:55 · 2272 阅读 · 0 评论 -
MySQL LOAD VS DM8 dmfldr
某业务系统从MySQL迁移至达梦后,有导入业务文件的功能使用MySQL的LOAD方式将csv文件导入到指定的表中。迁移到达梦后,该功能需要进行对应的调整(因为达梦没有LOAD功能),但达梦提供了dmfldr来实现快速的将文件装载到数据库的表中,从目前业务的需求上看,达梦的dmfldr是可以替代MySQL的LOAD功能。针对这个需求,本文使用一个demo来对比LOAD和dmfldr的使用与性能差异。原创 2023-01-13 16:18:26 · 674 阅读 · 0 评论 -
【与达梦同行】达梦驱动图谱
达梦提供了大部分主流开发语言的驱动接口,在我用使用过的国产数据库中对客户端驱动的支持应该算是非常不错的。本文主要介绍达梦的驱动开发,通过实际操作,从环境搭建到实践验证,介绍了达梦各种语言驱动的详细使用过程,由于篇幅原因,将演示代码提交到gitee仓库上供大家参考。原创 2022-12-17 15:30:40 · 1070 阅读 · 0 评论 -
openGauss洗冤录 之 copy from
对于copy功能PostgreSQL从9.2.4到16devel是否有过优化?或者openGauss是否持续合并或优化PostgreSQL的copy功能,这方面我没有去考证过。单纯从测试结果上看,openGauss的copy性能要略逊于PostgreSQL。当然,可能是我水平有限,所以希望各位openGauss的专家、老师集思广益,还openGauss一个真实的COPY FROM文件导入性能。(大家可以回复优化方案,我这边去做验证)原创 2022-12-11 20:47:08 · 805 阅读 · 0 评论 -
测评报告:文件导入哪家强?
本文将针对文件导入功能,在MySQL、PostgreSQL、达梦8、LvorySQL、openGauss、OceanBase六款数据库进行了对比测试。测试过程中使用相同的硬件环境和操作系统,且各数据库使用安装时的默认参数。注意:由于Oracle没有提供ARM相关的安装介质,所以本次测试并未对比Oracle的sqlldr;所有被测数据库都未经过优化,全部使用默认参数;原创 2022-12-10 15:29:57 · 1064 阅读 · 0 评论 -
OceanBase TableAPI实践案例(Rust)
相对与客户端,运行时会有一些问题,可能是版本相关的问题,应该可以很快解决。原创 2022-11-22 14:46:41 · 674 阅读 · 0 评论 -
OceanBase TableAPI实践案例(Java)
早在OceanBase 社区版 3.1.1中开放了一组新的 API 叫做 TableAPI,TableAPI 以 API而非 SQL 的方式提供了一种新的访问 OceanBase 数据的接口。它把 OceanBase 可靠和可扩展的分布式存储层能力直接提供给应用程序,提供了灵活(非关系模型)和轻量的数据访问接口(无连接状态),应用程序可以把 TableAPI 当做 key-value , Table-store , Hbase等多种数据模型的数据库来使用。原创 2022-11-17 08:28:37 · 867 阅读 · 0 评论 -
openGauss/MogDB高可用整理
主库为自己管理的每一个备库指定一个同步优先级(sync_priority) 与 同步状态(sync_state) 。**同步优先级(sync_priority)**表示备库在同步模式下的优先级,它是一个固定值。较小的值表示较高的优先级,而是一个特殊值,表示“异步模式”。备库优先级是一个有序列表,在主库配置参数 中依序给出。例如在以下配置中,和的优先级分别为1和2。**同步状态(sync_state)**是备库的状态,它因所有在列备库的运行状态及其优先级而异,以下是可能的状态:MogHA 是云和恩墨基于 M原创 2022-11-13 20:50:44 · 394 阅读 · 0 评论 -
TDSQL高可用整理
TDSQL PostgreSQL版采用分布式集群架构,如下图所示。该架构分布式无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的x86服务器就可以部署TDSQL PostgreSQL版数据库集群。Coordinator:协调节点(简称CN),对外提供接口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;原创 2022-11-12 10:42:17 · 1760 阅读 · 0 评论 -
PolarDB高可用整理
当一条查询请求在查询协调节点上被执行跨机并行查询时,该查询产生的执行计划会被分片路由至各个执行节点,每个执行节点将会执行各自的分片计划,并将分片的查询结果汇总至查询协调节点。可以称查询协调节点为QC(Query Coordinator)节点,称分片计划的执行节点为PX(Parallel Execution)节点。如上图所示,RO1为QC节点,它接收了一条查询输入请求,并将查询计划分片路由至RO2、RO3、RO4三个PX节点。原创 2022-11-12 10:41:05 · 420 阅读 · 0 评论 -
AnalyticDB PostgreSQL高可用整理
AnalyticDB PostgreSQL版基础版的Master和Segment节点均采用了单节点部署,架构图如下。图 1. 基础版架构图相比较下图中的高可用版,基础版取消了Master Node的副本Standby Node,以及Compute Node中Primary的副本Mirror。图 2. 高可用版架构图。原创 2022-11-12 10:38:43 · 493 阅读 · 0 评论 -
TiDB高可用整理
在内核设计上,TiDB 分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的 TiDB 系统。原创 2022-11-12 10:36:26 · 325 阅读 · 0 评论 -
达梦高可用整理
DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同 一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。DMCSS 是 DM 集群同步服务的简称,是 DMDSC 集群应用的基础,使用 DMDSC 集群或者DMASM 集群原创 2022-11-11 13:44:56 · 2574 阅读 · 0 评论 -
MogDB高可用方案
主库为自己管理的每一个备库指定一个同步优先级(sync_priority) 与 同步状态(sync_state) 。**同步优先级(sync_priority)**表示备库在同步模式下的优先级,它是一个固定值。较小的值表示较高的优先级,而是一个特殊值,表示“异步模式”。备库优先级是一个有序列表,在主库配置参数 中依序给出。例如在以下配置中,和的优先级分别为1和2。**同步状态(sync_state)**是备库的状态,它因所有在列备库的运行状态及其优先级而异,以下是可能的状态:MogHA 是云和恩墨基于 M原创 2022-10-19 15:32:24 · 314 阅读 · 0 评论 -
OceanBase高可用方案
OceanBase 数据库参考传统数据库分区表的概念,把一张表格的数据划分成不同的分区(Partition)。在分布式环境下,为保证数据读写服务的高可用,OceanBase 数据库会把同一个分区的数据拷贝到多个机器。不同机器同一个分区的数据拷贝称为副本(Replica)。同一分区的多个副本使用 Paxos 一致性协议保证副本的强一致,每个分区和它的副本构成一个独立的 Paxos 组,其中一个分区为主分区(Leader),其它分区为备分区(Follower)。原创 2022-09-24 20:46:38 · 1960 阅读 · 0 评论 -
openGauss账本数据库,你不知道的那些事儿
本文将通过对比官方文档关于**“设置账本数据库”**中的几个章节,结合源码来说说文档中操作步骤背后的原理。官方文档账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表。当用户创建防篡改用户表时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息,同时在blockchain模式下会创建一张用户历史表来记录对应用户表中每条数据的变更行为;而用户对防篡改用户表的一次修改行为将记录至全局区块表中。原创 2022-09-20 09:54:52 · 879 阅读 · 0 评论 -
miniob源码 架构概览
整体架构是基于Reactor事件驱动的异步消息处理模型,使用线程池,通过配置文件编排stage链,完成SQL处理流水线。原创 2022-09-14 11:04:46 · 2823 阅读 · 3 评论 -
使用vscode编译、调试miniob源码
实际上编译和调试是两个过程,我更习惯只配置调试launch.json,而tasks.json的工作可以直接手动完成,也就是可以参考的步骤完成编译,然后直接设置可持续文件的路径进行调试。同样的道理,这种调试方法可以用到其他项目的源码调试中,比如之前调试PostgreSQL和openGauss都可以用这个方法。原创 2022-09-14 11:03:31 · 3408 阅读 · 9 评论 -
MogDB秘籍 之 乾坤大挪移
希望这篇文章能把PostgreSQL、openGauss和MogDB关于插件开发和迁移相关的问题能够尽量的讲清晰,需要结合之前的几篇(“postgresql自定义函数实现,通过contrib模块进行扩展”、“openGauss/MogDB调用C FUNCTION”、“openGauss/MogDB脚本源码浅析(2)—— gs_install_plugin/gs_install_plugin_local”)文章一起学习了解。原创 2022-09-14 10:56:42 · 795 阅读 · 0 评论 -
openGauss/MogDB脚本源码浅析(2)—— gs_install_plugin/gs_install_plugin_local
总的来说这两个工具还是比较好用的,代码实现也比较简单。了解原理之后可以根据几个关键路径手动安装,或者在遇到安装问题的时候可以通过本文的分析继续排查解决。原创 2022-09-14 10:55:16 · 713 阅读 · 0 评论 -
To enable updating the table, set REPLICA IDENTITY using ALTER TABLE.
原因是发布订阅的表没有主键,不能进行update和delete操作。原创 2022-09-02 15:59:09 · 1603 阅读 · 0 评论 -
MogDB逻辑解码与pg_recvlogical
逻辑复制/解码相对于物理复制更加灵活,也可以根据实际业务需要开发对应的逻辑解码插件,甚至可以当做ETL来使用。总的来说逻辑解码是对用户非常友好的接口。以上通过对MogDB逻辑复制、逻辑解码的原理和部分代码进行分析,利用pg_recvlogical和SQL演示逻辑解码的过程,希望对大家理解MogDB逻辑解码有所帮助。原创 2022-09-02 15:58:10 · 909 阅读 · 0 评论 -
MogDB 3.0.0 新特性——发布订阅
发布订阅基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布拉取数据。实现集群间的数据实时同步。原创 2022-09-02 15:56:54 · 830 阅读 · 0 评论 -
MogDB企业应用 之 Rust驱动
Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和类似C++,但是设计者想要在保证性能的同时提供更好的内存安全。Rust已经逐步开始进入企业应用和操作系统的内核开发,之前听过几次openEuler SIG组的双周会,一些内核模块已经或即将使用Rust进行开发,虽然一些现代的开发语言现在还很难撼动传统的C/C++ 地位。但是像go和Rust已经开始在一些领域里面崭露头角。go的目标是取代C,而Rust则号称是C++ 的最佳接班人。原创 2022-09-02 15:55:32 · 715 阅读 · 0 评论 -
PostgreSQL企业应用——Rust三剑客(pgx)
Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和类似C++,但是设计者想要在保证性能的同时提供更好的内存安全。Rust已经逐步开始进入企业应用和操作系统的内核开发,之前听过几次openEuler的双周会,一些内核模块已经或即将使用Rust进行开发,虽然一些现代的开发语言现在还很难撼动传统的C/C++ 地位。但是像go和Rust已经开始在一些领域里面崭露头角。go的目标是取代C,而Rust则号称是C++ 的最佳接班人。原创 2022-09-02 15:54:10 · 1119 阅读 · 0 评论 -
MogDB企业应用 之 七种武器
如今江湖上最卷的门派,非国产数据库莫属。各位大侠们往往把精力放在拼内功(内核/架构)、拼身法(性能)、拼拳脚(功能/兼容性)、拼江湖地位(生态/社区)。然而好像并不怎么重视兵(武)器(接口/驱动/API),当然,可能我是搞C/C++出身,也许搞JAVA的兄弟并不会遇到这样的困惑,因为一套JDBC可以打遍天下。虽然市场占有率的头把交椅JAVA已经做了很多年,但随着各种开发语言的大行其道,现代企业的信息化系统中不太可能只使用单一的开发语言。因此闯荡江湖还是需要几把趁手的兵器!...原创 2022-08-16 12:01:16 · 464 阅读 · 0 评论 -
postgresql 15源码浅析(5)—— pg_control
pg_control保存了4类信息,分别是postgres集簇的初始化信息、系统信息、checkpoint信息、recovery信息。多种服务端工具会对pg_control进行查看或者修改。本文从代码的角度梳理了对pg_control读写相关的代码,希望能对大家了解postgres控制文件有所帮助。...原创 2022-08-16 11:57:41 · 817 阅读 · 0 评论 -
MogDB/openGauss使用Golang接口
MogDB/openGauss使用Golang接口原创 2022-08-16 11:50:47 · 597 阅读 · 0 评论 -
kunpeng 套件使用
摘要本文主要介绍通过华为远程实验室使用鲲鹏迁移工具套件安装插件Step 1 在vscode中搜素插件kunpeng 并安装Step 2 鲲鹏代码迁移插件-》免费试用-》立即申请Step 3 立即申请-》填写邮箱,选择操作系统Step 3 收取邮件,查看服务器登录方式Step 4 下载安装VPN客户端Step 5 通过ssh链接服务器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wvDhtyAo-1652179407530)(images/kK原创 2022-05-10 18:47:33 · 391 阅读 · 2 评论 -
postgres使用PL/Python导出表到csv
摘要在PostgreSQL的标准发布中当前有四种过程语言可用: PL/pgSQL、 PL/Tcl、 PL/Perl以及 PL/Python。 还有其他过程语言可用,但是它们没有被包括在核心发布中。本文主要介绍使用PL/Python过程语言实现一个将表导出到csv文件的函数。环境准备需要重源码编译postgres,目的是启用PL/Python服务端编程语言。要编译PL/Python服务器端编程语言, 你需要一个Python的安装,包括头文件和distutils模块。最低的版本要求是Python 2原创 2022-05-10 16:41:27 · 917 阅读 · 0 评论 -
openGauss/MogDB WDR报告详解
摘要WDR(Workload Diagnosis Report)负载诊断报告,是openGauss的工作负载诊断报告,常用于判断openGauss长期性能问题。WDR报告基于两次不同时间点系统的性能快照数据,生成这两个时间点之间的性能表现报表。开启WDR快照参数简介enable_wdr_snapshot参数说明: 是否开启数据库监控快照功能。该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。取值范围: 布尔型on: 打开数据库监控快照功能。off: 关闭数原创 2022-05-02 21:15:42 · 1309 阅读 · 0 评论 -
OceanBase 二次开发 之 Kunpeng + openEuler 适配优化(一)
引子由于时间和精力的原因,上一篇关于OceanBase二次开发的帖子Hello OceanBase!开启OB二次开发之后就很少在社区活动了。当然,还是要感谢社区小编和运营们不失时机的提醒与督促_。这两天在社区里面爬楼梯,翻了翻OB的相关帖子。近期OB社区的主旋律应该是性能相关主题——测试体验和性能调优等方面的。这个主题很好,很复杂,同时涉及的范围也很广,影响性能的因素也很多。我认为,如果把DB比作一辆车,那么车子能跑多快一般取决于三个方面:车子的硬件条件,比如发动机的排量车子本身的一些设计,比如变速原创 2022-04-05 14:16:05 · 2317 阅读 · 0 评论 -
使用golang链接达梦数据库
Go DM 数据库驱动介绍Go 语言标准库 database/sql(https://golang.google.cn/pkg/database/sql/)提供了一系列数据库操作的标准接口,DM 数据库基于 GO1.13 版本通过实现 database/sql 包的接口,向开发人员提供 DM 数据库操作的 Go 语言接口。环境准备达梦安装后在安装目录的drivers下有go目录,该目录下面的dm-go-driver.zip[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(原创 2022-04-02 22:03:31 · 3450 阅读 · 1 评论 -
MogDB/openGauss 教程 浓缩版
概述MogDB是EnMotech openGauss DataBase Enterprise Edition的缩写,是云和恩墨基于openGauss开源数据库进行定制、推出的企业发行版。它将围绕高可用、安全、自动化运维、数据库一体机和SQL审核优化等企业需求,解决企业用户落地。其核心价值是易用性、高性能、高可用等和全天候的企业支持。MogDB与openGauss的关系MogDB是在openGauss开源内核的基础上封装和改善的对于企业应用更加友好的企业级数据库。在openGauss内核的基础上,M原创 2022-04-02 17:24:19 · 2102 阅读 · 0 评论 -
OpenGauss/MogDB调用C FUNCTION 范例
摘要之前写过一篇关于postgresql自定义函数实现,通过contrib模块进行扩展的帖子,今天和恩墨工程师进行了一些交流,在MogDB中也可以实现同样的功能,原以为需要完整的OpenGauss的源码才能完成,但在恩墨工程师的指点下,了解到,通过既有官网版本的安装包就可以进行插件开发。而且,使用postgres的C FUNCTION要比开发插件更加容易些。也感谢恩墨专家提供的线索和思路👍 👍环境准备安装MogDB参考官方文档,写的已经很详细了。服务器环境本地虚拟机 centos 7.9原创 2022-04-02 16:18:58 · 1388 阅读 · 0 评论 -
OpenGauss 3.0.0 (Lite 版)轻量版部署
背景openGauss 3.0.0 版本是openGauss社区继2.0.0之后发布的又一个Release版本,版本维护生命周期为3.5年。3.0.0版本在高性能、高可用、高安全、高智能、工具链等方面都有持续创新和突破。3.0.0版本除了包含企业版外同时发布了openGauss社区首个轻量版(Lite 版)。今天是openGauss 3.0.0版本发布的第一天,忍不住搞一下试试~~实验环境Architecture: aarch64CPU op-mode(s):原创 2022-04-02 12:52:10 · 2853 阅读 · 0 评论 -
DBeaver配置达梦DM8数据库链接
DBeaver简介DBeaver是小巧而又强大的数据库链接工具,理论上课链接任何提供JDBC驱动的数据库(当然数据字典可能会有差异)。配置数据库驱动Step 1:数据库-》驱动管理器Step 2:创建新驱动Step 3:配置驱动jar包Step 4:基础配置配置链接Step 1:Step 2:修改ip,端口,用户名,密码后测试链接Step 3:完成链接...原创 2022-03-29 17:04:35 · 2181 阅读 · 0 评论 -
使用benchmarksql对PostgreSQL进行TPC-C测试
文章目录安装benchmarksql安装JAVA相关管径系统环境配置benchmarksql导入测试表执行测试安装benchmarksql下载https://sourceforge.net/projects/benchmarksql/解压tar -zxvf benchmarksql-5.0.zipcd benchmarksql-5.0/安装JAVA相关管径sudo apt install openjdk-11-jdksudo apt install ant系统环境配置benc原创 2022-03-20 19:00:09 · 1475 阅读 · 0 评论 -
c++ 通过ODBC访问达梦数据库DM8
安装ODBC测试环境└─(22:07:32)──> cat /etc/os-releaseNAME="Ubuntu"VERSION="20.04.4 LTS (Focal Fossa)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu 20.04.4 LTS"VERSION_ID="20.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_原创 2022-03-18 22:50:15 · 2466 阅读 · 0 评论 -
Hello OceanBase 开启OB二次开发
文章目录引子概要环境准备OceanBase集群OceanBase源码代码结构内建函数注册流程expr类图开发Hello OceanBase1. 创建ObExprHello类2. 修改添加函数名定义3. 修改工厂类4. 添加ID5. 修改工程文件6. ob_expr_hello.cpp7. ob_expr_eval_functions.cpp编译验证1. 替换observer2. 启动测试一些建议后记引子最近看到一篇帖子OceanBase 源码解读(十一):表达式和函数,作者简介:竹翁,毕业于北京大学,原创 2022-03-02 15:21:36 · 515 阅读 · 0 评论