常规部署MySQL备份语句及脚本
时间:2024-3-19 14:36 作者:Anglei 分类: 数据库
在日常系统运维工作中,数据库的安全性、完整性、连续性已经成为了系统业务正常运行的重要部分,为了提高数据的安全性、完整性、连续性,保障服务正常提供,定期进行MySQL备份是数据库管理中不可或缺的一部分。
本文我们将介绍并演示mysql自带的备份工具mysqldump是如何对数据库进行备份。
1.备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A >all.sql
2.备份全部数据库的结构(加-d参数)
mysqldump -uroot -p 123456 -A -d >all_struct.sql
3.备份全部数据库的数据(加-t参数)
mysqldump -uroot -p 123456 -A -t >all_struct.sql
4.备份单个数据库的数据和结构(数据名为mydb)
mysqldump -uroot -p123456 mydb >mydb.sql
5.备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d >mydb.sql
6.备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t >mydb.sql
7.备份多个表的数据和结构
mysqldump -uroot -p123456 mydb t1 t2 >mydb.sql
8.一次性备份多个数据库
mysqldump -uroot -p123456 --database db1 db2 > XX.sql
为了提高工作效率,不可能每天都对数据库手动进行备份,因此我们写了一个数据库备份脚本,可以使用定时任务来按需执行。
mysql数据库备份脚本:
#数据库备份脚本
#!/bin/bash
#备份目录
backup_dir="/data/mysqlbackup"
#目录不在则创建
[ ! -d /mysqlbackup ] && mkdir /data/mysqlbackup
# MySQL 用户名和密码
mysql_username="your_username" #用户名
mysql_password="your_password" #密码
# 备份名称前缀
backup_prefix="nlpt"
# 当前日期
current_date=$(date +%Y-%m-%d)
# 备份文件名
backup_file="${backup_prefix}-${current_date}.sql"
# 压缩文件名
compressed_file="${backup_prefix}-${current_date}.tar.gz"
# 备份数据库
mysqldump -u $mysql_username -p${mysql_password} --all-databases > "${backup_dir}/${backup_file}"
# 压缩备份文件
tar -czvf "${backup_dir}/${compressed_file}" "${backup_dir}/${backup_file}"
# 删除原始备份文件
rm "${backup_dir}/${backup_file}"
# 删除30天前的备份文件
find $backup_dir -name $backup_file -type f -mtime +30 -exec rm {} \;
这个脚本可以在 Linux 上运行。它从 MySQL 中备份所有数据库,并将备份命名为以“backup-YYYY-MM-DD”格式命名的文件。
备份文件将被压缩为以“backup-YYYY-MM-DD.tar.gz”命名的文件。备份文件和压缩文件将保存在指定的备份目录中。
脚本将删除 30 天前的备份文件,以保持备份目录的清洁和整洁。
在使用此脚本前,请将“your_username”和“your_password”替换为实际的 MySQL 用户名和密码。
以上基于业务停止运行,数据库在没有数据写入的情况下进行备份,但在我们日常工作中不能停掉业务后进行数据库备份,因此需要添加参数:
--single-transaction
本文介绍了数据库如何进行备份,即使数据库受到恶意攻击或不可预见的技术故障,也可以通过备份迅速恢复数据。在发生硬件故障、软件错误或人为错误导致数据损坏时,可以使用备份来恢复到故障前的状态,确保业务流程不受影响。

推荐阅读:
![]() 路过(0) |
![]() 雷人(0) |
![]() 握手(1) |
![]() 鲜花(0) |
![]() 鸡蛋(0) |