Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WzqHc-0004UN-4B for pgsql-admin@arkaria.postgresql.org; Wed, 25 Jun 2014 16:42:52 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1WzqHb-00036y-DA for pgsql-admin@arkaria.postgresql.org; Wed, 25 Jun 2014 16:42:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1WzqHa-00036Z-FW for pgsql-admin@postgresql.org; Wed, 25 Jun 2014 16:42:50 +0000 Received: from qmta01.emeryville.ca.mail.comcast.net ([2001:558:fe2d:43:76:96:30:16]) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WzqHU-0003V4-S6 for pgsql-admin@postgresql.org; Wed, 25 Jun 2014 16:42:48 +0000 Received: from omta12.emeryville.ca.mail.comcast.net ([76.96.30.44]) by qmta01.emeryville.ca.mail.comcast.net with comcast id JfHu1o0040x6nqcA1gii35; Wed, 25 Jun 2014 16:42:42 +0000 Received: from jerry.enova.com ([38.98.177.132]) by omta12.emeryville.ca.mail.comcast.net with comcast id JgiV1o00D2rmZlA8YgiXiU; Wed, 25 Jun 2014 16:42:40 +0000 Received: by jerry.enova.com (Postfix, from userid 1001) id 1C35B7401ED; Wed, 25 Jun 2014 11:42:29 -0500 (CDT) From: Jerry Sievers To: John Scalia Cc: Andrew Krause , "pgsql-admin\@postgresql.org" Subject: Re: Wal archive way behind in streaming replication References: <53A9B567.5070301@gmail.com> <53A9C139.2040704@gmail.com> <3709F6AF-032E-4095-B0CB-DC1CE36F6B4B@breakthroughfuel.com> <53AADF59.50000@gmail.com> Date: Wed, 25 Jun 2014 11:42:29 -0500 In-Reply-To: <53AADF59.50000@gmail.com> (John Scalia's message of "Wed, 25 Jun 2014 10:40:25 -0400") Message-ID: <86egydndoq.fsf@jerry.enova.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1403714562; bh=Mx4CGRaxe23EDgijjze3omurhSzXQBluPvq23559NUY=; h=Received:Received:Received:From:To:Subject:Date:Message-ID: MIME-Version:Content-Type; b=wJiA+dK3zjBPabd87oKmd3Ho+lc+CVkNUnA77tDJ7Z2uOu70h4Z4ApQWsrricB5Tf /atxN1xCDBBUxYjiFEoo3bC+kdL4G488Bu8A1CGQweN4tC25NpJZ7cUyoznykg8Y2S TmX32MLn3u3qCXkBrws9v3XD85x0QqA+YVuHwnzaiM3FPpFkFvSUz9TDjCtxxMS0gr Jcfbf6YFXxWa0KpHYui7MQ8/TGHKIDdKmGl02aGq00CQuDQhct5tyuktKKEYy/JTmM y/JRhyTtcvXvHHi0GaARvIHQNJnX31aWU+d3zBabjoynsmU8EsCBb2u3HraRnPAhsd 2bNzJViq/HXIQ== X-Pg-Spam-Score: -0.8 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-admin Precedence: bulk Sender: pgsql-admin-owner@postgresql.org John Scalia writes: > A little examination of the pgarch.c file showed what the archive > process on the primary is doing. Anyway, to ensure that the primary > knows that it has transmitted all the up to date WALs, I went into the > primary's data/pg_xlog/archive_status directory and performed "touch > 00000003000000900000036.ready" and repeated this command for the other > WALs up to *44.ready. This really shouldn't have been a problem as the > most recent WAL file in pg_xlog was *45. The archiver then picked up > all those WAL files and transmitted them to the standbys. At least I > saw them appear on the standby in the directory specified in the > recovery.conf file. > > Now, what I really don't understand is the standby's behavior. After > the WALs arrived, I saw nothing in today's pg_log/Wed.log file showing > it saw them. I then issued a service postgresql-9.3 restart and this > is what was spit out in the log: > > LOG: entering standby mode > LOG: restored log file "00000000300000000900000035" from archive > LOG: unexpected pageaddr 9/1B000000 in log segment 00000000300000000900000035, offset 0 > LOG: started streaming WAL from primary at 9/35000000 on timeline 3 > FATAL: the database system is starting up > LOG: consistent recovery state reached at 9/350000C8 > LOG: redo starts at 9/350000C8 > LOG: database system is ready to accept read only connections > > Two things stand out here. First, the standby didn't seem to process the newly arrived WAL files, and second. what's with the FATAL: in the logfile? I'd suggest you ... 1. Toss out that standby instance. 2. Re-read all manual sections regarding hot backup/PITR/streaming replication etc. 3. Start fresh. > -- I would not trust a standby instance after possibly corrupting it by having to frob the .ready files on master. A standby server configured as hybrid streamer/WAL shipper should... 1. Stream and/or read WAL segments from master's xlog directory when wal_keep_segments permits it. 2. Fetch WALs from a remote repository when it can't get a feed directly from master. There is no manual touching of .ready files needed and I can imagine doing so could be harmful in certain situations. HTH > Jay > > On 6/24/2014 2:52 PM, Andrew Krause wrote: >> You shouldn’t have to touch the files as long as they aren’t compressed. You may have to restart the standby instance to get the recovery to begin though. I’d suggest tailing your instance log and restarting the standby instance. It should show that the logs from the gap are applying right away at startup. >> >> >> Andrew Krause >> >> >> >> >> On Jun 24, 2014, at 1:19 PM, John Scalia wrote: >> >>> Ok, I did the copy from pg_xlog directory into the restore.conf specifieddirectory. The standby servers seem fine with that, however, just copying does not inform the primary that >>> the copy has happened. The archive_status directory under pg_xlog on the primary still thinks the last WAL sent was *B7 and yet it's now writing *C9. When I did the copy it was >>> only up to *C7 and nothing else has shown in the standby's directory. >>> >>> Now, the *.done files in archive_status are just zero length, but I'm a bit hesitant to just do a touch for the ones I manually copied as I don't know if this is from an in-memory >>> queue or if it Postgresql reads the contents of this regularly in order to decide what to copy. >>> >>> Is that safe to do? >>> >>> On 6/24/2014 9:56 AM, Andrew Krause wrote: >>>> You can copy all of the WAL logs from your gap to the standby. If you place them in the correct location (directory designated for restore) theinstance will automatically apply them all. >>>> >>>> >>>> Andrew Krause >>>> >>>> >>>> >>>> On Jun 23, 2014, at 9:24 AM, John Scalia wrote: >>>> >>>>> Came in this morning to numerous complaints from pgpool about the standby servers being behind from the primary. Looking into it, no WAL files had been transferred since late Friday. All I did was restart the primaryand the WAL archving resumed, however, looking at the WAL files on the standby servers, this is never going to catch up. Now, I've got the archive_timeout on the primary = 600 or 10 minutes and I see WAL files in pg_xlog every 10 minutes. As they show up on the standby servers, they're also 10 minutes apart, but the primary is writing *21 and the standby's areonly up to *10. Now, like I said prior, with there being 10 minutes (600seconds) between transfers (the same pace as the WALs are generated) it will never catch up. Is this really the intended behavior? How would I get the additional WAL files over to the standbys without waiting 10 minutes to copy them one at a time? >>>>> -- >>>>> Jay >>>>> >>>>> >>>>> -- >>>>> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) >>>>> To make changes to your subscription: >>>>> http://www.postgresql.org/mailpref/pgsql-admin >>> >>> >>> >>> >>> >>> -- >>> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) >>> To make changes to your subscription: >>> http://www.postgresql.org/mailpref/pgsql-admin >> -- Jerry Sievers Postgres DBA/Development Consulting e: postgres.consulting@comcast.net p: 312.241.7800 -- Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin