Как преобразовать файловую базу 1С в SQL версию?
За долгое время работы с 1С, файловая база данных, в которой изначально работало 3-4 бухгалтера, прирастает пользователями, а главное увеличивается в размерах и порой очень сильно.
В какой-то момент нагрузка на базу такая, что работать в файловой версии базы данных уже не представляется комфортным.
Решением становится перевод базы данных из файловой версии в SQL. Преимущества SQL сервера очевидны: доступ к базе осуществляется равномерно, за счет запросов к файлу базы данных программным обеспечением Microsoft SQL Server 2016, это позволяет сохранить очередность внесения изменений в таблицы, надежность хранения данных и скорость обработки запросов.
При росте кол-ва пользователей, работающих с базой данных – такой переход неизбежен.
Как перевести базу из файловой в SQL?
Идеальным способом, является выгрузка файла *.dt через Конфигуратор 1С. Это не сложный процесс, для этого необходимо под администратором базы данных зайти в Конфигуратор файловой базы данных, которую вы хотите переделать в SQL версию. В меню Администрирование выбрать «Выгрузка информационной базы» и сохранить файл с данными.
Далее необходимо создать пустую SQL базу данных через оснастку «Администрирование Сервера 1С Предприятия». Создание пустой базы данных через эту оснастку подробно описано в нашей статье по созданию базы данных для SQL: https://needsysadmin.ru/create-base-1c-on-sql-server рекомендуем ознакомиться с ней.
После того, как пустая база данных на сервере SQL создана, мы можем загрузить в нее ранее сохраненную выгрузку в формате *.dt предварительно добавив ее в список баз.
После этого уже можно опять использовать конфигуратор, но не старой, а новой базы данных, которую мы добавили, указав ее расположением localhost, т.е. наш SQL сервер и добавив ее в список ваших баз 1С.
Уже в этой новой базе необходимо выполнить почти те же действия в Конфигураторе, что и в начале статьи. То есть зайти в пункт Администрирование и выбрать пункт «Загрузить информационную базу». При загрузке необходимо выбрать файл выгрузки из файловой базы данных.
Таким образом вы сами можете осуществить, полный процесс преобразования и перехода из файловой базы 1С в SQL версию базы данных.
Посмотреть цены на сервера для 1С:
Перенос файловой базы 1С в SQL
Продукты фирмы «1С» имеют два основных решения для хранения данных: файловая база данных и база данных, размещенная на SQL Server (поддерживается как Microsoft SQL Server, так и бесплатный PostgreSQL, Oracle Database, IBM Db2). Файловые базы данных как правило используют небольшие компании с 1-10 пользователями, при этом быстрого роста объема базы данных в среднесрочной перспективе не предвидится. Если у Вас “тормозит база 1С”, вы постоянно отмечаете рост пользователей или на этапе проектирования решения Вы рассчитываете на достаточно быстрый рост объема данных, Вам пора задуматься о переезде файловой базы 1С на SQL Server.
Не получается самостоятельно перенести файловую базу на SQL сервер? Обратитесь за консультацией к специалистам IT-Lite. Узнать подробнее об условиях предоставления услуг можно у специалистов компании по телефону: 8(495)646-23-16 или отправив запрос на почту: sales@it-lite.ru.
Как перенести файловую базу 1С в SQL?
Перенос базы 1С производится в режиме 1С “Конфигуратор”.
Для переноса файловой базы на сервер SQL необходимо выполнить следующие действия:
- Открыть конфигуратор файловой базы.
Особые указания для настройки портов:
- Выбор портов осуществляется из диапазона от 10 000 до 60 000.
- Нужно исключить переключение с другими диапазонами.
- Пример выбора диапазонов: “ 23560:23591, 12560:12591”.
- Управляющий порт для работы из оснастки: 23540.
- Порт подключения из 1С: 23541.
- Пример подключения к кластеру 1С: “:23541; :23541”. Все настройки подключения к базам храниться здесь: *\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i
Создание специальных служб
- Запускаем командную строку от имени Администратора
- Команда: Sc create =»C:\Program Files\1cv8\8.3.4.465\bin\ragent.exe» DisplayName= type= own start= auto
- Вводим в командной строке команду “regedit”
- Находим строку
- Редактируем строку “ImagePath”
- Приводим строку “ImagePath” к виду: «C:\Program Files\1cv8\8.3.5.1098\bin\ragent.exe» -srvc -agent -regport 23541 -port 23540 -range 23560:23591 -d
Создание кластера 1С 8.3
Настройка кластера 1С 8.3:
- Подключаемся к первому серверу по порту: 23540
- Подключаемся ко второму серверу по порту: 23540
- На втором сервере удаляем полностью кластер:
Заходим в свойства сервера и ставим галочку:
Первый способ создания базы данных
Название базы в кластере 1С и на SQL сервере могут быть разные.
Заходим в директорию кластеры/локальный кластер/New/информационная база.
Указываем параметры информационной базы:
При отдельном сервере приложений 1С, адрес сервера баз данных может быть прописан в hosts.
Второй способ создания базы данных
Нажимаем кнопку “Добавить”.
Выбираем пункт “Создание информационной базы”.
Добавляем в 1С: Предприятие пустую базу, которая была создана в кластере 1С.
По окончанию загрузки нужно перезапустить Конфигуратор нажатием кнопки «Да»:
Когда мы рекомендует перенос файловой базы на клиент-серверный вариант
Наша практика показывает, что файловые базы данных являются оптимальным решением, пока объем базы не превысил 3 Гб.
Не удается осуществить перенос файловой базы на Microsoft SQL сервер самостоятельно? Оставьте запрос для специалистов IT-Lite: тел. 8(495)646-23-16, email: sales@it-lite.ru.
Как перевести базу 1с из sql в файловую
Принесли sql базу данных 1с77. удалось открыть только конфигуратор. как из sql базы сделать файловую?
выгрузить в файл
загрузить в пустую файловую базу
или тебе тока каталог базы принесли?:)
Если база скульная не очень большая. То через средства 1С 7.7 — Конфигуратор Администрирование выгрузить.
Получаешь архив выгрузки
Далее делаешь пустую папку. Добавляешь в список баз. Входишь в нее в конфигураторе. Далее Администрирование — Загрузить и тыкаешь архив выгрузки.
2 + 2 = 3.9999999999999999999999999999999.
Как перевести базу 1с из sql в файловую
Пробовал перенести: 1. выгрузкой загрузкой 2. через обработку обмена (загрузив конфигурацию), не получается. Постоянно выскакивает ошибка: Ошибка DMBS: Превышен максимально допустимый внутренний размер файла
Есть опыт в решении вопроса?
Конечно, но тебе они не помогут
Удалить интересные видео из файловых вложений для начала.
(0) Это означает что файловую вам не создать.
Какая-то таблица уже перешла пределы размеров для файловой базы.
Надо или свертывать или оставаться или постгри.
(0) Маловероятно, но уточню. Платформа у вас >= 8.3.8?
(0)> Ошибка DMBS: Превышен максимально допустимый внутренний размер файла
что именно не понятно в этом сообщении?
достигнут предельный размер внутреннего файла для файлового варианта
если это не глюк, то вариант только один — сворачивать исходную базу, из которой производится выгрузка,
и да, надо было указать конфигурацию, а то может у вас там ERP
1cd — это по сути контейнер с файлами. Каждый «файл» — это таблица данных или индекс или ещё какая хрень. Так вот, у внутреннего файла есть ограничение в 4Гб. С версии 8.3.8 это ограничение можно «подвинуть» до 6Гб, перейдя на увеличенный размер страницы. Ограничение в данном случае не техническое, а прибито гвоздями, но селяви — это 1с.
(4) 100% новая база создавалась на платформе выше 8.3.8 со страницами 8К и расширенным лимитом до 6Гб на внутренний файл,
играться утилитой CNVDBFL.EXE с размером страниц смысла не имеет
Какова цель переноса в файловую?
Если цель в том, чтобы легализоваться с пиратки, но при этом не платить за сервер, то путь только один — предварительно найти в sql самую жирную таблицу и принять меры к её уменьшению.
(7) Ну, чудеса случаются. Кто знает, что за конфигурация и насколько старая.
(0) попробуй в конфигураторе сделать исправления, типа пересоздание индекса и таблиц, а потом выгрузи в дт
Лучше уговорите хозяина потратиться на сервер 1с. Всего то полсотни тыр, и проблема решена. А если пользователей до 5, то и мини-сервер пойдет за 14400.
странно, что при ошибке с сообщением о превышении максимального размера ТС ни словом не обмолвился про фактический размер базы
ОФФ: ТС закопали.
Если скуль, стрельни в SSMS скриптом
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
тут нужно поменять
Потом смотри какие у тебя самые большие таблицы, и прикидывать что в них за данные. Может там какой-нибудь мусор типа служебных логов, или вложенные файлы
Сорри, пару скобочек потерял
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