Переход на другой тип базы данных

  • 748 Просмотров
  • Последнее сообщение 25 января 2018
berivan написал 04 января 2018

До сегодняшнего дня пользовались бесплатной версией программы. Хочется перейти на более продвинутый вариант базы данных, для использования мобильного приложения (я правильно понимаю, что в бесплатном режиме оно работать не будет?), да и просто хочется поддержать развитие этой замечательной программы! Возможно ли перейти с SQLite на другой тип, без потери данных, и как это сделать? Судя по описанию PostgreSQL - будет оптимальным вариантом, верно? Нужны ли, какие-нибудь дополнительные действия (кроме оплаты :) ), чтобы использовать другой тип БД?

Сортировка: Стандарт | Новые | Голоса
Danil написал 04 января 2018

Все правильно, возможность работы с мобильным приложением будет доступна только в платной версии. Что касается перехода. Переход без потери данных возможен, для этого существует модуль "Перенос данных". Как выглядит процесс перехода:

  • Делаете резервную копию старой базы
  • Вы приобретаете платную версию, активируете ее
  • Устанавливаете выбранную базу данных (об этом будет далее) MSSQL или PostgreSQL
  • Создаете новую базу данных, через Добавление базы данных, в активированной версии вам будут доступны новые типы баз данных
  • Устанавливаете все используемые вами в старой базе модули (важно если используете переработку, артикул или все что добавляет новые реквизиты, справочники или документы), а так же модуль "Перенос данных"
  • Запускаете обработку "Перенос данных", когда переходите с SQLite-а, просто указываете путь к файлу старой базы данных в поле "База источник"
    • На закладке "Справочники" выделяете все элементы и жмете "Загрузить"
    • На закладке "Документы" выбираете период за который вы хотите загрузить документы (весь что вы успели наработать), выделяете все элементы и жмете "Загрузить"
    • На закладке "Регистры" выбираете период аналогичный предыдущему, выделяете все элементы и жмете "Загрузить"

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

  • Под MSSQL программа работает быстрее, этому есть много причин, одна из них, что изначально наша программа разрабатывалась по эту БД. В случае каких-то сложностей с БД (выделенного сервера в серверной с бесперебойником скорее всего не будет :)) можно будет достаточно оперативно спросить у гугла, как решить проблему. MSSQL весьма дорогая БД, но при этом имеет бесплатную версию MSSQL Express с ограничением размера базы данных в 10ГБ. В случае если программа будет использоваться на одном компьютере, либо на небольшом количестве и сервер БД будет так же и рабочей станцией, экспресс версия прекрасно подойдет. Ограничение на размер БД скажется очень не скоро, по моим оценкам не раньше пяти лет.
  • Соответственно работа с PostgreSQL будет чуть медленнее, но все равно значительно быстрее чем с SQLite. PostgreSQL бесплатная и не имеет ограничений. Есть вероятность установить и забыть. Незначительно, но все же сложнее в обслуживании. В случае форс мажора проблемы обычно тоже решаются при помощи гугла, но есть вероятность что будет чуть дольше.

berivan написал 04 января 2018

Таким образом можно не только переносить базу данных, но и делать частичную копию, например перенести только справочники. MSSQL весьма дорогая БД, но при этом имеет бесплатную версию MSSQL Express с ограничением размера базы данных в 10ГБ.

При приближении базы к объему в 10гб (а это точно произойдет через n количество лет), можно сделать частичную копию (перенести просто дерево товаров, и документы за прошедший год), таким образом отцепим старые периоды, которые уже не нужны, и уменьшим объем базы. Возможный вариант? :)

Danil написал 04 января 2018

При приближении базы к объему в 10гб (а это точно произойдет через n количество лет), можно сделать частичную копию (перенести просто дерево товаров, и документы за прошедший год), таким образом отцепим старые периоды, которые уже не нужны, и уменьшим объем базы. Возможный вариант? :)

вполне

berivan написал 05 января 2018

