我一直在编写一个脚本来删除包含Oracle db的环境。除了自动清理tns条目外,我已经完成了所有工作。我最初认为用regexp很容易但是因为我注意到不同节点之间条目的不同格式我不知道要寻找什么样的模式。在unix框上删除数据库时,有没有一种方法可以自动清理tnsnames.ora?
答案 0 :(得分:2)
对于C#,我一直在使用RegEx: http://www.codeproject.com/Articles/30962/TNSNames-Reader
如果您针对TNSNAMES.ORA运行以下ReGex,则会获得数据库列表。 ([\ n]的[\ S] * [^(] [A-ZA-Z0-9 _。] + [\ s]的)= [\ s]的(
您使用每个项目的第一个MatchGroup并对其运行TNSPING。 如果它响应,你保留条目 - 如果没有 - 你丢弃条目。
缺点是 - 如果此时数据库正在关闭 - 无论如何你都会从tnsnames中清除它......