两台服务器之间快速同步大表数据
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、然后到windows cmd界面D:\\sql>scp -P 22 root@xxx.xx.xxx.xx:/root/dbname-back.sql dbname-back.sql,然后输入密码即可开始向windows目录下同步。
3、把要同步的库,先只把建表语句导出来,在本地的数据库中新建一个数据库,然后把建表语句执行一遍。
4、在cmd命令窗口中,先登录mysql,mysql -uroot -proot即可登录
5、登录后使用我们新建的库use test
6、最后使用source dbname-back.sql来执行插入数据操作
以上是关于两台服务器之间快速同步大表数据的主要内容,如果未能解决你的问题,请参考以下文章