前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用sqlplus进行Oracle数据库批量自动发布

使用sqlplus进行Oracle数据库批量自动发布

作者头像
嘉为蓝鲸
修改2019-09-12 11:43:40
1.1K0
修改2019-09-12 11:43:40
举报

应用系统的更新发布在企业日常运维中是一件比较常见工作,有文件的备份替换,也会有数据库方面的更新操作。本文介绍如何通过一台装有sqlplus工具的中转机对不同应用的Oracle数据库进行自动化发布。

经常遇到使用PL/SQL图形化工具对Oracle数据库进行相关的更新操作,例如程序包、触发器、存储过程、视图以及表中的数据。如果是单用户对单台数据库更新少量的内容,这个操作还可以接受,如果数据库服务器比较多,并且要切换不同的用户去更新大量的内容,这种方式就会比较低效繁琐,面对这种场景,实现后台自动化更新就很有必要。

如何通过一台sqlplus中转机对不同的Oracle数据库在后台完成更新示意如下:

规范要求

按照上图示意在后台完成数据库的发布更新需要一定的规范支持,简单来讲就是要让sqlplus工具能很明确的获取到以下几点信息:

  • 更新时用什么账号去连接哪台服务器的哪个实例?
  • 账号对应的密码应该如何传递给sqlplus命令?
  • 更新的是程序包、存储过程还是视图?
  • 多个更新之间是否有前后依赖关系?

更新文件的命名规范

通过sqlplus命令去连接Oracle数据库完成一次更新需要账号、密码、Oracle服务器的IP地址、侦听的端口、实例名、更新文件所在的路径,用法如下:

sqlplus 账号/密码@IP地址:端口/实例名 @更新文件

其中账号、IP地址、端口、实例名属于可公开的信息,这一部分内容可以连同更新次序和更新类型一起组织到文件名称中

例如【次序_账号_IP_实例名_XXX.类型】,示例:

01_admin_1.1.1.1_insA_package.pck

密码和相关信息储存

通过sqlplus进行数据库更新时用到的相关信息在本例中是储存在sqlplus中转机上,只有root账号可以获取到,并且密码是以密文的形式储存,密码的密文储存在以下路径的文件中(文件名是账号的密文):.XXX/.IP地址/.账号的密文,数据库实例名和端口号储存在以下路径中的文件中:.YYY/.IP地址/.实例名,整个路径只有root账号可以访问。示例如下:

发布过程

更新文件相关规范已经确定好,发布过程可以使用编写好的脚本(shell或bat等)轮询执行要更新的文件,从sqlplus中转机依次将内容更新到对应的Oracle服务器。

本例结合嘉为蓝鲸应用发布这款基于蓝鲸平台的SaaS将数据库发布过程流程化,调用发布脚本实现定时或实时更新,具体情况见下图:

无需逐个登录Oracle服务器,来回切换不同账号,更新过程中的日志如下图所示:

其它说明

本例通过sqlplus发布Oracle更新,需要有以下几个前提:

  • 账号和密码信息要提前录入到sqlplus中转机(务必确保账号安全)
  • Oracle服务器相关信息(IP、端口、实例名)也需要提前录入到sqlplus中转机
  • 更新文件中的语法和符号必须规范(例如行尾的“;”号,包头包体结束位置的“/”)等等
  • 数据库、sqlplus客户端的编码尽量保持一致

作者:徐晗


其他讨论

赣州银行增强科技创新,实现一键灾备切换

业务复杂、数据庞大、应用广怎办?了解下分布式事务的解决思路!

SaaS设计:自动化服务启停设计示例

Powershell 挖矿病毒处理与防范

这里有份选择云服务商的攻略,请查收…

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嘉为科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 规范要求
    • 更新文件的命名规范
      • 密码和相关信息储存
        • 赣州银行增强科技创新,实现一键灾备切换
        • 业务复杂、数据庞大、应用广怎办?了解下分布式事务的解决思路!
        • SaaS设计:自动化服务启停设计示例
        • Powershell 挖矿病毒处理与防范
        • 这里有份选择云服务商的攻略,请查收…
    • 发布过程
    • 其它说明
    • 其他讨论
    相关产品与服务
    访问管理
    访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档