两台服务器之间快速同步大表数据

Posted 在京奋斗者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两台服务器之间快速同步大表数据相关的知识,希望对你有一定的参考价值。

一、利用mysqldump方式生成sql文件

mysqldump -t dbname -u root -proot --tables table >table.sql

说明:-t后面的dbname是库名,–tables后面是要同步的表名,>table.sql的意思是会在当前目录下生成table.sql文件

二、压缩table.sql

zip -r table.zip table.sql

说明:table.zip是要压缩成的文件名,table.sql是指要被压缩文件,之所以要压缩是因为不压缩的话文件很大,在两台服务器之间传输时间太长

三、从当前服务器传输到目标服务器指定目录下

scp -P port table.zip root@xxx.xx.xxx.xx:/usr/data/

说明:目标服务器是指数据库所在的服务器,-P后面接对应的端口号,xxx.xx.xxx.xx是目标数据库所在的服务器,/usr/data是指要保存到目标服务器的这个目录下

输入上面的命令后,会让我们输入目标服务器的密码,我们从群文件中找到对应的密码,复制,然后到要输入密码的地方,直接右键就可以了(右键后,看不到粘贴的内容,但已经粘贴好了),然后回车即可开始传输

四、解压文件

unzip table.zip

说明:由于我们同步过来的是压缩文件,因此需要解压

五、在目标服务器登录mysql并选择指定库

1) mysql -uroot -proot

2) use dbname

说明:用上面的命令1)即可登录mysql。用2)即可选择对应的库

六、导入数据

source table.sql

说明:通过上面的命令即可开始向指定表中插入商品信息,速度还是很快的

---------------------------------------------------------------------------------------------------------------------------------上面是同步某张大表的办法,下面是一下子把整个数据库进行同步

有的服务器上在执行mysqldump命令的时候不成功,这时我们要考虑使用绝对路径来执行

1、/usr/bin/mysqldump --set-gtid-purged=OFF -u root -proot dbname > dbname-back.sql

2、由于可能sql文件很大,因此要对文件进行压缩,压缩命令为:zip -r dbname-back.zip dbname-back.sql

3、在我们本地数据库中先创建一个空库,名字由我们自己来定,比如这里我用test

4、将第2步压缩的文件下载我们windows系统某个目录下

5、将压缩文件进行解压缩

6、在cmd命令窗口中,先登录mysql,mysql -uroot -proot即可登录

7、登录后使用我们新建的库use test

8、最后使用source dbname-back.sql来执行插入数据操作

以上是关于两台服务器之间快速同步大表数据的主要内容,如果未能解决你的问题,请参考以下文章

两台服务器之间快速同步大表数据

如何实现两台电脑之间的文件自动同步?

Linux课程笔记 Rsync数据同步服务

EXCHANGE2010邮件数据在两台服务器之间如何部署?

如何使用两台服务器实现主从同步与数据读写分离

两台数据库服务器 如何进行数据同步操作