|   |   | 
| 
 | Перевод большой базы в SQL. | ☑ | ||
|---|---|---|---|---|
| 0
    
        citrus 12.02.13✎ 10:43 | 
        Всем доброго дня.
  Появилась задача перевести в SQL БП8 2.0 Сейчас база файловая, объем 20гб! При попытке загрузить в SQL пишет, что не уникальное значение пытается записаться в уникальную колонку и все валится. Сделали ТИИ, все пункты кроме пересчета итого и реструктуризации прошли. На этих пунктах валится по нехватки памяти. Чекбд ошибок не находит. Мы в тупике. Что делать? | |||
| 1
    
        Zebburius 12.02.13✎ 10:45 | 
        Попробуйте создать РБД, в которой второй узел на SQL, а потом через их синхронизацию (желательно не через файл, а какой-нибудь COM) проведите первоначальный обмен.     | |||
| 2
    
        Maxus43 12.02.13✎ 10:47 | 
        реструктуризацию надо бы всё таки. делайте на мощном компе с большим количеством мозгов     | |||
| 3
    
        ZanderZ 12.02.13✎ 10:47 | 
        (0) обрезать...     | |||
| 4
    
        Живой Ископаемый 12.02.13✎ 10:47 | 
        какое значение большая она или нет?
  если была маленькой и такая же ошибка - как бы тему назвал? | |||
| 5
    
        citrus 12.02.13✎ 10:48 | 
        2) кол-во мозгов значения не имеет. запускали на сервере >15гб ОЗУ. Когда процесс !С съедает более 1.5 гб памяти вылетает ошибка.     | |||
| 6
    
        wise 12.02.13✎ 10:48 | 
        делай ВСЁ на х64     | |||
| 7
    
        Живой Ископаемый 12.02.13✎ 10:49 | 
        2(3) и что случится?     | |||
| 8
    
        H A D G E H O G s 12.02.13✎ 10:49 | 
        Текст ошибке в студию!     | |||
| 9
    
        wise 12.02.13✎ 10:50 | 
        6+ было ТАКЖЕ - помогло...     | |||
| 10
    
        citrus 12.02.13✎ 10:50 | 
        (3)  пробовали свернуть. зависает на регистре РАСХОДЫУСН и так же по памяти валится. причем сворачиваем первые 2 месяца учета.     | |||
| 11
    
        krbIso 12.02.13✎ 10:50 | 
        (6)не поможет 
  (0)попробуйте найти эти неуникальные значения | |||
| 12
    
        citrus 12.02.13✎ 10:51 | 
        (6) делать на х64.  64 винда или 1С или все вместе? :)     | |||
| 13
    
        citrus 12.02.13✎ 10:51 | 
        (11) а где и как их искать?     | |||
| 14
    
        H A D G E H O G s 12.02.13✎ 10:52 | 
        (13) Мы бы сказали, если бы ты хотя бы текст ошибки написал, поклонник телепатов хренов.     | |||
| 15
    
        Maxus43 12.02.13✎ 10:53 | 
        в скуле найти можно, а вот в файловой я хз как)     | |||
| 16
    
        wise 12.02.13✎ 10:53 | 
        (12) винда     | |||
| 17
    
        H A D G E H O G s 12.02.13✎ 10:55 | 
        (15) Serg_1960 даже обработку писал под это дело.     | |||
| 18
    
        wise 12.02.13✎ 10:55 | 
        16+ ГДЕ ж ты клиента ТАКОГО(х64) возьмёшь...     | |||
| 19
    
        Maxus43 12.02.13✎ 10:55 | 
        (18) на линупсе) 8.3     | |||
| 20
    
        ДенисЧ 12.02.13✎ 10:57 | 
        создать новую базу на скуле.
  Через выгрузку-загрузку xml перенести данные. | |||
| 21
    
        citrus 12.02.13✎ 10:59 | 
        (20) сколько будет весть такая XML'ка?  нереально!     | |||
| 22
    
        H A D G E H O G s 12.02.13✎ 10:59 | 
        (20) Бугага.
  Товарищь неосиливает переписать текст ошибки. Спасибо, пошел писать код в хорошем настроении. | |||
