PostgreSQL线上沙龙第三期精彩回顾



3月21日,由中国开源软件联盟PostgreSQL分会主办的“PostgreSQL线上沙龙第三期”落幕。本次沙龙,邀请到了MCIS中间件开发者、IT老鸟王斌,CUUG优技教育掌门人、长春理工大学兼职教授陈卫星,与广大网友开门论道,分别探讨了从MSsql到PostgreSQL的应用移植、PostgreSQL 12.2 Point-in-Time Recovery (PITR)实战操作等内容。


一、从MSsql到PostgreSQL的应用移植

王斌老师拥有三十余年的IT从业经验。本次沙龙,他向大家分享了表全名和top的移植、API移植等技术要点;基于自己的从业经历,在简单化系统设计、存储过程的使用、核心商业逻辑的实现、数据库功能使用等方面的一些观点;以及自己在PG方面的工作计划。

1591684772923153.png

1591684824866055.png


王斌答疑互动摘录

1. 为什么会考虑 mssql迁移到pg?

十多年来微软变化的只有界面,创新性不足。PG支持的系统更多,而SQL Server只支持Windows和Linux,而且Linux在我使用过程中也遇到不少问题。


2. 上家所在公司做的银行核心系统,其实大量的业务逻辑还是用Oracle 存储过程去实现的,过程中大量用到type,function,sequence等。对于这种系统,从架构上如何解耦?可否将oracle的存储过程用pg来实现?

如果是我的话,我会首先分析业务模块,分析Oracle实现了哪些功能,并把一部分功能封装为微服务的模式,把一些辅助的模块首先在PG上实现,逐步替换,不会一次性全部迁移过去,风险很大。


MCIS中间件是王斌老师开发的一款产品,欢迎商务合作及技术咨询


MCIS中间件简介

Mcis是一个国产自主研发的应用开发和运行平台,其本身是一个结构简单的web服务器,同时内置nginx接口和各种数据库接口,实现应用的快速开发、部署和运行。


特点

1、Mcis主要针对基于数据库系统的应用系统的开发(除os系统、软件开发工具、音视频播放等核心计算机软件产品外,我们通常使用的各种软件90%都是基于各种形式的数据库系统);

2、通常大多数的应用系统开发都可以归结为(数据库+接口),这个比例可以高达95%以上,甚至98%以上;

3、利用Mcis进行开发,不但可以节省开发时间和费用,而且可以大大减少IT系统维护成本;

4、Mcis大大简化应用开发,把一个包含基本的数据库增改查模块的开发时间缩小到小时级别,一个有sql语句知识的基础数据库人员可以在半天时间完成一个这样的模块,而一个有html和css知识的美工可以在半天内完成一个模块的界面美化;

5、Mcis提供手机App开发功能,一次开发即可同时产生PC网页版本网站和手机原生App版本程序,并且可以通过工具软件产生安卓或苹果的手机App安装程序;

6、一般合格的计算机专业或广告设计专业的大学毕业生,经过一周到一月时间的培训就可以胜任开发工作。


Mcis擅长做的事情

1、各种企业网站;

2、各种基于数据库的应用系统;

3、各种采集有关的数据并上传进行分析的系统(采集设备可以利用手机网络上传数据,采集各种模拟和数字信号);

4、各种电子文档(各种格式)的存储检索等管理工作;

5、各种基于数据库的陷入困境的项目迅速上线运行(一周可以演示、一月可以试运行)。


Mcis不能做的事情

1、做计算机的各种核心软件,包括中国目前不能做的六大件(操作系统、数据库、编译器、浏览器、虚拟机、开发语言);

2、各种具体的图形图像处理软件,如PhotoShop等;

3、各种具体的音视频文件生成和处理,如视频摄录、播放、压缩、拆分等。


商务合作联系:王斌

email:wb_eai@qq.com

qq:166172627

微信号:wb_eai


二、PG 12.2 Point-in-Time Recovery

陈卫星老师深耕数据库培训领域多年。其本人也热心于数据库在高校的科研交流,同时是长春理工大学兼职教授、甘肃农业大学创业导师。本次沙龙,陈老师为大家带来了PostgreSQL 12.2 基于时间点恢复的实战操作。

1591684931117338.png


陈卫星答疑互动摘录

