TimesTen 返璞归真 – 多连接在ttIsql 中的应用

2022-04-07 00:00:00 用户 执行 连接 命令 的是



近有用户咨询:ttIsql是否可以支持多个并发连接到 TimesTen 数据库。这个问题具有一定的普遍性,相信其他用户也会感兴趣,因此决定将其纳入这篇博客。


ttIsql是一个用来操作TimesTen数据库的交互式SQL命令型管理程序utility)。除了支持SQL命令的执行,它还提供了一整套丰富的功能,使得用户不仅能够连接到数据库, 执行其内置(built-in)程序和管理程序,还能支持灵活的命令编辑,以及调用主机操作系统的命令。所有这些都可以在同一个ttIsql会话中实现!


当你想执行的命令需要不同的用户凭据的时候,那么在同一个 ttIsql会话中,使用多连接就会变得非常便利。例如,有一些数据库的操作需要管理员权限,而其他操作仅需要表的所有者或是一般数据库的访问权限。如果你打算使用多连接,给连接起名字就会变得非常有用。这样一来,ttIsql可以帮助你清楚地知道正在执行的是哪个连接。在接下来的例子当中,我们会创建两个连接到同一个范例数据库,SAMPLEDB – 个连接使用的是应用用户(APPUSER),第二个连接使用的是管理员用户(ADM)。我们将使用CONNECT命令,并指定每个连接的名称:

$ ttIsq
Command> CONNECT “DSN=sampledb;uid=appuser;pwd=appuser;ConnectionName=app_conn”;
Command> SELECT count (*) from mytable;
< 1000000 > 1 row found.

Command> CONNECT "DSN=sampledb; uid=adm; pwd=adm;ConnectionName=adm_conn";
adm_conn: Command>

ttIsql中,后创建的连接是当前的活动连接,ttIsql提示符将显示当前正在使用的连接名称。那么如上所示,adm_conn就是当前正在使用的连接。

adm_conn:Command> CALL ttRamPolicySet ('manual');

执行ttRamPolicySet内置程序需要管理员权限。在不退出当前ttIsql会话或者发起另一个会话的前提下,都可以在这里方便地使用多连接功能。如上所示,我们使用管理员的连接执行了一个设置 RAM policy MANUAL 的命令。
如果想切换到不同的连接,只需执行USE命令:

adm_conn:Command> USE app_conn;
app_conn: Command> CALL ttVersion();
< 11, 2, 2, 8, 0 >

1 row found.

请注意,在 USE命令执行后,ttisql提示符将变为app_conn来提示当前连接。 ttVersion是一个用于返回当前TimesTen版本信息的内置程序。任何用户都可以调用。
如果想断开某一个连接,使用 DISCONNECT命令:

app_conn:Command> DISCONNECT adm_conn;

ttIsql中,另一个有用的功能是可以执行主机操作系统的命令。你可以执行任何你权限下的OS命令。举个简单的例子,我们执行 MORE 命令,来查看myconfig.ini文件中的内容:
app_conn:Command> HOST more /home/appuser/myconfig.ini
This is myconfig.ini file
Line 1
Line 2
Line 3
app_conn: Command> exit

当然,ttIsql还有许多其他的功能。你可以用它来帮助你自动化日常的操作。

来自:https://mp.weixin.qq.com/s/oirDbISR46Bt7mwm7Kd8kQ


相关文章