|
1 / 1 / 2
Регистрация: 11.10.2016
Сообщений: 15
|
|
MSSQL. Локальная БД и удаленная19.12.2017, 16:57. Показов 2824. Ответов 31
Всем доброго времени суток.
Написал я приложение вдохновленный музой, все запустил и внедрил. Пришла пора это приложение обслуживать выпускать какие-нибудь обновления и тут появилась засада. Приложение работает с БД MSSQL 2014 в локальной сети организации. Простым смертным вносить изменения в БД не разрешено, но есть привилегированные сотрудники, кому это делать можно. Ну и пусть себе изменяют =) Вот только приложение умеет работать и с LocalDB MSSQL 2014, файлы *mdf и * log которой являются полной копией БД MSSQL 2014 в локальной сети. Такой функционал необходим для работы вне стен организации или же в том случае, когда подключиться к БД MSSQL 2014 в локальной сети нет возможности. Логично, что самая актуальная БД - это БД на сервере в локальной сети (далее ЛС). Отсюда первый вопрос: 1. Как обеспечить актуальность содержимого локальной БД? Попытки которые я предпринимал: 1. Экспорт данных в файл из БД в ЛС. Далее подключал LocalDB к локальному серверу на своем ПК, обновлял данные, отключал LocalDB. Пихал обновленные файлы LocalDB в репозиторий с обновлениями ПО, откуда пользователи обновлялись, заменяя более поздние файлы. 2. Тупо копировал файлы *mdf и * log нужной мне БД в репозиторий с обновлениями ПО, откуда пользователи обновлялись. Оба варианта оказались не АЙС.... Первый, потому что сильно мудреный. Второй, потому что тупо скопировав файлы *mdf и * log приложение потом может не заработать из-за ошибки доступа MSSQL, что чаще всего и происходит. Отсюда второй вопрос: 2. Как должна быть организована логика такого рода приложения исходя из вашего опыта и навыков? Я могу смириться с неудобствами, если я разрабатываю какие-нибудь изменения, сидя дома за ПК, при этом изменения коснулись структуры БД или её содержимого - ок! Напишу я скрипт, который выполнится в БД ЛС и все будет гут. И задам третий вопрос: 3. Как более корректно копировать файлы *mdf и * log из БД в ЛС, чтобы потом их использовать в приложении для второго варианта работы в автономном режиме (без подключения к ЛС организации)? Буду благодарен за Ваши ценные рекомендации по моим вопросам.
0
|
|
| 19.12.2017, 16:57 | |
|
Ответы с готовыми решениями:
31
Не подключается удаленная БД - MSSQL Переход с mssql Express 2008 R2 на mssql 2012 Совместимость datetime в MSSQL 7 и MSSQL 2000 |
|
1 / 1 / 2
Регистрация: 11.10.2016
Сообщений: 15
|
|||
| 20.12.2017, 14:08 [ТС] | |||
|
я вот тут нарыл https://stackoverflow.com/ques... mmatically прокатит ли такой вариант? А как бы Вы организовали логику подобного приложения, чтобы не попасть в такую ситуацию, как у меня? (у всех спросил =) )
0
|
|||
|
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
||
| 20.12.2017, 14:14 | ||
|
makimu, я не знаю, можно ли восставить обычную базу в LocalDB. Я не уверен.
Добавлено через 1 минуту Т.е. в основном приложении (если таковое есть) добавил бы функциональность выгрузки данных. Выгружал бы в какой-нибудь XML, JSON или ещё что. Но уж точно не в MDF
1
|
||
|
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
|
||
| 20.12.2017, 14:18 | ||
|
Нужен отдельный сервис, который будет периодически сливать всю информацию с локальных баз в общую. И из общей обновлять в локальных. Чтобы не было коллизий каждая запись снабжается ID пользователя и временем создания/изменения. Каждое изменение создает новую запись а не меняет старую. Таким образом хранится и история всех изменений, а записи не накладываются и не пересекаются.
1
|
||
|
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 20.12.2017, 14:20 | |
|
Козадоев, да не, ТС-у нужен автономный read only каталог. Т.е. никаких изменений как в самой локальной базе так и никаких обратных мёржей в рабочую БД.
0
|
|
|
1 / 1 / 2
Регистрация: 11.10.2016
Сообщений: 15
|
||
| 20.12.2017, 14:25 [ТС] | ||
![]() Да, только я использую единый код для работы с данными. И если мне нужно поработать локально с localDB, к примеру, внести какие-нибудь правки, добавить/удалить таблицы и потом это все в приложении продебажить - думаю с XML, JSON у меня такое не совсем получится. Хотя у меня может не хватать навыка и каких-то знаний и я могу заблуждаться.
0
|
||
|
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 20.12.2017, 14:29 | |
|
makimu, ну это тоже не было бы проблемой, если бы ваш код был бы достаточно абстрагирован он механизма хранения.
0
|
|
|
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
|
||
| 20.12.2017, 14:31 | ||
|
1
|
||
|
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 20.12.2017, 14:32 | |
|
Козадоев, ага. Причём, даже не обязательно в базу. Можно и иначе представить данные.
0
|
|
|
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
|
|
| 20.12.2017, 14:38 | |
|
Самое простое установить SQL Server на локальные машины и восстановить с backub файла.
0
|
|
|
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
|
|
| 20.12.2017, 14:42 | |
|
Или переписать Data Layer, чтобы научить работать не только с базой данный MSSQL. makimu, выбора тут не особо)
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 20.12.2017, 14:45 | |
|
0
|
|
|
1 / 1 / 2
Регистрация: 11.10.2016
Сообщений: 15
|
|
| 20.12.2017, 15:16 [ТС] | |
|
Ну что же, тему можно считать закрытой.
СпасиБО Usaga, Козадоев, hoolygan, insite2012, Kitniess, за то что не были равнодушными к проблеме. На сегодняшний день приму версию создания backup средствами MSSQL и восстановления при помощи localDB, на англоязычных форумах пишут, что это можно сделать не устанавливая SQLExpress. При будущих разработках буду учитывать возможность работы не только с MSSQL. А сейчас нет желания переписывать код для данного приложения. Все = экземпляр localDB сотрудники используют крайне редко. Нет ничего более постоянного, чем временно перемотанное изолентой =) Всем спасиБО!!!
0
|
|
| 20.12.2017, 15:16 | |
|
Совместимость datetime в MSSQL 7 и MSSQL 2000 Перенос БД из MSSQL 6.5 на MSSQL 7.0
Удаленная БД Удаленная печать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|