на сайте MSSQL есть разные выпуски: 1. SQL Server 2017 Express с пакетом обновления Используйте базовый экспресс-выпуск сервера базы данных, включающий функциональный модуль базы данных, который идеально подходит для принятия удаленных подключений или удаленного администрирования. Доступен бесплатно. 2. SQL Server 2017 Express c дополнительными сервисами Получите дополнительные возможности, имеющиеся в экспресс-выпуске, включая модуль базы данных, сервисы отчетности и полнотекстовый поиск. Доступен бесплатно при присоединении к программе Visual Studios Dev Essentials. 3. SQL Server 2017 Express LocalDB Встраивайте SQL Server Express в приложения с использованием LocalDB — упрощенной версии экспресс-выпуска. Доступен бесплатно в качестве одного из вариантов при скачивании SQL Server 2017 Express с пакетом обновления. Какой качать?

Danil написал 05 января 2018

по ссылке SQL Express нажимаете "Скачать", далее в запущенном установщике "Пользовательский", далее "Новая установка", а дальше как в нашей инструкции Установка и настройка Microsoft SQL Server Express, в 2017 будет больше компонентов на выбор, но они не обязательны, если будет работать только один компьютер, то настройку по сети и брандмауэр можно пропустить

berivan написал 05 января 2018

Все сделал, но вылазит ошибка: https://yadi.sk/i/WmxyIWNQ3RD6Hd параметры P.S. как вставлять картинки?

berivan написал 06 января 2018

Вчера отработал день на новой базе, все было хорошо. Сегодня запускаю программу, при проверке подключения к базе вылазит ошибка (как вставить сюда картинки?) - Неизвестная ошибка при подключении к базе данных. Попробуйте еще раз через несколько секунд. Через несколько секунд - тоже самое - пробовал раз 10. Через пуск запускаю SQL Server 2014 Management Studio - там первое же окно предлагает соединиться с сервером, жму соединить (Kayala закрыта в этот момент) и выходит ошибка: ЗАГОЛОВОК: Соединение с сервером ------------------------------ Невозможно подключиться к KIT\SQLEXPRESS. ------------------------------ ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Shared Memory Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, ошибка: 2) Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476 ------------------------------ Не удается найти указанный файл В чем может быть проблема? После установки я удалил распакованные перед установкой сервера файлы. Отвечаю на свой вопрос сам: не была запущена служба SQL Server (SQLEXPRESS). Странно, почему ее пришлось запускать вручную? Почему она автоматом не была запущена?

Danil написал 06 января 2018

Почему она автоматом не была запущена?

проверьте что она автоматически стартует: 

P.S. загрузите картинку на один из хостингов, берите ее адрес, жмите здесь на кнопку "вставить изображение" и вставляйте полученный у хостинга адрес

berivan написал 06 января 2018

Да, тип запуска был - Автоматически, но Состояние - не было ничего написано. Открыл свойства - запустил службу, и тогда отобразилась - Выполняется. Посмотрю в понедельник, как сработает.

Danil написал 06 января 2018

проверьте еще в Журнале Виндовс, возможно были какие-то ошибки связанные в сиквел сервером на момент, когда он предположительно остановился или не стартанул

berivan написал 06 января 2018

проверьте еще в Журнале Виндовс, возможно были какие-то ошибки связанные в сиквел сервером на момент, когда он предположительно остановился или не стартанул

А как это сделать? :)

Danil написал 06 января 2018

вот так:

 

berivan написал 20 января 2018

Есть такая проблема: после включения Пк, если сразу же запустить программу (не дожидаясь пока подгрузятся все фоновые приложения и процессы). То служба SQL Server (SQLEXPRESS) автоматически не запускается (видимо не успевает), и программа при подключении к базе выдает ошибку. Приходится службу запускать вручную. Тестировал эту проблему несколько дней. Если после включения подождать несколько минут - то служба стартует автоматом и программа запускается без ошибок. Винда была достаточно захламлена, думал может проблема в этом. Поэтому пару дней назад переустановили ОС, но эта проблема (особенность) не ушла, так же нельзя сразу запускать программу. Нельзя ли в будущих версиях это поправить? Может перед запуском сделать проверку, запущена служба или нет? Нам не особо это принципиально, но мы планируем Вашу программу установить на несколько других своих точек (да и советовать будем всем :) ), а пользователи разные, и будут донимать звонками...

