一种基于云平台的关系数据库自动优化方法技术

技术编号:11287085 阅读:118 留言:0更新日期:2015-04-11 01:54
本发明专利技术公开了一种基于云平台的关系数据库自动优化方法,属于云平台数据库优化技术领域,该方法能定时收集数据库运行状态信息,以及数据库所在虚拟机的硬件指标信息,适时的主动优化建议、被动优化建议或自动被动优化,提高数据库在云平台中运行性能稳定性。根据数据库编码协定编辑workprocess进程所需的workprocess进程插件代码,在数据库源代码目录的contrib目录下新建一个项目目录,将所述workprocess进程插件代码拷贝安装到项目目录内;在数据库中创建workprocess进程插件;配置数据库配置文件postgresql.conf,加载workprocess进程对应的动态链接库文件;数据库启动时,调用_PG_init钩子程序和调用workprocess进程入口函数来启动workprocess进程;能输出主动优化建议、输出被动优化建议和输出自动被动优化。

【技术实现步骤摘要】
一种基于云平台的关系数据库自动优化方法
本专利技术涉及云平台数据库优化
,尤其涉及一种基于云平台的关系数据库自动优化方法。
技术介绍
在云平台中,为了达到节能减排的目的,需要在不影响业务的情况下,采取合理搭配虚拟机的方式来减少云环境中开机的物理服务器,以减少耗电。例如错峰的业务进行搭配,公用的硬件资源不超过物理服务器硬件提供的资源就不会影响业务,同时能提高物理服务器的利用率,减少云环境对物理服务器的需求。参见图1所示,在时间轴P1上,CPU错峰的A业务S3与CPU错峰的B业务M3进行错峰搭配,A业务高峰S1与B业务低谷M2正好错峰,A业务低谷S2与B业务高峰M1也正好错峰,这样在提高物理服务器硬件利用的同时也大大提高了业务处理能力。例如资源不发生争抢的业务进行搭配,如计算型业务和IO型业务搭配,也不会影响业务的正常使用,达到减少物理服务器需求的目的。参见图2所示,在时间轴P2上,资源不发生争抢的A业务H3与资源不发生争抢的B业务N3进行错峰搭配,A业务高峰H1与B业务低谷N2正好错峰,A业务低谷H2与B业务高峰N1也正好错峰,这样在提高物理服务器硬件利用的同时也大大提高了业务处理能力。云环境的显著特点是资源共享,意味着运行在相同物理服务器上的虚拟机之间存在资源争抢。虚拟机资源可动态调配,如增加磁盘,调整虚拟CPU,调整内存。虚拟机资源调整后就意味着IOPS能力变化、CPU计算能力变化和内存变化。IOPS(Input/OutputOperationsPerSecond)是指每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。数据库在云环境中运行往往性能会不稳定,大部分的原因来自于云环境自身的特点,例如资源的争抢导致性能指标的变化,某些指标发生变化后,数据库需要重新优化,否则运行效率会受到影响。例如IOPS指标变化后,如果成本因子不变,导致执行计划未变,进而导致运行效率下降。传统的方法是当发现数据库性能问题时,人为干预调整,时效性差,同时依赖管理员的技术水平。因此,为了数据库能在云环境下获得稳定的运行效率,需要适时的根据运行环境的变化进行自动调整。云环境的显著特点:一是资源共享,二是虚拟机资源可动态调配。但资源共享就意味着运行在相同物理服务器上的虚拟机之间存在资源争抢,虚拟机资源可动态调整后就意味着IOPS能力变化、CPU计算能力变化和内存变化。数据库在云环境中运行往往性能会不稳定。为了让数据库在云环境中获得稳定的性能,传统的解决方法,需要在发现问题后人为干预,如重新调整数据库参数,重新分配对象存储等。这种传统的方法的缺点:一是时效性比较差,因为要等问题发生后人为干预,属于被动调整;二是依赖管理员的技术能力,人为调整比较容易出现判断失误的问题;三是如果为了达到稳定的目的,往往需要预留较大体量的硬件资源,造成资源的浪费。
技术实现思路
本专利技术是为了解决数据库在云平台中运行的性能稳定性由人为进行干预调整,时效性差,同时依赖管理员技术水平高的不足,提供一种定时收集数据库运行状态信息,以及数据库所在虚拟机的硬件指标信息,适时的主动优化建议、被动优化建议或自动被动优化,提高数据库在云平台中运行性能稳定性的一种基于云平台的关系数据库自动优化方法。为了实现上述目的,本专利技术采用以下技术方案:一种基于云平台的关系数据库自动优化方法,其步骤如下:(1-1)根据数据库编码协定编辑workprocess进程所需的workprocess进程插件代码,所述workprocess进程插件代码包括:SQL插件代码、.c插件代码、.control插件代码和Makefile插件代码;其中,SQL插件代码包括workprocess进程状态表和指标配置表;.c插件代码包括workproecessC代码;.control包括控制文件;Makefile包括安装插件的配置信息;(1-2)在数据库源代码目录的contrib目录下新建一个项目目录,将所述workprocess进程插件代码拷贝安装到项目目录内;(1-3)在数据库中创建workprocess进程插件;(1-4)配置数据库配置文件postgresql.conf,加载workprocess进程对应的动态链接库文件;(1-5)数据库启动时,调用_PG_init钩子程序和调用workprocess进程入口函数来启动workprocess进程;(1-5-1)输出主动优化建议;用workprocess循环获取系统信息,并把所述系统信息存储到workprocess进程状态表;workprocess循环从指标配置表获取的主动优化指标,并用主动优化指标和从workprocess进程状态表获得的系统信息进行比较,并把主动优化建议的信息分别输出到优化建议表和数据库日志;(1-5-2)输出被动优化建议;用workprocess循环从指标配置表获取手动被动优化指标,并用手动被动优化指标和所述系统信息进行比较,并把被动优化建议的信息分别输出到优化建议表和数据库日志;用workprocess循环从数据库pg_stat获得SQL语句执行的效率,并用从数据库pg_stat获得的SQL语句执行的效率和从指标配置表获得的配置SQL语句执行的效率进行比较,并从指标配置表获得配置SQL语句执行其对应效率时的阈值,然后把SQL语句优化建议分别输出到优化建议表和数据库日志;(1-5-3)输出自动被动优化;workprocess循环从指标配置表获取自动被动优化指标,并用自动被动优化指标和所述系统信息进行比较,通过SPI接口,调用SQL语句自动优化,并把自动被动优化信息分别输出到优化建议表和数据库日志;(1-6)数据库关闭时,调用_PG_fini钩子程序来让workprocess进程退出。本方案能够定时收集数据库运行状态信息,以及数据库所在虚拟机的硬件指标信息,适时的主动优化建议、被动优化建议或自动被动优化,提高数据库在云平台中运行性能稳定性。主动优化建议是自动收集数据库的运行状态信息,根据数据库的运行状况,提前输出指标的优化建议,从而达到提前处理的目的,既不浪费资源又能提高数据库在云平台中获得稳定的性能。被动优化建议,是指当数据库运行环境的硬件性能指标发生变化后,自动对数据库进行优化或输出优化建议。是不可动态更新参数,影响数据库运行的变更参数。参数优化,不可动态配置参数输出优化建议,可动态配置参数自动优化。在某些可动态调整的参数,不影响数据库提供服务的情况下可进行自动被动优化。不可动态调整的参数,或者会影响数据库提供服务的优化动作,输出优化建议。SQL优化,提供优化建议。表空间优化,输出表空间优化建议。作为优选,在启动workprocess进程时,通过postmaster进程调用fork程序。作为优选,所述系统信息包括负载信息、块设备的IOPS信息、空间信息和内存信息。作为优选,所述主动优化指标包括CPU、IOPS、内存和空间。本方案还与CPU相关,建议增加或减少CPU;本方案还与IOPS相关,建议提高或降低块设备IOPS能力;本方案还与内存相关,建议增加或减少内存;本方案还与空间相关,建议增加或减少块设备存储。本专利技术能够达到如下效果:1、本专利技术能够定时收集数据库运行状态信息,以及数据库所在虚拟机的硬件指本文档来自技高网
...
一种基于云平台的关系数据库自动优化方法