| 23
    
        МихаилМ 12.02.13✎ 11:01 | 
        (0)
  если с скл разбираетесь, вот заготовка ddl триггера для отмены индекса v8: Ошибка в базе. Ошибка в таблице Config. | |||
| 24
    
        citrus 12.02.13✎ 11:02 | 
        (22) да успокойся ты умник. сейчас заливается и будет скрин ошибки.     | |||
| 25
    
        Maxus43 12.02.13✎ 11:03 | 
        (23) на этапе загрузки у них, базы как таковой на скуле нету...     | |||
| 26
    
        H A D G E H O G s 12.02.13✎ 11:04 | 
        (24) Я спокоен. Спасибо за заботу.     | |||
| 27
    
        ДенисЧ 12.02.13✎ 11:05 | 
        (21) кусками.     | |||
| 28
    
        МихаилМ 12.02.13✎ 11:08 | 
        (25)
  база есть. таблиц нету | |||
| 29
    
        citrus 12.02.13✎ 11:19 | 
        (27) т.е. сначала перенести доки, потом еще их проводить же надо?     | |||
| 30
    
        ZanderZ 12.02.13✎ 11:20 | 
        (29) можно отдельно движения потом перенести     | |||
| 31
    
        citrus 12.02.13✎ 15:11 | 
        (30) ну это нереальная история.     | |||
| 32
    
        citrus 12.02.13✎ 15:11 | 
        Ребята, вот текст ошибки
  Ошибка загрузки информационной базы. В информационную базу загружены не все данные по причине: Попытка вставки неуникального значения в уникальный индекс: 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). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1 | |||
| 33
    
        orefkov 12.02.13✎ 15:30 | 
        (0)
  Можно попробовать взять это: http://infostart.ru/public/166557/ и ковырять файл базы данных, по таблице AccRgAT2495, искать, где дубли. Исправить. | |||
| 34
    
        H A D G E H O G s 12.02.13✎ 15:35 | 
        (32) Тупо найти этот регистр накопления и отключить по нему итоги.     | |||
| 35
    
        ДенисЧ 12.02.13✎ 15:43 | 
        (29) Сначала справочники. Потом доки. Видами и периодами. Сразу с движениями.     | |||
| 36
    
        1Сергей 12.02.13✎ 15:47 | 
        20 gb файловая? и она ещё не загнулась?     | |||
| 37
    
        ДенисЧ 12.02.13✎ 15:47 | 
        (36) Как видишь, уже загибается :-)     | |||
| 38
    
        citrus 12.02.13✎ 16:31 | 
        (37) вообще она еще жива  и работает, но ооооооочень медленно )     | |||
| 39
    
        citrus 12.02.13✎ 16:32 | 
        (34) а как определить какой это регистр?     | |||
| 40
    
        citrus 12.02.13✎ 16:32 | 
        может вообще выключить итоги во всех и так переносить, а в sql  е уже включить. О! идея! :)
  что скажете? | |||
| 41
    
        Sammo 12.02.13✎ 16:50 | 
        (40) Или так
  (39) Что-то вроде получитьструктурухраненияБД() | |||
| 42
    
        citrus 12.02.13✎ 21:51 | 
        Новости с фронта:
  отключил итоги во всех регистрах попробовал сделать реструктуризацию, вышла ошибка переполнения памяти сделал сжатие - прошло нормально, база стала 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). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1 идеи есть? :) | |||
| 43
    
        H A D G E H O G s 12.02.13✎ 21:59 | 
        Я могу подключиться и глянуть.     | |||
| 44
    
        acsent 12.02.13✎ 22:02 | 
        (32) АААА, знакомая ошибка. У тебя в регистре бухгалтерии неправильные субконто стоят. Нужно сделать приведение типов     | |||
| 45
    
        acsent 12.02.13✎ 22:03 | 
        держи с барского плеча
  http://sdrv.ms/12c3jHt | |||
| 46
    
        citrus 12.02.13✎ 22:33 | 
        (45) спасибо :)  запустил, что-то обрабатывает.  как будут новости сообщу :)     | |||
