达梦:将sql通过shell脚本的方式放在后台执行

工作中为了解决服务器跨网络不稳定等因素,因此想要在服务器本地执行运行的sql,同时也能知道sql执行的情况,因此提供一个示例,其他类似需求可参考类似方式解决。

背景:按照表的粒度对表执行统计信息更新,并且能知道更新的进度及耗时。

1. 创建shell

复制代码
vi  /home/dmdba/stat.sh
#!/bin/sh 
cd /home/dmdba/dmdbms/bin   #进入数据库安装目录bin目录
./disql SYSDBA/密码:5236 <<EOF
 start /home/dmdba/stat.sql
 exit;
 EOF

2.将需要后台的sql写入stat.sql文件

复制代码
cd /home/dmdba
vi  stat.sql 

select sysdate(); #在语句的首位加上时间,就可以知道整个统计信息执行的耗时
dbms_stats.gather_table_statS('模式名','表名1',null,100,true,'FOR ALL COLUMNS SIZE AUTO');
dbms_stats.gather_table_statS('模式名','表名2',null,100,true,'FOR ALL COLUMNS SIZE AUTO');
dbms_stats.gather_table_statS('模式名','表名3',null,100,true,'FOR ALL COLUMNS SIZE AUTO');
dbms_stats.gather_table_statS('模式名','表名4',null,100,true,'FOR ALL COLUMNS SIZE AUTO');
dbms_stats.gather_table_statS('模式名','表名5',null,100,true,'FOR ALL COLUMNS SIZE AUTO');
dbms_stats.gather_table_statS('模式名','表名6',null,100,true,'FOR ALL COLUMNS SIZE AUTO');
select sysdate(); 

3.通过nohup命令后台执行并将执行日志写入stat.log中

复制代码
cd /home/dmdba
nohup ./stat.sql > stat.log 2>&1 &

4.确定后台正常运行

复制代码
通过查看stat.sh进程是否存在

ps -ef|grep stat.sh


或者查看日志是否打印。

tail -100f stat.log

注意:需要注意各个路径的正确性,避免后台运行失败。

相关推荐
2301_803875611 小时前
PHP 中处理会话数组时的类型错误解析与修复指南
jvm·数据库·python
m0_743623921 小时前
c++如何批量修改文件后缀名_std--filesystem--replace_extension【实战】
jvm·数据库·python
桌面运维家2 小时前
IDV云桌面vDisk机房网络管控访问限制部署方案
运维·服务器·网络
ShineWinsu2 小时前
对于Linux:动静态库的制作与原理的解析—下
linux·运维·服务器·进程·链接·虚拟地址空间·
2501_914245932 小时前
CSS如何处理CSS变量作用域冲突_利用特定类名重写变量值
jvm·数据库·python
RH2312113 小时前
2026.4.16Linux 管道
java·linux·服务器
handler013 小时前
Linux: 基本指令知识点(2)
linux·服务器·c语言·c++·笔记·学习
maqr_1103 小时前
MySQL数据库迁移到云端如何保障安全_数据加密与SSL连接配置
jvm·数据库·python
u0109147603 小时前
MySQL如何限制触发器递归调用的深度_防止触发器死循环方法
jvm·数据库·python
Web极客码3 小时前
深入了解WordPress网站访客意图
服务器·前端·wordpress