Имя: Пароль:
1C
 
1C SQL выгрузка и загрузка большой базы
0 TasStas
 
22.02.07
19:27
Помоги решить проблему.
Стоит windows 2000 server, SQL 2000, база разрослась до невероятных размеров. В ней имеются и удаленные объекты и прочее разное. Для наведения порядка и сжатия базы посоветовали произвести выгрузку базы а потом ее загрузить в чистую конфигурацию. При проведении выгрузки было замечено что 1сv25 создает временный файл в каталоге базы данных который называется 1Cv77.dat. Размер этого файла растет в процессе выгрузки и достигает перед ее окончанием 9.2 гига. После этого получаем в указанном каталоге зипованный файл размером 164 метра. В котором содержатся файлы 1Cv7.md, Users.usr, 1Cv77.dat. Но размер файла 1Cv77.dat в этом случае составляет 1,4 гига.
При попытке произвести загрузку получаем сообщение типа "Ощибка базы данных". Думаю что это проблема встроенного в 1С zipa  - не хочет работать с файлами размером больше 2 гига. Но как изменить встроенный зиповщик не знаю. Может кто встречался с такими проблемами то помогите пожалуйста. Заранее благодарен.
2 mikecool
 
22.02.07
19:29
(0) может выполнить следующее:
1) сделать копию
2) удалить все помеченные
3) обрезать базу
3 Мулька
 
22.02.07
19:33
(0) это и есть проблема встроенного зиповщика. См.(1). А архивы - только СКЛ-бэкап + каталог базы и РАРить
4 TasStas
 
22.02.07
20:14
Все что вы говорите это хорошо. Только база составляет 100 гиг и любые действия приводят к времени 1-2суток, и это в лучшем случае. Удаление тоже хорошая операция  - скорость удаления 80 доков в минуту и это в лучшем случае. Но смысл вот в чем. Пробовали удалять документы но при этом MDF файл не изменяется даже после проведения операций типа Shrink. Идея состояла в том чтобы 1С сама выгрузила данные и потом их загрузить. (Были на различных форумах разговоры по поводу что 1с не дает создать файл 1Сv77.dat то это вероятно больше вопрос Fat32)Выгружает 1С в файл 1Сv77.dat вроде нормально. Но вот поймать тот момент когда 1С уже закончила выгружать данные но еще не начала их архивировать не могу. Потом при выполнении операции загрузки будет возможность подменить файл 1Сv77.dat на оригинальный т.е. не урезанный архиватором.
5 mikecool
 
22.02.07
20:17
(4) если средствами 1С бушь сворачивать, то твои объемы за неделю и то врядли свернутся... резать надо "наживую" скулем и не допускать до таких размеров...
у нас при подрастании к 30Г уже ощущаются тормоза(конфига правда корявая)..
6 TasStas
 
22.02.07
20:21
Конфа у меня конечно кривая и очень дутая. Но это было до меня, а я имею такой подарок.Вот.
7 TasStas
 
22.02.07
20:23
По поводу недели то это не так. Выгружает чуть больше суток. И как я уже писал объем получается 9.2 гига.
8 Lyopik
 
22.02.07
21:48
(0)"Ощибка базы данных" - может свободного места на винте не хватает?
а вообще, табе пора делать архивирование периода
9 DeiMos
 
22.02.07
22:01
А в чём проблемы?
Закрывайте фирму на пол-годика, наводите порядок в ИТ, потом с новыми силами открывайте...

Это по-любому дешевле, чем содержать нормального администратора 1С + нормального Программиста 1С 2-3 года ДО возникновения этой проблемы...

На месте владельца этого бизнеса, - я бы так и поступил...
Уехал бы на пол-года на Канары, закрыв фирму...
Вернулся бы когда - у меня уже всё в шоколаде было бы...
10 Скользящий
 
22.02.07
22:06
(9) Добряк.
11 Stas_S
 
22.02.07
22:49
Тут только скулем надо выкручиваться
а на будущее не допускать разрастания более 10гигов
12 Zaval
 
22.02.07
23:46
(0) Подумай вот о чем. Сделать пустую, перенести туда справочники, остатки на 1.01.07, доки за январь и февраль. Старую оставить для справок. Между идентичными базами не очень геморно...
13 Lyopik
 
23.02.07
00:00
(12) это и есть архивирование периода. Только не на 1.01.07, а на 31.12.06
14 Zaval
 
23.02.07
00:04
Сам-то понял, что написал? Архивирование периода - нечто другое, остатки нужны именно на 1.01, но вносятся они 31.12. Не путай.
15 romix
 
23.02.07
00:04
(0) Посмотри закрываются ли регистры остатков (они должны закрываться).
Свертка базы как (12) тоже рулит.
Я вот думаю а не пропатчить ли 1С-ку чтобы зип/анзип не делался при выгрузке-загрузке...
16 romix
 
23.02.07
00:07
Или при закрытии файла dat MessageBox вываливать.
Тогда можно будет руками зазиповать.
17 romix
 
23.02.07
00:08
А при открытии dat опять же  мессадж бокс. Можно будет руками подсунуть правильный dat.
18 DeiMos
 
23.02.07
00:11
(9+): Наймите бабушек-бухгалтерш.
Они за месяц вам начальные остатки заколотят в пустую базу.

ИМХО, нормальный вариант (по-любому дешевле, чем пригласить нормального 1С-SQL-специалиста на решение возникшей /накопившейся/ вашей проблемы...).
19 Lyopik
 
23.02.07
00:12
(15) тебе и карты в руки, думаю, многие будут благодарны!
20 romix
 
23.02.07
00:12
Короче я могу такую патчилку замутить если кому-то надо (мне не на чем проверять, но сделать относительно легко).
21 romix
 
23.02.07
00:14
Автор ветки хорошо описал проблему, щас попробую патчер сделать.
22 Zaval
 
23.02.07
00:14
(16) Неплохо бы. Я когда-то пробовал переносить без архивации, но дат уже корявый получался (может кривые руки были:))
23 Lyopik
 
23.02.07
00:27
(20) все в ожидании
24 ShoGUN
 
23.02.07
00:57
(21) Так Орефков вроде менял стандартную dll-ку на другую, работающую с архивами больше 2 гигов... Надо тему поискать...
25 romix
 
23.02.07
01:04
кажется получилось... Надо проверить...
26 romix
 
23.02.07
01:07
Не скажу что у меня круче чем у Орефкова... Заменять зиповалку правильнее конечно.
27 romix
 
23.02.07
01:17
28 romix
 
23.02.07
01:20
(24) Че-то поиск не находит эту разработку...
29 romix
 
23.02.07
01:26
Порядок установки:
положить Hook_1C.dll в BIN
положить туда же patch_Hook_1C.exe, запустить (при закрытой 1С).

создать папку Plugins, в нее кинуть содержимое http://x-romix.narod.ru/Unload_Dat_Fix.rar
, чтобы получилось
bin\plugins\Unload_Dat_Fix\plugin_unload_dat_fix.dll

Создать файл Hook_1c.ini в папке Plugins вида

[Загрузка]
LoadDll=Unload_Dat_Fix\plugin_Unload_Dat_Fix.dll
30 ShoGUN
 
23.02.07
01:27
(28) Пардон, я сглючил. Это он предлагал так проблему решать вот здесь
v7: Самый раздражающий недостаток 7.7
А решение есть аналогичное твоему:
http://www.1cpp.ru/wiki/?wakka=DownloadAll&v=47v
31 romix
 
23.02.07
01:29
Снос - закомментировать в ini загрузку dll (символ ; - начало комментария).
Или восстановить seven.dll из seven.dll.bak.
32 ASV
 
23.02.07
03:07
p:=pos('.dat',s);
думаю лучше заменить на 1Cv77.dat, иначе месадж достанет
33 ASV
 
23.02.07
03:13
34 ASV
 
23.02.07
03:14
только грузить нужно в непустую базу
35 TasStas
 
23.02.07
11:36
Огромное спасибо Всем за советы, попробую применить их на практике. О результатах доложу.
36 romix
 
23.02.07
11:51
(30) Я так понял что это кусок функции, которую нашли отладчиком. А как это запустить?...
37 romix
 
23.02.07
11:52
(32) Точно.
(35) Стучись в аську если будут вопросы...
38 romix
 
23.02.07
12:35
Не срабатывает при загрузке... Поправлю...
39 romix
 
23.02.07
12:50
Ну все, кажется получилось.
40 romix
 
23.02.07
16:04