00:00
啊,大家好,欢迎啊收看我们腾讯云数据库小课,今天和大家分享啊,如何使用PG来去对数据库进行连接词的一个管理啊,我曾经听说过一句话,用PG啊,不用连接词绝对是一个最肯定的做法。哪怕是像PR这种轻量级的连接词啊,有和没有的区别啊,是不是一般的大啊,为什么这样说啊,因为就是PG啊,它是一个多进程结构,每新增一条绘画,它就会新建一个进程啊,相对来说数据库的开销也就必然会增大一些啊,因为在绘画里边啊,有很多C型啊,都是长时间会处于一个iol的一个状态,呃,语句去执行的话,那必然这个连接它又没有断,它还是放在了占用我们的系统资源的,那么PG browser它的优势主要就在于此,他可以去对这些连接进行一个管理,当我们啊用户来个来了一个circle,或者是来一个事物之后,他可以将这个事物或者circle啊分拆到由p browser和数据库之间进行管理的这些链路当中去,分发到不同的连接里边去进行执行,而使这个iol的这个状态啊,就尽量保持的比较少,更好的去利用的连接资源,那这个就举个例子,就相当于说啊PC布R呢,它是一个。
01:18
呃,我们公共出行,公共交通里边的一个工具,就像大巴或者地铁一样啊,当我们的连接来,或者当我们搜狗要去执行的时候,只需要在在我们这个公共公共交通里边去找一个座位做下去,那执行就可以了,呃,那么我们原生的PG原生的连接就有点类似于我们客户端直接访问数据库,将是每一个客户端,每一个连接,每一个circle口都去开一个私家车一样,这样子必然会造成我们的交通拥堵啊,这个就是P的一个核心了。它支持啊三种连接模式啊,分别是还有级别啊第种信模式,它主要是针对于会画来说的,当用户连接和任务完成结束之后啊,这个p browser才会把这个连接进行相关的复用,和PG的原生的连接词,呃,连接管理实际上是一致的,就是只能说啊用户把这个会话用完了之后才会释放,释放之后我们PG browse才会把这个会话进行放开,然后给其他用户的连新的连接去使用,那么这个做法和我们PG原生的做法是没有什么区别的。那么第二个就是关于我们translation的这种连接词模式,Translation的连接模式,它是将我们连接的概念啊,变成了一个事物啊,当我们客户端执行一个事物之后,我画一下,当客户端有一个新的事物来访问我们的PR的时候,皮把这个事物就会在我们新增的在我们和P。
02:49
和PG之间去建立的这些连接当中去啊,向下去查找哪一个是iol的,我们就会把这个事物放到这个iol的连接当中去执行,执行完这一条事务之后,这个bank或者成功了之后,那么这条连接就会又被释放出来为iol,那么这个时候啊,Browser就来来回回就这样做这个事儿,就意味着更好的把我们的资源给利用了起来,更好的利用了我们的连接词和链接啊资源,那么最后一个circle级别,这个级别实际上是类似于auto commit啊这样子的一种模式,它是每执行一条circle语句就会使就会使这个circle进行提交,提交完成了之后把这个事释放出来,当然嗯,从理论上来讲啊,S的力度是最小的,那对资源这个连接,连接的管理和利用是最极致的,当然了这个业务场景有关系啊,有一些业务它不一定需要你这样子,S级别的大多数可能是事务级别,所以说。
03:49
我们本次探讨主要是以基于事务级别的连接词管理来和大家一起进行一个使用分享,那么如何去配置这个PG,首先首先我们需要原材料啊,我们在腾讯云数据库这边去购买了一个主实力啊PG。
04:08
那两个RO实例,在这个主实例下面挂了一个RO,这个RO组可以自动实现自动的负载均衡到这两个实例当中啊,这个是我们当前的测试实例,这是我们的组实例访连接,那么主实例可以支持写入和读取,那么从RO组就是我们的只读实例,可以支持我们的只读操作,那我们本次P演示啊,就是基于这三个实例来进行一个配置,那么同同理我们需要找一我们需要购买一台云服务器啊,作为我们PG browse搭建所使用的啊,我们买了一个最小的一个规模的一个测试实例服务器啊,首先我们登录到啊,这个实例是我们已经重装完操作系统啊,基于我们申通OS7.2这个操作系统进行安装的,申通OS7.264位来进行安装的一个操作系统,那我们这个时候首先是需要去安装我们的PR,谷歌或者百度上去进行搜索,进入我们的的首页。
05:04
我们可以看到PCR这边最新的版本,当前的最新版本是1.16.0,这个版本我们就使用它,可以直接点击这个的这个版本进行点击下载,下载完成之后通过命令把文件上传上来,这边我已经下载好了啊,就不再演示下载了,就把这个1.16.0啊上传到我们这个操作系统当中,上传完成之后解压就会形成一,就会有一个browser的目录。进入之后可以看到我们P的源码,首先源码安装很简单,就直接点。指定我们的安装目录即可。然后再make make install。一般我们会啊,通过我们的posts或者是一个业务用户来进行我们的管理,在这里呢,我们去指定一个我们的安装目录,放在OPT这个目录下,OT叫PG。
06:06
Browse。在安装编译安装指定目录的时候,我们就把这个目录去指定过去即可。就可以看到我们在切割啊,在我们的配置的时候,我们就会进行安装D,安装之前的配置就会发现我们有很多依赖库没有安装,那么怎么去解决呢?嗯,因为云服务器啊,这边默认配置了我们的样本源,所以说我们直接要store相应的。开发库即可提示什么包找不到,我们就安装什么包继续。继续。电影。提示我们S自动安装就可以了。安装完成之后我们继续啊配置它好,最后我们第看那这个执行完成,执行完成之后,它这个有一个结果啊,就意味着我们添加了一些模块,那么呃,下一步就是make了,好编译执行完成之后make install。
07:13
它就会自动的将我们的文件啊,拷贝到我们刚才指定的安装目录当中,这个时候我们去到。我们的安装目录就可以看到下面有一个bin文件,Bin文件下面有一个R啊,这一个并程序还有一个。6MD,这个是我们新版本的一个介绍功能。还有我们的主要的配置文件,就是这个browse点,还有一个配文件的介绍,还有一个就是user list啊user list这个就是我们的用户的一个配置文件,好了,那我们怎么去启动这个process,嗯,启动命令可以直接去使用。
08:07
我们的oppg。以及。来进启动,我们看看刚刚help。很简单。它的参数不多。下面杠D啊,就是一个DEMO执行啊,就运行在我们后端,杠R是重启,杠V是检查我们的,检查我们的配置文件是否正确,然杠大为是指我们的现在版本,就是看我们的,所以说我们的执行方法,我们执行杠D,然后我们的执行文件就行了。这样就可以执行我们的。好,这个地方提示了我们一个文件。示我们一个信息,就是说没法打开这个,为什么我们可以一下我们配置文件的信息,那我们怎么去配置这个配置文件呢。
09:08
这个是我修改过后的一个文件,它里边最主要的有几部分,一部分啊,Database。第二部分users,还有第三部分browser啊,其中我列出的这些就是稍微比较重要的一些配置信息了,那么这个地方主要就是配置我们的数据库连接信息。首先我们知道。我们测试是将我们的主实力配成一个止血库,然后把从我们的子都实力组配成我们的一个子读库,那么意味着我们的子都R组这个地址是用于我们访问我们的子都实例的。那么我们就会两个连接一模一样的,我们只需要更改我们只读实例的IP地址即可,那么这个就database就配置完成了,就不建议把用户名和密码配置这儿,而且我们数据库是有多个用户,如果说我们在这配置的数据数据库,那么我们在使用连接的时候就只能够使用这个数据,就是不建议把用户和密码配置在我们的配置文件当中,那P这边的一个核心配置,首先我们的监听地址,监听地址一定要配置我们本机的地址端口监听啊,如果说还是喜欢5432,也可以用5432,也可以用其他的,这个看个人的情况,Log fire和PID fire,我为了方便管理,我的建议是把它都放在我们的。
10:39
管理目录当中,我们这边置一个即啊MD的话,就必须要我们边必须是MD的一个。那么我们的aspire啊,这个就是配置我们的白名单用户,这个是在另外一个文件里面去进行配置,我们的连接模式啊,我们设置为这个模式啊,最大连接数我们当前可以设为100,也可以设为1000,这个可以根据咱业务的实际情况来去进行配置,其他的配置我们都按照当前这个配置进行,那么这个时候我们就尝试启动一下这个服务,在启动之前我们可以通过杠V来去查看一下我们的配置文件是否配置正确,配置的时候如果说。
11:22
执行报错啊,他说我们不能够用入用户去执行,那我们。当前把这个目录。权限给这个操作系统用户。我们把这个连接bug关闭掉。怎么去执行,我们怎么去启动呢,我们可以。杠改成杠地执行。
12:00
也可以看到我们监听的服务,我们端口是53。可以看到brother启动我们一个监听。可以看到。连接我们的,我首先我来示例来连接一下我们的原数据库。连接提示我输入密码好,正常连接没有问题啊,我们退出来,我们再连接我们本机的browse端口没有变,IP地址变了。然后我们的杠就不能够直接就需要。使用我们的BB。RW。刚才在。这个文件配置的。这边提示我们的trust登录失败,为什么呢?就是因为我们没有我们的browse的配置文件当中。加入我们的用户。List它是一个空的,这边配置的一些用户根本没有我们自己的用户,就是我们把这些用户全部删除。
13:06
注意这个用户配置必须加引号。然后第一行,第一列是我们用户名,第二列是我的密码。这个地方因为我们配置的是trust,所以说我直接写文密码,当然为了防止这个密码泄露,我们的建议是直接使用MD5啊。来配置这个密码。在密码的MD5值。密码M们可以通过我们。那个视图去查看到我们的MD5值,然后复制到这个地方来系统。然后我们再再去连接好就登录成功了,也可以尝试一下我们的。B。两个。这个就是我们的的连接管理的一个配置方法。看我们测试一下性能,首先我们进入到监控页面去查看一下当前实例的一个连接信息啊,正常情况下它是十多个连接啊,这都是我们监控所占用的一些接,那么这个我们通过我们了。
14:17
输入密码。然后我们等测试完成。总共测试时间是两分钟。那么两分钟啊,已经测试完成一分,再使用我们的一个接来对进一个测,用样100个接及测试两分钟,看一下具体最后的连接结果到底是这样子。通过控信息,刚才两次P的一个压测结果已经出来了,监控数据我们也可以通过我们的监控可以看到非常明显的一个指标就是我们的连接数,当我们第一次是直接访问数据库进行压测的时候,可以看到我们开了100个连接,那么在数据库这边体现也刚好是100个左右,因为除了二们之我们所使用P啊来进行一个跑的一个测结果就可以看到我们这连接仅仅用了30个啊,并没有用到100个连接啊,可以看我们的监控CP利率啊,刚才第一次测监控CP利仅占到了分之十五,我们在第二次使用使用库的CPU。
15:45
也就在同等QS的情况下啊,只用到了13%或者14左右,相对啊降了一个百分,那我们看一下平均执行时延啊,平均执行时延在。第一次压测结果当中是平均0.06毫秒的一个平均直行实验,在我们第二次压测是平均0.02毫秒,所以说我们R我们面它的性能是非常优秀的。
16:22
啊,那么今天我们关于的分就到此结束。如果对些更深解,可在。并且可以根据视频以及我们的文字材料来进行实操,有什么问题欢迎大家留言分享转发。感谢大。
我来说两句