mysql备份表行数少于一定数量的表
-- 设置数据库连接
USE your_database_name;
-- 查询每个表的行数
SELECT table_name, table_rows
FROM information_schema.tables
WHERE table_schema = 'your_database_name';
-- 假设我们要备份行数少于1000的表
-- 您可以将此值替换为您的具体数值
SET @min_row_count := 1000;
-- 动态构建备份命令
SELECT CONCAT('mysqldump -u your_username -p your_database_name ', table_name, ' > backup_', table_name, '.sql') AS backup_command
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
AND table_rows < @min_row_count;
--------------------------------------下方是shell命令:
#!/bin/bash
# MySQL 用户信息
USER="your_username"
PASSWORD="your_password"
HOST="your_host"
DB_NAME="your_database_name"
# 行数阈值
MIN_ROWS=1000
# 输出文件夹
BACKUP_DIR="/path/to/your/backup/directory"
# 连接MySQL并备份行数少于MIN_ROWS的表
mysql -u $USER -p$PASSWORD -h $HOST $DB_NAME -e "SHOW TABLES" | grep -v 'Tables_in' | while read TABLE; do
ROWS=$(mysql -u $USER -p$PASSWORD -h $HOST -s -D $DB_NAME -e "SELECT COUNT(*) FROM $TABLE")
if [ "$ROWS" -lt "$MIN_ROWS" ]; then
echo "Backing up table $TABLE with $ROWS rows"
mysqldump -u $USER -p$PASSWORD -h $HOST $DB_NAME $TABLE > "$BACKUP_DIR/${TABLE}_${ROWS}.sql"
fi
done
默认分类 2024-03-13 20:03:26 通过 网页 浏览(639)
共有0条评论!