【问题标题】:How to kill any running bteq process in Linux?如何在 Linux 中杀死任何正在运行的 bteq 进程?
【发布时间】:2020-08-27 05:46:08
【问题描述】:

我正在使用 .sh 运行我的 BTEQ 脚本

有时当我终止 .sh 进程时,BTEQ 进程并没有被终止或停止。 BTEQ 仍然在后台运行。

那么,如何杀死 .sh 和 BTEQ 进程呢?

我可以查看一个指定的 TERADATA 用户在后台运行的当前 BTEQ 进程吗?

【问题讨论】:

    标签: linux sh teradata


    【解决方案1】:

    您可以通过以下方式查看服务器上所有正在运行的 bteq 进程的列表:

    ps -ef | grep bteq
    

    这将显示用户、进程 ID 和启动日期。这只是两个内置的 Linux 命令(ps 查看通过管道传输到 grep 的进程,grep 搜索搜索词“bteq”,返回包含“bteq”`的ps -ef 行)

    假设您拥有适当的权限/权限,您可以使用以下命令结束所有 bteq 会话。

    killall bteq
    

    这可能会产生意想不到的后果,因为它类似于在处理存储过程或运行大型 INSERT INTO 或您的人正在通过 bteq 运行的任何事情的过程中启动用户。

    如果你想更有针对性,那么从你想杀死的bteq会话的ps -ef | grep bteq命令中找到进程id。 (进程 ID 将是用户之后的第一个数字)。然后在命令中粘贴该进程ID:

    kill <the process id>
    

    然后,该会话将被终止,而不会干扰其他正在运行的 bteq 会话。

    狩猎愉快!

    【讨论】:

    • 谢谢 JNevill... 我已经杀了 。我只是想知道,这个命令(kill)是否已经停止了 BTEQ 进程?因为我通过 BTEQ 将一个巨大的文件数据插入到一个表中,并且在我终止 BTEQ 进程后,我无法通过 Teradata SQL Assistant 删除该表。实际上drop table花了很多时间,所以我中止了drop过程。
    • 我知道有些命令可以发送到 Teradata,即使在结束与数据库的会话后也会继续执行。就像 ALTER TABLE 一样,即使服务器本身停止,它也可以在服务器恢复后恢复(我相信)。话虽如此,我不确定 BTEQ 的插入过程。我无法想象即使在 shell 上杀死 bteq 进程后它也会继续运行,但我想这不是不可能的。您是否安装了 Viewpoint,您可以在 bteq 的 kill 之后查看 bteq 用户是否仍然处于活动状态?
    • 我无法检查我的 BTEQ 进程是否仍在运行。但是每当我尝试删除、删除、插入或更新表时,它都无法执行。我猜会话被锁定或 BTEQ 卡在管理员级别。有没有办法释放正在运行的 BTEQ 进程?但我不确定特权。
    • 即使这是一个老问题......如果您有一个影响大量数据的插入/更新/事务并且您终止了 bteq 会话,则回滚可能需要一些时间。最好不要停止。
    猜你喜欢
    • 2014-03-08
    • 1970-01-01
    • 2015-10-17
    • 2020-03-20
    • 2013-11-01
    • 1970-01-01
    • 2018-12-10
    • 2019-02-18
    相关资源
    最近更新 更多