DBA小A的班车梦

小A是民生银行的DBA,今天他打算下班后赶公司的班车回家,班车是下班后20分钟出发。然而,快要下班的时候,组长转过来一个数据库部署的工单,告诉小A下班后实施。

无奈的小A只好在下班后打开一个几十页的数据库部署文档,登陆到数据库服务器上,按照部署文档一页一页的操作,等到实施完成时,班车早已离开,小A的班车梦再次破碎……

上面的场景已经出现过很多次了,手动数据库部署步骤多、效率低,消耗了DBA大量的时间。然而,随着民生银行打造的自动化部署工具的上线,目前民生银行的数据库部署已经做到自动化实施,提升了DBA的效率,小A借助自动化部署工具部署完数据库之后,也能赶上班车啦。

民生银行的数据库自动化部署具有简单、高效、标准、安全等特点,需要DBA人工参与的部分少,目前已经全面覆盖测试和生产环境。并且基于自动化部署工具,在测试环境已实现数据库资源自服务,项目组如需要新的数据库资源,只需要在申请界面添写必要的信息,数据库即会自动部署与交付,全程不需要DBA参与。

传统数据库部署方式面临的挑战

数据库部署是新系统上线中非常重要的一个步骤,主要内容包括数据库产品安装、实例/数据库创建、用户创建与授权、高可用搭建等。在自动化部署之前,数据库主要采用手动执行命令以及使用脚本,这两种方式面临着以下缺点。

步骤繁多,效率低下

数据库部署步骤繁多,常见的步骤有安装前环境检查、修改操作系统配置、系统互信配置、获取安装介质、安装产品、创建实例和数据库、修改实例及数据库配置、创建表空间、创建用户及授权、搭建数据库高可用等,可能多达十几个步骤,全部执行完成可能需要数十分钟甚至数小时。以MySQL主从搭建为例,主要的步骤如图1所示。

图1. MySQL部署主要步骤

无统一的标准,前期难部署,后期难维护

各个系统的文件系统名称、操作系统用户名及组名、数据库部分内部对象(比如缓冲池名称)、数据库配置、表空间大小和类型等都不一样,给数据库部署带来不少麻烦。更关键的是后期维护起来困难。

需要直接登录数据库服务器,容易引发误操作

因为都是手工操作,所以需要通过生产终端以root用户登录到数据库服务器直接执行命令,存在误操作可能,造成了一定的生产风险。

部署人员要求高

因为涉及的专业性强,数据库部署过程需要DBA来实施,比如DB2数据库实施需要专门的DB2 DBA来实施。

数据库部署标准化

标准化是自动化的基础,尤其是DB2数据库在民生银行使用时间较久,许多指标之前并无统一标准,给自动化实现带来很大困难,为了解决这个问题,我们对部分指标进行了标准化和简化,下面的表格1展示了DB2部署标准化/简化前后的指标,其中xxx的值在每套数据库上都不一样

指标名 标准化之前 标准化之后
DB2数据目录 /db2/xxxdb/data01
/db2/xxxdb/data02
/db2/xxxdb/data03
/db2/xxxdb/data04
/db2data
DB2日志目录 /db2/xxxdb/log_dir /db2log
DB2归档目录 /db2/xxxdb/arc_log /db2arc
DB2临时目录 /db2/xxxdb/tmp /db2tmp
SYSADM_GROUP dbxxxadm dbadm
SYSCTRL_GROUP dbxxxctl dbctl
SYSMAINT_GROUP dbxxxmnt dbmnt
SYSMON_GROUP dbxxxmon dbmon
表空间大小 固定值,不同表空间值不同 自动扩容
表空间页大小 各不相同,有4k/8k/16k/32k 32k

表1. DB2部署标准化前后对比

经过标准化之后,每套DB2数据库只有实例名、数据库名、应用用户名和表空间名这4个指标不同,实施时DB2相关的指标只需要修改这4个参数即可。

数据库自动化部署实践

民生银行iPaaS平台自动化引擎是一套基于Ansible的任务(流)管理平台之上的操作和管理多个项目的平台,可以通过任务管理的方式将执行脚本、分发文件等基础运维场景“任务化”,同时运用流程化的理念将单个任务串行化组成一个任务流。

通过iPaaS平台自动化引擎中的自动化项目模块,可以录入独立的脚本,并将不同的脚本串成流程,比如DB2客户端安装的流程如图2所示,它是由5个独立的子脚本构成:

图2. DB2客户端安装流程示意图

伴随着民生银行iPaaS平台自动化引擎的上线,民生银行数据库部署也开启了自动化部署的时代。目前支持的自动化部署架构如图3所示。

