一个ORACLE客户端连接多个 Oracle Autonomous Database
最近腾讯的云主机到期了,没有续费,当时备份的时候只备份了文件,忘记备份 crontab -l 的定时任务了,导致定时访问 的 Always Free Oracle Autonomous Data Warehouse database ,超过一定时间(应该是 7 天)没有连接被暂停了。
Your inactive Always Free Oracle Autonomous Transaction Processing Database database was paused because it received no connections for several days. Data stored in this database is preserved, and you will see it marked as Stopped.
由于之前是两台机器每台机器定时访问一个 Always Free Oracle **Autonomous ** 的数据库,这一个主机到期了,就导致其中一个没有定时访问数据库,导致数据库被暂停。这就想着是否可以在一个 oracle 客户端访问多个 Oracle Autonomous database呢,因为oracle cloud上的Autonomous database 是启用了 Wallet的,在 $ORACLE_HOME/network/admin/
下面的Wallet 会重名,导致只有一个生效。
-rw-r–r– 1 oracle oinstall 5349 Jul 4 2024 cwallet.sso
-rw-r–r– 1 oracle oinstall 5304 Jul 4 2024 ewallet.p12
-rw-r–r– 1 oracle oinstall 5710 Jul 4 2024 ewallet.pem
-rw-r–r– 1 oracle oinstall 3192 Jul 4 2024 keystore.jks
-rw-r–r– 1 oracle oinstall 691 Jul 4 2024 ojdbc.properties
-rw-r–r– 1 oracle oinstall 3025 Jul 4 2024 README
-rw-r–r– 1 oracle oinstall 114 Jul 4 2024 sqlnet.ora
-rw-r–r– 1 oracle oinstall 1275 Jul 4 2024 tnsnames.ora
-rw-r–r– 1 oracle oinstall 2056 Jul 4 2024 truststore.jks
-rw-r–r– 1 oracle oinstall 21988 Jul 4 2024 Wallet_lalaku.zip
那如何解决呢,这里通过设置 TNS_ADMIN 变量来解决。
默认的 TNS_ADMIN是 $ORACLE_HOME/network/admin/
。
我们在shell 脚本里设置不同的 TNS_ADMIN,但是需要注意的是,Wallet 解压之后,需要同步修改sqlnet.ora
1 | cat 23c.sh |
1 | [oracle@ydora01 23c]$ cat sqlnet.ora |
修改 sqlnet.ora
里的 DIRECTORY 为 TNS_ADMIN 的目录。
1 | -rw-r--r--. 1 oracle oinstall 5349 Sep 10 09:30 cwallet.sso |
这样就可以愉快的连接多个 oracle cloud 的 Always Free Oracle Autonomous Data Warehouse database了。
原文作者: liups.com
原文链接: http://liups.com/posts/9fcb0668/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议