0

我一直在编写一个脚本来删除包括 Oracle db 在内的环境。除了自动清理 tns 条目之外,我已经完成了所有工作。我最初认为使用正则表达式会很容易,但由于我注意到不同节点之间条目的不同格式,我不确定要寻找什么模式。当在 unix 机器上删除数据库时,是否有一种体面的方法来处理 tnsnames.ora 的自动清理?

4

1 回答 1

2

对于 C#,我一直在使用来自: http ://www.codeproject.com/Articles/30962/TNSNames-Reader 的 RegEx

如果您针对 TNSNAMES.ORA 运行以下正则表达式,您将获得数据库列表。([\n][\s]*[^(][a-zA-Z0-9_.]+[\s] )=[\s] (

您使用每个项目的第一个 MatchGroup 并针对它运行 TNSPING。如果它有响应,则保留该条目 - 如果没有 - 则丢弃该条目。

不利的一面是 - 如果一个数据库此时已关闭 - 无论如何你都会将它从 tnsnames 中清除...

于 2012-12-18T18:08:57.087 回答