#0
by 2dolist
Добрый день. При выполнении pg_dump.exe начала возникать ошибка: pg_dump: [cumsom archiver] WARNING: ftell mismatch with expected position -- ftell used. Архивы выполняются вызовом батника с кодом: cd "путь к pg_dump.exe" .pg_dump.exe -Fc -h АдресСервера -U юзер постгреса -c ut11_3test > АдресДляДампа Обнаружил, что некоторое время штампуются невосстанавливаемые архивы, хотя до этого при настройке они работали отменно. При попытке восстановить файл дампа через pg_restore.exe выдаётся ошибка: pg_restore: [archiver] input file does not appear to be a valid archive Всё, что нашёл по ошибке ftell это то, что проблема возникала на 8-й версии и советуют обновиться до 9. У нас 9.4 и до недавнего времени всё работало.
#2
by novichok79
еще пишут что если в команде используется pipe notation (очевидно вертикальная палка), то ошибка появляется на Windows, в Linux'ах все норм.
#4
by novichok79
а если вместо этого pg_dump.exe -Fc -h АдресСервера -U юзер постгреса -c ut11_3test > АдресДляДампа использовать pg_dump.exe -Fc -h АдресСервера -U юзер постгреса -c ut11_3test -f АдресДляДампа ? места на диске для дампов хватает?
#5
by novichok79
какой размер дамп файла кстати? у меня 20 гигов восстанавливается нормально из кастомного формата postgre.
#7
by novichok79
ну вот с stackoverflow, тоже что и я посоветовал I found several bug reports indicating that pg_dump has problems writing to a pipe on Windows: BUG #7794: pg_dump: errors when using pipes/streams BUG #6726: pg_dump - ftell mismatch when using -Fc and split Instead of writing to stdout and redirecting to a file, try using -f specify the output file: pg_dump -Fc -U "username" -w "dbname" -f "filename".dmp
#10
by 2dolist
форматы для pg_restore - это Fc (какая-то своя кодировка уже слегка заархивированная) и Fd (дистрибутив). Пробовал и то, и то - одинаково.
#11
by novichok79
попробуй параметры писать с двумя тире, у меня для дампов прописано следующее в батнике REM Создание резервной копии CALL "%PGBIN%pg_dump.exe" --format=custom --compress=9 --jobs=%THREADSAMOUNT% --verbose --file=%DUMPPATH% 2> %LOGPATH% работает как часы уже год.
#18
by novichok79
это чтобы stdout шел в лог файл в переменной среды потому что это вызов из bat файла
#19
by novichok79
я бы делал так pg_dump.exe --dbname=baza --format=custom --compress=9 --jobs=4 --host=superkomputer --port=5432 --username=postgres --password --verbose --file="C:В гостях у сказкидамп_2017_10_19.backup" 2> "C:В гостях у сказкидамп_2017_10_19.log"
#20
by novichok79
батник примерно такой CLS ECHO OFF REM Установка кодовой страницы Win1251 CHCP 1251 REM Установка переменных окружения REM Для сервера поменять переменные SET PGBIN=C:Program FilesPostgresPro 1C9.4in SET PGHOST=...... SET PGPORT=...... SET PGUSER=...... SET PGPASSWORD=..... SET PGDATABASE=%1 IF '%PGDATABASE%'=='' (ECHO The database name is not specified & GOTO End) REM Установка путей копирования REM Для сервера установить D:Backup SET STAGINGDIRECTORY=%TEMP% SET BACKUPDIRECTORY=D:Backup REM Формирование имени файла резервной копии и файла-отчета SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% SET DUMPFILE=%PGDATABASE%_%DATETIME%.backup SET LOGFILE=%PGDATABASE%_%DATETIME%.log IF NOT EXIST "%STAGINGDIRECTORY%" MD "%STAGINGDIRECTORY%" IF NOT EXIST "%BACKUPDIRECTORY%" MD "%BACKUPDIRECTORY%" REM Смена диска и переход во временную папку CD /d %STAGINGDIRECTORY% SET DUMPPATH="%STAGINGDIRECTORY%%DUMPFILE%" SET LOGPATH="%STAGINGDIRECTORY%%LOGFILE%" SET FINALDUMPPATH="%BACKUPDIRECTORY%%DUMPFILE%" SET FINALLOGPATH="%BACKUPDIRECTORY%%LOGFILE%" REM Создание резервной копии CALL "%PGBIN%pg_dump.exe" --format=custom --compress=9 --jobs=%THREADSAMOUNT% --verbose --file=%DUMPPATH% 2> %LOGPATH% REM Анализ кода завершения IF NOT %ERRORLEVEL%==0 GOTO Error GOTO Successfull REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале :Error DEL %DUMPPATH% ECHO %DATETIME%: Errors when creating a database backup %DUMPFILE%. >> %LOGPATH% ECHO %DATETIME%: See the report %LOGFILE%. >> %LOGPATH% GOTO End REM В случае удачного резервного копирования просто делается запись в журнал :Successfull ECHO %DATETIME%: The backup %DUMPFILE% has been successfully created. >> %LOGPATH% ECHO F| XCOPY %DUMPPATH% %FINALDUMPPATH% /I /H /R /Y ECHO F| XCOPY %LOGPATH% %FINALLOGPATH% /I /H /R /Y DEL %DUMPPATH% DEL %LOGPATH% GOTO End REM Выходим из батника :End
#21
by novichok79
SET THREADSAMOUNT=%2 не забудь установить переменную, иначе руганется забыл дописать когда пароли затирал
#22
by 2dolist
решили пойти методом деконструкции, так сказать. Начать с самого простого. в общем, ошибка в формате - если убрать формат Fc, то дамп делается (правда, в формате .sql).
#23
by 2dolist
не совсем понятно как лучше поступить и почему внезапно начал тупить формат custom и distributive
#25
by novichok79
я использовал длинные параметры, именно по той причине, что сначала Fc у меня тоже тупил.
#27
by 2dolist
ещё проблема что если запускать батником, а ни из командной строки, то создаётся файл 0 размера. Т.е. по какой-то причине не пишется. Блин, тут права чтоль поменялись...
#28
by novichok79
я писал сам. чего там "курить"? все просто - делается дамп во временный каталог на системном SSD диске сервера, потом полученный файл копируется на диск для дампов, вместе с логом.
#35
by 2dolist
%PGBIN%pg_dump.exe --format=custom --compress=9 --file=%DUMPPATH% > %LOGPATH% отработает?
#36
by 2dolist
ну, вручную заданными параметрами естественно. Я просто хочу узнать, у тебя --format=custom отрабатывает или нет без всяких обозначений переменных среды.
#37
by novichok79
да, отработает. я уже писал выше, как я оформил бы вызов pg_dump без указания переменных среды.
#40
by ansh15
--jobs хороший параметр, но его можно использовать только с форматом вывода directory, то есть --format=directory. Попробуй, когда-то проверял в PowerShell & 'C:Program FilesPostgresPro 1C9.6inpg_dump.exe' "-Fc" "-b" "-fC:pgsqlench.bak" "bench" & 'C:Program FilesPostgresPro 1C9.6inpg_restore.exe' "-dbench" "C:pgsqlench.bak" База bench должна быть вновь созданной. Так работает.
#41
by 2dolist
а дамп, который в формате sql не удаётся восстановить через psql. Вообще какая-то засада и нихрена не понятно. Почему fc перестал работать. Попробовали выгрузить в архив с форматом tar, он пгрестором не цепляется - говорит формат не тот.
#43
by novichok79
я да запамятовал, что он только при восстановлении может дать газу. а бэкап только без него делается, если в кастом формате. просто вызови pg_dump с ключом --format=custom, дальнейшеий диалог не имеет смысла, пока ты этого не сделаешь.
#44
by ansh15
Вот и ответ "I suspect that what's happening is that stdout isn't getting put into binary mode, so that Microsoft's CR/NL translation corrupts the data. If that's true, though, the resulting backup file should be corrupt" Отсюда
#45
by 2dolist
просто вызови pg_dump с ключом --format=custom так изначально так и было. -Fc это прямой аналог --format custom. он выдаёт pg_dump: [cumsom archiver] WARNING: ftell mismatch with expected position -- ftell used.
#46
by Йохохо
нельзя в произвольном порядке комбинировать старую и новую нотации, перепиши все в новой с учетом
#47
by 2dolist
у меня не работают обозначения через --format попробовал запустить "адресpg_dump.exe" --format=custom --verbose --file="куда ставить" не отработало - ругается на format=custom - неопределенная лексема
#49
by 2dolist
Нет больше идей как оживить custom archiver? Уже появляется желание снести и переустановить просто постгрешку.
#51
by 2dolist
В общем, в командной строке нормально отрабатывает таким образом: cd "адресPostgreSQL9.4.2-1.1Cin" .pg_dump.exe --host АдресХоста --port 5432 --username "postgres" --пасс --format custom --verbose --file "АдресКудаСкидыватьАрхивчик" "ut11_3test" Осталось запустить это в батнике, а то просто так не отрабатывает
#53
by 2dolist
сейчас пробую твой батничек развернуть. Вопрос есть. А Зачем нам нужна промежуточная директория, из которой потом всё равно перекачиваем в конечную?
#54
by novichok79
промежуточная директория на SSD диске, а конечная - на обычном HDD. это нужно для скорости.
#55
by 2dolist
хитро. Не взлетает что-то батничек. Подозреваю, что с кодировкой дело. выполнение команды chcp уже не отрабатывает даже.
#56
by 2dolist
Спасибо большое novichok79! взял за основу батник из , переписал его и всё взлетело. Но такой момент. Многопоточная архивация недоступна для формата custom. Пришлось её отменить.
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- СУБД PostgreSQL для Windows
- Семинар «Использование PostgreSQL. Особенности применения PostgreSQL в связ
- PostgresQL. Ошибка установки или изменения национальных настроек информацио
- Странная ошибка "ошибка формата потока" с вылетом из сеанса
- PostgreSql и 1С
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- v7: Ошибка СУБД.Внутренняя ошибка dbeng 8
- PostgreSQL Создание новой базы
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- Как увеличить время ожидания блокировки в PostgreSQL?
- Ошибка: Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm
- Ошибка при вызове web-сервиса 1C 8.3 (Внутренняя ошибка. Ошибка инициализации б)
В этой группе 1С
- Реестр ККТ - модели с ФС vs. модели с ФА на сайт
- Контроль отрицательных остатков в УПП 13.1.96
- v8 1С в качестве SOAP сервера
- обороты по периодам в СКД
- Выгружаю конфигурацию для конвертации обраб.MD83Exp выдает ошибку подскажите как исправить
- Сообщение пользователям об обновлении конфигурации.
- КПП в счет-фактурах филиала бухгалтерия 3.0 проф
- Создание списка выбора у списка значений
- Внедрение ERP УСО2
- Универсальный универсальный формат 1.3
- ЗУП 2.5 Свод начислений и договор подряда
- Выборка запросом по дополнительному реквизиту
- 8.3 Бух Корп Налоговая База
- Отчет ЕСВ с выгрузкой в XML или DBF для конфигурации УПП (Украина)
- Оптимизация запроса к регистру бухгалтерии
- Розница 2.2 Список выбора при поиске по строке
- Подсчет в запросе количества и суммы
- Поиск и замена дублей - что-то мне не нравится как подключается FuzzyStringMatchExtension
- УТ11 ... новые реквизиты не отображаются на форме
- Динамический список и расширенный поиск (alt + f)