图3. 民生银行目前支持自动化部署的数据库类型

目前自动化部署已覆盖支持民生银行主要使用的数据库类型及架构,只需要在界面添写简单的数据库信息,并选择需要执行的机器。提交审批后,点击执行即可。

DB2自动化部署

DB2自动化部署支持单机部署、HADR架构部署、HA架构部署,以及DB2客户端部署。其中HA架构使用的是操作系统的高可用架构。

DB2服务器的自动化流程界面中的参数列表如图4所示,需要填写的信息有安装类型、主机IP、备机的IP列表、实例名、数据库名、应用用户名、浮动IP即可,剩下的参数都有默认值,如果无特别需求,不需要改动,其中安装类型可以选择HA,HADR或者单机架构:

图4. DB2自动化部署填写的参数

填写完成之后,选择需要安装的机器列表并提交、通过审批即可执行。程序会自动判断机器角色并根据角色执行所需要的步骤。

Oracle自动化部署

Oracle 自动化部署支持单机部署、Dataguard架构部署、HA架构部署,以及Oracle客户端部署。

图5是部署dataguard架构需要添写的参数文件示例。默认情况下需要添写Oracle实例名、主机IP列表、浮动IP、主库主机名、从库主机名。

图5. Oracle自动化部署填写的参数

MySQL自动化部署

MySQL自动化部署支持单机部署和主从架构部署。主从架构部署时需要添写的参数有4个必填参数、3个默认参数和一个参数文件userinfo.txt,如图6所示:

图6. MySQL自动化部署填写的参数

参数文件负责描述建库授权信息,包括用户名/用户IP、用户权限列表。

自动化部署优势

相比手动部署及脚本,自动化部署有以下优势:

  • 智能:部署流程可以自主判断数据库架构、当前机器角色,部署的数据库在主机发生重启或者故障时能够自动恢复或者切换。
  • 高效:每套数据库实施的时间原来需要数十分钟甚至数小时,使用自动化部署之后,短则只需几分钟,最长的也只需要几十分钟。目前测试和生产环境所有标准数据库部署均是通过自动化部署来实现的。
  • 简单:通过自动化流程封闭了繁琐的安装步骤,降低了对实施人员的技能要求,所有DBA均可部署上述3种类型的数据库。
  • 标准:采用自动化部署的数据库对数据库参数配置、数据库端口、数据库内部对象等采用了统一的标准,降低了部署和维护难度。
  • 安全:无需登录服务器,加上审核机制,可以避免误操作风险。自从自动化部署上线以来,未有因为数据库部署而造成的误操作及风险事故。

数据库资源自服务

数据库作为一种基础资源,为了进一步提高申请效率,测试环境推出的基础资源的自助服务流程已经支持上述3种数据库资源的自动化实施。

对于各应用系统配额内的资源,无需审批自动实施和交付,配额外的资源由系统管理中心基础环境管理员进行评估和审批。此流程替代了IT运维管理系统中变更工单的部分功能。以MySQL资源为例,项目组只需要在选择资源类型为“数据库/MySQL”:

图7. 测试环境自服务资源选择界面

之后在详细配置页面填写主机名、端口、用户信息,提交之后会后台调用数据库自动化部署流程:

图8. 测试环境自服务资源MySQL信息添写界面

通过自服务,数据库部署完全不需要DBA参与,项目组即可自助获取数据库资源,进一步提升了数据库部署效率。

总结

通过两年多的建设,民生银行实现了数据库自动化部署,极大提升了数据库部署效率,满足了快速增长的新系统上线需求,截止目前,已经在生产环境部署超过300套数据库(含客户端)。

作者简介

苗庆松:IBM认证高级数据库管理员,MySQL OCP。曾任职于IBM全球技术服务部技术支持中心,2018年加入中国民生银行信息科技部系统管理中心,负责数据库运维相关工作。

李宁宁:Oracle OCM及MySQL OCP,有多年数据库运维经验。现任职于民生银行信息科技部系统管理中心,主要负责SQL审核推广及                     MySQL运维相关工作。

张群飞:Oracle OCP及MySQL OCP,现任职于民生银行信息科技部系统管理中心,负责数据库运维相关工作。

作者:苗庆松、李宁宁、张群飞

编辑:民生文化建设小组

