linux系统下的mysql导入导出 50

如题,我对数据库不熟现在有个linux系统要做迁移,包括上面的所有应用及数据库新的服务器已经搭建好了,mysql也已经安装完毕,现在要进行导入数据,我有几点不明白的地方1... 如题,我对数据库不熟 现在有个linux系统要做迁移,包括上面的所有应用及数据库
新的服务器已经搭建好了,mysql也已经安装完毕,现在要进行导入数据,我有几点不明白的地方
1、现在数据库还有读写的操作,在不停数据库写操作的情况下能用mysqldump --all-databases > /tmp/XXX.sql这条命令导出数据库吗?导出的数据会不会在其他机器上导入的时候出问题?
2、另外一个问题是,我如果导入了一个完整的数据库备份,那么原来机器上在备份后又有的操作怎么同步过来?是不是通过echo show master status | mysql 查看日志里面备份那一刻的操作记录编号,然后同步的时候通过读取这些这些编号后的操作,进行再执行以实现同步呢?
3、日志中记录的操作编号是在导出数据前一刻查询还是什么时候查询呢?
希望大家能详细告知一下
展开
 我来答
gwbnet
2014-04-17 · TA获得超过894个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:223万
展开全部
1 不停数据库写的情况下,也可以使用 mysqldump 导出,但因为 mysqldump 导出时会加表锁(lock tables table_name read;),导出过程中会阻塞写(应用程序的写数据库或其他情况的写),不会影响读。
2 导入一个备份后,还要继续同步备份的操作,那必须结合同步来进行,先导出导入数据(导出时注意加上 --master-data 选项,或导出前 show master status 记下日志名称和位置),再配置同步,并启动同步;
3 日志记录的编号,也就是 position,可以在导出前查询,也可以在导出时加 --master-data 选项一并进行;

-- 几个注意事项:
1 导出会加表锁(这是服务器级的读锁),如果数据库较大,可能会影响业务;较小的话,可以在数据库本机进行导出,时间很快;
2 大数据库一定要做个备份机(即replication的slave),同步会涉及到数据的一致性(备份、启用同步)问题,可以深入理解下;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
聚合智创
2014-04-17 · TA获得超过303个赞
知道小有建树答主
回答量:518
采纳率:80%
帮助的人:251万
展开全部
如果是还在跑业务...肯定不能用你说的那个命令..而且就算要用..也得加上类似--single-transaction(仅适用于Innodb引擎). 因为锁表会对业务有影响.
个人建议是不支持这种不加参数的导出导入,因为有的依赖会因为导出的先后顺序被破坏掉.如外键
个人建议是先导ddl,在核对后,在导数据.

另外,因为是在线跑,所以对于后续的增长数据,常用的方式是:做主从.在备份的时候记录bin-log点.然后在导入数据库后.从刚开始的点开始同步,这样就保证了后续数据的跟进..在恰当的时候.在停机切换....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式