在数据库运维工作中,备份是保障数据安全的重要手段。除了我们常用的逻辑备份工具(如mysqldump)外,物理备份也是一种重要的备份方式。物理备份通过直接复制数据库文件的方式进行,具有备份速度快、恢复效率高的特点,特别适合大规模数据库的备份工作。
数据 创建了test数据库
里边有个person的表单 列表是 id name age 里边有三个测试的数据 具体看我的SQL语句的操作
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
mysql> use test;
mysql> select * from person;
+------+------+------+
| id | name | age |
+------+------+------+
| 1 | San | 19 |
| 2 | mike | 23 |
| 3 | li | 20 |
+------+------+------+
systemctl stop mysqld
创建完成测试数据之后 我们关闭数据库
# 1. 首先停止MySQL服务
systemctl stop mysqld
# 2. 创建备份目录
mkdir /backup
# 3. 使用tar命令备份整个数据目录
tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/
# 1. 停止MySQL服务
systemctl stop mysqld
# 2. 移动现有数据目录(模拟数据丢失) 这样的操作更为安全 也可以删除源目录
mkdir /bak
mv /usr/local/mysql/data/ /bak/
恢复数据
# 1. 创建恢复目录
mkdir restore
# 2. 解压备份文件到恢复目录
tar zxf /backup/mysql_all-$(date +%F).tar.gz -C restore/
# 3. 将恢复的数据移动到MySQL数据目录
mv restore/usr/local/mysql/data/ /usr/local/mysql/
# 4. 启动MySQL服务
systemctl start mysqld
是不是很疑惑为什么 要创建文件夹 解压进去又要移动过去数据库的目录下(多此一举)
当然 直接解压到目录下也是可以的
root@localhost ~]# systemctl start mysqld
[root@localhost ~]# ss -nultp | grep 3306
tcp LISTEN 0 128 *:3306 *:* users:(("mysqld",pid=2854,fd=30))
这下就以及恢复成功了 数据库的所有数据库和相关的表单以及数据
物理备份是MySQL数据库备份的重要方式之一,它通过直接复制数据文件实现完整的数据备份。虽然操作步骤相对简单,但需要注意数据一致性和安全性。通过使用临时目录进行恢复操作,我们可以最大限度地降低风险,确保数据恢复的可靠性。在实际生产环境中,建议结合物理备份和逻辑备份(如mysqldump)制定完整的备份策略,以实现最佳的数据保护。
成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。