| 47
    
        Hmster 13.02.13✎ 00:11 | 
        вообще ТИИ должно было помочь.
  учу как делать такую ошибку в бухе. берем бухию 20, где нет учета по складам. делаем документы с движениями по счетам ТМЦ. Включаем склады. Теперь если выгрузить ДТ и попробовать загрузить в скуль будет писать ошибку не уникальности индекса, но ТИИ нормально спасает | |||
| 48
    
        citrus 13.02.13✎ 00:45 | 
        (47) ТИИ валится на пересчете итогов и реструктуризации.
  хотя когда итоги отключил, один фиг ошибка. | |||
| 49
    
        citrus 13.02.13✎ 00:46 | 
        (45) привел типы твоей обработкой и один фиг ошибка
  Ошибка загрузки информационной базы. В информационную базу загружены не все данные по причине: Попытка вставки неуникального значения в уникальный индекс: 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). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1 | |||
| 50
    
        citrus 13.02.13✎ 00:47 | 
        настораживает в этой ошибке дата "Jan  1 2001 12:00AM" это запись такая где то в базе или документ на этой дате?     | |||
| 51
    
        H A D G E H O G s 13.02.13✎ 00:51 | 
        (50) Давай подключусь     | |||
| 52
    
        Demiurg 13.02.13✎ 00:51 | 
        пересчитайте итоги перед выгрузкой     | |||
| 53
    
        Serg_1960 13.02.13✎ 01:03 | 
        (имхо) Вообще-то это проблема даже не в индексах, или в  итогах... Это "пустые" записи. Фича файловой - неуникальные значения в индексах не рушат базу, как в SQL.
  PS: вон, в соседней ветке сижу, подсказываю как определить что за таблица глючная - v8: Слетела база 1с8 , не проходит проверку на целосность | |||
| 54
    
        Hmster 13.02.13✎ 01:07 | 
        (48) ТИИ при проверке логической и физической целостности, даже если оставить "не изменять" исправляет данную ошибку.     | |||
| 55
    
        citrus 13.02.13✎ 01:13 | 
        (51) давай. лучше завтра днем. через что амми или тим?     | |||
| 56
    
        H A D G E H O G s 13.02.13✎ 01:14 | 
        (55) Лучше Тим, стучи в аську
  ICQ#: 374-881-272 | |||
| 57
    
        citrus 13.02.13✎ 01:16 | 
        (52) Вячеслав, я уже писал, что пересчет не работает. Падает по нехватке памяти. Правда я отключил потом итоги и все равно заливка в SQL падает.     | |||
| 58
    
        Demiurg 13.02.13✎ 01:19 | 
        возможно загрузиться в бд2, там отличия
  возможно данные загрузились целиком уже, но не построились индексы из-за не уникальности, тогда нужно просто удалить дубль | |||
| 59
    
        Demiurg 13.02.13✎ 01:21 | 
        ВЫБРАТЬ 
  Подзапрос.Период, Подзапрос.Регистратор, <измерения>, СУММА(Подзапрос.КоличествоЗаписей) КАК КоличествоЗаписей ИЗ (ВЫБРАТЬ Хозрасчетный.Период КАК Период, Хозрасчетный.Регистратор КАК Регистратор, <измерения>, 1 КАК КоличествоЗаписей ИЗ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный) КАК Подзапрос СГРУППИРОВАТЬ ПО Подзапрос.Период, Подзапрос.Регистратор, <измерения> ИМЕЮЩИЕ СУММА(Подзапрос.КоличествоЗаписей) > 1 попробуйте найти такие записи | |||
| 60
    
        Hmster 13.02.13✎ 01:27 | 
        (0) хочешь сказать что проверка логической и ссылочной целостности не выдала тебе никаких сообщений?
  у тебя стояло "только тестирование" или "тестирование и исправление" ??? | |||
| 61
    
        citrus 13.02.13✎ 01:28 | 
        (60) тестирование и исправление. ошибки были, но они поправились. загрузка все равно не проходит.     | |||
