Настройка резервного копирования postgres

1. doctorov_s 40 16.06.16 13:12 Сейчас в теме
Добрый День! Помогите пожалуйста разобраться с резервным копированием баз postgres!
при запуске утилиты pg_dump выдает ошибку смотри скрин! при этом никакие монипуляции не помогают! поделитесь опытом кто как боролся с данной ошибкой!
Прикрепленные файлы:
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. aka Любитель XML 16.06.16 13:37 Сейчас в теме
(1) doctorov_s, параметры запуска покажи
+
3. doctorov_s 40 16.06.16 14:02 Сейчас в теме
(2) aka Любитель XML, что за параметры запуска?? не очень понял??
+
4. perpleks 16.06.16 15:50 Сейчас в теме
(3) doctorov_s,

в смысле параметры запуска, которые передаются pg_dump посредством интерфейса командной строки :) например, у меня pg_dump с виндовой машины запускается powershell скриптом, а сам постгрес стоит на linux-сервере, и делает скрипт это с такими "параметрами":

.\pg_dump.exe -h $hostname -p 5432 -U $username --format=directory --compress=0 --blobs --jobs=4 --file=$filename $dbname

ну и вообще, интересно было бы узнать что-нибудь помимо загадочной ошибки, версия постгреса, версия windows, хоть что-нибудь. А пока выглядит как "у меня ничего не работает. помогите"
+
5. doctorov_s 40 16.06.16 16:00 Сейчас в теме
(4) perpleks, хорошо тогда, может быть я не правильно установил его???
+
7. perpleks 16.06.16 16:02 Сейчас в теме
(5) doctorov_s, возможно :) расскажите, как вы его установили?
+
20. tarassov 112 16.06.16 17:31 Сейчас в теме
(1) doctorov_s,
pg_dump это консольная утилита
ее лучше вызывать из скрипта либо из командной строки с заданием соответствующих параметров

Привожу пример, как я ее из cmd запускаю:

@echo off

SET PGUSER=<логин>
SET PGPASSWORD=<пароль>
SET PGCLIENTENCODING=UTF8
chcp 65001

if exist <имя файла> del /f /q <имя файла>

"C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_dump" -b -E UTF8 -F p -f <имя файла> <имя базы данных>

"C:\Program Files\7-Zip\7z.exe" a -t7z -r <имя архива> <имя файла>
del /f /q <имя файла>
baracuda; +1
25. doctorov_s 40 17.06.16 09:31 Сейчас в теме
(20) tarassov, А где должен размещаться скрипт?? Что то я вообще запутался с этими скриптами, как они вообще создаются и размещаются??
+
34. tarassov 112 17.06.16 11:11 Сейчас в теме
(25) doctorov_s,
скрипт - для Windows это к примеру файл "bat" либо "cmd". Расположить его можно где угодно. вызывать либо в ручную либо по расписанию. Расписание можно настроить в планировщике заданий Windows
+
32. v3rter 17.06.16 10:55 Сейчас в теме
На счет написания скрипта - прочитайте обзорно по батникам http://ru.wikihow.com/%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D0%B1%D0%B0%D1%82%D0%BD%D0%B8%D0%BA
и http://philosoft-services.com/batniki.zhtml

Попробуйте сделать батник из примера в (20), обратите внимание, что пример рассчитан на архивацию в папку, из которой он будет запущен.

Когда разберетесь с батником-скриптом, изучите Планировщик заданий http://remontka.pro/windows-task-scheduler/ и попробуйте настроить скрипт для регулярного запуска. Убедитесь, что он отрабатывает и создаёт бэкап а не пустышку с ошибками.

А теперь прикиньте, сколько Вы на это потратите времени, поставьте любую программу для архивации или начните делать архивы регулярно вручную, и потратьте его, время )
+
35. doctorov_s 40 17.06.16 11:27 Сейчас в теме
(32) v3rter, вы посоветовали программу Effector Saver, а пропаченную где то можно найти??
+
37. baracuda 2 17.06.16 11:33 Сейчас в теме
(35) doctorov_s, у меня очень большие опасения за бэкапы сделанные вами. Надеюсь вы не рабочие базы трогаете.
Вам несколько раз попросили почитать таки мануалы к программам, а вы все свое.

