Перевод большой базы в SQL. #651791


#0 by citrus
Всем доброго дня. Появилась задача перевести в SQL БП8 2.0 Сейчас база файловая, объем 20гб! При попытке загрузить в SQL пишет, что не уникальное значение пытается записаться в уникальную колонку и все валится. Сделали ТИИ, все пункты кроме пересчета итого и реструктуризации прошли. На этих пунктах валится по нехватки памяти. Чекбд ошибок не находит. Мы в тупике. Что делать?
#1 by Zebburius
Попробуйте создать РБД, в которой второй узел на SQL, а потом через их синхронизацию (желательно не через файл, а какой-нибудь COM) проведите первоначальный обмен.
#2 by Maxus43
реструктуризацию надо бы всё таки. делайте на мощном компе с большим количеством мозгов
#3 by ZanderZ
обрезать...
#4 by Живой Ископаемый
какое значение большая она или нет? если была маленькой и такая же ошибка - как бы тему назвал?
#5 by citrus
2) кол-во мозгов значения не имеет. запускали на сервере >15гб ОЗУ. Когда процесс !С съедает более 1.5 гб памяти вылетает ошибка.
#6 by wise
делай ВСЁ на х64
#7 by Живой Ископаемый
2 и что случится?
#8 by H A D G E H O G s
Текст ошибке в студию!
#9 by wise
6+ было ТАКЖЕ - помогло...
#10 by citrus
пробовали свернуть. зависает на регистре РАСХОДЫУСН и так же по памяти валится. причем сворачиваем первые 2 месяца учета.
#11 by krbIso
не поможет попробуйте найти эти неуникальные значения
#12 by citrus
делать на х64.  64 винда или 1С или все вместе? :)
#13 by citrus
а где и как их искать?
#14 by H A D G E H O G s
Мы бы сказали, если бы ты хотя бы текст ошибки написал, поклонник телепатов хренов.
#15 by Maxus43
в скуле найти можно, а вот в файловой я хз как)
#16 by wise
винда
#17 by H A D G E H O G s
даже обработку писал под это дело.
#18 by wise
16+ ГДЕ ж ты клиента ТАКОГО(х64) возьмёшь...
#19 by Maxus43
на линупсе) 8.3
#20 by ДенисЧ
создать новую базу на скуле. Через выгрузку-загрузку xml перенести данные.
#21 by citrus
сколько будет весть такая XML'ка?  нереально!
#22 by H A D G E H O G s
Бугага. Товарищь неосиливает переписать текст ошибки. Спасибо, пошел писать код в хорошем настроении.
#23 by МихаилМ
если с скл разбираетесь, вот заготовка ddl триггера для отмены индекса
#24 by citrus
да успокойся ты умник. сейчас заливается и будет скрин ошибки.
#25 by Maxus43
на этапе загрузки у них, базы как таковой на скуле нету...
#26 by H A D G E H O G s
Я спокоен. Спасибо за заботу.
#27 by ДенисЧ
кусками.
#28 by МихаилМ
база есть. таблиц нету
#29 by citrus
т.е. сначала перенести доки, потом еще их проводить же надо?
#30 by ZanderZ
можно отдельно движения потом перенести
#31 by citrus
ну это нереальная история.
#32 by citrus
Ребята, вот текст ошибки Ошибка загрузки информационной базы. В информационную базу загружены не все данные по причине: Попытка вставки неуникального значения в уникальный индекс: Microsoft OLE DB Provider for SQL Server: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccRgAT2495' and the index name '_AccRgA2495_ByPeriod_TRRRRRRN'. The duplicate key value is (Jan  1 2001 12:00AM, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, 0).
#33 by orefkov
Можно попробовать взять это: и ковырять файл базы данных, по таблице AccRgAT2495, искать, где дубли. Исправить.
#34 by H A D G E H O G s
Тупо найти этот регистр накопления и отключить по нему итоги.
#35 by ДенисЧ
Сначала справочники. Потом доки. Видами и периодами. Сразу с движениями.
#36 by 1Сергей
20 gb файловая? и она ещё не загнулась?
#37 by ДенисЧ
Как видишь, уже загибается :-)
#38 by citrus
вообще она еще жива  и работает, но ооооооочень медленно )
#39 by citrus
а как определить какой это регистр?
#40 by citrus
может вообще выключить итоги во всех и так переносить, а в sql  е уже включить. О! идея! :) что скажете?
#41 by Sammo
Или так Что-то вроде получитьструктурухраненияБД
#42 by citrus
Новости с фронта: отключил итоги во всех регистрах попробовал сделать реструктуризацию, вышла ошибка переполнения памяти сделал сжатие - прошло нормально, база стала 15гб. выгрузил dt и при попытке залить в SQL опять вышла ошибка Ошибка загрузки информационной базы. В информационную базу загружены не все данные по причине: Попытка вставки неуникального значения в уникальный индекс: Microsoft OLE DB Provider for SQL Server: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccRgAT2495' and the index name '_AccRgA2495_ByPeriod_TRRRRRRN'. The duplicate key value is (Jan  1 2001 12:00AM, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, 0).
#43 by H A D G E H O G s
Я могу подключиться и глянуть.
#44 by acsent
АААА, знакомая ошибка. У тебя в регистре бухгалтерии неправильные субконто стоят. Нужно сделать приведение типов
#45 by acsent
держи с барского плеча
#46 by citrus
спасибо :)  запустил, что-то обрабатывает.  как будут новости сообщу :)
#47 by Hmster
вообще ТИИ должно было помочь. учу как делать такую ошибку в бухе. берем бухию 20, где нет учета по складам. делаем документы с движениями по счетам ТМЦ. Включаем склады. Теперь если выгрузить ДТ и попробовать загрузить в скуль будет писать ошибку не уникальности индекса, но ТИИ нормально спасает
#48 by citrus
ТИИ валится на пересчете итогов и реструктуризации. хотя когда итоги отключил, один фиг ошибка.
#49 by citrus
привел типы твоей обработкой и один фиг ошибка Ошибка загрузки информационной базы. В информационную базу загружены не все данные по причине: Попытка вставки неуникального значения в уникальный индекс: Microsoft OLE DB Provider for SQL Server: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccRgAT2495' and the index name '_AccRgA2495_ByPeriod_TRRRRRRN'. The duplicate key value is (Jan  1 2001 12:00AM, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, 0).
#50 by citrus
настораживает в этой ошибке дата "Jan  1 2001 12:00AM" это запись такая где то в базе или документ на этой дате?
#51 by H A D G E H O G s
Давай подключусь
#52 by Demiurg
пересчитайте итоги перед выгрузкой
#53 by Serg_1960
(имхо) Вообще-то это проблема даже не в индексах, или в  итогах... Это "пустые" записи. Фича файловой - неуникальные значения в индексах не рушат базу, как в SQL. PS: вон, в соседней ветке сижу, подсказываю как определить что за таблица глючная -
#54 by Hmster
ТИИ при проверке логической и физической целостности, даже если оставить "не изменять" исправляет данную ошибку.
#55 by citrus
давай. лучше завтра днем. через что амми или тим?
#56 by H A D G E H O G s
Лучше Тим, стучи в аську ICQ#: 374-881-272
#57 by citrus
Вячеслав, я уже писал, что пересчет не работает. Падает по нехватке памяти. Правда я отключил потом итоги и все равно заливка в SQL падает.
#58 by Demiurg
возможно загрузиться в бд2, там отличия возможно данные загрузились целиком уже, но не построились индексы из-за не уникальности, тогда нужно просто удалить дубль
#59 by Demiurg
ВЫБРАТЬ Подзапрос.Период, Подзапрос.Регистратор, (ВЫБРАТЬ Хозрасчетный.Период КАК Период, Хозрасчетный.Регистратор КАК Регистратор, <измерения>, 1 КАК КоличествоЗаписей ИЗ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный) КАК Подзапрос Подзапрос.Период, Подзапрос.Регистратор, попробуйте найти такие записи
#60 by Hmster
хочешь сказать что проверка логической и ссылочной целостности не выдала тебе никаких сообщений? у тебя стояло "только тестирование" или "тестирование и исправление" ???
#61 by citrus
тестирование и исправление. ошибки были, но они поправились. загрузка все равно не проходит.
#62 by citrus
сейчас запустил ТИИ снова, поставил все галки кроме реинд и пересчет итогов.  посмотрим, может что-то напишет про пустые графы.
#63 by sanja26
классификатор адресов предлагали очистить?
#64 by Serg_1960
#65 by sanja26
))
#66 by MadHead
утилиту для теста файловых баз не пробовали запускать? ChkDBF или как-то так. Давно уже не доводилось файловые ковырять
#67 by Hmster
в данном случае не помогает у меня в базе на скуле склады не включались, база была не маленькой, вот и пришлось извращаться. Проверка целостности мне помогла.
#68 by citrus
ТИИ со всеми галками кроме Сжатия и Рестр прошло без ошибок, ТИИ с реструктуризацией сразу валится в ошибку. значения NULL на каком этапе очищаются? может выгрузку загрузку в файл еще сделать, а потом уже в SQL?
#69 by Hmster
у тебя итоги и реструктуризацию не сделает. можешь не париться
#70 by Hmster
щас попробую в демке сделать
#71 by Hmster
в демке ситуацию не получилось смоделировать. нашел журнал регистрации. вот что мне ТИИ писало Субконто регистров бухгалтерии. Хозрасчетный. Проверка уникальности записей    В таблице AccRgED509 обнаружены неуникальные записи со значениями полей:    Неуникальность записей устранена
#72 by citrus
это такой подробный отчет ТИИ дает? это при какой галке он такие неуникальности чистит?
#73 by Hmster
при 2х галках проверки целостности. фишка в том что на демке модуляция проблемы не работает. я позже попробую еще. я бы предложил тебе создать узел плана обмена и выгружать кусками с разделением по метаданным
#74 by H A D G E H O G s
Здорово всем.
#75 by citrus
привет. сейчас доеду до офиса и можно будет посмотреть.
#76 by citrus
H A D G E H O G s я на связи как будет возможность стучи.
#77 by МихаилМ
+ с учетом, что ошибка может быть в нескольких таблицах проще отключить создание всех уникальных индексов. при этом сохранить в таблицу tsql команды создания индексов. затем исполнить скрипты из таблицы с теми, которые не исполнятся разбираться персонально. тк в некоторых случаях записи нужно сгруппировать или удалить дубли или удалить совсем. в любом случае  потребуется только 1 загрузка из dt
#78 by citrus
т.е. идея такая - при загрузке отключить формирование индексов и потом их сформировать отдельно? но как отключить это процесс во время загрузки?
#79 by Hmster
а можешь не смотря на ошибку загрузки запустить базу и узнать какая таблица парит мозг через ПолучитьСтруктуруХраненияБазыДанных. может его выгрузить в файл, потом очистить, потом загрузить?
#80 by citrus
вообще эта SQL база после такой глючной загрузки запускается и даже документы вроде все на месте. Оборотки сравнить не получается, т.к. итоги отключил. Сейчас в SQL запустил процесс включения итогов, посмотрим чем закончится. Если включение итогов пройдет нормально, может так и оставить? Как можно проверить базу на пригодность к работе после такого перехода на SQL?
#81 by Hmster
логика подсказывает что регистр у тебя не мог весь загрузиться, вопрос были ли в очереди на загрузку еще какие-нибудь регистры или только этим обойдется...
#82 by citrus
ну оборотка это и покажет, опять же ТИИ можно сделать может где битые ссылки остались. так?
#83 by acsent
там еще нужно лишние субконто удалять. моя обработка этого не делает. Вот код из кд Для каждого СтрокаТаблицы Из Объект.Движения.Хозрасчетный Цикл
#84 by citrus
а вообще крайняя идея это РИБ. надо будет сегодня ночью попробовать запустить.
#85 by МихаилМ
пример в надо изменить для создания индекса. + логировать
#86 by Hmster
вообще можно попробовать на копии переписать все движения по глючному регистру. может не много времени займет если в транзакции.
#87 by citrus
это регистр бух хозрасчетный )))) 99% времени
#88 by Hmster
через внешнее соединение долго будет перегружать движения? не пробовал. может так будет проще всего?
#89 by romix
У меня падала загрузка в 7-й базе, пока я не создал пустую конфу с константой и не загрузил поверх нее.
#90 by citrus
"пустую конфу с константой" это как?
#91 by МихаилМ
это это ромикс приивсем моем уважении не угадал.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С