Обсуждение: postgresql history and timelines
Hi guys,
Wanted to understand something that isnt clear to me, please correct me if I'm wrong :
-When we want to recover our database or promote a secondary to be a master a new time line will be created. A new file will be created in the pg_xlog directory named '00000TIMELINEID.history'.
-During the daily work, the primary or the secondary shouldnt have a .history file right ?
-The history file contains only the timeline id and the location to start from the timeline.
-When using repmgr, after cloning the primary and starting the secondary the secondary should replay wals from :
1.archives
2.local wals
3.Streaming replication from primary
?
I cloned the primary to the secondary, and when I tried to start the secondary I got the next message :
LOG: restored log file "000000010000090A00000002" from archive
FATAL: requested timeline 2 is not a child of this server's history
DETAIL: Latest checkpoint is at xx on timeline 1, but in the history of the requested timeline, the server forked off from that timeline at YY.
So I didnt recover my primary or promoted a secondary so how is it possible that I have a file from timeline 2 ? Are there other operations that creates a new timeline ?
Thanks.
On 18/11/18 11:29 π.μ., Mariel Cherkassky wrote: > Hi guys, > Wanted to understand something that isnt clear to me, please correct > me if I'm wrong : > > -When we want to recover our database or promote a secondary to be a > master a new time line will be created. A new file will be created in > the pg_xlog directory named '00000TIMELINEID.history'. > -During the daily work, the primary or the secondary shouldnt have a > .history file right ? > -The history file contains only the timeline id and the location to > start from the timeline. > -When using repmgr, after cloning the primary and starting the > secondary the secondary should replay wals from : > 1.archives > 2.local wals > 3.Streaming replication from primary > ? Streaming and if not available from the archives. Careful with the archives. Local wals are a result of receiving them via restore, they are not a source to replay from. > > I cloned the primary to the secondary, and when I tried to start the > secondary I got the next message : > LOG: restored log file "000000010000090A00000002" from archive > FATAL: requested timeline 2 is not a child of this server's history > DETAIL: Latest checkpoint is at xx on timeline 1, but in the history > of the requested timeline, the server forked off from that timeline at YY. > Cloning must be done withing a start / stop backup or done with pg_basebackup. After the cloning, you must first create recovery.conf, set it up correctly and then start the standby, pg_basebackup does this for you. What the message says to you is that smth messed up with the timelines, wrong/old backup, garbage files in pg_xlog, etc. > So I didnt recover my primary or promoted a secondary so how is it > possible that I have a file from timeline 2 ? Are there other > operations that creates a new timeline ? > Can you describe the precise sequence of steps that you took? > > Thanks.