Если банально ввести в гугле или даже в ютубе запрос "postgresql database backup" вам будут сотни, если не тысячи статей. Для особо умных видео даже сняли, не мучайте ни себя ни нас, посмотрите, почитайте и только потом спрашивайте, то что именно не понятно.
+
6. doctorov_s 40 16.06.16 16:01 Сейчас в теме
Я так понимаю эта утилита не требует установки?? Тогда где прописываются эти параметры???
+
8. perpleks 16.06.16 16:10 Сейчас в теме
(6) doctorov_s, установки, как таковой, не требует, но pg_dump.exe для работы нужны несколько dll, которые установщик постгреса заботливо кладет рядом с ней, например. Также, если не ошибаюсь, для работы виндовой сборке постгреса нужны установленные vcredist (https://www.microsoft.com/ru-RU/download/details.aspx?id=40784).

Параметры пишутся (при интерактивном запуске пользователем) в командную строку после имени исполняемого файла, которому эти параметры нужно передавать https://ru.wikipedia.org/wiki/Интерфейс_командной_строки

В windows роль интерфейса командной строки выполняет либо cmd.exe, либо powershell
+
9. doctorov_s 40 16.06.16 16:15 Сейчас в теме
Скачал установочный файл postgres c 1с сайт, установил, затем потребовалось настроить резервное копирование баз, начал искать как это делается! Нашел, что нужна нужна данная утилита, скачал, положил в папку System32 поробовал запустить а она выдает данную ошибку!
+
10. perpleks 16.06.16 16:20 Сейчас в теме
(9) doctorov_s, вы ее верните, откуда взяли, а про параметры почитайте, например, тут http://postgrespro.ru/doc/app-pgdump.html

edit: я имел в виду, верните в ту папку, куда ее установщик изначально поместил
+
11. doctorov_s 40 16.06.16 16:24 Сейчас в теме
(10) perpleks, так она без установки была! просто скачалась, а установки не потребовала!
+
12. perpleks 16.06.16 16:29 Сейчас в теме
(11) doctorov_s

если вы подразумеваете под "1с сайт" https://releases.1c.ru/ то там выложен msi-дистрибутив постгреса с патчами от 1C, который нужно устанавливать. pg_dump вы оттуда отдельно никак не скачаете
doctorov_s; +1
13. doctorov_s 40 16.06.16 16:32 Сейчас в теме
(12) perpleks, да действительно я ее не оттуда запускал! Нашел где она действительно должна лежать!
Но теперь возникла другая проблема: Она просит меня ввести, я пытаюсь ввести пароль с клавиатуры, но он не вводится!
+
14. perpleks 16.06.16 16:35 Сейчас в теме
(13) doctorov_s, это нормально, что символы не появляются, так принято при вводе пароля в unix (если вы действительно добрались до запроса пароля)
+
15. doctorov_s 40 16.06.16 16:40 Сейчас в теме
(14) perpleks, Так я ввожу пароль, но при нажатие на Enter, утилита просто закрывается и ничего не происходит!
+
17. perpleks 16.06.16 16:45 Сейчас в теме
(15) doctorov_s,

не очень понимаю, как вы ее запускаете, если честно. Просто щелкаете на exe? Это консольная утилита, у нее нет графического интерфейса, ее лучше запускать из командной строки (win+R -> cmd -> ok). Вы уже прочитали те ссылки, которые я вам скинул? :) я завидую вашей скорости чтения!
baracuda; +1
18. doctorov_s 40 16.06.16 16:47 Сейчас в теме
(17) perpleks, Да извините не прочитал, просто я обрадовался, что она у меня наконец то запустилась!
+
16. doctorov_s 40 16.06.16 16:44 Сейчас в теме
(14) perpleks, Уже наверное 100 раз попробовал!
+
19. doctorov_s 40 16.06.16 16:49 Сейчас в теме
вот какое возникает окно!
Прикрепленные файлы:
+
21. maxim4566 16.06.16 23:22 Сейчас в теме
Не знаю поможет нет, но у меня бекапы настроены с помощью вот это утелиты http://postgresql-backup.com/

главное в настройках Advanced - More SQL Options - Поставить галку CLEAN.
Без нее Бекап криво 1С базы восстановиться.
+
23. doctorov_s 40 17.06.16 08:47 Сейчас в теме
(21) maxim4566, а где устанавливается Этот Clian???
+
24. doctorov_s 40 17.06.16 09:02 Сейчас в теме
(21) maxim4566, Инструкция где то есть по ней как ее использовать??
+
38. maxim4566 17.06.16 14:59 Сейчас в теме
(24) doctorov_s, На приведенном сайте возможно.

Я как то интуитивно сам разобрался.

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

Единственное еще раз повторюсь что надо галочку CLEAN поставить в ADVANCED - SQL параметры.
Без нее база восстановиться но зайти в нее не получиться, Учетки слетят, и авторизоваться не сможешь.
+
22. Shevon 1 17.06.16 05:08 Сейчас в теме
doctorov_s