Danil написал 20 января 2018

Есть такая проблема: после включения Пк, если сразу же запустить программу (не дожидаясь пока подгрузятся все фоновые приложения и процессы). То служба SQL Server (SQLEXPRESS) автоматически не запускается (видимо не успевает), и программа при подключении к базе выдает ошибку. Приходится службу запускать вручную. Тестировал эту проблему несколько дней. Если после включения подождать несколько минут - то служба стартует автоматом и программа запускается без ошибок. Винда была достаточно захламлена, думал может проблема в этом. Поэтому пару дней назад переустановили ОС, но эта проблема (особенность) не ушла, так же нельзя сразу запускать программу. Нельзя ли в будущих версиях это поправить? Может перед запуском сделать проверку, запущена служба или нет? Нам не особо это принципиально, но мы планируем Вашу программу установить на несколько других своих точек (да и советовать будем всем :) ), а пользователи разные, и будут донимать звонками...

эм ... тут от программы мало что зависит, она ведь может быть запущена и на соседнем компьютере и шансов у нее проверить запущена ли служба на сервере будет не много, особенно в бездоменной среде то что вы описываете это явно не штатная ситуация, давайте попробуем понять, что не так с вашей установкой сиквел сервера, если программа как-то мешает ему стартануть это должно быть отражено в журнале событий виндовс ... попробуйте отфильтровать журнал "Приложение" по источникам событий MSSQL$SQLEXPRESS и MSSQL$SQLEXPRESS$AUDIT полученный результат сохраните и шлите нам на почту заодно пришлите скриншот настроек подключения к БД в программе

berivan написал 25 января 2018

А как сделать перенес данных из одной MS SQL базы, в другую?

Danil написал 25 января 2018

А как сделать перенес данных из одной MS SQL базы, в другую?

эм ... в общем-то так же, только в "Переносе данных" указываете примерно следующее: 

соответственно в поле "Пароль" указываете свой пароль к сиквел серверу, в поле база данных, ту базу из которой будет импорт (указал вашу, т.к. подозреваю что вы все-таки решили переехать на другое имя :))

berivan написал 25 января 2018

т.е. в базе источник, нужно указать просто имя базы данных? А я указывал путь до нее, поэтому ничего не получалось :). В общем, Вы правильно поняли, решил переехать на "нормальное" имя :). Пока ждал ответа, проблему решил по другому - просто создав новую базу, сделал восстановление из резервной копии :). А этот вопрос пригодится для будущего переноса части данных (когда размер приблизиться к критическому). Проблема с не подключением не ушла, с утра так же была ошибка. Но давайте этот вопрос пока оставим, у себя на компьютере мы на это внимание не обращаем, просто делаем паузу перед запуском, на крайний случай запускаем службу в ручную, это не особая проблема. А вот если такая же ошибка будет возникать на других компьютерах - вот тогда будем думать, как ее решать.

Danil написал 25 января 2018

т.е. в базе источник, нужно указать просто имя базы данных? А я указывал путь до нее, поэтому ничего не получалось :). В общем, Вы правильно поняли, решил переехать на "нормальное" имя :). Пока ждал ответа, проблему решил по другому - просто создав новую базу, сделал восстановление из резервной копии :). А этот вопрос пригодится для будущего переноса части данных (когда размер приблизиться к критическому).

все правильно, так и нужно было сделать

Проблема с не подключением не ушла, с утра так же была ошибка. Но давайте этот вопрос пока оставим, у себя на компьютере мы на это внимание не обращаем, просто делаем паузу перед запуском, на крайний случай запускаем службу в ручную, это не особая проблема. А вот если такая же ошибка будет возникать на других компьютерах - вот тогда будем думать, как ее решать.

договорились

Close