几行代码实现mysql数据库的自动备份
Posted 分享创造快乐,技术成就梦想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几行代码实现mysql数据库的自动备份相关的知识,希望对你有一定的参考价值。
web服务文件更新自动同步数据库主从复制shell脚本实现网站代码备份和mysql备份
基搭建LAMP环境,并实践基于DNS做基于域名的虚拟主机中的环境,重新搭建一个同样的环境
要求:
a)实现web服务文件更新的自动同步到另一台机器上
b)数据库实现主从复制
c)通过shell脚本实现网站源代码备份和mysql备份,备份策略包括全量备份、增量备份、差异备份
a,实现web服务文件更新的自动同步到另一台机器上;
1,在httpd服务器上建立基于FQDN的两个虚拟web站点,并创建相关目录。
2,修改测试windows主机的hosts文件,并编辑两个虚拟web站点对应的目录下的index.html文件。
3,测试两个虚拟web站点均可正常访问。
4,在linux2主机上安装samba并启动服务,
samba间接以及安装配置:
实现的是Linux和Windows间资源互通的问题:在Linux下架设Samba服务器,在Windows下来访问。
安装配置:
安装命令: yuminstall samba samba-client -y
服务启动:service nmbstart;service smb start
服务脚本:
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
主配置文件:
/etc/samba/smb.conf
修改配置文件:将工作组修改为和windows一样WORKGROUP,定义测试共享环境,然后重启服务
vim smb.conf
vorkgroup=WORKGROUP
service nmb restart ; service smb restart
使用smbpasswd命令将系统用户smbuser1加入samba用户:
smbpasswd:
-a Sys_User: 添加系统用户为samba用户
-d :禁用
-e: 启用
-x: 删除
在另一台centos主机上验证:
在windows主机中验证:
在httpd服务器端(samba客户端)挂载samba共享目录:
注意:需安装samba-client和cifs-utils程序;否则无法挂载:
设置SMB共享目录:
vi /etc/samba/smb.conf ,在最后加入想要共享的文件夹:
[share]
path = /shared
available = yes
browsealbe = yes
public = yes
writable = yes
设置SMB用户:
samba的帐户设置有点特别,它使用的是系统的帐户,但是要把账户映射到samba的帐户数据库,而且要设置samba密码才能使用如果该账户只用于samba访问,可以不设置系统密码,而只为账户设置samba的密码
//我使用已有的用户,设置smb用户密码后始终不能成功从远程访问,所以新建了一个系统用户
useradd smbtest
passwd 654321
//设置smb用户的密码
smbpasswd -asmbtest;//增加SMB用户,同时会提示设置密码
smbpasswd –x smbtest;//删除SMB用户
5,在httpd服务器主机上执行如下命令挂载:
mount -t cifs -ousername=smbtest,password=654321 //192.168.1.19/shared /mont
注意:/mont目录需在本地先创建好。
6,设置自动挂载,并确认在httpd服务器上可用正常自动挂载:
先设置nmb,smb,httpd开机启动服务:
chkconfig httpd on
chkconfig nmb on
chkconfig smb on
//192.168.1.19/shared /mont cifs defaults,_netdev,username=smbtest,password=654321,rw 0 0
7,在samba服务器(linux2)上共享目录上编辑Index.html文件;
8,删除vhosts目录下web1和web2目录中htdocs目录,然后将samba共享的挂载目录/mont软连接到web1和web2目录,这样web1和web2两个虚拟站点的文件更新同步至另一台机器。
9,通过windows主机访问验证:
b,数据库主从复制:
MySQL是开源的关系型数据库系统。复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。
服务器IP:192.168.1.19 ,从服务器IP:192.168.1.20
1、编辑数据库配置文件my.cnf,一般在/etc/目录下。
#vi /etc/my.cnf
在[mysqld]的下面加入下面代码:
log_bin=mysql_bin //[必须]启用二进制日志
server_id=1 //[必须]服务器唯一ID,
2、然后重启MySQL:
3、登录MySQL服务器。
先变更root帐号密码:
退出mysql后重新登入:
#mysql -uroot -p
在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令, %表示所有的IP。
4,退出mysql,重启mysql服务后,再次登录mysql查看
注意:记录下file和pos的值,执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
5,修改从服务器/etc/my.cnf文件并启动mysql服务器。
6,登录从服务器并修改root密码后退出重新登录;
7,配置从服务器Slave
mysql> CHANGE MASTER TO
-> MASTER_HOST=‘192.168.3.11‘,
-> MASTER_PORT=3306,
-> MASTER_USER=‘rep1‘,
-> MASTER_PASSWORD=‘123456‘,
-> MASTER_LOG_FILE=‘mysql_bin.000001‘, //此处对应主服务器status的file.
->MASTER_LOG_POS=106; //此处对应主服务器status的Position
配置完成后退出,并重启服务器后再登入mysql。
8、检查从服务器复制功能状态:
Slave_IO_Running: Yes //Yes表示连接正常
Slave_SQL_Running: Yes //Yes表示连接正常
注意:作此配置之前使用了service iptables stop和 setenforce0 命令关闭了防火墙和selinux。
从服务器复制时,会在其数据目录中发现文件master.info和HOSTNAME-relay-log.info。从服务器使用这两个文件跟踪已经处理了多少主服务器的二进制日志
c,通过shell脚本实现网站源代码备份和mysql备份,备份策略包括全量备份、增量备份、差异备份
1,先建立好备份存放目录:
mkdir /myback/{webback,sqlback}
2,编写脚本备份:
3,查看执行目录验证:
本文出自 “前进的轨迹” 博客,请务必保留此出处http://lisoy79.blog.51cto.com/10836537/1752757
以上是关于几行代码实现mysql数据库的自动备份的主要内容,如果未能解决你的问题,请参考以下文章