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

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

相关推荐
小徐不徐说3 分钟前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
Ruiery20 分钟前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
论文复现现场43 分钟前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
乌恩大侠1 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
Decay__2 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
心梦缘-雪雁3 小时前
SQL Server 查询数据存在哪个表里
数据库
迪菲赫尔曼3 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
lusklusklusk4 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
GeW4 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
SelectDB4 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析