Вступ

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


Щоб пом’якшити збитки внаслідок фізичної катастрофи або нападу зловмисних хакерів, регулярне резервне копіювання вважається необхідним як спосіб плану відновлення після катастроф..

У PostgreSQL існують принципово різні підходи до створення резервної копії даних, до яких належать:

  • Резервне копіювання файлової системи, яке включає безпосередньо створення копій файлів, які PostgreSQL використовує для зберігання даних у базі даних.
  • Безперервне архівування та відновлення за часом, що включає резервні копії журналів та відновлення при необхідності та відновлення бази даних у відповідність шляхом відтворення записів, зроблених під час останньої контрольної точки.
  • Дамп SQL, який включає генерування команд, які використовуються для створення бази даних та збереження їх у файл. Коли цей файл запускається, команди SQL будуть використані для повторного відтворення бази даних за простим шаблоном.

У цьому посібнику ви дізнаєтеся, як зробити резервну копію та проводити відновлення в базі даних за допомогою дамплу SQL.

Перш ніж почати

Для досягнення цього завдання необхідно виконати такі умови:

  • Користувач, що не має права коренерів, з правами sudo на VPS або на виділеному сервері під управлінням операційної системи Ubuntu 18.04.
  • Програмний пакет баз даних PostgreSQL, встановлений і налаштований на вашому VPS. Ви можете дізнатися, як встановити сервер баз даних PostgreSQL на Ubuntu 18.04.
  • Зразок бази даних або конкретні схеми / таблиці, які ми будемо використовувати для резервного копіювання та відновлення (необов’язково, оскільки ми створимо нашу зразок бази даних для резервного копіювання та відновлення).

Кроки

pg_dumpis – офіційна утиліта бази даних PostgreSQL, яка використовується для резервного копіювання бази даних.

Ви збираєтеся створити власну зразкову базу даних, щоб створити її резервну копію та відновити.

$ sudo -i -u postgres psql
# CREATEDATABASE sampledb;
# c sampledb;
# СТВОРИТИЙ зразокТаблиця (
# sampledb (# tableID СЕРІЙНИЙ ПЕРВИЧНИЙ КЛЮЧ,
# sampledb (# ім’я VARCHAR,
# sampledb (# прізвище VARCHAR,
# sampledb (# вік INT);
ТВОРЧИЙ
# CREATETABLE sampleTable2 (
# table2ID СЕРІЙНИЙ ПЕРШИЙ КЛЮЧ,
# tableID INTREFERENCES sampleTable (tableID),
# місце VARCHAR,
# місINT);
ТВОРЧИЙ

Резервне копіювання

Вийдіть із бази даних та створіть резервну копію у простому простому текстовому форматі.

$ pg_dump sampledb > sampledb.sql

Коли ви переглядаєте демпінгові дані в sampledb.Файл sql, він повинен виглядати аналогічно наступному витягу всього файлу.


— Дамп бази даних PostgreSQL

— Здано з бази даних версії 10.5 (Ubuntu 10.5-0ubuntu0.18.04)
— Знеможено pg_dump версії 10.5 (Ubuntu 10.5-0ubuntu0.18.04)

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = ‘UTF8’;
SET standard_conforming_strings = увімкнено;
SELECT pg_catalog.set_config (‘search_path’, ”, false);
SET check_function_bodies = false;
SET client_min_messages = попередження;
SET row_security = вимкнено;


— Назва: plpgsql; Тип: розширення; Схема: -; Власник:

Ви можете вирішити скинути дані у своєму VPS у форматі файлу, який вважається більш підходящим для більших баз даних, що є стислим методом. Ви можете використовувати наступну команду для того ж.

Ви можете використовувати наступний файл для стиснення файлу до стислого бінарного формату.

$ pg_dump -Fc sampledb > sampledb.bak

Ви також можете скористатися наступною командою для резервного копіювання бази даних у форматі файлу тарболу.

$ pg_dump -Ft sampledb > sampledb.tar

Відновлювати

Тепер ви скинете базу даних із вигляду командного рядка PostgreSQL та вийдете.

# DROPDATABASE sampledb;
ДРОПДАТАБАЗА
# q

Pg_restoreis утиліта бази даних, що надається PostgreSQL для відновлення вашої бази даних.

Зверніть увагу: ви повинні створити базу даних, в яку буде відновлено ваші дані.

$ createdb sampledb

Якщо він існує з шаблону, ви можете використовувати наступну команду, якщо ваша база даних у форматі файлу .bak.

$ pg_restore -sampledb -Fc sampledb.bak

Якщо він у форматі файлу .tar, використовуйте таку команду:

$ pg_restore -d sampledb -Ft sampledb.tar

Висновок

Ви успішно створили резервну копію та відновили базу даних за допомогою pg_dumpі утиліти бази даних pg_restore.

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

$ pg_dumpall > dumpfile

Ознайомтеся з цими топ-3 хостинговими службами Linux

FastComet

Стартова ціна:
2,95 дол


Надійність
9.7


Ціноутворення
9.5


Користувач
9.7


Підтримка
9.7


Особливості
9.6

Прочитайте відгуки

Відвідайте FastComet

Хостингер

Стартова ціна:
0,99 дол


Надійність
9.3


Ціноутворення
9.3


Користувач
9.4


Підтримка
9.4


Особливості
9.2

Прочитайте відгуки

Відвідайте хостинг

ChemiCloud

Стартова ціна:
2,76 дол


Надійність
10


Ціноутворення
9.9


Користувач
9.9


Підтримка
10


Особливості
9.9

Прочитайте відгуки

Відвідайте ChemiCloud

Пов’язані статті “Як”

  • Як встановити Ruby on Rails на Ubuntu 18
    проміжний
  • Як встановити сервер баз даних PostgreSQL на Ubuntu 18.04?
    проміжний
  • Як налаштувати реплікацію на PostgreSQL на Ubuntu 18.04 VPS або виділений сервер
    проміжний
  • Як відключити MySQL 5 "Суворий режим" на Ubuntu 18.04 VPS або виділений сервер
    проміжний
  • Як захистити Postfix за допомогою SpamAssassin на Ubuntu 18.04 VPS або на виділеному сервері
    проміжний
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me