我有一个运行 Oracle 的 Docker 容器。
当我连接到数据库时进入我的docker容器:
$ sqlplus -L sys/password@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=ABP)))" as sysdba
然后我退出:
SQL> exit
输出为:
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0
我有立即地控制外壳。
现在,我执行完全相同的命令外部docker。连接很快就建立了。但是,当我输入 时,会打印exit
相同的输出( ),但它Disconnected from Oracle...
挂起大约一秒钟后我才控制了 shell。
1 秒很重要,因为我必须运行一个脚本,该脚本遍历数百/数千个 .sql 文件并为每个文件调用 sqlplus(sqlplus -L sys/password@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=ABP)))" as sysdba @"file1.sql"
),并且它总是需要至少一秒钟才能运行,而当我将相同的命令运行到我的 docker 中时,它是立即的。
当退出docker容器时什么会导致sqlplus挂起?