
但远程备份一般都比较慢没办法保证数据库的一致性
例如:
备份所有库mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 --all-databases > backup.sql
备份单库
mysqldump -h xx.xx.xx.xx -P 3306 -uusername -ppassword --max_allowed_packet=1G -R -E -d --opt --flush-logs --default-character-set=utf8 dbname > backup.sql
Linux下可以利用crontab系统每天定时备份MySQL数据库,以下是详细步骤:1、创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
2、创建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
输入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
或者写成
rq=` date +%Y%m%d `
mysqldump –all-databases -u root -p980405 >/mysqldata/mysql$rq.tar.gz
/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同
/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。
用python是非常方便的,非常方便就能备份mysql和sqlserver,下面我们来具体看看如何用:
#coding=gbk
import os
import time
os.system("mysqldump -h192.168.0.2 -uddd -pggg xdreams >E:/mysqldack/xdreams/xdreamsfdfdf.txt")
上面就成功把0.2机器上的mysql数据库备份下来,
导入数据库:mysql -h192.168.0.2 -uroot -psz212 -P 7659 hotelguanli <G:/temp/2013-03-28-10-34-35.sql
下面是sqlserver的:
os.system("sqlcmd.exe -S 127.0.0.1,56678 -U sa -P 123456 -d 数据库名 -b -c cmd_end -Q \"backup database 数据库名 to disk='d:/sql.bak'\"")
看看,是不是很简单。
当然还可以通过os.path.getsize(r"d:/sql.bak")/1024来获取这个文件的大小,返回的是K,
备份文件还可以用时间值来命名:
如:
nowtime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))+""
改造上面一条:
os.system("mysqldump -h192.168.0.2 -uddd -pggg xdreams >E:/mysqldack/xdreams/xdreams"+nowtime+".txt")
如果再完善一点,就加个备份完成后发一封邮件到你邮箱里吧。
其它要注意到的一点就是sqlxerver和备份中,sqlserver服务器实列要支付远程连接,开启sql brower服务
两个数据库的密码不要含有"^"这个符号,因为在cmd里好像识别不到它,转义也不行,具体原因没查到.
现在,加在windows或linux的计划任务中去,每天执行它,至此,大功告成.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)