Автоматичне резервне копіювання публікацій


20

Який найкращий спосіб автоматично створювати резервну копію бази даних Postgres в Linux?

Відповіді:


11

Ви можете використовувати pg_dumpтак:

$ pg_dump -h db_host -U user_name db_name > dump_file.sql

Спочатку подумайте, щоб встановити .pgpassфайл, який містить паролі, які слід використовувати, якщо для з'єднання потрібен пароль. Цей файл повинен мати рядки наступного формату:

hostname:port:database:username:password

І кожне з перших чотирьох полів може мати буквальне значення, або *, що відповідає будь-якому. Наприклад: *:*:*:postgres:pg_password.

Цей .pgpassфайл повинен міститись у домашньому каталозі ~ /, і дозволи на нього повинні забороняти будь-який доступ до світу чи групи; досягти цього командою chmod 0600 ~/.pgpass.


це автоматично створює резервну копію ??
Ануй Патель

@indyaah: ні, вам доведеться запускати це щодня із cron (або подібного).
Білл Вайс

12

Запустити pg_dumpall з cron.


7
pg_dumpall кращий за інші відповіді, оскільки це створює резервну копію ваших глобальних об'єктів бази даних. (Наприклад: користувачі тощо). Вам знадобляться для повного відновлення вашої БД, і якщо у вас є велика кількість, їх можна відтворити нетривіально. Однак pg_dumpall може бути надмірним для вас, якщо ви просто хочете створити резервну копію одного екземпляра бази даних у кількох кластерах баз даних, оскільки pg_dumpall буде робити резервну копію кожного екземпляра. Отже ... як і у більшості технологічних запитань, залежить.
KevinRae

1
Я схильний поєднувати "базу даних" і "сервер баз даних", це є хорошим прикладом. Я припускав, що плакат хоче створити резервну копію всієї справи Добре.
Білл Вайс

6

Спробуйте AutoPostgreSQLBackup . Це єдиний файл сценарію, його можна легко налаштувати під ваші потреби, робить щоденне, щотижневе та щомісячне планування, журнали за електронною поштою, файл журналу або stdout тощо.


Я також використовую AutoPostgreSQLBackup, і він працює для мене дуже добре ;-)
Matthieu

4

Якщо це досить невелика база даних, і такі низькі вимоги до резервної копії, як раз на день, просто запустіть pg_dump від cron до дампу у локальний файл, а потім скористайтеся всіма необхідними для резервного копіювання файлів на машині, щоб архівувати дамп .



2

Спробуйте безпечно . Він знає, як створити резервну копію mysql (mysqldump), postgres (pg_dump) або просто прості файли (tar) із шифруванням (gnupg) та завантаженням у S3 / Sftp.


1

pg_dump - це приємне рішення, але якщо ви намагаєтесь створити резервну копію багатьох даних, можливо, це може допомогти:

http://www.postgresql.org/docs/8.1/static/backup-online.html

що насправді є своєрідним "сировинним" веденням журналу, але це може бути корисно як метод додаткового резервного копіювання ...


1

Це сценарій, який створить резервну копію кожної бази даних окремо, а також часто забуваючу, але важливу PostgreSQL GLOBALS та інформацію про вхід користувачів.

Важливість цього полягає в тому, щоб скористатися стисненням, яке не надає pg_dumpall, і затримані дані, які pg_dump ігнорує.

Для цього знадобиться параметр pgpass або подібне налаштування, як описано тут http://wiki.postgresql.org/wiki/Pgpass

Це налаштування для OSX, але просто змініть шляхи програми, і воно буде добре працювати.

Резервне копіювання до / sqlbackups Сценарій поверне розмір / каталог та має точки проходу, які повернуть не нульовий стан, якщо він не вдасться. Я використовував його в поєднанні з pgAgent для щоденного резервного копіювання.

Сценарій відредагований, вибачте за це :(


1

Навіщо влаштовуватись із щоденним резервним копієм, коли ви можете легко отримати своєчасне відновлення з барменом ?


Я дозволю модераторам вирішити, але я вважаю, що вирішити питання, що стосуються 5 років, щоб підключити комерційну продукцію, це погана форма.
геп

е-е, це відкрите джерело: sourceforge.net/projects/pgbarman/files
Джованні Торалдо

Ти маєш рацію, я неправильно погуглила. Моя головна проблема не полягала в тому, що це було, як-от запропонувати відповідь, що насправді не те, що користувач запитав через 5 років. Однак, прочитавши інші відповіді, вони, здається, пропонують подібні резервні рішення, тому я думаю, це не так вже й погано. Мій прапор, ймовірно, буде відхилений, і ми будемо називати його за день: D
ясний

0

Як говорили інші: pg_dumpall.

Також погляньте на доставку журналів. Тоді ви можете отримати більше конкретних резервних копій, які можна відтворити: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html

А як щодо розділу про резервні копії в посібнику:

http://www.postgresql.org/docs/8.3/static/backup.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.