Как восстановить базу postgresql из бэкапа windows

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

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

Чуть ранее мы с Вами рассмотрели возможность создания резервной копии базы данных PostgreSQL в материале Как создать архив базы PostgreSQL, а теперь пора научиться восстанавливать базы из backup.

Если Вы знаете, как создается backup в PostgreSQL, то понимаете, что это делается достаточно просто, поэтому и восстановить базу также не составит труда.

Мы с Вами рассматривали два варианта создания архива, через графический интерфейс pgAdmin и через командную строку, поэтому и восстанавливать мы будем также двумя способами. Только в отличие от создания backup, через батник (для ежедневной автоматической архивации) который нам был нужен практически только для того, чтобы автоматизировать этот процесс и забыть про него, при восстановлении нам такая автоматизация не нужна, так как не каждый день приходится восстанавливать базу данных. Но мы все равно рассмотрим вариант через bat-файл, только для того чтобы Вы знали, как это делается и в случае необходимости оперативно восстановили базу, путем простого запуска батника, так как через графический интерфейс, согласитесь, займет немного больше времени.

Итак, приступим, если Вы помните, что при архивации использовалась утилита pg_dump.exe, то при восстановлении используется утилита pg_restore.exe

Примечание! Как и при создании архива, в качестве примера мы использовали локальный сервер PostgreSQL 8.4, на Windows 7, так и сегодня мы будем использовать именно данные версии СУБД и ОС.

Восстанавливаем базу через pgAdmin

Открываем pgAdmin, подключаемся к серверу, выбираем правой кнопкой мыши базу, и щелкаем «Восстановить»

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Затем открывается окно восстановления базы, где Вы можете задать параметры восстановления, в частности выбрать архив, я здесь поставил галочку «Очистить перед восстановлением» так как если ее не ставить достаточно часто база восстанавливается с ошибкой (но все равно восстанавливается), и жмем «ОК»

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

После Вам останется, дождаться восстановления и нажать кнопку «Завершить»

Восстанавливаем базу с помощью батника

Для этого открываем блокнот (удобней Notepad++) и вставляем в него следующие команды (символ ^ это перенос строки):

Где, не трудно догадаться первая строка это запуск утилиты, вторая это подключение к серверу, третья выбор базы для восстановления, параметры восстановления и соответственно из чего это все восстанавливать. Только одно замечание, при восстановлении проверьте путь к архиву, т.е. необходимо выбрать актуальный архив на момент восстановления, чтобы не получилось ситуации, когда Вы якобы восстановили базу, только скажем прошлогодней версии, а пользователи смотрят и удивляются:)

Как видите, восстанавливать базу не так страшно как кажется.

На сегодня все, в следующих статьях мы будем рассматривать, как можно создавать и восстанавливать backup базы данных, но только уже на СУБД MSSql 2008.

Источник

Резервное копирование PostgreSQL

В данной инструкции рассмотрены варианты создания резервных копий и восстановления баз СУБД PostgreSQL.

Все команды, которые приводятся ниже, должны выполняться из командной строки. В Linux — это окно терминала, в Windows — командная строка (cmd.exe) с переходом в папку установки PostgreSQL.

Создание резервных копий

Базовая команда

pg_dump users > /tmp/users.dump

Пользователь и пароль

Если резервная копия выполняется не от учетной записи postgres, необходимо добавить опцию -U с указанием пользователя:

* где dmosk — имя учетной записи; опция W потребует ввода пароля.

Сжатие данных

Для экономии дискового пространства или более быстрой передачи по сети можно сжать наш архив:

pg_dump users | gzip > users.dump.gz

Скрипт для автоматического резервного копирования

Рассмотрим 2 варианта написания скрипта для резервирования баз PostgreSQL. Первый вариант — запуск скрипта от пользователя root для резервирования одной базы. Второй — запуск от пользователя postgres для резервирования всех баз, созданных в СУБД.

Для начала, создадим каталог, в котором разместим скрипт, например:

Вариант 1. Запуск от пользователя root; одна база.

PGPASSWORD=password
export PGPASSWORD
pathB=/backup
dbUser=dbuser
database=db