| 62
    
        citrus 13.02.13✎ 01:29 | 
        сейчас запустил ТИИ снова, поставил все галки кроме реинд и пересчет итогов.  посмотрим, может что-то напишет про пустые графы.     | |||
| 63
    
        sanja26 13.02.13✎ 01:39 | 
        классификатор адресов предлагали очистить?     | |||
| 64
    
        Serg_1960 13.02.13✎ 01:49 | 
        "Не смешите мои копыта"(с)
  Анекдот в тему: "Мотор не заводится. Я всё уже перепробывал - фары протирал, бампер пинал..." | |||
| 65
    
        sanja26 13.02.13✎ 01:54 | 
        ))     | |||
| 66
    
        MadHead 13.02.13✎ 02:34 | 
        утилиту для теста файловых баз не пробовали запускать? ChkDBF или как-то так. Давно уже не доводилось файловые ковырять     | |||
| 67
    
        Hmster 13.02.13✎ 07:36 | 
        (66) в данном случае не помогает 
  (61) у меня в базе на скуле склады не включались, база была не маленькой, вот и пришлось извращаться. Проверка целостности мне помогла. | |||
| 68
    
        citrus 13.02.13✎ 08:08 | 
        ТИИ со всеми галками кроме Сжатия и Рестр прошло без ошибок, ТИИ с реструктуризацией сразу валится в ошибку.
  см скрин http://s006.radikal.ru/i215/1302/eb/b0fed2879392.jpg значения NULL на каком этапе очищаются? может выгрузку загрузку в файл еще сделать, а потом уже в SQL? | |||
| 69
    
        Hmster 13.02.13✎ 10:12 | 
        (68) у тебя итоги и реструктуризацию не сделает. можешь не париться     | |||
| 70
    
        Hmster 13.02.13✎ 10:14 | 
        щас попробую в демке сделать     | |||
| 71
    
        Hmster 13.02.13✎ 11:03 | 
        в демке ситуацию не получилось смоделировать.
  нашел журнал регистрации. вот что мне ТИИ писало Субконто регистров бухгалтерии. Хозрасчетный. Проверка уникальности записей В таблице AccRgED509 обнаружены неуникальные записи со значениями полей: Period = DATETIME(2011,4,25,15,38,37) Recorder = 173:A520001D7D04DC0211E081D31BEEB9B0 LineNo = 23 Kind = 448:BEE54541A4A688B745534FDD1DF6EB52 Correspond = 1 Неуникальность записей устранена | |||
| 72
    
        citrus 13.02.13✎ 11:10 | 
        это такой подробный отчет ТИИ дает? это при какой галке он такие неуникальности чистит?     | |||
| 73
    
        Hmster 13.02.13✎ 11:43 | 
        (72) при 2х галках проверки целостности. фишка в том что на демке модуляция проблемы не работает. я позже попробую еще.
  я бы предложил тебе создать узел плана обмена и выгружать кусками с разделением по метаданным | |||
| 74
    
        H A D G E H O G s 13.02.13✎ 11:52 | 
        Здорово всем.     | |||
| 75
    
        citrus 13.02.13✎ 11:55 | 
        (74) привет. сейчас доеду до офиса и можно будет посмотреть.     | |||
| 76
    
        citrus 13.02.13✎ 14:00 | 
        (74)   H A D G E H O G s я на связи как будет возможность стучи.     | |||
| 77
    
        МихаилМ 13.02.13✎ 14:36 | 
        +(23)
  с учетом, что ошибка может быть в нескольких таблицах проще отключить создание всех уникальных индексов. при этом сохранить в таблицу tsql команды создания индексов. затем исполнить скрипты из таблицы с теми, которые не исполнятся разбираться персонально. тк в некоторых случаях записи нужно сгруппировать или удалить дубли или удалить совсем. в любом случае потребуется только 1 загрузка из dt | |||
| 78
    
        citrus 13.02.13✎ 15:17 | 
        (77) т.е. идея такая - при загрузке отключить формирование индексов и потом их сформировать отдельно?
  но как отключить это процесс во время загрузки? | |||
