| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Вопрос по запуску и использованию isql |
| Автор: Wanderer2019 29.7.2005, 08:59 | ||
| Здравствуйте! Возможно вопрос немного не по адресу... но не знаю больше некуда обратиться... Ситуация такая...: Есть сервер SQL, который расположен на удаленной машине. Есть базовая машина (типа место менеджера)... Необхордимо с помощью микрософтской утилитки isql ресторить на удаленной машине забэкапленную базу... Соответственно из .NET программы (C#)... ну isql вызвать проблемы нет... isql открывает sql файл, где прописано что именно надо ресторить следующим образом:
проблема в том, что он ищет LF_EMPTY.bak на удаленной машине, а у меня возможности туда его записывать не будет, т.е. нужно с локальной читать. UML имена не помогают, он почему то файл не находит. Интересно, что если не обращаться к bak файлу, а просто запустить скрипт, то он читается с локальной машины. как поступить??? |
| Автор: arilou 2.8.2005, 16:17 |
| Если еще вопрос актуален, то отвечаю - нельзя. Бэкапы восстанавливаются из файлов, которые находятся только на той машине, где работает SQL Server. Задачу надо решать по-другому. |
| Автор: Wanderer2019 2.8.2005, 16:36 |
| тема актуальна... до сих пор пытаюсь найти выход... не знаю чего делать =( |
| Автор: arilou 2.8.2005, 16:43 |
| Опиши проблему поподробнее |
| Автор: Wanderer2019 2.8.2005, 16:50 |
| ну есть некий сервер приложение... он находится в другом помещении... на нем стоит SQL SERVER на который и нужно развернуть базу... в помещение с сервером никто никого не пускает... соответственно есть комп (удаленный)... у которого есть доступ к компу с SQL сервером... ну вот собственно и задача: Развернуть приложение на удаленном сервере... |
| Автор: AntonSaburov 2.8.2005, 16:50 |
| Может можно заливать какой-то програмкой файл на удаленную машину. По тому же TCP. Клиентская часть коннектится а серверная часть принимает и кладет в нужное место. Потом восстанавливаем. |
| Автор: Wanderer2019 2.8.2005, 16:51 | ||
| в качестве интерпритатора языка SQL используется isql Добавлено @ 16:51
bak весит 300 метров |
| Автор: AntonSaburov 2.8.2005, 16:53 | ||||
А тут уже вохможно ничего и не надо. Какая разница кто запрос будет посылать. Можно вообщем-то и в самом приложении это сделать. ЗАвести роль на SQL, которой можно бэкап восстанавливать и пусть она только этим и занимается. Добавлено @ 16:53
Так в любом случаем они все будут до SQL перекачиваться. |
| Автор: Wanderer2019 2.8.2005, 16:54 | ||
поясни, пожалуйста, что ты имеешь ввиду?? |
| Автор: arilou 2.8.2005, 17:01 | ||||
Речь идет о том, куда положить файл backup'а, а не невозможности законнектиться с SQL'у.
Вот здесь возможно. Wanderer2019, делаешь в основной программе эдакого сервиса, который принимает файл через TCP и кладет его в локальную папку сервера (т.е. машины, на которой он запущен), делаешь маа-аленькое клиентское приложение, которое коннектится к серверному приложению по указанному порту и посылает 300-метровый файл. Понимаешь? |
| Автор: AntonSaburov 2.8.2005, 17:01 |
| Во-первых - в любом случае файл с бэкапом надо перелить на машину c SQL. Тут вариантов много - можно открыть какую-то директорию и тупо копировать. Можно пойти жестче - копировать через специальную программу, можно даже наложить секретность какую-то предварительну. Вообщем надо все равно закачать. Во-вторых - для восстановления бэкапа MS SQL все равно выполняет запрос. Такие действия могут выполнять не все. Это можно тем у кого есть права db_owner, dbcreator или sysadmin. Т.е. можно в программе сначала залить бэкап на сервер, потом открыть коннект для такого пользователя отдельно и сделать этот важный запрос. И закрыть коннект. |