Скачайте с https://www.pgadmin.org/ последнюю стабильную версию pgadmin и pg_dump запускайте из папки с установленным pgadmin
+
26. doctorov_s 40 17.06.16 09:31 Сейчас в теме
помогите разобраться со скриптами!
+
27. v3rter 17.06.16 09:39 Сейчас в теме
http://remontka.pro/0xc000007b/
Еще одна возможная причина появления данной ошибки [0xc000007b] — поврежденные или отсутствующие Net Framework или Microsoft Visual C++ Redistributable.
+
28. doctorov_s 40 17.06.16 09:53 Сейчас в теме
(27) v3rter, эта ошибка уже ушла!
+
29. doctorov_s 40 17.06.16 10:06 Сейчас в теме
(27) v3rter, Сейчас стоит вопрос как настроить резервное копирование с помощью скрипта, как его написать, где он размещается и т.д.! Просто я не разу этого не делал, попытка разобраться ни к чему ни привела!
+
43. verniypro 6 18.06.16 07:54 Сейчас в теме
(29) doctorov_s, скрипт разместить можно хоть где. Например скрипт находится в папке D:\scripts\ и имеет расширение .bat. В планировщике задач нужно создать задачу, выбрав файл скрипта, и если это windows 7 или старше, то в свойствах указать "выполнить с наивысшими правами". Там же указываешь когда и как часто выполнять.
А сам скрипт будет примерно такой:
cd "C:\Program Files\PostgreSQL\9.0\bin\"
pg_dump.exe -U postgres -f dbname > D:\backup\dbname_%date%_%time%.sql

Скрипт для восстановления:
pg_restore –d bd_name dbname_%выбратьдату%_%выбратьвремя%.sql

Вместо dbname надо указать название своей базы
+
30. v3rter 17.06.16 10:37 Сейчас в теме
Может проще будет поставить и настроить Effector Saver Free ?
+
31. doctorov_s 40 17.06.16 10:52 Сейчас в теме
(30) v3rter, А как потом из него восстанавливать архивы??
+
33. v3rter 17.06.16 11:00 Сейчас в теме
(31) doctorov_s, делайте пока архивы в .dt, эффектор это умеет.

Посмотрите http://infostart.ru/public/376013/ и http://infostart.ru/public/397170/
+
40. maxim4566 17.06.16 15:18 Сейчас в теме
(33) v3rter, В dt не всегда возможно, так как надо пользователей выгонять на время выгрузки.
И еще слышал, но на практике не встречал, что в разных версиях платформах dt по разному формируется и может не загрузиться если выгрузка производилась на другой версии платформы
+
36. doctorov_s 40 17.06.16 11:28 Сейчас в теме
Эта программа то что надо и не надо разбирать со скриптами, единственный минус что фри версия не позволяет завершать работу пользователей!
+
39. maxim4566 17.06.16 15:14 Сейчас в теме
Значит на скринах попорядку:
1. Указываешь настройки для подключения к базе: Пароль и имя пользователя postgres
2. Выбираешь галкой базу которую надо бекапить
3. Добавляешь папки, для сетевых размещений указываешь сетевое имя и пароль
4. Открываешь Advanced и делаешь все как на скрине 2 (PSQL_BackUp_2.JPG)
5. Настраиваешь расписание.
6. сохраняешь задание в файл.

для следующих баз с п. 1.
Прикрепленные файлы:
+
41. smaharbA 17.06.16 20:23 Сейчас в теме
пээскуэль стоп - копи ххх - пээскуэль старт
и никаких утилит, если не требуется погорячее
+
42. verniypro 6 17.06.16 22:58 Сейчас в теме
Попробуйте переустановить Microsoft visual c++
pg_basebackup пробовали?
+
44. maxim4566 22.06.16 16:23 Сейчас в теме
Чем дело то закончилось?
Как проблема то решена?
+
45. Bedazzled 26.06.16 11:49 Сейчас в теме
крохотная утилитка для ручного бэкапа и восстановления. Делал торопясь для людей которым надо в-два клика сделать копию базы и восстановить.
в файле \bin\setting.ini измените пути на свои (ковычки обязательны некогда было с ними разбираться)
https://yadi.sk/d/bwNcVVKUso2LE