| 79
    
        Hmster 13.02.13✎ 15:21 | 
        (78) а можешь не смотря на ошибку загрузки запустить базу и узнать какая таблица парит мозг через ПолучитьСтруктуруХраненияБазыДанных.
  может его выгрузить в файл, потом очистить, потом загрузить? | |||
| 80
    
        citrus 13.02.13✎ 15:28 | 
        (79) вообще эта SQL база после такой глючной загрузки запускается и даже документы вроде все на месте.
  Оборотки сравнить не получается, т.к. итоги отключил. Сейчас в SQL запустил процесс включения итогов, посмотрим чем закончится. Если включение итогов пройдет нормально, может так и оставить? Как можно проверить базу на пригодность к работе после такого перехода на SQL? | |||
| 81
    
        Hmster 13.02.13✎ 15:31 | 
        (80) логика подсказывает что регистр у тебя не мог весь загрузиться, вопрос были ли в очереди на загрузку еще какие-нибудь регистры или только этим обойдется...     | |||
| 82
    
        citrus 13.02.13✎ 15:33 | 
        (81) ну оборотка это и покажет, опять же ТИИ можно сделать может где битые ссылки остались.
  так? | |||
| 83
    
        acsent 13.02.13✎ 15:34 | 
        там еще нужно лишние субконто удалять. моя обработка этого не делает.
  Вот код из кд Для каждого СтрокаТаблицы Из Объект.Движения.Хозрасчетный Цикл ВидыСубконтоКУдалению = Новый Массив; Для Каждого ЭлементСубконто Из СтрокаТаблицы.СубконтоДт Цикл Если СтрокаТаблицы.СчетДт.ВидыСубконто.Найти(ЭлементСубконто.Ключ, "ВидСубконто") = Неопределено Тогда ВидыСубконтоКУдалению.Добавить(ЭлементСубконто.Ключ); КонецЕсли; КонецЦикла; Для каждого ВидСубконто Из ВидыСубконтоКУдалению Цикл СтрокаТаблицы.СубконтоДт.Удалить(ВидСубконто); КонецЦикла; ВидыСубконтоКУдалению.Очистить(); Для Каждого ЭлементСубконто Из СтрокаТаблицы.СубконтоКт Цикл Если СтрокаТаблицы.СчетКт.ВидыСубконто.Найти(ЭлементСубконто.Ключ, "ВидСубконто") = Неопределено Тогда ВидыСубконтоКУдалению.Добавить(ЭлементСубконто.Ключ); КонецЕсли; КонецЦикла; Для каждого ВидСубконто Из ВидыСубконтоКУдалению Цикл СтрокаТаблицы.СубконтоКт.Удалить(ВидСубконто); КонецЦикла; | |||
| 84
    
        citrus 13.02.13✎ 15:34 | 
        а вообще крайняя идея это РИБ.
  надо будет сегодня ночью попробовать запустить. | |||
| 85
    
        МихаилМ 13.02.13✎ 15:41 | 
        (78)
  пример в (23) надо изменить для создания индекса. + логировать http://msdn.microsoft.com/ru-ru/library/ms173781.aspx | |||
| 86
    
        Hmster 13.02.13✎ 15:41 | 
        (84) вообще можно попробовать на копии переписать все движения по глючному регистру. может не много времени займет если в транзакции.     | |||
| 87
    
        citrus 13.02.13✎ 15:49 | 
        (86) это регистр бух хозрасчетный )))) 99% времени     | |||
| 88
    
        Hmster 13.02.13✎ 15:58 | 
        (87) через внешнее соединение долго будет перегружать движения? не пробовал. может так будет проще всего?     | |||
| 89
    
        romix 13.02.13✎ 16:03 | 
        У меня падала загрузка в 7-й базе, пока я не создал пустую конфу с константой и не загрузил поверх нее.     | |||
| 90
    
        citrus 13.02.13✎ 16:06 | 
        (89) "пустую конфу с константой" это как?     | |||
| 91
    
        МихаилМ 13.02.13✎ 17:36 | 
        это (90) это ромикс приивсем моем уважении 
  не угадал. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |