数据库:数据的备份与恢复(最简单的几个备份与恢复)

理论知识:所有的备份都放在非数据库本地,建议多备份副本。冗余: 数据有多份冗余,但不等备份,只能防止机械故障还来的数据丢失,例如主备模式、数据库集群

备份考虑的因素:
数据的一致性
服务的可用性

分类

逻辑备份:备份建表,建库,插入等操作执行SQL语句
物理备份:直接复制数据库文件,适用于大型数据库环境

备份方式分类:

完全备份
增量备份:节约空间磁盘占用量少
差异备份:想恢复哪一天就恢复哪一天

最简单的方法可以是用物理备份:可以使用tar cf 打包压缩命令 恢复时解压即可

1 [root@localhost mysql]# cd /var/lib/mysql
2 [root@localhost mysql]# ls
auto.cnf         ib_logfile1    my1log.000006  my1log.000014  mysql.sock.lock
ca-key.pem       ibtmp1         my1log.000007  my1log.000015  performance_schema
ca.pem           iii            my1log.000008  my1log.000016  private_key.pem
client-cert.pem  my1log.000001  my1log.000009  my1log.000017  public_key.pem
client-key.pem   my1log.000002  my1log.000010  my1log.000018  server-cert.pem
ib_buffer_pool   my1log.000003  my1log.000011  my1log.index   server-key.pem
ibdata1          my1log.000004  my1log.000012  mysql          sys
ib_logfile0      my1log.000005  my1log.000013  mysql.sock     uuu
3 [root@localhost mysql]# tar cf  /opt/mysql.tar.gz    /var/lib/mysql/*
4 [root@localhost mysql]# ll -h  /opt/mysql.tar.gz 
-rw-r--r--. 1 root root 137M 8月  15 19:43 /opt/mysql.tar.gz

注意若有配置文件有参数修改需要注释掉然或删掉后重启服务,在重新加载在恢复参数 。
模拟数据丢失:

[root@localhost mysql]# systemctl stop mysqld   停止服务
[root@localhost mysql]# rm -rf /var/lib/mysql*   删除数据
[root@localhost mysql]# rm -rf /var/log/mysqld.log  删除数据 
[root@localhost mysql]# systemctl start mysqld    重启服务
[root@localhost mysql]# cat /var/log/mysqld.log |grep password   重新查找数据库密码

以上操作可以得到一个全新的数据库,在使用我们打包的备份的数据文件,解压数据库就会恢复。

binlog日志备份:

开启了binlog日志等同于开启了备份,他是数据自带的系统备份。
如何开启binglog日志:去配置文件:/etc/my.cnf  尾部添加参数
log-bin=mybinlog
server_id=1  
重启服务systemctl restart mysql
这样就开启binlog日志备份了
如何查看binlog日志存放 ls /var/lib/mysql 

查看日志情况:mysqlbinlog /var/lib/mysql/mybinlog.00001
可以查看到我们创建库或表的记录过程

在库中查看命令 :show binlog events;
如何恢复: mysqlbinlog --start-position=154 --stop-position=291/var/lib/mysql/mylog.000001 | mysql -u root -p密码  按字段恢复         
第二种:按时间段恢复  :mysqlbinlog --start-datetime='2023-8-15 21:12:47' --stop-datetime='2023-8-15 23:16:55' /var/lib/mysql/mylog.000001 | mysql -u root -p密码
恢复8月15号21点到23点          binlog存放位置 + 数据库用户密码 就可恢复备份。

mysqldump备份

mysqldump 可以进行单个库,表,多个库表的备份。
语法格式:备份:mysqldump -u root -p密码 qf(库名) > qf.sql   对qf这个库进行备份
验证删除qf 库
恢复:mysql -u root -p密码 qf < qf.sql (数据的导入)
备份一个表:mysqldump -u root -p密码 qf t1 > qft1.sql  
备份多个库:mysqldump -u root -p密码 -B 库名 库名 > aa.sql -A代表所有库
恢复多个库 :mysql -u root -p密码 -D 库名 库名 < aa.sql

注意:为了保证数据一致性 应在恢复时停止对外服务 停止  binlog日志 语法格式:set sql_log_bin=0; 1代表开启 。

                                                                                                          

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值