Как создать резервное копирование и восстановить базу данных PostgreSQL: Инструменты и Шаги

Безопасность данных имеет решающее значение для выживания и процветания бизнеса. Резервное копирование баз данных, которое копирует данные из базы данных и сохраняет их в другом месте для воссановления данных в случае кибератак, человеческих ошибок и аварий, является одним из методов сохранения данных в безопасности и работоспособности бизнеса.

download-icon
Скачайте Бесплатно
Для ВМ, ОС, БД, файлов, NAS и т.д.
yulia-qin

Обновлено Yulia Qin 2023/04/21

1663926376173705.png

Безопасность данных имеет решающее значение для выживания и процветания бизнеса. Резервное копирование баз данных, которое копирует данные из базы данных и сохраняет их в другом месте для воссановления данных в случае кибератак, человеческих ошибок и аварий, является одним из методов сохранения данных в безопасности и работоспособности бизнеса.

В этой статье вы узнаете о различных методах резервного копирования и восстановления PostgreSQL с помощью встроенных инструментов и о том, зачем это нужно. Кроме того, вы осваиваете их применение, а после этого будет предложена другая более простая замена. Но прежде позвольте мне рассказать вам о том, что такое PostgreSQL, и выяснить, почему он так широко используется.

Что такое PostgreSQL?

PostgreSQL, или Postgres, - это масштабируемая система управления реляционными базами данных с открытым исходным кодом (RDBMS), которая поддерживает запросы SQL и JSON. База данных работает на множестве широко используемых операционных систем, таких как Linux, Windows, Mac OS, FreeBSD и OpenBSD. Точки данных хранятся в строках, а столбцы выступают в качестве различных свойств данных.

Благодаря использованию ряда технологий, таких как многоверсионность, горячее резервное копирование, восстановление на момент времени, асинхронная репликация, планировщик запросов, отказоустойчивость и т.д., PostgreSQL отличается от других масштабируемостью и совместимостью. С его помощью можно устанавливать типы данных, настраивать функции, управлять метаданными и писать код на другом языке программирования (Perl, Tcl и Python) без необходимости перекомпиляции базы данных.

Зачем нужно резервное копирование базы данных?

Мы все знаем, что резервное копирование баз данных - это нижняя линия и сеть безопасности для предотвращения потери данных и аварийного восстановления, но не все из нас действительно понимают необходимость этого и придерживаются плана непрерывности бизнеса, основанного на резервном копировании. Здесь перечислены причины, по которым необходимо создавать резервное копирование баз данных для последующего восстановления данных.

Предотвращение потери данных: Регулярное резервное копирование баз данных сводит к минимуму потерю данных в случае атак программ-вымогателей, системных сбоев или других катастроф.

Аварийное восстановление: Резервное копирование - это самый безопасный, простой и надежный способ восстановления потерянных данных после катастроф. Кроме того, как основа и источник аварийного восстановления, резервное копирование баз данных приносит пользователям душевное спокойствие перед лицом потери данных.

Непрерывность бизнеса: Как нематериальный основный актив компании, частое резервное копирование баз данных обеспечивает доступность данных и, следовательно, непрерывность бизнеса.

Долгосрочные преимущества: Первоначальные инвестиции в резервное копирование баз данных могут показаться дорогостоящими, но они приносят долгосрочные выгоды, например, резервное копирование экономит время, деньги и энергию на восстановление потерянных данных.

Исследование данных: Сохраненные данные можно использовать для исследования рынка и клиентов, составления ежегодных аудитов или отчетов, а также для планирования будущего бизнеса.

Как выполняется резервное копирование и восстановление базы данных PostgreSQL?

Вообще, для резервного копирования и восстановления базы данных PostgreSQL существует несколько инструментов: pg_dump /pg_dumpall и plsql, pg_restore.

Что такое pg_dump?

Pg-dump - это утилита для резервного копирования базы данных PostgreSQL, даже если база данных используется одновременно, Pg-dumpне препятствует доступу других пользователей к ней. Каждый раз pg-dump создает дамп только одной базы данных, и информация о ролях и табличных пространствах не включается.

