Безопасность данных имеет решающее значение для выживания и процветания бизнеса. Резервное копирование баз данных, которое копирует данные из базы данных и сохраняет их в другом месте для воссановления данных в случае кибератак, человеческих ошибок и аварий, является одним из методов сохранения данных в безопасности и работоспособности бизнеса.
В этой статье вы узнаете о различных методах резервного копирования и восстановления 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-дневную полнофункциональную бесплатную пробную версию ниже.
поделиться: