Программный комплекс «Центр здоровья»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Для осуществления выгрузки данных на федеральный информационный ресурс в соответствии с письмом МЗ РФ 244/10/2/-8914 от 26.11.2014 обновление для ФК "ЦЗ" опубликовано по следующему адресу: http://hc-forum.mednet.ru/index.php?topic=1425.0

Автор Тема: Резервное копирование базы данных с помощью bat файла  (Прочитано 13393 раз)

Sonia

  • Newbie
  • *
  • Карма: +0/-0
  • Сообщений: 23

Доброго времени суток, хочется сделать резервное копирование базы данных центра здоровья с помощью bat файла, который потом запускать из планировщика, вот примерный код, который вроде должен работать
echo off
osql -S D-K126\SQLEXPRESS -E -Q "BACKUP DATABASE [hls_hc] TO  DISK = N'C:\BackUp' WITH NOFORMAT, NOINIT,  NAME = N'hls_hc-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10"

но когда батник запускаю, то получаю сообщение
An error has occured while establishing a connection to the server. When connecting to SQL Server 2005,this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.

Может есть тут на форуме те, кто такую штуку у себя сделал, и сможет помочь...?
Записан

Вячеслав

  • Full Member
  • ***
  • Карма: +36/-0
  • Сообщений: 201
  • Вячеслав

в интернет пишут на эту ошибку
http://blogs.msdn.com/b/sql_protocols/archive/2005/12/22/506607.aspx

что 
1) либо IP протокол не разрешен на сервере
2) либо вы пытаетесь подключиться не по тому порту
3) либо экземпляр сервера банально не запущен..

но ведь не смотря ни на что Вы нормально работаете
значит один из протоколов разрешен для удаленных подключенных подключений
или TCP/IP  или named pipes  ... это только bat-ник не может подключиться к серверу.

меня смутил ключ -E который вы используете

Ключ -E означает использование Trusted connection т.е. вы подключаетесь к серверу под вашим доменным именем вместо явного указания имени и пароля  : -U<Имя пользователя> -P<Пароль>

А включена ли у вас Windows Authentication  чтобы так пытаться подключиться к серверу с помощью доменного имени ?
может стоит попробовать вместо -E например...

-U<имя> -P<пароль>

у меня такая команда отлично работает:
sqlcmd -S localhost\SQLEXPRESS -U sa -P 123 -Q "BACKUP DATABASE [hls_hc] TO  DISK = N'C:\oms\FK_HC\DATA\hls_hc.bak' WITH NOFORMAT, NOINIT,  NAME = N'hls_hc-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10" -o C:\oms\FK_HC\DATA\log.txt

---
немного почитайте по русски вот здесь
http://www.autosoft.spb.ru/content_371

и совет из интернет: Для SQL Server 2005 или 2008 берем sqlcmd.exe, а для SQL Server 2000 – osql.exe
« Последнее редактирование: 04 Марта 2011, 19:48:42 от Вячеслав »
Записан

Sonia

  • Newbie
  • *
  • Карма: +0/-0
  • Сообщений: 23

Спасибо за ответ, поняла в какую сторону искать!
-Действительно для SQL2005 нужно использовать sqlcmd
-после ключа -S должно идти имя сервера (у меня здесь был основной косяк, т.к. я эту команду скопипастила и не увидела в ней, что D-K126 - это имя сервера, которое надо на свое переделать)
-путь пришлось прописать полностью, с именем резервной копии

после этих исправлений все заработало. Вот такой в итоге у меня получился батник:
echo off
sqlcmd -S localhost\SQLEXPRESS -E -Q "BACKUP DATABASE [hls_hc] TO  DISK = N'C:\backUp\lastHCbackUp.bak' WITH RETAINDAYS =3 , STATS=10 "

Записан

hcadmin

  • Newbie
  • *
  • Карма: +0/-0
  • Сообщений: 17

всё отлично работает. но вопрос такого характера.

есть старая sql база пациентов она от версии 2.21 мы уже работает на 3.22
понадобилось поднять старые карточки. бекап этой базы есть. дастаточно будет просто восстановить её на sql сервере а на клиентской машине поставить клиент от 2.21 для просмотра базы? или обязательно устанавливать "серверную часть"? как я понял если при установке ФК ЦЗ ставишь и серверную часть то просто восстанавливается база hls_hc из бекапа со своей структурой и цепляется на локальный sql сервер. всё?
Записан

Служба поддержки

  • Global Moderator
  • Hero Member
  • *****
  • Карма: +36/-3
  • Сообщений: 2171

всё отлично работает. но вопрос такого характера.

есть старая sql база пациентов она от версии 2.21 мы уже работает на 3.22
понадобилось поднять старые карточки. бекап этой базы есть. дастаточно будет просто восстановить её на sql сервере а на клиентской машине поставить клиент от 2.21 для просмотра базы? или обязательно устанавливать "серверную часть"? как я понял если при установке ФК ЦЗ ставишь и серверную часть то просто восстанавливается база hls_hc из бекапа со своей структурой и цепляется на локальный sql сервер. всё?
Да, верно, достаточно восстановить под другим именем, поставить клиента 2.21, прописать соединение к восстановленной базе данных.
 

Страница сгенерирована за 0.162 секунд. Запросов: 18.