一、 mariadb数据库备份与恢复
1、 配置mariadb备份与恢复
1)
安装mariadb数据库
[[email protected] ~]# rm -rf /etc/yum.repos.d/CentOS-*
[[email protected] ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# yum -y install mariadb mariadb-server
2)
启动maridb数据库服务
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# systemctl enable mariadb
3)
设置访问数据库密码
[[email protected] ~]# mysqladmin -uroot password
New password:
Confirm new password:
2、 配置数据库二进制日志功能
1)
修改主配置文件
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
log_bin=mysql-bin
2)
重新启动数据库
[[email protected] ~]# systemctl restart mariadb
3)
查看二进制日志
3、 备份mariadb数据库
1)
备份benet数据库中的student表
[[email protected] ~]# mysqldump -uroot -p benet student > benet.student.sql
Enter password:
2)
备份多个数据库benet和mysql数据库
[[email protected] ~]# mysqldump -uroot -p --database benet mysql > benet.sql
Enter password:
3)
备份所有数据库
[[email protected]s01 ~]# mysqldump -uroot -p --opt --all-database > all_database.sqlEnter password:
4、 恢复备份的数据库
1)
恢复特定数据库中的表存储到accp数据库
MariaDB [(none)]> drop database benet;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create database accp;
Query OK, 1 row affected (0.00 sec)
[[email protected] ~]# mysql -uroot [email protected] accp < ./benet.student.sql
2)
恢复数据库
MariaDB [(none)]> drop database benet;
Query OK, 1 row affected (0.01 sec)
MariaDB [mysql]> source ./benet.sql
5、 增量恢复数据库
1)
切割日志
[[email protected] ~]# mysqladmin -uroot [email protected] flush-log
2)
数据库中插入新的数据
MariaDB [(none)]> insert into benet.student values (‘3333’,‘3333333333’);
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> insert into benet.student values (‘4444’,‘4444444444’);
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> insert into benet.student values (‘5555’,‘5555555555’);
Query OK, 1 row affected (0.01 sec)
3)
使用二进制日志恢复误删除数据
MariaDB [mysql]> source ./benet.sql
[[email protected] ~]# cp mysql-bin.000003 /root/
[[email protected] ~]# mysqlbinlog --no-defaults ./mysql-bin.000003 | mysql -uroot -p
Enter password:
4)
使用起始和结束位置方式恢复误删除数据
MariaDB [mysql]> source ./benet.sql
[[email protected] ~]# mysqlbinlog mysql-bin.000003
[[email protected] ~]# mysqlbinlog --no-defaults --start-position=“309” --stop-position=“830” ./mysql-bin.000003 | mysql -uroot -p
Enter password:
5)
起始时间和结束时间恢复数据
MariaDB [mysql]> source ./benet.sql
[[email protected] ~]# mysqlbinlog --no-defaults --start-datetime=“2020-04-19 0:15:08” --stop-datetime=“2020-04-19 0:15:12” ./mysql-bin.000003 | mysql -uroot -p
Enter password: