MariaDB windows 备份手册

在这里插入图片描述

1.前言

Mariadb存在多种数据库备份方式,而且各有利弊,在选择备份方式时,首先要基于公司的需求,考虑能够容忍丢失多少数据、花多少人力时间成本等。此文档将最常用备份方案整理出来,供参考选择。

2.备份方式

1.全量备份

此处全量备份指的是,将所有数据导出为SQL语句,存放到文件中。全量备份可将将数据库完全恢复到备份时的状态;但缺点是数据量大时备份耗时久,影响数据库性能。

常用备份语句及参数含义如下:

mysqldump -uroot -p -h 127.0.0.1 -R -q --flush-logs --single-transaction --master-log=2 -B WMS --ignore-table=wms.dc_job_log --ignore-table=wms.sys_log --ignore-table=wms.iccn_rfa_service_log >/backups/wms-2019-0530-1825.sql

选项含义

–quick,-q导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不将它们先缓存到内存中。
–routines,-R导出存储过程以及自定义函数。
–single-transactionInnoDB必选项,保证数据一致性,且不会阻塞应用程序
–triggers同时导出触发器。该选项默认启用,用 --skip-triggers 禁用
–flush-logs, -F关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1
–master-data=#设为1时,会在备份文件中添加change master命令;设为2时,会在备份文件中添加change master命令,但会注释掉
–ignore-table不备份指定的表。忽略掉日志表,可有效减少备份文件大小。利于传输、保存。

2.增量备份增量

备份是建立在全量备份之上的一种备份手段。增量备份即是备份MariaDB的二进制日志(binlog)。
全量备份会影响数据库的性能,因此全量备份一般每天深夜时执行一次。假若每天夜里00:00:00执行一次全量备份,而在15:10的时候数据库down掉,需要还原数据,那用之前的全量备份只能恢复到00:00:00时的数据,00:00:00到15:10之前的数据就都丢失了。增量备份相对全量备份来说轻量的多,只要执行 flush logs,然后将之前的二进制日志保存起来即可。
由于要备份二进制日志,所以首先要打开MariaDB的二进制日志。在my.ini中添加:log-bin=mysql.log

3.MariaDB主从复制

MariaDB自带的高可用及备份机制,几乎实时将数据同步到从服务器上。即使主服务器完全down掉,我们还是可以快速将应用的数据库配置指向从服务器,快速恢复应用访问。仅仅使 用主从复制对备份来说是不够的。主从复制只能用于防止 主服务器硬件损坏 ,但是如果主服务器上执行了错误 的删除操作,如drop database, drop tables等,则从库 也会执行这些命令,因此全量备份与增量备份也是不可或缺的。

建立主从复制:

1)主MariaDB配置文件中添加:
[mysqld]
log-binserver_id=1
log-basename=mysql-bin

注释:主从复制中,主服务器与从服务器都需要配置server_id,值为1 ~ 232-1的数字,且每台服务器的server_id必须不同。

2)创建用于复制的用户
CREATE USER ‘replication_user’@‘%’ IDENTIFIED BY ‘bigs3cret’;GRANT REPLICATION SLAVE ON . TO ‘replication_user’@‘%’;

3)从服务器上配置
[mysqld]server_id=2

4)获取主服务器上的日志坐标此时必须防止数据写入,因此要锁表。执行 FLUSH TABLES WITH READ LOCK;不要 断开会 话,否 则锁 将释放。
继续 执行:show master status; 记住File和Position。

如图所示,如果此二者都为YES即配置成功。

在这里插入图片描述

5)在不释放上一步中的锁的情况下,对MariaDB 主服务器进行全量备份
mysqldump -uroot -p --single-transaction -B wms >d:\wms.sql

完成后将wms.sql拷贝到从服务器上,并将数据导入:mysql -uroot -p <wms.sql
之后,主服务器上的锁即可释放,直接关闭执行了
READ LOCK的命令行窗口,或执行
UNLOCK TABLES;

6)启动从服务从服务器上执行:

