说下初次操作第一反应,对我而言数据库的备份或者表备份,基本都是使用 Navicat 工具 中的数据传输,当库、表 体量小的时候完全没有问题,但是当数量达到 千万级别,备份就要传输 几个小时,同时也将 数据库所在服务器的带宽用完,其他访问生产数据库的服务就出现阻塞。(切记除了查询千万别直接对生产数据进行操作)
后面 改用 Mysqldump 操作,就便捷很多。操作具体如下:
1、生产数据库所在服务器上使用 Mysqldump 命令 将iov 数据库中 channel表 数据导出,生产 .sql 文件 (数据库备份都是压缩导出)
mysqldump -uadmin -p9PVaSxeXXXXXXLp8 iov channel > ./channel.sql
(如果文件很大 可以压缩导出 :mysqldump iov channel | gzip > ./channel .sql.gz)
2、在测试服务器上面执行:scp root@172.186.182.202:/root/channel .sql 将数据从生产上面把数据 拉倒测试服务器上面(如果导出的是 channel.sql.gz 的话 执行:scp root@172.186.182.202:/root/channel .sql.gz ,再将gz文件解压:gzip -d channel.sql.gz ) 在执行scp 命令后要输入 生产服务器 root用户的密码。
3、进入测试数据库:mysql -uroot -pOOt9XXXXXXwAaMho 然后切换到 iov-test 库中 :use iov-test
4、最后执行 source /root/channel.sql 就OK了。其中 /root/channel.sql 就是从生产服务器上面拉下数据路径。
常用 mysql dump 命令如下:
1、导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的脚本名为db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、导出数据库为dbname某张表(test)结构
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、导出数据库为dbname所有表结构及表数据(不加-d)
mysqldump -uroot -pdbpasswd dbname >db.sql;
4、导出数据库为dbname某张表(test)结构及表数据(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;
5.导出数据中dbname多张表(test1,test2,test3)结构及表数据用用空格隔开
mysqldump -uroot -pdbpasswd dbname test1 test2 test3>db.sql;
常用 mysql dump 命令参考:https://blog.csdn.net/kkk0526/article/details/78281694
网友评论