Введение
К современной информационной системе предъявляется множество требований по эффективности и стабильности работы. Одно из них — отказоустойчивость, обеспечивающая защиту от атак на целостность и доступность, технических проблем и других различных инцидентов, которые могут повредить достаточно большое количество данных. Для использования инструментов и утилит необходимо определить область применения, в данной инструкции мы рассмотрим резервирование и резервное копирование данных в СУБД PostgreSQL с помощью проприетарных утилит.
Лучшие практики
Существуют базы данных различного размера, структуры и объема, но нам необходимо создать резервную копию с сохранением целостности и правильно ее восстановить. Утилиты, которые мы можем использовать, это pg_dump и psql или pg_restore. Они используют механизм чтения текущих баз данных и преобразования их в команду в текстовом файле, поэтому на вход утилиты мы указываем БД, а на выходе получаем текстовый файл.
Этот метод имеет ряд преимуществ: согласованность версий, простота на этапе экспорта и отсутствие необходимости в привилегированных правах в системе. Для использования этого типа резервного копирования прежде всего необходимо проверить наличие баз данных и выбрать нужный объект:
Давайте проверим, как выглядят данные? Введите команду ниже:
У нас есть тестовая запись в БД с данными теоретического пользователя, мы используем утилиту pg_dump с опциями: -U для определения пользователя СУБД, -d для идентификации базы данных, а для удаленного администрирования можно использовать параметры -h и -p. Соответствие хоста и порта:
Также для выполнения этой задачи мы можем использовать последовательности команд:
Замените имя пользователя, имя хоста и порт на желаемую конфигурацию. Если требуется быстрое резервное копирование и восстановление БД между несколькими серверами, то используйте эту команду:
Первая часть позволила подключиться к серверу с БД и с помощью pipe перенаправить вывод на целевой сервер с помощью команды после знака разделения.
А с помощью команды scp можно передать базу данных:
Необходимо создать базу данных и восстановить содержимое командой, приведенной ниже:
Затем восстановите с помощью команды psql:
Убедитесь в целостности содержимого БД:
Если база данных имеет большой объем и размер, то для переноса фрагментов данных используйте утилиты split и zip:
И разбить на части с помощью синтаксиса ниже:
Это позволяет более эффективно передавать данные в процессе резервного копирования.
Вывод
Следуя этим рекомендациям и используя команды и утилиты, можно эффективно и качественно управлять резервным копированием и восстановлением данных в PostgreSQL, обеспечивая тем самым устойчивость и надежность современной информационной системы перед лицом потенциальных вызовов и угроз.