Перенос баз 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 необходимо выполнить следующие действия:

  1. Открыть конфигуратор файловой базы.
  2. В конфигураторе необходимо выбрать пункт меню «Администрирование» и «Выгрузить информационную базу»:
  3. Перед запуском процесса выгрузки программа предложит путь, куда сохранить файл выгрузки.
  4. По окончанию выгрузки система выдаст сообщение об успешном завершении операции.
  5. Файл выгруженной базы имеет формат *.dt и находится по тому пути, что Вы указали при старте выгрузке.
  6. Создаем кластер:
  7. Особые указания для настройки портов:

  • Выбор портов осуществляется из диапазона от 10 000 до 60 000.
  • Нужно исключить переключение с другими диапазонами.
  • Пример выбора диапазонов: » 23560:23591, 12560:12591”.
  • Управляющий порт для работы из оснастки: 23540.
  • Порт подключения из 1С: 23541.
  • Пример подключения к кластеру 1С:
  • «:23541; :23541”. Все настройки подключения к базам храниться здесь: *\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i

Создание специальных служб

Создание кластера 1С 8.3

Настройка кластера 1С 8.3:

  • Подключаемся к первому серверу по порту: 23540
  • Подключаемся ко второму серверу по порту: 23540
  • На втором сервере удаляем полностью кластер:
  • На первом сервере добавляем второй сервер:
  • Заходим в свойства сервера и ставим галочку:
  • На втором сервере создан кластер.
  • Устанавливаем Интервал перезапуска серверов и дополнительные параметры.
  • Создаем пустую базу в кластере на SQL Server:
  • Первый способ создания базы данных
    Название базы в кластере 1С и на SQL сервере могут быть разные.
    Заходим в директорию кластеры/локальный кластер/New/информационная база.

    Указываем параметры информационной базы:
    При отдельном сервере приложений 1С, адрес сервера баз данных может быть прописан в hosts.
    Второй способ создания базы данных
    Нажимаем кнопку «Добавить”.
    Выбираем пункт «Создание информационной базы”.

    Указываем параметры:

  • Добавляем в 1С: Предприятие пустую базу, которая была создана в кластере 1С.
  • Открываем конфигуратор пустой базы.
  • Выбираем в меню «Администрирование” / «Загрузить информационную базу”:
  • Далее нужно выбрать файл *.dt, который был выгружен ранее.
  • Нажимаем кнопку «Да»:
  • По окончанию загрузки нужно перезапустить Конфигуратор нажатием кнопки «Да»:
  • После выполненных действий будет завершен процесс переноса базы 1С из файлового формата в серверный формат.
  • Когда мы рекомендует перенос файловой базы на клиент-серверный вариант
    Наша практика показывает, что файловые базы данных являются оптимальным решением, пока объем базы не превысил 3 Гб.

    Не удается осуществить перенос файловой базы на Microsoft SQL сервер самостоятельно? Оставьте запрос для специалистов IT-Lite: тел. 8(495)646-23-16, email: sales@it-lite.ru.

    Создание базы данных

    Последнее обновление: 26.06.2017

    Базу данных часто отождествляют с набором таблиц, которые хранят данные. Но это не совсем так. Лучше сказать, что база данных представляет хранилище объектов. Основные из них:

    • Таблицы: хранят собственно данные

    • Представления (Views): выражения языка SQL, которые возвращают набор данных в виде таблицы

    • Хранимые процедуры: выполняют код на языке SQL по отношению к данным к БД (например, получает данные или изменяет их)

    • Функции: также код SQL, который выполняет определенную задачу

    В SQL Server используется два типа баз данных: системные и пользовательские. Системные базы данных необходимы серверу SQL для корректной работы. А пользовательские базы данных создаются пользователями сервера и могут хранить любую произвольную информацию. Их можно изменять и удалять, создавать заново. Собственно это те базы данных, которые мы будем создавать и с которыми мы будем работать.

    Системные базы данных

    В MS SQL Server по умолчанию создается четыре системных баз данных:

    • master: эта главная база данных сервера, в случае ее отсутствия или повреждения сервер не сможет работать. Она хранит все используемые логины пользователей сервера, их роли, различные конфигурационные настройки, имена и информацию о базах данных, которые хранятся на сервере, а также ряд другой информации.

    • model: эта база данных представляет шаблон, на основе которого создаются другие базы данных. То есть когда мы создаем через SSMS свою бд, она создается как копия базы model.

    • msdb: хранит информацию о работе, выполняемой таким компонентом как планировщик SQL. Также она хранит информацию о бекапах баз данных.

    • tempdb: эта база данных используется как хранилище для временных объектов. Она заново пересоздается при каждом запуске сервера.

    Все эти базы можно увидеть через SQL Server Management Studio в узле Databases -> System Databases:

    Эти базы данных не следует изменять, за исключением бд model.

    Если на этапе установки сервера был выбран и установлен компонент PolyBase, то также на сервере по умолчанию будут расположены еще три базы данных, которые используется этим компонентом: DWConfiguration, DWDiagnostics, DWQueue.

    Создание базы данных в SQL Management Studio

    Теперь создадим свою базу данных. Для этого мы можем использовать скрипт на языке SQL, либо все сделать с помощью графических средств в SQL Management Studio. В данном случае мы выберем второй способ. Для этого откроем SQL Server Management Studio и нажмем правой кнопкой мыши на узел Databases. Затем в появившемся контекстном меню выберем пункт New Database:

    После этого нам открывается окно для создания базы данных:

    В поле Database необходимо ввести название новой бд. Пусть у нас база данных называется university.

    Следующее поле Owner задает владельца базы данных. По умолчанию оно имеет значение <defult>, то есть владельцем будет тот, кто создает эту базу данных. Оставим это поле без изменений.

    Далее идет таблица для установки общих настроек базы данных. Она содержит две строки — первая для установки настроек для главного файла, где будут храниться данные, и вторая строка для конфигурации файла логгирования. В частности, мы можем установить следующие настройки:

    • Logical Name: логическое имя, которое присваивается файлу базы данных.

    • File Type: есть несколько типов файлов, но, как правило, основная работа ведется с файлами данных (ROWS Data) и файлом лога (LOG)

    • Filegroup: обозначет группу файлов. Группа файлов может хранить множество файлов и может использоваться для разбиения базы данных на части для размещения в разных местах.

    • Initial Size (MB): устанавливает начальный размер файлов при создании (фактический размер может отличаться от этого значения).

    • Autogrowth/Maxsize: при достижении базой данных начального размера SQL Server использует это значение для увеличения файла.

    • Path: каталог, где будут храниться базы данных.

    • File Name: непосредственное имя физического файла. Если оно не указано, то применяется логическое имя.

    После ввода названия базы данных нажмем на кнопку ОК, и бд будет создана.

    После этого она появится среди баз данных сервера. Если эта бд впоследствии не потребуется, то ее можно удалить, нажав на нее правой кнопкой мыши и выбрав в контекстном меню пункт Delete:

    Буду краток, делаем так:
    1. Установить на сервер MSSQL. Краткая инструкция по установке есть в этом FAQ.
    2. Установить на рабочую станцию драйвера ODBC из поставки 1C или ODBC-клиента от Microsoft (он зовется MDAC).
    3. Установить на рабочую станцию собственно SQL-версию 1С:Предприятия, ее исполняемый файл, в отличие от сетевой версии, назвается 1Cv7s.exe.
    4. Открыть SQL Enterprise Manager и создать новую базу данных. Если непонятно, как это делать — почитайте хелп, он там весьма развесистый. Размер БД выбирается из следующих соображений: данные в sql-базе займут места раза в 2-2.5 больше, чем весит dbf-база, и как минимум 20% пространства sql-базы должно остаться свободным. Размер лога также играет роль — если планируется перенос данных из dbf-версии, следует иметь лог ~25% от размера sql-базы. Можно сразу же установить для базы режим T_runcate log on checkpoint, это поможет избежать проблем с переполнением лога и немного повысит производительность, но лишит возможности в случае аварии БД сделать откат на момент «за пять минут до сбоя”.
    5. Подготовить данные dbf-версии к переносу — если он планируется. Это делается с помощью операции «Выгрузить данные”, которая не просто запаковывает таблицы, а переводит информацию в хитрый формат и кладет в файл с расширением *.dat.
    6. Создать пустую директорию для хранения конфигурации sql-базы. Она не должна совпадать с директорией, где хранятся файлы собственно sql-базы, последние вообще желательно сделать недоступными для пользователей.
    7. Открыть Конфигуратор, зарегистрировать новую базу данных (та самая пустая директория) и на вопрос о типе БД ответить «SQL server”.
    8. Выставить в конфигураторе «Параметры базы данных sql…” — это сетевое имя сервера, имя базы данных, как оно было задано в Enterprise Manager, имя пользователя и пароль для доступа к данным через ODBC (встроенная в MSSQL учетная записть администратора имеет логин sa и пустой пароль).
    9. Загрузить данные в БД. Если Вам нужна пустая конфигурация, это делается с помощью процедуры «Загрузить измененную конфигурацию”, если данные переносятся из dbf-версии — «Загрузить данные”, конфигурация при этом загрузится автоматически.
    10. Можно работать с БД. Не забывайте время от времени архивировать и индексировать свою sql-базу — архивация средствами sql, в отличие от файл-серверной версии, не требует монопольного доступа к базе и может осуществлятся прямо во время работы. Индексация и проверка целостности БД производится последовательным запуском двух TSQL-скриптов, очень простых:
    dbcc checkdb — проверка БД
    exec _1sp_dbreindex — индексация.
    Индексация требует монопольного доступа к данным, поэтому не пытайтесь в это время работать. И архивирование, и индексацию можно (и нужно) повесить на автоматическое исполнение.
    Информация взята с сайта http://helpf.pro