【技术保护点】
一种基于云平台的关系数据库自动优化方法,其特征在于,其步骤如下:(1‑1)根据数据库编码协定编辑workprocess进程所需的workprocess进程插件代码,所述workprocess进程插件代码包括:SQL插件代码、.c插件代码、.control插件代码和Makefile插件代码;其中,SQL插件代码包括workprocess进程状态表和指标配置表;.c插件代码包括workproecessC代码;.control包括控制文件;Makefile包括安装插件的配置信息;(1‑2)在数据库源代码目录的contrib目录下新建一个项目目录,将所述workprocess进程插件代码拷贝安装到项目目录内;(1‑3)在数据库中创建workprocess进程插件;(1‑4)配置数据库配置文件postgresql.conf,加载workprocess进程对应的动态链接库文件;(1‑5)数据库启动时,调用_PG_init钩子程序和调用workprocess进程入口函数来启动workprocess进程;(1‑5‑1)输出主动优化建议;用workprocess循环获取系统信息,并把所述系统信息存储到workprocess进程状态表;workprocess循环从指标配置表存储的主动优化指标和从workprocess进程状态表获得的系统信息进行比较,并把主动优化建议的信息分别输出到优化建议表和数据库日志;(1‑5‑2)输出被动优化建议;用workprocess循环从指标配置表存储的手动被动优化指标和所述系统信息进行比较,并把被动优化建议的信息分别输出到优化建议表和数据库日志;用workprocess循环从数据库pg_stat获得SQL语句执行的效率和从指标配置表获得配置SQL语句执行的效率进行比较,并从指标配置表获得配置SQL语句执行该效率时的阈值,然后把SQL语句优化建议分别输出到优化建议表和数据库日志;(1‑5‑3)输出自动被动优化;workprocess循环从指标配置表存储的自动被动优化指标和所述系统信息进行比较,通过SPI接口,调用SQL语句自动优化,并把自动被动优化信息分别输出到优化建议表和数据库日志;(1‑6)数据库关闭时,调用_PG_fini钩子程序来让workprocess进程退出。...