1. 陈老师,您好,您今天所讲的到目前为止都是模拟一个数据库在误操作删除一些数据之后对该数据的找回操作,操作之后后面的数据都没有了,在mysql中,我们可以在从库上设置一个sql_delay 参数,如果在规定时间内可以在从库找回数据,不影响业务的连续性,在PG里面有这些参数吗?还有你介绍的备份都是物理备份,但是在我们实际工作中都会定期对数据库进行一次逻辑备份,逻辑备份可以顺便检测一下是否有数据坏块,您觉得PG有这些优势吗?我不太了解PG,所以请教一下

Mysql的sql_delay参数只是查看当前备库延迟了多少时间,不是设置需要延迟多长时间,关于使用主备延迟的方式来实现表的恢复是不太实际的,谁都不知道删除的操作什么时候会发生,什么时候知道表被删除了;Pg支持主备之间的延迟操作;我上上周做了备份恢复的公开课(包含逻辑备份和物理备份,并不是只是物理备份),逻辑备份和物理备份这两种备份是互相配合使用的,pg也是支持的。


2. 有个不清楚的问题,就是执行不完全恢复前做了全库备份,执行完不完全恢复后,我能不能恢复数据库到不完全恢复前的状态

可以的,可以用不完全恢复以前的备份就可以。


3. 是否有通过某个sql语句,快速定位日志的方法呢?

有第三方的软件可以把pg redolog解析成sql语句,但是也是需要通过很多日志去分析,因为你不知道需要的sql语句具体包含在哪个日志中。


4. 有没有快捷的方法能定位到lsn或者事务号?

如果你知道做这个事务时的事务号,那么就能够很快查到,否则一个日志中包含那么多的事务,你很难去判断;如果不是做drop操作,那么可以通过对象的oid号很快在日志中定位需要关注的对象,但是这个对象可能会有重复的操作,所以还是需要人为的去判断具体哪一步是自己需要的。


5. 备库不是只读的吗?为什么还能做恢复的操作

备库肯定是只读的,否则就无法实现主备的数据同步了,能够做恢复是因为数据库在recovery状态,可以应用日志,但是不能手动修改,数据库必须要这么设计的。如果需要做双活,那么需要第三方的同步软件才能够实现。


6. PG能不能自由选择timeline,或者说能不能查看到所有的timeline

timeline是由于不完全恢复造成的,不是我们去选择哪个timeline,只要做了一次不完全恢复,就会产生新的timeline,每次发生不完全恢复后,在日志的序列号上就会产生新的timeline的标记。


7. 问下金融类系统联机业务库空间多大性能不会下降,oracleRAC可以很大的库,pg做了很多分库,一个库可以到多少性能也没有大的下降;pg数据库的恢复速度怎么样,针对大库

你说的大库应该指的是业务量吧,即使数据库数据再多,没有业务也不会出现新的性能问题,Oracle是oltp支持最好的,pg在oltp上也支持,目前也有金融业使用,但是没有具体的测试数据报告,所以这一方面我也不是很清楚;pg的恢复速度如果指的是recovery速度,那么在recovery的时候还是很快的,这一点跟oracle差不多。但是如果是进行restore操作,pg在大数据库下恢复应该没有oracle快,因为pg一般都是一个表一个文件的方式进行存储,那么在restore过程中有多少张表就要创建多少个文件,根据我以往的恢复经验,创建小文件的时候是需要花费很大时间的。


陈卫星老师深耕数据库培训多年,如您想深入学习PostgreSQL,可与陈老师联系:电话13718188639


PostgreSQL线上沙龙由中国PostgreSQL分会主办,旨在为广大PostgreSQL从业人员、爱好者提供一个向PostgreSQL技术专家学习、交流互动的平台,话题不限。如果您愿意向大家分享您对PostgreSQL的独特见解,可与我们联系(15863186550,微信同手机号)。如果您想聆听、学习嘉宾们的技术分享,请持续关注本公众号,PostgreSQL线上沙龙第四期即将来袭。


最后,再次感谢王斌老师、陈卫星老师,感谢各界朋友的关注与参与。下面为大家奉上本次沙龙的回放视频。


PPT和视频获取方式:识别下方二维码,进入公众号,回复“沙龙第三期”,即可获得下载链接。

社区公众号二维码
相关内容