Удаленная передача базы данных SQL Server - лучший метод - PullRequest
1 голос
/ 28 января 2012

У меня есть две базы данных, одна на удаленном сервере, другая локальная. (SQL Server 2008)

База данных на моем локальном сервере полностью настроена, но нет данных. Я хотел бы скопировать данные с удаленного сервера на мой сервер, и мне интересно, как лучше всего это сделать.

Основная проблема, с которой я сталкиваюсь, - это то, что у пользователя, к которому у меня есть удаленная база данных, есть ограниченные разрешения. Я не могу прочитать хранимые процедуры, определенные пользователем функции, поэтому при использовании мастера импорта / экспорта я не получаю схему и т. Д. Поэтому обычный дамп / восстановление не работает для меня, поскольку он восстанавливает таблицы без первичных ключей / внешних ключей и хранимые процедуры.

Я бы хотел это сделать,

INSERT INTO localtable SELECT * FROM remotedb.table

У меня были проблемы из-за полей IDENTITY, и мне пришлось явно назвать все столбцы. Также я не уверен, что SQL Server Management Studio позволяет использовать две разные базы данных, удаленную и локальную, поэтому я искал любой совет.

Я также пробовал такие приложения, как SQL FTP и резервное копирование, и он не работает, потому что у него не хватает памяти (у меня 16 ГБ памяти на машине, а БД как 4 ГБ). Я также могу использовать мастер импорта / экспорта SQL Server, но тогда я не получаю информацию о схеме. Я также попробовал SQL Compare из Red Gate, и он сталкивается с проблемами с разрешениями. К сожалению, у меня нет времени запрашивать и получать доступ к новому пользователю, поэтому я надеялся, что у кого-то есть творческая идея.

1 Ответ

1 голос
/ 28 января 2012
  1. Для этого вы определенно можете использовать резервные копии SQL Server. Это не будет исчерпано памяти. Если это так, пожалуйста, сообщите нам сообщение (потому что, скорее всего, вы его неправильно истолковали). Это самое быстрое и наиболее полное решение.
  2. Вы можете указать мастеру экспорта также сценарий схемы. Он где-то скрыт под «продвинутым» (ужасный интерфейс). Но сценарий будет очень большим, и я не знаю, как его выполнить.
  3. Вы можете удалить все объекты схемы, кроме PK, в целевой базе данных. Затем вы можете использовать удаленные запросы для копирования всех данных. У вас не возникнет проблем с внешними ключами и столбцами идентификаторов, если вы отбросите заранее. После того, как вы закончите, вы можете воссоздать все эти объекты. Вероятно, лучше всего использовать транзакцию для всего этого, поскольку таким образом вы получаете согласованные исходные данные на определенный момент времени.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...