* где password — пароль для подключения к postgresql; /backup — каталог, в котором будут храниться резервные копии; dbuser — имя учетной записи для подключения к БУБД; pathB — путь до каталога, где будут храниться резервные копии.
* данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После при помощи утилиты pg_dump будет выполнено подключение и резервирование базы db. Пароль экспортируется в системную переменную на момент выполнения задачи.

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

Вариант 2. Запуск от пользователя postgres; все базы.

* где /backup — каталог, в котором будут храниться резервные копии; pathB — путь до каталога, где будут храниться резервные копии.
* данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После найдет все созданные в СУБД базы, кроме служебных и при помощи утилиты pg_dump будет выполнено резервирование каждой найденной базы. Пароль нам не нужен, так как по умолчанию, пользователь postgres имеет возможность подключаться к базе без пароля.

Необходимо убедиться, что у пользователя postgre будет разрешение на запись в каталог назначения, в нашем примере, /backup/postgres.

Зададим в качестве владельца файла, пользователя postgres:

chown postgres:postgres /scripts/postgresql_dump.sh

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

* мы откроем на редактирование cron для пользователя postgres.

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

Права и запуск

Разрешаем запуск скрипта, как исполняемого файла:

chmod +x /scripts/postgresql_dump.sh

Единоразово можно запустить задание на выполнение резервной копии:

. или от пользователя postgres:

На удаленном сервере

* необходимо убедиться, что сама СУБД разрешает удаленное подключение. Подробнее читайте инструкцию Как настроить удаленное подключение к PostgreSQL.

Дамп определенной таблицы

Запускается с опцией -t или —table= :

* где students — таблица; users — база данных.

Размещение каждой таблицы в отдельный файл

* где /tmp/folder — путь до каталога, в котором разместяться файлы дампа для каждой таблицы.

Только схемы

Для резервного копирования без данных (только таблицы и их структуры):

Только данные

Использование pgAdmin

Данный метод хорошо подойдет для компьютеров с Windows и для быстрого создания резервных копий из графического интерфейса.

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

В открывшемся окне выбираем путь для сохранения данных и настраиваемый формат:

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

При желании, можно изучить дополнительные параметры для резервного копирования:

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Не текстовые форматы дампа

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

Источник

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

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

Тип задачи «Резервное копирование файлов и баз данных» позволяет сделать корректную копию СУБД, не прерывая работу пользователей. Подробнее о задаче «Резервное копирование файлов и баз данных» в справке программы: «О задаче Резервное копирование файлов и баз данных».

В данной статье подробно рассмотрим как восстановить данные PostgreSQL из резервной копии.

Effector saver сохраняет резервные копии PostgreSQL в архивах Zip и 7-Zip. Поэтому, перед восстановлением данных PostgreSQL, распакуйте подлежащую восстановлению резервную копию.

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

В Браузере объектов разверните дерево «Серверы». Нажмите правой кнопкой мыши по узлу «Базы данных» и выберите «Новая база данных…».

Откроется окно создания новой базы данных.

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Во вкладке «Свойства» в поле «Имя», введите наименование новой базы, все остальные поля оставьте без изменений. Нажмите «ОК».

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

После, раскройте узел «Базы данных» и выберите ранее созданную базу данных, нажмите по ней правой кнопкой мыши и в появившемся контекстном меню выберете «Восстановить…».

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Откроется окно восстановления базы, где вы можете задать параметры восстановления, в частности выбрать файл резервной копии.

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

На вкладке «Файл» нажмите на кнопку обзора (…), после чего откроется диалоговое окно «Выберите имя выходного файла». Выберите файл резервной копии и нажмите кнопку «Открыть».

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Оставьте все параметры восстановления как есть и нажмите «Восстановить». Запустится процесс восстановления базы данных.

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

После того, как процесс по восстановлению будет удачно завершен, нажмите «Завершено».

Источник

Создание бэкапа базы PostgreSQL для Windows

В PostgreSQL есть утилита, которая создает дамп базы данных и называется она pg_dump. Для того чтобы автоматизировать процесс создания бэкапов баз PostgreSQL нужно будет создать bat-файл, который будет вызывать утилиту pg_dump и вызывать его с помощью планировщика заданий. Результатом выполнения такого сценария будет ежедневное копирование базы данных PostgreSQL, ведение журнала с информацией о датах и результатах выполнения, сохранение подробных сведений о ходе выполнения каждой резервной копии в отдельный текстовый файл и в случае неудачи отображение диалогового окна с сообщением. Содержимое bat-файла следующее:

Справочную информацию о командах, испульзуемых в этом файле можно получить из командной строки набрав следующую команду: «[Имя команды] /?»
Многие использованные здесь команды достаточно распространены и известны, поэтому хочется акцентировать внимание на нескольких менее известных.

Строки 15, 16 выполняют переход в папку в которой находится файл «backup.bat». «%0» возвращает имя bat-файла; «%

dp0″ возвращают соответственно диск и путь к bat-файлу. Подробные сведения о работе с параметрами файла можно посмотреть по этой ссылке.

В строке 19 формируется строковое представление даты и времени в нужном формате. При формировании происходит обращение к переменным окружения DATE и TIME, которые хранят текстовое представление даты и времени соответственно. После имени переменной указывается строка вида «:

В строке 27 вызывается утилита резервного копирования pg_dump.exe. Вызов выполняется с применением команды CALL, это позволяет дождаться завершения утилиты и проанализировать результат выполнения. Вызов утилиты завершается строкой «2>%LOGPATH%». Эта строка означает что поток ошибок STDERR, номер которого 2, приложения pg_dump.exe перенаправляется в файл, имя которого сохранено в переменной окружения LOGPATH. Так как приложение pg_dump.exe выводит все сообщения в стандартный поток ошибок, то в файле LOGPATH будет сохранен подробный отчет о выполнении резервного копирования.

Проверяем как работает bat-файл. Если дампы базы создаются, то можно приступать к созданию задачи для планировщика заданий Windows.
Создаем задание, которое будет запускать bat-файл каждый день в ночное время.

Ежедневные бэкапы со временям породят проблему свободного пространства на жестком диске. Можно чистить ручками, но лучше уж автоматизацию сделать полной. Решается этот вопрос также созданием bat-файла и задачи в планировщике заданий Windows.

Содержимое bat-файла такое:

Здесь указана команда при выполнении которой будут удаляться файлы старше 5 дней.
В планировщике заданий можно создать задачу на исполнения этого bat-файла раз в неделю.

Источник

Бэкап и восстановление базы 1С в бд postgresql, обслуживание базы

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Во время работы с базой данных postgresql в 1С необходимо периодически выполнять задачи по бэкапу базы данных и ее восстановлению. Для увеличения производительности рекомендуется регулярно проводить очистку, анализ и переиндексацию базы 1С. Для автоматизации процессов по архивации и обслуживанию я написал небольшие скрипты с пояснениями. Ими и хочу поделиться с вами.

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Ранее я рассказывал о том, как установить и настроить postgresql для работы с 1С, а затем как провести анализ производительности базы 1С и по возможности увеличить быстродействие. После успешного выполнения первых двух задач, мы можем приступать к эксплуатации системы. Когда рабочая база 1С уже на сервере, обязательно нужно настроить ее регулярный бэкап. Желательно так же периодически проводить очистку и переиндексацию sql базы. Это увеличит ее быстродействие. Выполнять эти операции лучше всего автоматически, в нерабочее время. Именно этим мы и займемся в этой статье.

Бэкап и восстановление базы 1C в бд postgresql

Прежде чем делать непосредственно архив 1С базы, нам нужно разрешить подключаться локально к серверу бд без авторизации. Я единственный пользователь сервера, доступа к нему никто больше не имеет, в интернет он не опубликован, поэтому я сознательно иду на этот шаг, чтобы упростить себе работу. Если для вас этот вариант не подходит, то все дальнейшие скрипты вам нужно будет самим изменить, добавив в них авторизацию. Это не сложно, в описании команд все есть. Я буду все команды выполнять локально от пользователя root.

Редактируем в файле /etc/postgresql/9.6/main/pg_hba.conf строку, приведя ее к такому виду:

После этого надо перезапустить постгрес, чтобы изменения вступили в силу.

Бэкап базы данных выполняется простой командой:

postgresимя пользователя базы данных
base1cназвание бд с 1С
pigzархиватор
base1c.sql.gzфайл, куда будет сохранена резервная копия