CHANGE MASTER TOMASTER_HOST='Master IP',MASTER_USER='replication_user',MASTER_PASSWORD='bigs3cret',MASTER_PORT=3306,MASTER_LOG_FILE='mariadb-bin.000096',MASTER_LOG_POS=568,MASTER_CONNECT_RETRY=10;

7)查看运行情况在从服务器上执行:
show slave status\G
在这里插入图片描述

3®备份文件存放

全量备份和增量备份的文件仅放置在本机的话,如果本机down掉(如磁盘损坏),则备份数据仍是丢失,因此需要将备份文件存若干份在其它地方,以防本机损坏。主要方式有以下几种:每天定时将备份文件拷贝到移动硬盘上。每天将备份文件拷到另一台服务器上。搭建ftp服务器,修改备份脚本,备份时直接将备份文件上传到ftp服务器上。
ftp脚本操作如下:

4 备份日常维护

1.检查是否备份成功
2.验证备份数据是否有效(可将数据导入测试区测试)
3.是否成功备份到远程主机
4.远程备份主机是否正常运行(ftp, ssh, 磁盘空间)

5®FTP安装

1Windows下FTP安装

a)下载软件FileZilla Server: https://download.filezilla.cn/server/windows/FileZilla_Server_cn-0_9_46.exe
(2)开始安装默认即可,一路“下一步”,注意下图两步即可。安装为  系统 服务,可随系统  自动启动。此处的端口 为管理端口,连接到服务器进行配置时要使用此端口号。

在这里插入图片描述
)==连接到服务器运行此处的端口即为安装时配置的管理端口。如果有管理密码,请输入管理密码。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置密码
在这里插入图片描述
添加目录,并设置用户权限。此目录即为该用户的工作目录,即该用户上传的文件都会放到此目录下
在这里插入图片描述
访问测试打开 浏览 器,输入:ftp://服务器IP/,输入用记名密码 ,即可。(如果访问不了,请将服务器上防火墙关闭。
在这里插入图片描述

2Linux下安装FTP

1)安装

yum -y install vsftpd
#centos7/rhel7:
	systemctl enable vsftpd
	systemctl start vsftpd
# centos6/rhel6:
	chkconfig vsftpd on
	service vsftpd start

2)防火墙配置如果不使用防火墙,关闭即可:

# 
centos7/rhel7:
	systemctl disable firewalld
	systemctl stop firewalld
# centos6/rhel6:
	chkconfig iptables off
	service iptables stop

3)创建ftp用户
useradd ftpuser
#设置密码
passwd ftpuser

4)创建FTP存放目录,
请选择一个可用空间较大的分区
mkdir /home/ftpchmod o+x /home/ftp

5)更改vsftpd配置文件
cp -rp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
清空/etc/vsftpd/vsftpd.conf内容,然后将下面内容 粘贴 进去,注 意将其中的local_root更改为上一步中创建的目录:anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YESlisten=YES
pam_service_name=vsftpd
tcp_wrappers=YES
userlist_deny=YES
local_root=/home/ftp
allow_writeable_chroot=YES

6)重启vsftpd

# centos6/rhel6:
	service vsftpd restart
# centos7/rhel7:
	systemctl restart vsftpd
```
# 6.增量备份
举例每天12:20进行增量备份,并上传到ftp服务器上。Ftp服务器  已搭 建好,192.168.1.20,用户名:ftp,密码ftp123。

## 1.FTP上传脚本
脚本分为两部分:可执行的bat脚本和ftp命令文件;可执行脚本: 
mysql_binlog_backup.bat
```
@echo off“
D:\MariaDB 10.3\bin\mysql” -uroot -proot123 -e “flush logs”
ftp -s:D:\backups\ftp.txt
ftp命令文件:
open 192.168.1.20
ftp
ftp123
prompt off
lcd D:\backups\mysql\binlogs
cd /mysql/binlogs
mput *
bye
quit
```
注释: lcd: 是指切换到本地目录(ftp脚本所在服务器)cd: 是指在ftp服务器上切换目录2.创建计划任务

## 2.创建计划任务
![在这里插入图片描述](https://img-blog.csdnimg.cn/4ea400f6dc2c4945b2883818ea4a97f9.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/be9b951aa2d241f7ac8d4327eaabfa8b.png)


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值