今天准备为公司内部的测试服务器上的MySQL数据库做一个备份,以防止数据丢失。基本思想先通过mysqldunp生成一个逻辑备份,再通过MySQL的主从复制实现数据的同步更新。在准备生成逻辑备份时,发现磁盘的物理空间不是很多,直接备份数据可能导致硬盘爆满。既然从服务器上(Slave)的硬盘空间很多,何不直接把Slave的硬盘分区挂载到MySQL主服务器(Master)上,Master备份直接写入到挂载的分区上。通过NFS和Portmap就可以把Slave上的分区挂载到Master上。
#/etc/init.d/portmap start
#/etc/init.d/nfs start
2、在/mnt下创建一个挂载目录
#cd /mnt
#mkdir data
#chmod -R 777 data/
3、Slave上NFS配置
修改/etc/exports配置文件
#vim /etc/exports
加入一下内容:
/mnt/data 192.168.3.199(rw,sync)
设置上一步骤创建的目录作为挂载目录,允许读写并让数据同步写入硬盘。
#exportfs -a 使改动生效
4、启动 Master的Portmap和NFS服务
#/etc/init.d/portmap start
#/etc/init.d/nfs start
5、在Master上挂载Slave的一个分区(目录)
6、备份数据库到挂载目录
在这里,由于需要把逻辑备份数据文件直接写入到Slave的分区上,Slave相当于NFS服务的服务器端,而Master是使用的客户端。
NFS服务器端(slave),IP:192.168.3.199
NFS客户端(Master),IP:192.168.3.90,
#/etc/init.d/portmap start
#/etc/init.d/nfs start
2、在/mnt下创建一个挂载目录
#cd /mnt
#mkdir data
#chmod -R 777 data/
3、Slave上NFS配置
修改/etc/exports配置文件
#vim /etc/exports
加入一下内容:
/mnt/data 192.168.3.199(rw,sync)
设置上一步骤创建的目录作为挂载目录,允许读写并让数据同步写入硬盘。
#exportfs -a 使改动生效
4、启动 Master的Portmap和NFS服务
#/etc/init.d/portmap start
#/etc/init.d/nfs start
5、在Master上挂载Slave的一个分区(目录)
#mount -t nfs 192.168.3.199:/mnt/data /mnt
可以用showmount查看挂载信息:
showmount -e 192.168.3.90
6、备份数据库到挂载目录
#nohup mysqldump -uroot -p'password' user > /mnt/user_618/.sql &