mysql怎么远程备份 mysql远程备份数据库脚本

如何设置远程mysql数据库自动备份数据库使用mysqldump备份数据库
但远程备份一般都比较慢没办法保证数据库的一致性
例如:
备份所有库
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-databasesbackup.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 dbnamebackup.sql
怎么备份远程mysql数据库的脚本文件在MySQL中进行数据备份的方法有两种:
1. mysqlhotcopy
这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法 。
命令的使用方法是:
mysqlhotcopy -u root -prootpass db1 db2 … dbn output_dir
如果需要备份全部数据库,可以加上–regexp=”.*”参数 。
Mysqlhotcopy命令可自动完成数据锁定工作,备份时不用关闭服务器 。它还可以刷新日志,使备份文件和日志文件的检查点能保持同步 。
2. mysqldump
这个命令是用来把数据库倒成sql文件的,是非常古老的命令了 。
命令的使用方法是:
mysqldump -u root -prootpass –hex-blob db1db1.sql
加上–hex-blob参数以后,blob数据会被类似BASE64的方法转换为文本来存储在sql文件中 , 就不会导致sql文件格式问题了 。经过测试,通过这种方法备份的blob数据再重新恢复回去能够完全正确 。
如果要备份所有的数据库,可以加上–all-databases参数 。
用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件 。重复执行可定期更新远程数据库 。
% mysqladmin -h remote_host create testdb
% mysqldump –opt testdb | mysql -h remote_host testdb
另外还可通过ssh远程调用服务器上的程序 , 如:
% ssh remote_host mysqladmin create testdb
如何远程备份MySQL binlog用脚本对远程服务器进行备份的方式,有个缺点:无法对MySQL服务器当前正在写的二进制日志文件进行备份 。所以,只能等到MySQL服务器全部写完才能进行备份 。而写完一个binlog的时间并不固定,这就导致备份周期的不确定 。
从MySQL5.6开始,mysqlbinlog支持将远程服务器上的binlog实时复制到本地服务器上 。
mysqlbinlog的实时二进制复制功能并非简单的将远程服务器的日志复制过来,它是通过MySQL 5.6公布的Replication API实时获取二进制事件 。本质上,就相当于MySQL的从服务器 。与普通服务器类似,主服务器发生事件后,一般都会在0.5~1秒内进行备份 。
备份命令
mysqlbinlog --read-from-remote-server --raw --host=192.168.244.145 --port=3306 --user=repl --password=repl --stop-never mysql-bin.000001
解释如下:
--read-from-remote-server:用于备份远程服务器的binlog 。如果不指定该选项,则会查找本地的binlog 。
--raw:binlog日志会以二进制格式存储在磁盘中,如果不指定该选项,则会以文本形式保存 。
--user:复制的MySQL用户,只需要授予REPLICATION SLAVE权限 。
--stop-never:mysqlbinlog可以只从远程服务器获取指定的几个binlog , 也可将不断生成的binlog保存到本地 。指定此选项,代表只要远程服务器不关闭或者连接未断开,mysqlbinlog就会不断的复制远程服务器上的binlog 。
mysql-bin.000001:代表从哪个binlog开始复制 。
除了以上选项外,还有以下几个选项需要注意:
--stop-never-slave-server-id:在备份远程服务器的binlog时 , mysqlbinlog本质上就相当于一个从服务器,该选项就是用来指定从服务器的server-id的 。默认为-1 。

推荐阅读