mysql目前备份在本机,因有要求,现申请了一台服务器做异地备份,有想过使用scp、ftp等方案,因需求单一、存储服务器操作系统未确定等原因,最终选择了minio做存储备份方案。放弃其他两种方案的原因,scp有操作系统限制,ftp安装配置麻烦。可以根据实际情况来决定。
一、工具介绍
Minio 是一个对象存储服务。非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
Minio支持Windows、Linux、FreeBSD等系统。
Minio通过纠删码和位衰减技术来保护数据
mc为minio的客户端,支持Windows、Linux、FreeBSD等系统。
二、部署存储服务器
存储备份服务器使用CentOS7操作系统、1颗2603V4 六核1.7G 500W铂金单电 32G内存 2TB 7.2K SAS硬盘*4块,这里有考虑过使用minio自带纠删码的技术做数据保护、因服务器带有raid卡,综合考虑磁盘容量和成本,使用了raild5技术。如果使用minio纠删码技术,磁盘最少4块,最大不超过16块。minio纠删码技术的磁盘实际使用量为磁盘总量的一半,但是丢失一半数量(N/2)的硬盘,,您仍然可以恢复数据。Minio纠删码是作用在对象级别,可以一次恢复一个对象,而RAID是作用在卷级别,数据恢复时间很长。 Minio对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复。Minio纠删码的设计目标是为了性能和尽可能的使用硬件加速。如果想使用minio纠删码技术,可以提疑问。如果你想利用其他已有服务器,保证磁盘足够也可以,minio对cpu,内存占用很少。
1,安装minio服务
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
创建/data目录,用来作为minio的存储目录
mkdir /data
启动minio服务
./minio server /data
如果要后台运行,可以使用下面命令
nohup minio server /data &
会生成nohup.out文件,里面包含accesskey和secretkey
服务器防火墙需要打开9000端口,因为minio服务使用该端口。当然,如果该端口被占用,也可以自定义其他端口。
三、在mysql服务器上部署mc(minio客户端)
mysql服务器使用centos7操作系统
安装mc
wget https://dl.minio.io/client/mc/release/linux-amd64/mc
chmod +x mc
添加minio服务器
mc config host add myminio http://你的IP:9000 accesskey sercetkey
myminio是别名,你可以改成你想要的名字
创建mysql备份桶,这个也可以理解为仓库中的房间。
mc mb myminio/mysql-backup
查看mysql备份桶是否成功
mc ls myminio
也可以通过web界面来查看
访问地址:http://IP:9000输入accesskey和secretkey即可。
在mysql服务器上执行备份,并复制到异地备份服务器上。
假如先备份数据库test,备份到mysql-backup文件夹,文件名称为test.dmp
mysqldump test > mysql-backup/test.dmp
使用mc来复制备份的test.dmp
mc cp mysql-backup/test.dmp myminio/mysql-backup
验证是否成功!
mc ls myminio/mysql-backup
说明:推荐在内网使用,使用公网要做好安全防护。