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

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

 

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

 

如何经过一台sqlplus中起色对不一样的Oracle数据库在后台完成更新示意以下:数据库

规范要求

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

 

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

 

更新文件的命名规范

经过sqlplus命令去链接Oracle数据库完成一次更新须要帐号、密码、Oracle服务器的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服务器。spa

 

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

 

无需逐个登陆Oracle服务器,来回切换不一样帐号,更新过程当中的日志以下图所示:

 

 

 

其它说明

本例经过sqlplus发布Oracle更新,须要有如下几个前提:

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

 

做者:徐晗


 

文章到此结束了~

想到中秋即未来临啦!有没有很期待呀~

在此先预祝你们中秋节快乐

 


 

佳节好文

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

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

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

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

如何设计大型集团一体化IT运维系统

相关文章
相关标签/搜索