1.由于现场磁盘无法充分扩容,手动清理太麻烦干脆上必杀技。
#!/bin/bash
# 数据目录
data_directory="/home/kingbase/KingbaseES/data/"
# 使用正确的数据目录调用 sys_controldata
result=$(sys_controldata "$data_directory")
#因为要放在crontab里面所以得指定bin下的文件
result=$(/home/kingbase/KingbaseES/bin/sys_controldata "$data_directory")
/home/kingbase/KingbaseES/bin/sys_controldata
#sys_controldata /home/kingbase/KingbaseES/data/ 输出内容
echo "sys_controldata 输出:"
echo "$result"
# 查找并提取最新检查点的重做日志文件的完整行,系统是提示不是英文~~~
wal_line=$(echo "$result" | grep "最新检查点的重做日志文件")
# 检查 wal_line 是否为空
if [ -z "$wal_line" ]; then
echo "未找到匹配行!" >&2
exit 1
fi
# 打印完整行
echo "$wal_line"
# 提取重做日志文件的序号
wal_file=$(echo "$wal_line" | awk -F ': ' '{print $2}' | xargs)
# 验证提取的文件名是否有效,防止抓去不到重做日志编号
if [ -z "$wal_file" ]; then
echo "提取的重做日志文件名为空!" >&2
exit 1
fi
# 归档日志目录
archive_directory="/home/kingbase/KingbaseES/data/sys_wal"
# 执行 sys_archivecleanup 命令,因为要放在crontab里面所以得指定/home/kingbase/KingbaseES/bin/找到"sys_archivecleanup"命令
/home/kingbase/KingbaseES/bin/sys_archivecleanup -d "$archive_directory" "$wal_file"
# 检查 sys_archivecleanup 的执行结果
if [ $? -eq 0 ]; then
echo "旧归档日志文件成功清理。"
else
echo "清理旧的归档日志文件失败!" >&2
exit 1
fi最后修改时间:2025-05-17 14:54:20
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




