达梦:将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

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

相关推荐
驱动探索者2 小时前
find 命令使用介绍
java·linux·运维·服务器·前端·学习·microsoft
卷Java3 小时前
违规通知功能修改说明
java·数据库·微信小程序·uni-app
半路_出家ren3 小时前
IPTables防火墙
服务器·网络·iptables
养生技术人3 小时前
Oracle OCP认证考试题目详解082系列第54题
数据库·sql·oracle·运维开发·database·开闭原则·ocp
小晶晶京京4 小时前
day54-Zabbix(第三部分)
linux·运维·服务器·zabbix
数据知道4 小时前
Go基础:用Go语言操作MongoDB详解
服务器·开发语言·数据库·后端·mongodb·golang·go语言
爱喝白开水a4 小时前
2025时序数据库选型,从架构基因到AI赋能来解析
开发语言·数据库·人工智能·架构·langchain·transformer·时序数据库
-dcr4 小时前
22.Nginx 服务器 LNMP项目
运维·服务器·nginx·php·lnmp
LabVIEW开发4 小时前
LabVIEW利用DataSocket读取OPC 服务器数据
服务器·labview·labview知识·labview功能·labview程序