pg_start_backup
буде виконувати контрольний пункт, як відзначає dezso. Це має вплив, але ваша база даних в будь-якому разі виконує контрольно-пропускні пункти досить регулярно, і це потрібно робити, щоб вони функціонували, тому вони, очевидно, не є проблемою для вас. Рання контрольна точка означає, що накопичено менше даних, це означає, що якщо що-небудь з пункту пропуску pg_start_backup
буде мати менший вплив, ніж зазвичай.
Де потрібно потурбуватися - це rsync або еквівалентний pg_basebackup
крок. Читання вводу-виводу з цього не буде занадто поганим, оскільки воно є послідовним, але воно, ймовірно, значно пошкодить продуктивність вводу-виводу вашої бази даних, а також буде витісняти гарячі дані з кешу оперативної пам'яті на користь менше дані, що використовуються, спричиняючи обмоложення кешу, оскільки необхідні дані потім зачитуються знову.
Ви можете використовувати nice
та ionice
допомогти обмежити вплив вводу / виводу (але не вплив кешу); однак, це коштує. Резервне копіювання займе більше часу, і поки ви не завершите створення резервної копії та запустіть pg_stop_backup
вашу систему, - наскільки я це зрозумів - накопичуючи WAL, вона не може видалити, накопичуючи борг на контрольній точці для великого контрольного пункту в кінці запуску резервного копіювання, і накопичує таблицю та індекс роздуватися, оскільки він не може очистити мертві ряди. Таким чином, ви дійсно не можете дозволити собі резервне копіювання назавжди, особливо якщо у вас дуже високі столики.
Зрештою, важко сказати, чи можна безпечно використовувати pg_start_backup
та pg_stop_backup
для гарячих резервних копій у вашому оточенні. Більшість людей може, але якщо ви близько до того, що може зробити ваше обладнання, ви маєте жорсткі вимоги до термінів, не можете дозволити собі ризик стійлості, і у вас дуже високі столики, а також дуже великі столи, це може бути клопітно. .
На жаль, вам дуже потрібно це протестувати і побачити.
Якщо ви можете, можливо, варто надіслати CHECKPOINT
атомний знімок обсягу, на якому базується ваша база даних, замість цього використовуйте LVM, інструменти вашого SAN, EBS або все, що вам потрібно. Якщо ви можете це зробити, ви можете скопіювати знімок у своє дозвілля. Цей підхід не підходить для використання базового резервного копіювання для PITR / теплого режиму очікування / гарячого режиму очікування, але він цілком гарний для статичної резервної копії та значно менший вплив на систему. Це можна зробити, лише якщо ваші знімки є атомними, і вся ваша база даних, включаючи WAL, є на одному томі.
Одна з можливостей, яку я ще не дослідив, - це поєднання двох підходів. Мені здається, що хтось міг ( неперевірений і, можливо, неправильний і небезпечний , я ще не знаю):
pg_start_backup
- Запуск знімків усіх просторів таблиць, основного даних-даних та тома xlog
pg_stop_backup
- Скопіюйте WAL до остаточного архіву з
pg_stop_backup
- Скопіюйте дані з томових знімків
По суті, ідея полягає в тому, щоб зменшити, скільки часу доводиться БД затримувати свої контрольно-пропускні пункти, взявши точний час кожного тома, який ви можете скопіювати у вільний час.