Обращаю внимание на архиватор pigz. Я его использую, потому что он умеет жать данные, нагружая все ядра процессора, в отличие от gzip. Прирост производительности 2-3 раза. Рекомендую. На debian он ставится из стандартного репозитория:

Попробуйте вручную в консоли выполнить команду и посмотреть на результат. Вы должны получить заархивированный файл с текстовыми sql командами в открытом виде. Теперь попробуем восстановить базу данных 1С из архива. Тут будут нюансы. Первым делом разархивируем файл:

Файл будет распакован, а архив удален. Чтобы сохранить архив, можно использовать такую команду:

Создадим на сервере новую базу данных, в которую будем восстанавливать резервную копию. Перед этим посмотрим список баз данных на сервере:

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Создаем новую базу данных:

Смотрим, что получилось:

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Базу данных создали. Теперь загружаем в нее наш бэкап 1с:

Ждем приличное время. Оно будет зависеть от размера базы. После того, как восстановление завершено, можно идти в консоль кластера 1С и добавлять новую базу, указывая в качестве базы postgresql только что созданную базу с загруженным архивом.

Я сначала пошел по другому пути. Создал в консоли пустую базу, загрузил в нее бэкап через консоль postgresql. Архив вроде бы загрузился, но в базу я не мог войти, не проходила авторизация. То есть возникли какие-то проблемы. Когда сделал, как описал выше, без проблем все заработало сразу. Проверил базу, все было в порядке.

После того, как вы убедитесь, что все в порядке, можно написать небольшой скрипт, который мы добавим в cron для регулярного бэкапа нашей базы 1С. Я его сделал совсем простым, ничего лишнего, только 1 база. Я считаю, что если баз не много и вручную не представляет труда написать несколько строчек скрипта, то лучше все сделать без циклов и лишних переменных. Если у вас больше одной базы, то просто скопируйте строки и замените названия баз. Вот сам скрипт:

Я указал в названии файла с бэкапом 1с базы использовать текущую дату с точностью до минуты. В лог я пишу информацию с точностью до секунды, чтобы было точно видно, сколько длился бэкап. Просто для справки информация, можно обойтись и без лога совсем. В конце удаляю из папки все архивы старше 3-х дней. Я обычно сервером с бэкапами забираю информацию с целевых хостов. То есть я буду подключаться к sql серверу и забирать с него архивы и уже на сервере бэкапов буду их хранить и ротировать в зависимости от желаемой глубины архива. А здесь я удаляю почти сразу архивы, не храню их, чтобы не занимать место. Если вы будете хранить их долгосрочно на этом же сервере, то просто измените цифру 3 на нужное вам число дней, за которые вы хотите иметь архивную копию своей базы 1С.

Использование программы PostgreSQL Backup

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

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

Обновление статистики и реиндексация в postgresql

С бэкапами разобрались, теперь настроим регламентные операции на уровне субд, чтобы поддерживать быстродействие базы данных. Тут особых комментариев не будет, в интернете очень много информации на тему регламентных заданий для баз 1С. Я просто приведу пример того, как это выглядит в postgresql.

Выполняем очистку и анализ базы данных 1С:

Реиндексация таблиц базы данных:

Завернем все это в скрипт с логированием времени выполнения команд:

Сохраняем скрипт и добавляем в планировщик. Хотя я для удобства сделал еще один скрипт, который объединяет бэкап и обслуживание и уже его добавил в cron:

Добавялем в /etc/crontab:

Проверяем лог файл и наличие бэкапа. Не забывайте делать проверочное регулярное восстановление бд из архива.

Как восстановить базу postgresql из бэкапа windows. Смотреть фото Как восстановить базу postgresql из бэкапа windows. Смотреть картинку Как восстановить базу postgresql из бэкапа windows. Картинка про Как восстановить базу postgresql из бэкапа windows. Фото Как восстановить базу postgresql из бэкапа windows

Заключение

Вот и все, что я хотел рассказать по поводу бэкапа и обслуживания баз postgresql в связке с 1С. Если у кого есть еще полезная информация, прошу поделиться в комментариях. Возможно с бэкапом есть какие-то нюансы, особенно на больших базах. Но мне негде тестировать, больших рабочих баз более 10 гб у меня нет под рукой, а с теми что были, все отлично работает.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *