Имя: Пароль:
1C
 
Перенос sql базы на файловую
0 Сибиряк_1Ц
 
30.09.21
02:15
Пробовал перенести: 1. выгрузкой загрузкой 2. через обработку обмена (загрузив конфигурацию), не получается. Постоянно выскакивает ошибка: Ошибка DMBS: Превышен максимально допустимый внутренний размер файла
Есть опыт в решении вопроса?
1 Aleksey
 
30.09.21
02:19
Конечно, но тебе они не помогут
2 ДенисЧ
 
30.09.21
05:27
Удалить интересные видео из файловых вложений для начала.
3 Обработка
 
30.09.21
05:45
(0) Это означает что файловую вам не создать.
Какая-то таблица уже перешла пределы размеров для файловой базы.
Надо или свертывать или оставаться или постгри.
4 Гипервизор
 
30.09.21
07:47
(0) Маловероятно, но уточню. Платформа у вас >= 8.3.8?
5 Winnie Buh
 
30.09.21
08:11
(0)> Ошибка DMBS: Превышен максимально допустимый внутренний размер файла

что именно не понятно в этом сообщении?
достигнут предельный размер внутреннего файла для файлового варианта
если это не глюк, то вариант только один - сворачивать исходную базу, из которой производится выгрузка,
и да, надо было указать конфигурацию, а то может у вас там ERP
6 Chai Nic
 
30.09.21
08:16
1cd - это по сути контейнер с файлами. Каждый "файл" - это таблица данных или индекс или ещё какая хрень. Так вот, у внутреннего файла есть ограничение в 4Гб. С версии 8.3.8 это ограничение можно "подвинуть" до 6Гб, перейдя на увеличенный размер страницы. Ограничение в данном случае не техническое, а прибито гвоздями, но селяви - это 1с.
7 Winnie Buh
 
30.09.21
08:16
(4) 100% новая база создавалась на платформе выше 8.3.8 со страницами 8К и расширенным лимитом до 6Гб на внутренний файл,
играться утилитой CNVDBFL.EXE с размером страниц смысла не имеет
8 Мультук
 
гуру
30.09.21
08:18
(0)

Какова цель переноса в файловую?
9 Chai Nic
 
30.09.21
08:20
Если цель в том, чтобы легализоваться с пиратки, но при этом не платить за сервер, то путь только один - предварительно найти в sql самую жирную таблицу и принять меры к её уменьшению.
10 Гипервизор
 
30.09.21
09:04
(7) Ну, чудеса случаются. Кто знает, что за конфигурация и насколько старая.
11 VS-1976
 
30.09.21
09:12
(0) попробуй в конфигураторе сделать исправления, типа пересоздание индекса и таблиц, а потом выгрузи в дт
12 Chai Nic
 
30.09.21
09:29
Лучше уговорите хозяина потратиться на сервер 1с. Всего то полсотни тыр, и проблема решена. А если пользователей до 5, то и мини-сервер пойдет за 14400.
13 Winnie Buh
 
30.09.21
09:42
странно, что при ошибке с сообщением о превышении максимального размера ТС ни словом не обмолвился про фактический размер базы
14 Мимохожий Однако
 
30.09.21
09:46
ОФФ: ТС закопали...
15 Конструктор1С
 
30.09.21
10:21
Если скуль, стрельни в SSMS скриптом

USE test_base

GO

SELECT
    tab.name AS TableName,
    part.rows,
    CAST(SUM(allocat.total_pages) * 8 / 1024.00 AS numeric(20,2)) AS TotalMB,
    CAST(SUM(allocat.used_pages) * 8 / 1024.00 AS numeric(20,2)) AS UsedMB,
    CAST(SUM(allocat.total_pages) - SUM(allocat.used_pages) * 8 / 1024.00 AS numeric(20,2)) AS UnusedMB
FROM
    sys.tables tab
INNER JOIN      
    sys.indexes idx ON tab.object_id = idx.object_id
INNER JOIN
    sys.partitions part ON idx.object_id = part.object_id AND idx.index_id = part.index_id
INNER JOIN
    sys.allocation_units allocat ON part.partition_id = allocat.container_id
GROUP BY
    tab.name, part.rows
ORDER BY
    TotalMB DESC

GO
16 Конструктор1С
 
30.09.21
10:22
USE test_base

тут нужно поменять

USE <имя_твоей_базы>
17 Конструктор1С
 
30.09.21
10:30
Потом смотри какие у тебя самые большие таблицы, и прикидывать что в них за данные. Может там какой-нибудь мусор типа служебных логов, или вложенные файлы
18 Конструктор1С
 
30.09.21
10:37
Сорри, пару скобочек потерял

USE test_base

GO

SELECT
    tab.name AS TableName,
    part.rows,
    CAST(SUM(allocat.total_pages) * 8 / 1024.00 AS numeric(20,2)) AS TotalMB,
    CAST(SUM(allocat.used_pages) * 8 / 1024.00 AS numeric(20,2)) AS UsedMB,
    CAST((SUM(allocat.total_pages) - SUM(allocat.used_pages)) * 8 / 1024.00 AS numeric(20,2)) AS UnusedMB
FROM
    sys.tables tab
INNER JOIN      
    sys.indexes idx ON tab.object_id = idx.object_id
INNER JOIN
    sys.partitions part ON idx.object_id = part.object_id AND idx.index_id = part.index_id
INNER JOIN
    sys.allocation_units allocat ON part.partition_id = allocat.container_id
GROUP BY
    tab.name, part.rows
ORDER BY
    TotalMB DESC

GO
19 Сибиряк_1Ц
 
30.09.21
11:40
Спасибо, понял. (все лицензионное!)
20 Winnie Buh
 
30.09.21
11:47
(19) это прекрасно, но в файловом варианте данная база все равно не взлетит
21 VladZ
 
30.09.21
11:50
(0) Есть оптимальное решение: оставить на SQL.
22 Конструктор1С
 
30.09.21
12:03
(19) селекты крутить через ssms не запрещено лицензией
23 Winnie Buh
 
30.09.21
12:03
(21) как понимаю автору нужно запустить копию базы локально на своем ПК для каких-то доработок
24 VladZ
 
30.09.21
12:08
(23) Поднять SQL-сервер для таких задач.
25 Winnie Buh
 
30.09.21
12:10
(24) это слишком простой и очевидный вариант,
автор хочет файловую с танцами и бубнами