博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过shell脚本添加备库日志
阅读量:2446 次
发布时间:2019-05-10

本文共 1175 字,大约阅读时间需要 3 分钟。

今天下午的时候,准备顺手写一个简单的脚本,但是发现很多事情较真起来真是寸步难行。在写脚本的过程中碰到了太多的问题,很多时候感觉像要实现的功能更通用,就得做更多的检查,更多的校验也就意味着有更多的预先条件,这些条件里面有些是规范和建议,有些是按照已有的配置情况,尽管如此,自己感觉还是缺少了太多的检查。
  先来说说今天尝试的简单脚本,就是给主库添加standby logfile,这个需求听起来非常简单,都甚至在我的半自动化脚本中隐去了,但是把这个需求要落到纸面上来,简直了。
首先这个需求会涉及到下面的几个数据字典。
V$LOGFILE里是最全的信息,可能有online logfile或者standby logfile,V$LOG里面是在线日志的信息,V$STANDBY_LOG里面是备库日志的信息。
要添加备库日志,有很多的场景,比如已有了备库日志,那样的话是在已有的基础上添加,如果没有则需要按照建议的树目来添加,而添加的备库日志组成员是1个还是2个,这个不同的系统可能会差别很大,可以在v$logfile里面查看。
而如果日志组参差不齐,同一个数据库有的日志组有1个成员,有的有2个成员,这种情况如果判断,难度又得加大,而这个部分我是直接跳过了,因为这个得按照规范来,而不是脚本来满足这种特殊的场景。所以就如同我在开始所说的那样,很多预备条件是规范和建议,有些需要参考已有的配置情况。
当然在实现的过程中,因为有一些判断条件,所以自己就尝试使用PL/SQL来实现,同时又需要包装在shell里面,感觉难度不是大了一点。在实现的时候最终还是发现理论上不可行,
因为需要添加多个日志组,而且要根据日志组成员的情况来动态生成SQL,这种二次动态的情况转换过来也就是不满足范式,
每一列都是不可分割的原子数据项,所以最后调用的时候有些问题,转而使用了shell的方式,当然过程中也碰到了很多问题。
首先是得到日志文件的下标,当前最大的日志组号和需要添加的日志组数
然后尝试了下面的来调用shell和PL/SQL
这样会抛出错误。
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 6
一种改进的思路就是下面的方式,分而治之,使用函数来循环迭代。
这种方式就会生成递增的日志创建语句,当然思路完成了,还得细化。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2123641/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2123641/

你可能感兴趣的文章
成为产品不一定是坏事
查看>>
Ubuntu 18.04 LTS现在在Microsoft Store中
查看>>
如何检查已安装的Ubuntu版本
查看>>
如何在Windows 10上禁用附近共享
查看>>
gmail_Gmail将提供自毁电子邮件
查看>>
google 禁止广告_是否应禁止针对个人的广告?
查看>>
Plover.io在本地设备之间快速共享文件
查看>>
如何在OS X照片中禁用iCloud照片同步
查看>>
Minecraft的官方网站分发了受恶意软件感染的皮肤
查看>>
word模板快速填内容_如何快速轻松地在Word中选择内容块
查看>>
如何在Word 2013中直接从一个表导航到另一个表
查看>>
twitch 录像_如何通过NVIDIA GeForce Experience将您的PC游戏玩法传送到Twitch
查看>>
linux gnome_在Gnome中学习这些鼠标技巧,以获得更高效的Linux体验
查看>>
打印机疑难解答_使用内置电源疑难解答改善Windows 7中的电池寿命
查看>>
drupal加密_立即更新您的Drupal网站,否则黑客可能将其变成加密货币矿工
查看>>
vimrc配置 鼠标光标_在“提示”框中:即时调整窗口大小,包含鼠标光标并了解电池配置...
查看>>
询问HTG:安装XBMC附加组件,缩小视频以进行移动播放,自动更改默认打印机
查看>>
High Sierra推出后如何离开macOS公开Beta
查看>>
如何格式化您的WhatsApp消息
查看>>
pixel2pixel_Pixel 2的视觉核心是什么?
查看>>