|
1 / 1 / 2
Регистрация: 11.10.2016
Сообщений: 15
|
|
MSSQL. Локальная БД и удаленная19.12.2017, 16:57. Показов 2886. Ответов 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
|
|||
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
||
| 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
|
||
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 20.12.2017, 14:20 | |
|
Козадоев, да не, ТС-у нужен автономный read only каталог. Т.е. никаких изменений как в самой локальной базе так и никаких обратных мёржей в рабочую БД.
0
|
|
|
1 / 1 / 2
Регистрация: 11.10.2016
Сообщений: 15
|
||
| 20.12.2017, 14:25 [ТС] | ||
![]() Да, только я использую единый код для работы с данными. И если мне нужно поработать локально с localDB, к примеру, внести какие-нибудь правки, добавить/удалить таблицы и потом это все в приложении продебажить - думаю с XML, JSON у меня такое не совсем получится. Хотя у меня может не хватать навыка и каких-то знаний и я могу заблуждаться.
0
|
||
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 20.12.2017, 14:29 | |
|
makimu, ну это тоже не было бы проблемой, если бы ваш код был бы достаточно абстрагирован он механизма хранения.
0
|
|
|
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
|
||
| 20.12.2017, 14:31 | ||
|
1
|
||
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 20.12.2017, 14:32 | |
|
Козадоев, ага. Причём, даже не обязательно в базу. Можно и иначе представить данные.
0
|
|
|
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
|
|
| 20.12.2017, 14:38 | |
|
Самое простое установить SQL Server на локальные машины и восстановить с backub файла.
0
|
|
|
14736 / 9510 / 1364
Регистрация: 21.01.2016
Сообщений: 35,895
|
|
| 20.12.2017, 14:42 | |
|
Или переписать Data Layer, чтобы научить работать не только с базой данный MSSQL. makimu, выбора тут не особо)
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
|
|
| 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
Удаленная БД Удаленная печать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|