我创建一个主数据库,设置配置启用 “ binary logging ” 开启主从,记录 Master 上的日志的当前位置,这个作为最开始的记录,然后设置一个从的数据库进行数据复制,在主数据库运行一段情况,增加了不少数据之后,我又增加一个从数据库,这次利用主数据库最开始的日志的位置来应用于这个新的从数据库,是否可行?
1
anthoy OP 11111
|
2
sujin190 2019-06-18 18:01:23 +08:00
理解是不是有问题,难道不是应该从从库数据的主库 binlog 位置应用么。。
否则你从库数据和主库最新 binlog 之间的数据岂不是没有了 |
3
aaa5838769 2019-06-18 18:05:38 +08:00
@sujin190 他的意思应该是新的从数据库从最开始的主的 pos 和 logfile 开始同步。
|
4
sujin190 2019-06-18 18:11:31 +08:00
@aaa5838769 #3 也不行吧,如果从数据库的数据更新,主从同步很快就冲突挂掉了
|
5
wps353 2019-06-18 18:28:20 +08:00
只要你的 binlog 一直在,你就可以这样搞。
|
6
anthoy OP @aaa5838769 @sujin190 就是主数据库最开始的时候记录下 show master status 中的值,当主数据库数据发生变化时,新增加的数据库依旧用最开始的记录下来的值作为新的数据库的 pos 和 file,这样子可行吧?我感觉理论上应该可以的?
|
7
anthoy OP @wps353 这个 binlog 是主数据库开启 binary logging 之后一直存在的吗?好像是存储在 data 上?没有人为干预会不会有自动删除机制?
|
8
aaa5838769 2019-06-18 23:28:46 +08:00
@anthoy 你可以测试一下,我记得不行的,原来好像我测试过,如果用很早之前的 binlog 信息,会提示报错的。
|
9
aaa5838769 2019-06-18 23:29:03 +08:00
@anthoy 你可以本地验证一下。
|
10
Takamine 2019-06-18 23:45:30 +08:00 via Android
理论上是可行的,就跟做了一次基础备份一样。
|
11
msg7086 2019-06-18 23:49:32 +08:00
1. 有些发行版的 binlog 有自动删除。
2. 主从复制总是从快照+快照时的 file+pos/gtid 开始的。 3. binary log 可以修改存储位置。 |
12
anthoy OP @aaa5838769 我就怕很早之前的 binlog 会被清除掉,但可能需要达到一定的时间条件或者一定的空间条件,这个在本地就不好处理了
|
13
sujin190 2019-06-19 09:42:01 +08:00
@anthoy #6 如果 binlog 还没覆盖清楚掉是可以的,binlog 可能会你自己删除了,或者设置了自动多长时间删除
|
14
aaa5838769 2019-06-19 11:53:27 +08:00
@anthoy 楼上说的对,binlog 是根据配置文件来设置多长时间来删除的。
|
15
anthoy OP @aaa5838769 @sujin190 问个别的问题,如果用 redis 做主从复制是不是要相互能够 ping 通,一个公网,一个本地内网可以吗?
|
16
sujin190 2019-06-19 14:12:03 +08:00
@anthoy #15 肯定的啊,都相互连不通网,主从怎么同步数据。。
相互能联网就可以,只是这样主从延迟可能比较高,大量写入的时候公网带宽可能无法跟上传输速度,短时间可能问题不大,时间长了就不行了 还有各问题就是公网传输可能不稳定,我记得 redis 的主从如果网络错误断开了重新加入主从是需要重新传输全部数据的,稍大一点的数据量这个都无法短时间搞定吧 |
17
anthoy OP @sujin190 我打算一个在公网 IP 上做主,一个在本地做从,这样子可行不?我用 mysql 是可行的,不知道 redis 行不行
|
18
sujin190 2019-06-19 14:22:00 +08:00
只能网络能连通都可行,只是稳不稳定就不好说了
|