cmd查看所有数据库 db2_民生银行数据库自动化部署的探索与实践相关推荐

  1. 分布式数据库在金融应用场景中的探索与实践

    分布式数据库在金融应用场景中的探索与实践 刘雷, 郭志军, 马海欣, 赵琼, 胡卉芪, 蔡鹏, 杜洪涛, 周傲英, 李战怀 交通银行软件开发中心,上海 201201 华东师范大学数据科学与工程学院,上 ...

  2. 全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自动化部署项目(TableGo v8.0.0)

    TableGo_20220801 v8.0.0 正式版发布,此次版本累计更新如下:  1.生成项目功能新增支持若依框架,可同时生成若依框架代码和所有业务表的前后端基础CRUD代码,一键搞定所有  2. ...

  3. 云视频自动化部署与灰度发布实践

    概要:Kubernetes改造与自动化灰度发布是一个长期的过程,需要克服很多困难.但改造也能实实在在带来研发效能的提升,支持灰度发布以后,测试的主要时间可以从晚上转到白天,减轻研发和测试和运维人员的负 ...

  4. cmd查看所有数据库 db2_db2 cmd命令操作

    转自:http://www.2cto.com/database/201301/182150.html 1. 打开命令行窗口 #db2cmd 2. 打开控制中心   www.2cto.com # db2 ...

  5. cmd查看所有数据库 db2_DB2 常用操作命令集合

    1. 打开命令行窗口 #db2cmd 2. 打开控制中心 # db2cmd db2cc 3. 打开命令编辑器 db2cmd db2ce =====操作数据库命令===== 4. 启动数据库实例 #db ...

  6. 民生银行数据库智能运维的探索与实践

    01 背景与挑战 近几年,随着业务的增长.数字化转型加速.互联网金融业务快速发展和迭代,银行数据中心传统的IT架构面临着巨大的挑战.数据库作为最重要的IT基础设施组件,数据库的数量出现井喷式增长,同时 ...

  7. 从1.0到2.0:民生银行数据库智能运维的探索升级与实践

    本文根据孔再华老师在[deeplus直播:金融业数据库转型与国产化改造]线上分享演讲内容整理而成.(文末有回放的方式,不要错过) 孔再华 民生银行 数据库专家 民生银行资深数据库专家,具有丰富的数据库 ...

  8. cmd删除oracle监听,oracle数据库监听删除

    oracle 10G for linux常用命令 oracle 10G for linux常用命令 首先以Oracle用户登录 1. $/oracle/oracle/app/product/101/b ...

  9. 如何使用adb工具进行查看Android中创建的数据库文件

    简单记录一下关于Android学习过程中adb工具的使用 打开cmd命令行界面,输入 adb shell ,进入到设备的控制台.(如果进不去,可能是你没有配置相关环境变量) 利用 cd 命令,切换到相 ...

最新文章

  1. html标题怎么分开,html – 如何使用angularjs将标签标题与其主体分开?
  2. 用limit 实现java的简单分页
  3. GUN/LINUX命令之 cp mv install
  4. Python之数据分析(Numpy的数组切片、数组变维、组合与拆分)
  5. 小白该如何学习Linux操作系统(1)
  6. 移动互联网消息推送原理:长连接+心跳机制(MQTT协议)
  7. messagehub讲解,如何获取MessageHub的其余管理API的API密钥?
  8. java集合框架源代码_面试必备——Java集合框架
  9. Unity Animator动画状态机 深入理解(一)
  10. Perl入门学习(一)运行和基本语法
  11. java线程状态与操作系统线程状态的关系
  12. winrar5.7.1商业版 无广告 注册下载
  13. 2020浙江大学软件学院软件工程考研经验分享
  14. php 微信公众号超链接,微信公众帐号开发教程第8篇-文本消息中使用网页超链接_PHP教程...
  15. 数据正常运行之后,突然遇见:CiteSpace will re-run the process and keep non-empty intervals only.问题
  16. 2023最新自动采集影视CMS程序源码+全开源的/功能也强大
  17. Matlab求时变微分方程组解,Matlab求常微分方程组的解析解
  18. 【python的擅长领域】
  19. 闹剧还是情有可原?联想撤回科创板上市申请后,股价大跌13%
  20. java软件工程师 英文_java开发工程师英文求职信

热门文章

  1. 【Jenkins】Jenkins配置从节点,实现远程主机调用功能
  2. SCONS如何集成工具
  3. 近期要养成的学习习惯
  4. red hat 5.5 vncserver搭建
  5. MFC控件——ListCtrl控件[翻译](续)
  6. 学习 ASP.NET MVC (第二回)实战篇
  7. Dephi 的接口与回调 :ZT
  8. 忙了12周,手机摄像头模组测试PCB板终于画出来了。
  9. ARMLINUX学习笔记(5)-----ADS建立工程
  10. JS模拟实现数组的map方法