เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเตป เดฌเดพเดเตเดเดชเตเดชเต เด
เดฒเตเดฒ. เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด
เดฒเตเดฒ? เดเดเดธเตเดฎเดฟเดเดฎเดพเดฏเดฟ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจ เดเตเดฑเตเดเตเดเตเดตเดดเดฟเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฃเตเดเตเดเตเดเตเดเดพเตป เดเดเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดชเดเตผเดชเตเดชเต เดเดเตเดเดจเต เดเดชเดฏเตเดเดฟเดเตเดเตเดตเตเดจเตเดจเดคเต เดเดคเดพ.
เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเดเตพ เดฌเดพเดเตเดเดชเตเดชเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฎเดพเตผเดเดฎเดฒเตเดฒ เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเตป (gitlab-ce
เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดเดฐเต เดชเดเตผเดชเตเดชเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดตเตเดฑเตเด 1,5 เดฎเดฃเดฟเดเตเดเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดเตเดเตพ เดกเดพเดฑเตเดฑ เดตเตเดฃเตเดเตเดเตเดคเตเดคเต. เด เดคเต เดเดเตเดเดจเต เดธเดเดญเดตเดฟเดเตเดเตเดตเตเดจเตเดจเต เดจเตเดเตเดเต.
PostgreSQL เดเดชเดฏเตเดเดฟเดเตเดเต เดธเดฎเดฏ เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ เดชเตเดฏเดฟเดจเตเดฑเต เดเตเดฏเตเดฏเตเด
PostgreSQL-เดจเต เดเดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เดเตป เดซเดเดเตเดทเตป เดเดฃเตเดเต, เด
เดคเต เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดจเตเดฑเต เด
เดตเดธเตเดฅเดฏเต เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดธเดฎเดฏเดคเตเดคเตเดเตเดเต เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเต
เดเตเตพเดกเต เดฌเดพเดเตเดเดชเตเดชเดฟเดจเดพเดฏเดฟ เด เดซเตเดเตเดเตผ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดชเดคเดฟเดตเดพเดฏเดฟ เดเดฐเต เด
เดเดฟเดธเตเดฅเดพเดจ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดฌเดพเดเตเดเดชเตเดชเต เดเดฃเตเดเดพเดเตเดเตเดเดฏเตเด เด
เดคเต เดเดฐเต เดเตผเดเตเดเตเดตเดฟเตฝ เดธเตเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต (GitLab เดเตผเดเตเดเตเดตเตเดเตพ เดเตเดตเดฟเดเตเดเตเดจเตเดจเดคเต
เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดชเดเตผเดชเตเดชเต เดเดจเตเดคเดพเดฃเต?
เดเดพเดฒเดคเดพเดฎเดธเดคเตเดคเตเดเต WAL-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเต เดชเตเดฐเดฏเตเดเดฎเดพเดฃเต เด
เดฒเดธเดฎเดพเดฏ เดชเดเตผเดชเตเดชเต. เด
เดคเดพเดฏเดคเต เดเดฐเต เดฎเดฃเดฟเดเตเดเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดเดชเดพเดเต เดจเดเดจเตเดจเต X
, เดเดจเตเดจเดพเตฝ เดเดคเต เดเดพเดฒเดคเดพเดฎเดธเดคเตเดคเตเดเต เดชเดเตผเดชเตเดชเดฟเตฝ เดฆเตเดถเตเดฏเดฎเดพเดเตเด d
เดเดฐเต เดฎเดฃเดฟเดเตเดเตเดฑเดฟเตฝ X + d
.
PostgreSQL-เดจเต เดเดฐเต เดซเดฟเดธเดฟเดเตเดเตฝ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดชเดเตผเดชเตเดชเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป 2 เดตเดดเดฟเดเดณเตเดฃเตเดเต: เดฌเดพเดเตเดเดชเตเดชเต เดตเตเดฃเตเดเตเดเตเดเตเดเดฒเตเด เดธเตเดเตเดฐเตเดฎเดฟเดเดเต เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเด.
เดเดฐเต เดเตผเดเตเดเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดเดฟเดฏ เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ เดเดเตเดเดจเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเด
recovery.conf
. เดเดฆเดพเดนเดฐเดฃเด:
standby_mode = 'on'
restore_command = '/usr/bin/envdir /etc/wal-e.d/env /opt/wal-e/bin/wal-e wal-fetch -p 4 "%f" "%p"'
recovery_min_apply_delay = '8h'
recovery_target_timeline = 'latest'
เด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต, เดฌเดพเดเตเดเดชเตเดชเต เดตเตเดฃเตเดเตเดเตเดเตเดเดฒเดฟเดจเตเดชเตเดชเด เดเดเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดเดฐเต เดชเดเตผเดชเตเดชเต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเต. เดเดตเดฟเดเต เด
เดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต restore_command
) เดเตผเดเตเดเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต, เดเดเตเดเต เดฎเดฃเดฟเดเตเดเตเดฑเดฟเดจเต เดถเตเดทเด เดฎเดพเดฑเตเดฑเดเตเดเตพ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด (recovery_min_apply_delay
). เดเตผเดเตเดเตเดตเดฟเดฒเต เดเตเดเดฒเตเตป เดฎเดพเดฑเตเดฑเดเตเดเตพเดเตเดเดพเดฏเดฟ เดฑเตเดชเตเดฒเดฟเดเตเด เดจเดฟเดฐเตเดเตเดทเดฟเดเตเดเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดชเดฐเดพเดเดฏเด เดเดพเดฐเดฃเด (recovery_target_timeline
).
ะก recovery_min_apply_delay
เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเดพเดฒเดคเดพเดฎเดธเดคเตเดคเตเดเต เดธเตเดเตเดฐเตเดฎเดฟเดเดเต เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดฒเตเดเตเดเตเดเตพ, เดนเตเดเตเดเต เดธเตเดฑเตเดฑเดพเตปเดกเตโเดฌเต เดซเตเดกเตโเดฌเดพเดเตเดเต เดฎเตเดคเดฒเดพเดฏเดตเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดฐเดฃเตเดเต เด
เดชเดเดเดเตเดเตพ เดเดตเดฟเดเตเดฏเตเดฃเตเดเต. เด
เดต เดเดดเดฟเดตเดพเดเตเดเดพเตป WAL เดเตผเดเตเดเตเดตเต เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ recovery_min_apply_delay
PostgreSQL 9.3-เตฝ เดฎเดพเดคเตเดฐเด เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต. เดฎเตเดฎเตเดชเดคเตเดคเต เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเตฝ, เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดชเดเตผเดชเตเดชเดฟเดจเดพเดฏเดฟ เดจเดฟเดเตเดเตพ เดเตเดฎเตเดชเดฟเดจเตเดทเตป เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต pg_xlog_replay_pause(), pg_xlog_replay_resume()
) เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดพเดฒเดคเดพเดฎเดธเดคเตเดคเดฟเดจเตเดฑเต เดธเดฎเดฏเดคเตเดคเตเดเตเดเต เดเตผเดเตเดเตเดตเดฟเตฝ WAL เดธเตเดเตโเดฎเตเดจเตเดฑเตเดเตพ เดชเดฟเดเดฟเดเตเดเตเด.
PostgreSQL เดเดคเต เดเดเตเดเดจเตเดฏเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต?
PostgreSQL เด
เดฒเดธเดฎเดพเดฏ เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเตเดจเตเดจเดคเต เดฐเดธเดเดฐเดฎเดพเดฃเต. เดจเดฎเตเดเตเดเต เดจเตเดเตเดเดพเด recoveryApplyDelay(XlogReaderState)
static bool
recoveryApplyDelay(XLogReaderState *record)
{
uint8 xact_info;
TimestampTz xtime;
long secs;
int microsecs;
/* nothing to do if no delay configured */
if (recovery_min_apply_delay <= 0)
return false;
/* no delay is applied on a database not yet consistent */
if (!reachedConsistency)
return false;
/*
* Is it a COMMIT record?
*
* We deliberately choose not to delay aborts since they have no effect on
* MVCC. We already allow replay of records that don't have a timestamp,
* so there is already opportunity for issues caused by early conflicts on
* standbys.
*/
if (XLogRecGetRmid(record) != RM_XACT_ID)
return false;
xact_info = XLogRecGetInfo(record) & XLOG_XACT_OPMASK;
if (xact_info != XLOG_XACT_COMMIT &&
xact_info != XLOG_XACT_COMMIT_PREPARED)
return false;
if (!getRecordTimestamp(record, &xtime))
return false;
recoveryDelayUntilTime =
TimestampTzPlusMilliseconds(xtime, recovery_min_apply_delay);
/*
* Exit without arming the latch if it's already past time to apply this
* record
*/
TimestampDifference(GetCurrentTimestamp(), recoveryDelayUntilTime,
&secs, µsecs);
if (secs <= 0 && microsecs <= 0)
return false;
while (true)
{
// Shortened:
// Use WaitLatch until we reached recoveryDelayUntilTime
// and then
break;
}
return true;
}
เดเตเดฐเดพเตปเดธเดพเดเตเดทเตป เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตเดเดธเตเดฑเตเดฑเดพเดฎเตเดชเดฟเตฝ เดฐเตเดเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดซเดฟเดธเดฟเดเตเดเตฝ เดเตเดฎเดฟเดจเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเดพเดฃเต เดเดพเดฒเดคเดพเดฎเดธเด เดเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจ เดเดพเดฐเตเดฏเด (xtime
). เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดเดพเดฒเดคเดพเดฎเดธเด เดเดฎเตเดฎเดฟเดฑเตเดฑเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดฌเดพเดงเดเดฎเดพเดเต, เดฎเดฑเตเดฑเต เดเตปเดเตเดฐเดฟเดเดณเต เดฌเดพเดงเดฟเดเตเดเดฟเดฒเตเดฒ - เดเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเด เดจเตเดฐเดฟเดเตเดเต เดฌเดพเดงเดเดฎเดพเดฃเต, เดเตเดเดพเดคเต เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค เดตเตเดเตเด, เด
เดคเดฟเดจเดพเตฝ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดค เดเดพเดฒเดคเดพเดฎเดธเดคเตเดคเดฟเดจเต เดถเตเดทเด เดฎเดพเดคเตเดฐเดฎเต เดเดเตเดเตพ เดฎเดพเดฑเตเดฑเดเตเดเตพ เดเดพเดฃเต.
เดกเดพเดฑเตเดฑ เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดพเดฒเดคเดพเดฎเดธเด เดจเตเดฐเดฟเดเตเด เดเดฐเต เดชเดเตผเดชเตเดชเต เดเดเตเดเดจเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด
เดเดเตเดเตพเดเตเดเต เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเด เดเตฝเดชเดพเดฆเดจเดคเตเดคเดฟเตฝ เดเดเตเดเต เดฎเดฃเดฟเดเตเดเตเตผ เดเดพเดฒเดคเดพเดฎเดธเดฎเตเดณเตเดณ เดเดฐเต เดชเดเตผเดชเตเดชเตเด เดเดฃเตเดเตเดจเตเดจเต เดชเดฑเดฏเดพเด. เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเต เดกเดพเดฑเตเดฑ เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเตเดจเตเดจเต เดจเตเดเตเดเดพเด
เดชเตเดฐเดถเตเดจเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต เด
เดฑเดฟเดเตเดเดชเตเดชเตเตพ, เดเดเตเดเตพ
SELECT pg_xlog_replay_pause();
เดเดฐเต เดคเดพเตฝเดเตเดเดพเดฒเดฟเดเดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเดฟเดฏเดพเตฝ, เดชเดเตผเดชเตเดชเต เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดจเตเดจ เด
เดชเดเดเดธเดพเดงเตเดฏเดค เดเดเตเดเตพเดเตเดเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต DELETE
. เดเดฒเตเดฒเดพเด เดฎเดจเดธเดฟเดฒเดพเดเตเดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดธเดฎเดฏเด เดตเตเดฃเดฎเตเดเตเดเดฟเตฝ เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ เดเดพเดฐเตเดฏเด.
เดฎเดพเดฑเตเดฑเดฟเดตเดเตเด เดชเดเตผเดชเตเดชเต เด
เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเตเดเต เดฎเตเดฎเตเดชเตเดณเตเดณ เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ เดเดคเตเดคเดฃเด เดเดจเตเดจเดคเดพเดฃเต เดเดพเดฐเตเดฏเด DELETE
. เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดฃเตเด เดญเตเดคเดฟเด เดธเดฎเดฏเด เดเดเตเดเตพเดเตเดเต เดเดเดฆเตเดถเด เด
เดฑเดฟเดฏเดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟ recovery_min_apply_delay
เดเดชเตเดชเด เดเตเดเตเดเดฟ recovery_target_time
ะฒ recovery.conf
. เดเดพเดฒเดคเดพเดฎเดธเดฎเดฟเดฒเตเดฒเดพเดคเต เดชเดเตผเดชเตเดชเต เดถเดฐเดฟเดฏเดพเดฏ เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ เดเดคเตเดคเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเดพเดฃเต:
recovery_target_time = '2018-10-12 09:25:00+00'
เดเตเด เดธเตเดฑเตเดฑเดพเดฎเตเดชเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต, เดจเดทเตโเดเดชเตเดชเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เด
เดงเดฟเดเดญเดพเดเด เดเตเดฑเดฏเตเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดถเดฐเดฟเดฏเดพเดฃเต, เดเดคเตเดฐเดคเตเดคเตเดณเด เดเตเดฑเดฏเตเดจเตเดจเตเดตเต เด
เดคเตเดฐเดฏเตเด เดเตเดเตเดคเตฝ เดกเดพเดฑเตเดฑ เดจเดฎเตเดเตเดเต เดจเดทเตเดเดชเตเดชเตเดเตเด. เดตเตเดฃเตเดเตเด, เดเดเตเดเตพ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดทเตโเดเดชเตเดชเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ DELETE
, เดเดฒเตเดฒเดพเด เดตเตเดฃเตเดเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดชเตเดชเตเดเตเด, เดจเดฟเดเตเดเตพ เดตเตเดฃเตเดเตเด เดเดฐเดเดญเดฟเดเตเดเตเดฃเตเดเดฟเดตเดฐเตเด (เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ PITR-เดจเดพเดฏเดฟ เดเดฐเต เดคเดฃเตเดคเตเดค เดฌเดพเดเตเดเดชเตเดชเต เดเดเตเดเตเดเตเด เดชเตเดฒเตเด).
เดเดเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดตเดเตเด เดชเตเดธเตเดฑเตเดฑเตโเดเตเดฐเตเดธเต เดเตปเดธเตโเดฑเตเดฑเตปเดธเต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเด เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดธเดฎเดฏเด เดตเดฐเต WAL เดธเตเดเตโเดฎเตเดจเตเดฑเตเดเตพ เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดคเต. เดเตเดฆเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เด เดเดเตเดเดคเตเดคเดฟเตฝ เดชเตเดฐเตเดเดคเดฟ เดเตเดฐเดพเดเตเดเต เดเตเดฏเตเดฏเดพเด:
SELECT
-- current location in WAL
pg_last_xlog_replay_location(),
-- current transaction timestamp (state of the replica)
pg_last_xact_replay_timestamp(),
-- current physical time
now(),
-- the amount of time still to be applied until recovery_target_time has been reached
'2018-10-12 09:25:00+00'::timestamptz - pg_last_xact_replay_timestamp() as delay;
เดเตเดเดธเตเดฑเตเดฑเดพเดฎเตเดชเต เดฎเดพเดฑเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ เดชเตเตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ. เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเดทเตเดเดพเดจเตเดธเตเดคเดฎเดพเดเตเดเดพเด recovery_target_action
เดจเดฟเตผเดญเดพเดเตเดฏเดเดฐเดฎเดพเดฏ เด เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเตเดเต เดฎเตเดฎเตเดชเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เด เดคเดฟเดจเตเดฑเต เด เดตเดธเตเดฅเดฏเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเดฟ. เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดกเดพเดฑเตเดฑ เดเดเตเดธเตเดชเตเตผเดเตเดเต เดเตเดฏเตเดฏเดพเด. เดเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟเดฏ เดฒเตเดฌเตฝ เดกเดพเดฑเตเดฑเดฏเตเด เดชเตเดฐเดถเตโเดจเดเตเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฒเตเดฒเดพ เดฒเดฟเดเตเดเตเดเดณเตเด เดเดเตโเดธเตโเดชเตเตผเดเตเดเตเดเตเดฏเตโเดคเต, เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เด เดต เดชเตเดฐเตเดกเดเตเดทเตป เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดคเต. เดจเดทเตเดเดเตเดเตพ เดตเดฒเดฟเดฏ เดคเตเดคเดฟเดฒเตเดณเตเดณเดคเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดชเดเตผเดชเตเดชเต เดชเตเดฐเดฎเตเดเตเดเต เดเตเดฏเตเดฏเดพเดจเตเด เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดจเตเดจเดพเตฝ เดจเดฎเตเดฎเตพ เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจ เดชเตเดฏเดฟเดจเตเดฑเดฟเดจเต เดถเตเดทเดฎเตเดณเตเดณ เดเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเด เดจเดทเตเดเดชเตเดชเตเดเตเด.
เดเตเดเดธเตเดฑเตเดฑเดพเดฎเตเดชเตเดเตพเดเตเดเต เดชเดเดฐเด, เดเดเดชเดพเดเต เดเดกเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เด เดเดกเดฟเดเตพ เดฑเตเดเตเดเตเตผเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, DDL เดชเตเดฐเดธเตเดคเดพเดตเดจเดเตพเดเตเดเต (เดเดฆเดพ DROP TABLE
), เดเดชเดฏเตเดพเดเดฟเดเตเดเต log_statements = 'ddl'
. เดเดเตเดเตพเดเตเดเต เดเดฐเต เดเดเดชเดพเดเต เดเดกเดฟ เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เดเดเตเดเตเดเตเด recovery_target_xid
เด
เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตโเดเตเดเต เดฎเตเดฎเตเดชเตเดณเตเดณ เดเดเดชเดพเดเต เดตเดฐเต เดเดฒเตเดฒเดพเด เดจเดเดคเตเดคเดฟ DELETE
.
เดเตเดฒเดฟเดฏเดฟเตฝ เดคเดฟเดฐเดฟเดเตเดเตเดคเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต: เดเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเด เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเด recovery.conf
เดชเตเดธเตเดฑเตเดฑเตเดเตเดฐเตเดธเต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเด. เดชเดเตผเดชเตเดชเดฟเดจเต เดเดเตป เดคเดจเตเดจเต เดตเตเดฃเตเดเตเด เดเดเตเดเต เดฎเดฃเดฟเดเตเดเตเตผ เดเดพเดฒเดคเดพเดฎเดธเด เดเดฃเตเดเดพเดเตเด, เดญเดพเดตเดฟเดฏเดฟเดฒเต เดชเตเดฐเดถเตโเดจเดเตเดเตพเดเตเดเต เดเดเตเดเตพ เดคเดฏเตเดฏเดพเดฑเดพเดฃเต.
เดตเตเดฃเตเดเตเดเตเดเตเดเตฝ เดเดจเตเดเตเดฒเตเดฏเดเตเดเตพ
เดคเดฃเตเดคเตเดค เดฌเดพเดเตเดเดชเตเดชเดฟเดจเต เดชเดเดฐเด เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดเดฐเต เดชเดเตผเดชเตเดชเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดเตผเดเตเดเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเดดเตเดตเตป เดเดฟเดคเตเดฐเดตเตเด เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเตพ เดฎเดฃเดฟเดเตเดเตเดฑเตเดเดณเตเดณเด เดเตเดฒเดตเดดเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด เดเดฟเดธเตเดฅเดพเดจ 2 TB เดฌเดพเดเตเดเดชเตเดชเต เดฒเดญเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เด เดเตเดเต เดฎเดฃเดฟเดเตเดเตเตผ เดเดเตเดเตเดเตเด. เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เด เดตเดธเตเดฅเดฏเดฟเดฒเตเดเตเดเต (เดเดฑเตเดฑเดตเตเด เดฎเตเดถเด เด เดตเดธเตเดฅเดฏเดฟเตฝ) เดตเตเดฃเตเดเตเดเตเดเตเดเดพเตป เดจเดฟเดเตเดเตพ เดเดชเตเดชเตเดดเตเด เดฎเตเดดเตเดตเตป เดชเตเดฐเดคเดฟเดฆเดฟเดจ WAL เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
เดฐเดฃเตเดเต เดคเดฐเดคเตเดคเดฟเตฝ เดเดฐเต เดคเดฃเตเดคเตเดค เดฌเดพเดเตเดเดชเตเดชเดฟเดจเตเดเตเดเดพเตพ เดเดฐเต เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดชเดเตผเดชเตเดชเดพเดฃเต เดจเดฒเตเดฒเดคเต:
- เดเตผเดเตเดเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเดดเตเดตเตป เด เดเดฟเดธเตเดฅเดพเดจ เดฌเดพเดเตเดเดชเตเดชเตเด เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดฃเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
- WAL เดธเตเดเตโเดฎเตเดจเตเดฑเตเดเดณเตเดเต เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดเดเตเดเต เดฎเดฃเดฟเดเตเดเตเตผ เดตเดฟเตปเดกเต เดเดฃเตเดเต, เด เดคเต เดเดตเตผเดคเตเดคเดฟเดเตเดเดฃเด.
WAL-เตฝ เดจเดฟเดจเตเดจเต เดเดฐเต PITR เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเต เดเดจเตเดจเต เดเดเตเดเตพ เดจเดฟเดฐเดจเตเดคเดฐเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต, เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดชเดเตผเดชเตเดชเดฟเดจเตเดฑเต เดเดพเดฒเดคเดพเดฎเดธเด เดจเดฟเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต WAL เดเตผเดเตเดเตเดตเดฟเตฝ เด เดดเดฟเดฎเดคเดฟเดฏเต เดฎเดฑเตเดฑเต เดชเตเดฐเดถเตโเดจเดเตเดเดณเต เดเดเตเดเตพ เดชเตเดเตเดเตเดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด.
เด เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต 50 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดเดเตเดคเตเดคเต, เด
เดคเดพเดฏเดคเต เดตเตเดเดค เดฎเดฃเดฟเดเตเดเตเดฑเดฟเตฝ 110 GB WAL เดกเดพเดฑเตเดฑเดฏเดพเดฃเต (เดเตผเดเตเดเตเดตเต เดเดชเตเดชเตเดดเตเด เดเดฃเดพเดฏเดฟเดฐเตเดจเตเดจเต
เดซเดฒเดเตเดเตพ: เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดเดฐเต เดชเดเตผเดชเตเดชเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดเตเดจเตเดจเดฟเดเดคเตเดคเต (เด เดคเต เด เดฒเตเดฒเดพเดคเตเดคเดฟเดเดคเตเดคเต)
เดจเดฟเดเตเดเตพเดเตเดเต เด เดฌเดฆเตเดงเดตเดถเดพเตฝ เดกเดพเดฑเตเดฑ เดจเดทเตโเดเดชเตเดชเตเดเตเดเดฏเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดค เดเดพเดฒเดคเดพเดฎเดธเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด เดชเตเดฐเดถเตโเดจเด เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเตเดเตเดเดฏเตเด เดเตเดฏเตโเดคเดพเตฝ, เดเดฐเต เดชเตเดฐเดฅเดฎเดถเตเดถเตเดฐเตเดทเดฏเดพเดฏเดฟ เดตเตเดเดฟเดฏเตเดณเตเดณ เดชเดเตผเดชเตเดชเตเดเตเดเตเดเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เดเดจเตเดจเดพเตฝ เดเตผเดเตเดเตเด: เดชเดเตผเดชเตเดชเตเดเตเดเตเดเตฝ เดเดฐเต เดฌเดพเดเตเดเดชเตเดชเต เด เดฒเตเดฒ.
เดฌเดพเดเตเดเดชเตเดชเดฟเดจเตเด เดฑเตเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเด เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดฆเตเดฆเตเดถเตเดฏเดเตเดเดณเตเดฃเตเดเต. เดจเดฟเดเตเดเตพ เดเดเดธเตเดฎเดฟเดเดฎเดพเดฏเดฟ เดเดฃเตเดเดพเดเตเดเดฟเดฏเดพเตฝ เดเดฐเต เดคเดฃเตเดคเตเดค เดฌเดพเดเตเดเดชเตเดชเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดเตเด DELETE
เด
เดฅเดตเดพ DROP TABLE
. เดเดเตเดเตพ เดเตเตพเดกเต เดธเตเดฑเตเดฑเตเดฑเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดฌเดพเดเตเดเดชเตเดชเต เดเดฃเตเดเดพเดเตเดเตเดเดฏเตเด เดชเดเตเดเดฟเดเดฏเตเดเต เดฎเตเดฎเตเดชเดคเตเดคเต เด
เดตเดธเตเดฅ เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเตเดดเตเดตเตป เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเด เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เด
เดคเต เดธเดฎเดฏเด เด
เดญเตเดฏเตผเดคเตเดฅเดจ DROP TABLE
เดตเตผเดเตเดเดฟเดเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดเดฒเตเดฒเดพ เดชเดเตผเดชเตเดชเตเดเดณเดฟเดฒเตเด เดเดคเดพเดฃเตเดเต เดคเตฝเดเตเดทเดฃเด เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต, เด
เดคเดฟเดจเดพเตฝ เดธเดพเดงเดพเดฐเดฃ เดชเดเตผเดชเตเดชเต เดเดตเดฟเดเต เดธเดนเดพเดฏเดฟเดเตเดเดฟเดฒเตเดฒ. เดตเตเดฏเดเตเดคเดฟเดเดค เดธเตเตผเดตเดฑเตเดเตพ เดตเดพเดเดเดฏเตโเดเตเดเต เดจเตฝเดเตเดเดฏเตเด เดฒเตเดกเต เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดคเดจเดฟเดชเตเดชเดเตผเดชเตเดชเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดฒเดญเตเดฏเดฎเดพเดเตเดเตเดจเตเดจเต.
เดฎเดพเดฑเตเดฑเดฟเดตเตเดเตเด เดเดฐเต เดชเดเตผเดชเตเดชเตเดฃเตเดเตเดเตเดเดฟเตฝเดชเตเดชเตเดฒเตเด, เดเดฐเต เดกเดพเดฑเตเดฑเดพ เดธเตเดจเตเดฑเตผ เดคเดเดฐเดพเตผ, เดฎเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดเตเดชเดพเดเตเดเตพ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเตเดเตเดเตเดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเตเดเดพเดคเตเดค เดฎเดฑเตเดฑเต เดเดตเดจเตเดฑเตเดเตพ เดเดจเตเดจเดฟเดต เดธเดเดญเดตเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดเดฟเดฒเดชเตเดชเตเตพ เดเดฐเต เดธเตเดฐเดเตเดทเดฟเดค เดธเตเดฅเดฒเดคเตเดคเต เดเดฐเต เดคเดฃเตเดคเตเดค เดฌเดพเดเตเดเดชเตเดชเต เดเดตเดถเตเดฏเดฎเดพเดฃเต. เด เดจเตเดเดฐเดฃเด เดเตเดฃเตเดเต เดฎเดพเดคเตเดฐเด เดเดตเดฟเดเต เดชเตเดฐเดฏเตเดเดจเดฎเดฟเดฒเตเดฒ.
เด
เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด. เดเดฐเต เดฆเดฟเดตเดธเด
เด เดตเดฒเดเดฌเด: www.habr.com