скрипт от etersoft
http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/9.0.2/Windows/wrappers/
maxim4566; +1
46. serge_focus 4 27.06.16 13:35 Сейчас в теме
(45) Bedazzled, скрипт от etersoft - ссылка битая :(
+
47. Bedazzled 27.06.16 14:46 Сейчас в теме
http://ftp.etersoft.ru/pub/Etersoft/Postgre@Etersoft/9.0.2/Windows/wrappers/

pg_dump.exe вместо pg_dumpall.exe

@echo off

REM path bin postgres
set PATHPOSTGRESBIN=C:\Program Files\PostgreSQL\9.1.2-1.1C\bin

REM path backup 
set PATHPOSTGRESBACKUP=D:\BACKUP\backup_postgressql

REM name dump file
set NAMEPGDUMP=pg_dump.exe

REM user database 
set USERDATABASE=postgres

SET PGPASSWORD=password123

REM number day for delete old bachup
set NUMBERDAYBACKUP=20
	
	call:GETNAMES %NUMBERDAYBACKUP%

	REM name backup file
	set NAMEFILEBACKUP=basename1%DATECUR%.sql
	REM name delete backup file
	set NAMEDELFILEBACKUP=basename1%DATEMINUS%.sql

	call:PRINTPARAM
	call:CREATEDUMP
	call:DELETEOLDDUMP

goto:eof


:CREATEDUMP

	@echo on
	"%PATHPOSTGRESBIN%\%NAMEPGDUMP%" -F c -b -v -f "%PATHPOSTGRESBACKUP%\%NAMEFILEBACKUP%" -U %USERDATABASE% -w basename1

goto:eof


:PRINTPARAM

	echo path bin postgres %PATHPOSTGRESBIN%
	echo name dump file %NAMEPGDUMP%
	echo path backup %PATHPOSTGRESBACKUP%
	echo name backup file %NAMEFILEBACKUP%
	echo user database %USERDATABASE%
	echo name delete backup file %NAMEDELFILEBACKUP%

goto:eof


:DELETEOLDDUMP

	del /Q "%PATHPOSTGRESBACKUP%\%NAMEDELFILEBACKUP%"

goto:eof


:GETNAMES

	set yyyy=

	set $tok=1-3
	for /f "tokens=1 delims=.:/-, " %%u in ('date /t') do set $d1=%%u
	if "%$d1:~0,1%" GTR "9" set $tok=2-4
	for /f "tokens=%$tok% delims=.:/-, " %%u in ('date /t') do (
		for /f "skip=1 tokens=2-4 delims=/-,()." %%x in ('echo.^|date') do (
			set %%x=%%u
			set %%y=%%v
			set %%z=%%w
			set $d1=
			set $tok=
			set yy=%%w
			set dd=%%u
			set mm=%%v))

	if "%yyyy%"=="" set yyyy=%yy%
	if /I %yyyy% LSS 100 set /A yyyy=2000 + 1%yyyy% - 100

	set DATECUR=%dd%%mm%%yyyy%

	set dayCnt=%~1

	if "%dayCnt%"=="" set dayCnt=1

	REM Substract your days here
	set /A dd=1%dd% - 100 - %dayCnt%
	set /A mm=1%mm% - 100

	:CHKDAY

		if /I %dd% GTR 0 goto DONE

		set /A mm=%mm% - 1

		if /I %mm% GTR 0 goto ADJUSTDAY

		set /A mm=12
		set /A yyyy=%yyyy% - 1

	:ADJUSTDAY

		if %mm%==1 goto SET31
		if %mm%==2 goto LEAPCHK
		if %mm%==3 goto SET31
		if %mm%==4 goto SET30
		if %mm%==5 goto SET31
		if %mm%==6 goto SET30
		if %mm%==7 goto SET31
		if %mm%==8 goto SET31
		if %mm%==9 goto SET30
		if %mm%==10 goto SET31
		if %mm%==11 goto SET30
		REM ** Month 12 falls through

	:SET31

		set /A dd=31 + %dd%

		goto CHKDAY

	:SET30

		set /A dd=30 + %dd%

		goto CHKDAY

	:LEAPCHK

		set /A tt=%yyyy% %% 4

		if not %tt%==0 goto SET28

		set /A tt=%yyyy% %% 100

		if not %tt%==0 goto SET29

		set /A tt=%yyyy% %% 400

		if %tt%==0 goto SET29

	:SET28

		set /A dd=28 + %dd%

		goto CHKDAY

	:SET29

		set /A dd=29 + %dd%

		goto CHKDAY

	:DONE

		if /I %mm% LSS 10 set mm=0%mm%
		if /I %dd% LSS 10 set dd=0%dd%

		set DATEMINUS=%dd%%mm%%yyyy%

goto:eof
Показать
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот