Есть небольшой сервер 1с. Windows 10, 1С - 8.3.11.3034 (64), Postgres 9.6.7-1.1C.
База Далион около 35 Гб.
Была произведена выгрузка серверной базы в dt - файл. Заново загрузить не получается никаким образом.
Выходит ошибка "Передача данных прервана по инициативе принимающей стороны".
При этом в файловую загружается без ошибок.
Какие были испробованы варианты:
1. Переустановка Postgres
2. Выгрузка из файловой (которая развернута из нашей dt-шки) и загрузка в серверную
3. Загрузка dt-ки из которой была развернута база пару месяцев назад
4. Чистил кеш 1с- сервера, и базы
5. Создавал базу серверную пустую заново и в неё пытался загрузить.
Ошибка одна и та же. Загрузка длится в среднем 6-7 часов.
З.Ы. Кластер 1с - параметры по умолчанию
Postgres - настройки по умолчанию
З.Ы.Ы Не пробовал только развернуть базу с пустой конфой и грузкой-загрузкой перетащить из файловой. Но т.к. данных на 35 Гб оставляю этот способ на самый край
(1) ИМХО- база данных содержит недопустимые данные ( строка длиной 500 или подобное) Postgres очень "трепетно относиться" к таким "наборам" данных.., попробуйте на MS SQL.. он менее "чувствителен" или перед выгрузкой DT произведите тестирование и исправление ИБ... ( на файловой )
(9) Так я беру туже дт-ку которую тогда загружал (осталась лежать) и все равно не могу загрузить. Вот поэтому и встает вопрос, а точно дело в дт-ке если из неё один раз загрузилось все корректно!?
но, почему же тогда пару месяцев назад он смог заг
Не было данных неприемлемых для сервера SQL.
Смотрите логи сервера: на чем он обламывается.
Еще как варианты сетевые проблемы (если загружаете по сети) или таймаут транзакции,
Если грузите по сети, то запустите параллельно при востановлении ИБ пинг к серверу, если есть потеряные пакеты, то "ой".
Попробуйте загрузить ИБ локально на сервере SQL.
Разрядность не должна влиять, единственно ограничение 32-х битного клиента это размер процесса в 2 ГБ. При востановлении данных он не должен сильно пухнуть.
Что в логах сервера SQL?
(17)< 2021-08-16 00:15:51.547 MSK >LOG: could not receive data from client: An existing connection was forcibly closed by the remote host.
- Есть вот такое сообщение (возможно как раз прервалась загрузка базы) не могу по времени сорентировать, запустил где-то в 21:00. Проверял уже утром.
= "ВыпускSQL Server Developer Edition позволяет разработчикам создавать приложения любого типа на базе SQL Server. Он включает все функциональные возможности выпуска Enterprise Edition, однако лицензируется как система для разработки и тестирования, а не для применения в качестве рабочего сервера. Выпуск SQL Server Developer Edition является идеальным выбором для тех, кто создает и тестирует приложения."
"Максимальный объем памяти для буферного пула на экземпляр Компонент SQL Server Database Engine Максимум, поддерживаемый операционной системой"
(26)Меня смущает строка в логе:
received fast shutdown request
Там ничего не запускается по расписанию в это время? Может какое-то задание есть?
Вот тут немного об этой ошибке написано
https :// dba. stackexchange. com /questions/183633/unexpected-postgresql-restart
(26) Из вашего лога: "could not rename temporary statistics file "pg_stat_tmp/global.tmp" to "pg_stat_tmp/global.stat": Permission denied" - пост 8(он же найденное решение) в в этой теме Совет перейти на Linux является единственно верным в данном случае.
Впрочем, на 16 ГБ памяти и при настройках СУБД по умолчанию все равно будет весьма медленно, пр размере базы 35 ГБ.
(2) У меня как-то в SQL не загружалась база, так же из-за длин строк, если память не изменяет. Тестирование и исправление перед выгрузкой решило вопрос
Есть небольшой сервер 1с. Windows 10, 1С - 8.3.11.3034 (64), Postgres 9.6.7-1.1C.
База Далион около 35 Гб.
Была произведена выгрузка серверной базы в dt - файл. Заново загрузить не получается никаким образом.
Выходит ошибка "Передача данных прервана по инициативе принимающей стороны".
При этом в файловую загружается без ошибок.
Проверьте лицензионный ли у вас сервер 1С:Предприятия.
В феврале этого года разбирались с этой проблемой, заходили слева, справа. Чего только не делали, оказалось - лицензия.
Долго выясняли, кто поставил битую 1С, так и не выяснили, зато информацию сервер исправно отправлял в 1С и пришло уведомление об отсутствии лицензии и срок до 15 марта на установку лицензии.
(1) В вашем варианте должен появиться файл дампа
Рассмотрим пример: в каталоге dumps появился файл: rphost_8.3.11.3034_7c938235_20131025162441_3348.mdmp.
Его можно отослать в 1С, если все в порядке с лицензией. Они опишут вам проблему, которая у вас возникла.
Иногда дамп создается с предупреждением, иногда сам собой.
Если проблемы с лицензией, то отсылать не советую.
(7) Реструктуризацию можно и в клиент-серверной базе провести. Скульная проверка это аналог DBCC CHECKDB из mssql. Как команда называется в постгресе не знаю.
И на всякий случай напомню, что расширение dt расшифровывается как Data Transfer (пруф в реестре ос). Этот формат предназначен исключительно для перехода с файлового режима работы на клиент-серверный и обратно. Использовать его для хранения бэкапов недопустимо (пруф на итс), т.к. платформа вообще не гарантирует, что выгруженная в DT файл база успешно загрузится обратно.
(6)Я, все же программист и администрированием приходится заниматься очень редко. Но за 14 лет работы не помню ни разу проблем с восстановлением из дт-шки. Но ваше замечание учту в дальнейшем.
И так что я после всех обсуждений делал:
1. ТИИ в файловой
2. Переустановка 1с сервер и postgres
3. Загрузка через сеть.
4. Настройка postgres через редактирование конфигурационного файла по статье на 1с и по статье выше в сообщениях
и прочие советы, все перепробовал (кроме установки Linux)
Все тоже самое, только ошибка другая теперь: "Удаленный хост принудительно разорвал соединение". Те же "коки" только в профиль.
После сообщения Torin-а стал поглядывать в лог postgres
и словил вот такое сообщение:
"EDT LOG could not rename temporary statistics file "pg_stat_tmp/global.tmp" to "pg_stat_tmp/global.stat": Permission denied"
Поискал по этому поводу в интернете, не очень много информации, но вроде как есть. В основном все повторяется. Где-то написано что-то из-за большого объема этих файлов (файлы статистики), у меня они не более 10 КБ, из-за антивируса который сканирует файловую систему и занимает файл (нет антивира), а в этот момент postgres пытается к этому файлу обратиться (не нашел я как в винде отследить кто использует файл). Советы типа переместить в RAM память. Насколько я понял это делается легко в Linux, а вот в Windows там какие-то танцы с бубнами (ну не админю я почти, не мой профиль).
И решил я, а перемещу ка я этот файл (пропишу настройки в config) на другой физический диск (Операционка , Сервер 1с и postgres с базами находятся на C (raid1 из двух ssd), а еще есть HDD рядом).
В итоге, база загружалась 8 часов, раздулась в итоге до 65 гб (почему так??), но загрузилась. И работает нормально.
Вот такие приключения, но они мне совсем не понравились.
Всем спасибо, монетку отдам Torin (никто не в обиде надеюсь)
и занимает файл (нет антивира), а в этот момент postgres пытается к этому файлу обратиться (не нашел я как в винде отследить кто использует файл)
Он же сам и занимает, технология работы у него такая. В этом сообщении есть ссылка на доклад, в котором все доступно объясняется. А так, эта ошибка возникает из-за принципиальной разницы в работе с файлами в Windows и Linux, единственное верное решение - это переход на Linux,
Или купить(затраты работодателя) MS SQL...