Форум : Программное обеспечение

Название : перенос базы данных

 madalex04 :

20.9.10 22:39
 Есть желание разгрузить основной комп от большого числа опросов. Как следствие возникло два пути решения проблемы:
1. На втором компе настроить опрос приборов, которые стали перегружать существующий (порядка 160 теплосистем). Опрос по своей базе данных.
2. На втором приборе настроить опрос приборов из БД первого компа, но через свой модем, что позволит разгрузить модем на первом. Необходимо использование базы данных первого компа, требуется, я так понимаю, "многоклиентский режим".
Использование второго компа может показаться лишним (можно прописать кучу модемов на существующем), но тем не менее есть ряд причин, вынуждающих это сделать. Посему вопросы:
-как перенести базу данных с одного компа на другой (или часть приборов)?
-как настроить использование одной базы данных сервера другими Архивистами (в том числе и через интернет)
-возможен ли опрос приборов из базы данных сервера через локальный Архивист с интеграцией результатов в базу данных?
P.S. Пытаюсь найти информацию в интернете не первый день, но на ламерском уровне языком, изложенным на необъятных просторах всемирной паутины понять что-либо очень сложно...

 CH :

21.9.10 12:39
 - Перенос базы данных с одного компьютера на другой (в другой SQL-сервер) в моём понимании лучше выполнять в порядке отсоединить - скопировать - присоединить. Используются команды Transact SQL, то есть без командной строки и ввода SQL-запросов не обойтись.
Для отсоединения использовать встроенную процедуру sp_detach_db
Скопировать файлы переносимой базы данных в новые каталоги на другом компьютере.
Для присоединения использовать sp_attach_db (ну или CREATE DATABASE с параметром FOR ATTACH).
Да, исходную базу данных не забыть аналогично прикрепить на место, если речь идёт о копировании.
Если для Архивиста не создана отдельная база данных (к примеру, его таблицы хранятся в базе master) всё сложнее.
Ещё для копирования базы можно использовать стандартные Backup и Restore. Или DTS. Эти способы не такие быстрые.

- Для использования существующей на любом компьютере локальной сети базы данных достаточно создать источник данных, как это делалось при первом запуске Архивиста, указав адрес или имя этого компютера в соответствующем поле вместо local.
Для подключения через интернет требуется, чтобы база данных находилась на компьютере со статическим IP, видимом в интернете (ну или проброс портов с маршрутизатора). Выставлять SQL-сервер напрямую в интернете - плохая идея с точки зрения безопасности, поэтому лучше организовать VPN, а далее как в обычной локальной сети.
Потом нужную часть приборов можно из исходной копии архивиста "передать" новому клиенту перетаскиванием в любую его группу (новая функция с версии 1.11.3). Параметры опроса придётся настроить заново.

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

 madalex04 :

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

 CH :

17.10.10 12:08
 Наверное проблема с брандмауэром. Попробуйте для проверки отключить брандмауэр на обеих машинах. Если доступ заработает, включите обратно и поищите информацию, как его настроить для правильной работы SQL-сервера.

 madalex04 :

17.10.10 14:35
 Брандмауэр отключен. При включенном не мог получить доступ к принтеру, поэтому отключил, принтер стал виден, пошла печать. В SQL серверах выдает названия серверов которые на головном компе, но подключаться не желает. Установленный пароль пользователя может влиять?

 CH :

17.10.10 18:28
 Может влиять способ аутентификации, настроенный в SQL-сервере. Если по умолчанию оставлена аутентификация пользователя Windows и сеть однораговая (не домен), то на вашем сервере должен быть такой же пользователь (с таким же паролем), как на клиентском компьютере. Иначе откуда компьютеру-серверу знать, что некоему пользователю с другого компьютера разрешено подключение.
Или следует настроить в SQL-сервере аутентификацию пользователя средствами самого SQL-сервера и соответствующим образом настроить подключение с указанием логина и пароля.

 madalex04 :

17.10.10 21:27
 Ура. Получилось. Перенес базу данных, создал под другим именем. Все приборы серые. Есть какие либо ограничения по использованию приборов? Мне например надо поставить базу клиенту, но клиенту не надо знатьсвойства приборов, только просмотр протоколов, печать протоколов и.. ВСЁ. Реально ли это?

 CH :

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

 madalex04 :

17.10.10 23:34
 Да, но у меня в базе данных есть клиент 1, клиент 2, клиент 3 и т.д.Я устанавливаю Архивист первому клиенту, а он видит всех!?!? Как ограничить видимость толко своей группы?

 CH :

18.10.10 00:57
 Если "своей группы" означает, что нужно видеть только приборы, созданные и опрашивающиеся этим клиентом, то можно снять галочку "показывать приборы других клиентов" в настройках программы (закладка "базы данных").

 madalex04 :

18.10.10 01:39
 Наверное я неправильно выразился. Я создал все приборы на сервере (и клиент 1 и клиент 2 и т.д.) Я копирую ПОЛНУЮ базу, переношу на объект клиента №1, а он видит все мои приборы, всех клиентов. Как ограничить, как избежать?
По поводу skype готов общаться!


[ Редактировано madalex04 в 18.10.10 02:09 ]

 CH :

18.10.10 21:46
 Видимо, проявляется проблема терминологии.
Владельцем прибора / группы приборов в Архивисте является та копия Архивиста (клиент), в которой эти приборы созданы. Эта же копия (клиент) считывает с приборов данные и заносит их в базу данных.

Все копии программы на других компьютерах (другие клиенты) могут просматривать данные этих чужих приборов, печатать отчёты и пр., но сами читать данные с этих приборов не могут. Эти приборы/группы "чужие", отображаются на сером фоне.

На любом клиентском месте, если эта функция не заблокирована в программе, можно создать свои приборы, при условии, что в базе уже нет копии такого прибора (тип, серийный номер, теплосистема) и делать с ним что угодно - такой прибор/группа отображается обычным образом, на белом фоне.

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

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

 madalex04 :

26.10.10 22:01
 Да, совершенно верно, вы правильно меня поняли. База, которая находится на центре, имеет информацию по всем приборам, Желание клиента №1 видеть свои приборы. Но если на его месте устанавливать дополнительный сервер, то это создаст проблемы при опросе -раз, загрузит и без того загруженную сеть - два. Это есть проблема. Если установить клиент-программу и "разрешить" ему видеть только свои приборы, то это существенно облегчит нагрузку. Но я так думаю единственный выход создание сервера №2 или создание сервера у него с блокировкой отдельных функций. И вот ещё один вопрос, можно ли все протоколы группы за отчётный период сохранить в один файл? Объясню, требуют в электронной форме, а сохранять каждый файл из 100 теплосистем.... ну сами понимаете...

 CH :

27.10.10 00:46
 Вообще-то добавить в Архивист функцию ограничения видимости приборов скажем одной из корневых групп кажется несложным. Попробую завтра, заодно с ещё кое-какими запланированными доработками.

В один файл - это, к примеру, все файлы-протоколы в один zip-архив? А сохранять удобнее с вкладки просмотра протоколов или добавить пакетную операцию вроде печати - пакетное сохранение в файл?

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

 madalex04 :

27.10.10 20:41
 Нашел метод сохранения в файл один. Через вкладку группы формирую протокол группы и сохраняю в печать в microsoft xps DW. Потом просмотр через броузер или просмоторщик XPS. :-D

© NegaSoft co., 2005
http://www.teplovizor.ru

URL этой темы
http://www.teplovizor.ru/forum/viewtopic.php?topic_id=118&forum=2