Что такое pg_dumpall?

Pg-dumpall создает один файл сценария с SQL-командами, в который можно ввести psql для восстановления баз данных PostgreSQL. Этот инструмент облегчает создание дампа всего содержимого кластера баз данных, он создает резервное копирование каждой базы данных в кластере, а также ролей и определений табличных пространств.

Как создать резервное копирование базы данных PostgreSQL?

Войдите на сервер базы данных PostgreSQL и запустите его от имени суперпользователя с правами на чтение. Начните работу следующей команды.

su - postgres

Создайте резервное копирование одной базы данных PostgreSQL с помощью pg-dump:

pg_dump -U username -h hostname -p portnumber -F databasename > filename.sql

Дополнительные форматы файлов (-F):

-p: текстовый SQL-файл сценария (по умолчанию).

-c: архив пользовательского формата для ввода pg-restore.

-d: архив в формате каталога.

-t: архив в формате tar.

Резервное копирование всех баз данных PostgreSQL с помощью pg_dumpall:

pg_dumpall > filename

Резервное копирование больших баз данных PostgreSQL:

Сначала сожмите большой файл дампа и сохраните его с помощью -gzip.

Pg_dump database_name | gzip > dumpname.gz

Или параллельный дамп с помощью pg_dump для одновременного резервного копирования нескольких файлов в формате архива каталога.

pg_dump -j num -F d -f out.dir databasename

Резервное копирование удаленных баз данных PostgreSQL с помощью pg_dump:

pg_dump -h remotehostname -p remoteportnumber -U(option) -d databasename > filename.bak

Автоматическое резервное копирование PostgreSQL с помощью запланированных заданий cron:

1.  Создайте каталог для резервного копирования.

mkdir -p /suv/backups/databases 

2.  Отредактируйте crontab, чтобы создать новую задачу.

crontab -e

3.  Скопируйте сценарий резервного копирования в конец crontab.

pg_dump -U postgres databasename > /suv/backups/postgres/database_name.sql

Задание запланировано на каждое воскресенье, и вы можете изменить время и частоту.

Как восстановить базу данных PostgreSQL?

Psql: Восстановление данных из файла SQL-скрипта простого текста, созданного pg-dump.

Pg_restore: Восстановление данных из файла tar, каталога или файла пользовательского формата, созданного pg-dump. Вот некоторые опции:

-c: уничтожить объекты базы данных перед их воссозданием.

-C: создать базу данных перед восстановлением данных в ней.

-e: выйти, если возникли проблемы.

Восстановите файлы простого текста с помощью psql:

plsql -U username database_name < filename.sql

Восстановление файлов пользовательских форматов, каталогов, tar-форматов с помощью pg-restore:

pg_restore -d databasename dump_file_ path.tar/-c/ -U username

Восстановление удаленной базы данных с помощью psql:

psql -h hostname -p portnumber databasename < database.sql

Обобщение

Дампы PostgreSQL помогают пользователям создавать резервное копирование и восстанавливать базу данных внутри PostgreSQL, но скорость восстановления ограничена, поскольку индексы и переменные выходного файла перестраиваются, а расходы также нежелательны. Кроме того, они не совсем переносимы из-за логического экспорта.

Поэтому есть веские причины использовать другие, более простые и надежные инструменты для резервного копирования и восстановления PostgreSQL. Vinchin Backup & Recovery - это профессиональное решение для работы с данными, которое поддерживает резервное копирование и восстановление PostgreSQL, MySQL, SQL Server и Oracle на физических и виртуальных машинах с несколькими стратегиями резервного копирования и автоматическими расписаниями, сокращением данных, централизованным управлением и т.д. Программное обеспечение упрощает операции резервного копирования и восстановления баз данных за 3 шага и защищает путь данных с помощью шифрования для обеспечения безопасности данных.

Чтобы автоматизировать резервное копирование и восстановление баз данных PostgreSQL более простым способом, вы можете загрузить 60-дневную полнофункциональную бесплатную пробную версию ниже.

поделиться:

Категории: Бэкап базы данных
Рекомендуемые статьи