欢迎投稿

今日深度:

MariaDB用法——备份,mariadb用法

MariaDB用法——备份,mariadb用法


备份

完全备份、增量备份、差异备份

热备、温备、冷备

冷备

过程中需要停止服务

cp、tar等复制归档工具:物理备份工具:大数据备份工具

温备

过程中只能读

mysqldump:逻辑备份工具;小数据备份工具

热备

过程中能读能写

xtrabackup 完全备份及还原

逻辑卷快照备份

同步分区:partprobe(centos7)

改配置文件

导入数据

mysql <mysql脚本

flush tables with read lock 添加读锁

flush logs

show master logs;

lvcreate -n lv_mysql_snap -L 2G -s -p r /dev/vg-mysql/lv-mysql

unlock tables;解锁

mount -o nouuid, norecovery /dev/vg-mysql/lv-mysql_snap /mnt

cp -a /mnt/* /backup/

umount /mnt

lvremove /dev/vg-mysql/lv-mysql-snap

还原数据

systemctl stop mariadb

cp -av /backup/* /data/mysql/

禁止用户连接

vim /etc/my.cnf

skip_networking

systemctl restart mariadb

导出binlog最新日志

mysqlbinlog --start-position=385 mysql-bin.xxxxxx >/backup/bin.spl

mysqlbinlog mysql-bin.xxxxxx >>/backup/bin.spl

mysql < /backup/bin.spl

恢复用户访问

vim /etc/my.cnf

skip_networking注释掉

重启服务

实验:数据库数据文件损坏,如何还原最新状态?

前提:log_bin=ON

1 全备份

mysqldump -A -F --single-transaction --master-data=2 > /backup/full.sql

修改数据

防止损失扩大化,先锁表

flush tables with read lock;

查看下之前备份的最后一个位置

less /backup/all_2018-06-14.sql

切换一个二进制日志

导出相应的二进制日志

mysqlbinlog --start-position=245 /data/binlog/log-bin.000005 > /backup/bin.sql

在bin.sql中找到有问题的记录并删除

vim /backup/bin.sql

恢复

删除全部数据库

rm -rf /data/mysql/*

重启服务

systemctl stop mariadb.service

还原

验证

实验:误删除表,如何还原最新状态?

下载xtrabackup

wget https://www.percona.com/downloads/XtraBackup/LATEST/percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm

配置网络yum源并安装

yum -y install percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm

innobackupex --user=用户名 --password=密码/backups/

备份好的文件

备份时用到的参数,大多数是默认参数

bin_log的位置

备份的相关参数

备份过程中产生的二进制日志文件

把备份文件保存到其他主机上

scp -r /backup/ 192.168.30.111:/

完整数据还原

关闭服务

systemctl stop mariadb.service

清除数据库

1、整理数据

innobackupex --apply-log /backups/2018-06-13_02-38-10/

把整理过的文件复制到数据库路径下

innobackupex --copy-back /backups/2018-06-13_02-38-10/

恢复所属主和属组重启服务

验证

增量数据还原

1 在原主机

先做完全备份过程如上

innobackupex /backups

数据库写入数据

开始第一次增量备份

创建文件夹区别完全备份和增量备份

mkdir /backups/inc{1,2}

备份

innobackupex --incremental 备份到的路径 --incrementalbasedir=基于谁做增量备份(路径)

再次修改数据库

再次备份(基于第一次增量备份所做的增量备份)

innobackupex --incremental 备份到的路径 --incrementalbasedir=增量备份的上一次备份路径

scp -r /backups/* 192.168.27.17:/data/

2 在目标主机

不启动mariadb

rm -rf /var/lib/mysql/*

第一次数据整合(--redo-only:提交已完成的事务,保留未完成的事务)

innobackupex --apply-log --redo-only 完全备份路径

第二次数据整合

innobackupex --apply-log --redo-only 完全备份路径 --incremental-dir=第一次增量备份路径

innobackupex --apply-log --redo-only 完全备份路径 --incremental-dir=第二次备份路径

ls /var/lib/mysql/

innobackupex --copy-back 整合后的完全备份

chown -R mysql.mysql /var/lib/mysql/

systemctl start mariadb

验证

单表导出导入

安装xtrabackup步骤同上

配置文件添加innodb_file_per_table表数据单独存放

生成数据库和表

备份

innobackupex --includb="(要备份的)数据库名.表面" 备份到路径

备份表结构(最后把备份数据备份到其他主机)

mysql -e 'show create table hellodb.students' >students.sql

模拟误删表

还原

导出数据

innobackupex --apply-log --export /backup/2018-06-16_06-04-03/

导出后生成两个文件

创建丢失表的表结构

之前备份出来的表结构

更改一下

导入表结构

删除原有表数据

把备份表复制到数据库中

更改权限

把表数据导入到表空间中并验证

 

 

www.htsjk.Com true http://www.htsjk.com/mariadb/28894.html NewsArticle MariaDB用法——备份,mariadb用法 备份 完全备份、增量备份、差异备份 热备、温备、冷备 冷备 过程中需要停止服务 cp、tar等复制归档工具:物理备份工具:大数据备份工具 温备 过程中...
相关文章
    暂无相关文章
评论暂时关闭