【技术特征摘要】
1.一种基于云平台的关系数据库自动优化方法,其特征在于,其步骤如下:(1-1)根据数据库编码协定编辑workprocess进程所需的workprocess进程插件代码,所述workprocess进程插件代码包括:SQL插件代码、.c插件代码、.control插件代码和Makefile插件代码;其中,SQL插件代码包括workprocess进程状态表和指标配置表;.c插件代码包括workproecessC代码;.control包括控制文件;Makefile包括安装插件的配置信息;(1-2)在数据库源代码目录的contrib目录下新建一个项目目录,将所述workprocess进程插件代码拷贝安装到项目目录内;(1-3)在数据库中创建workprocess进程插件;(1-4)配置数据库配置文件postgresql.conf,加载workprocess进程对应的动态链接库文件;(1-5)数据库启动时,调用_PG_init钩子程序和调用workprocess进程入口函数来启动workprocess进程;(1-5-1)输出主动优化建议;用workprocess循环获取系统信息,并把所述系统信息存储到workprocess进程状态表;workprocess循环从指标配置表获取主动优化指标,并用主动优化指标和从workprocess进程状态表获得的系统信息进行比较,并把主动优化建议的信息分别输出到优化建议表和数据库日志;(1-...

【专利技术属性】
技术研发人员:周正中
申请(专利权)人:杭州斯凯网络科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1