Как создать резервную копию удаленной базы данных SQL Server на локальный диск?
Мне нужно скопировать базу данных с удаленного сервера на локальный. Я попытался использовать среду SQL Server Management Studio, но она выполняет резервное копирование только на диск на удаленном сервере.
некоторые моменты:
- у меня нет доступа к удаленному серверу таким образом, что я мог копировать файлы;
- у меня нет доступа к настройке UNC-пути к моему серверу;
любые идеи, как я могу скопировать эту базу? Должен ли я использовать инструменты 3rd party?
20 ответов
в Microsoft SQL Server Management Studio вы можете щелкнуть правой кнопкой мыши на базе данных, которую хотите создать резервную копию, и выбрать задачи - > создать сценарии.
Это открывает Мастер, где вы можете установить следующее, чтобы выполнить достойную резервную копию вашей базы данных,даже на удаленном сервере:
- выберите базу данных вы хотите создать резервную копию и нажмите Далее
- в вариантах, которые он представляет вам:
- в 2010: под таблицей / взглядом Параметры, изменение данных скриптов и скрипт индексы' true и нажмите Далее
- в 2012 году: в разделе "Общие" измените "типы данных на сценарий" с "только схема" на "схема и данные"
- в 2014: опция для сценария данных теперь " скрыта "в шаге" установить параметры сценариев", вы должны нажать кнопку" Дополнительно "и установить" типы данных для сценария "в" Схема и данные " значение
- в соседней четыре windows, нажмите "Выбрать все" , а затем далее,
- выберите сценарий для нового окна запроса
Как только он сделает свое дело, у вас будет готовый сценарий резервного копирования перед вами. Создайте новую локальную (или удаленную) базу данных и измените первый оператор " USE " в скрипте, чтобы использовать новую базу данных. Сохраните сценарий в безопасном месте и запустите его в новой пустой базе данных. Это должно создать вам (почти) дубликат локальной базы данных, которую вы можете создать резервную копию, как вам нравится.
Если у вас есть полное доступ к удаленной базе данных, вы можете выбрать, чтобы проверить "сценарий все объекты" в первом окне мастера, а затем изменить опцию "скрипт базы данных" на True в следующем окне. Будьте осторожны, вам нужно будет выполнить полный поиск и заменить имя базы данных в скрипте на новую базу данных, которую в этом случае вам не придется создавать перед запуском скрипта. Это должно создать более точный дубликат, но иногда недоступно из-за разрешений ограничения.
копировать только данные и схемы (не будет копировать хранимые процедуры, функции и т. д.), используйте мастер импорта и экспорта SQL Server и выберите новый... при выборе целевой базе данных.
Щелкните Правой Кнопкой Мыши База Данных > Задачи > Импорт Данных.
выберите источник данных
- Исходные Данные: собственный клиент SQL Server
- Имя Сервера: удаленный сервер
- проверка подлинности:
- база данных - имя БД
выберите пункт назначения
- Исходные Данные: собственный клиент SQL Server
- Имя Сервера: локальный сервер
- проверка подлинности:
-
база данных:
New...
остальное прям вперед.
вы не может создайте резервную копию с удаленного сервера на локальный диск - это просто невозможно сделать. И, насколько мне известно, для этого нет сторонних инструментов.
все, что вы можете сделать, это создать резервную копию на удаленном сервере, и кто-то zip его и отправить его вам.
во-первых, предоставьте разрешения полного управления локальному пути на вашем компьютере (как показано ниже) со всеми. (Или разрешения специально для учетной записи агента SQL Server).
во-вторых, выполните следующее:
BACKUP DATABASE [dev] TO DISK = N'\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;
Я знаю, что это поздний ответ, но я должен сделать комментарий о большинстве проголосовавших ответ, который говорит, чтобы использовать опцию генерации скриптов в SSMS.
проблема в том, что этот параметр не обязательно генерирует скрипт в правильном порядке выполнения, потому что он не учитывает зависимости.
для небольших баз данных это не проблема, но для больших это, безусловно, потому, что требуется вручную переупорядочить этот скрипт. Попробуйте это в базе данных 500 объектов ;)
к сожалению в этом случае единственным решением являются сторонними инструментами.
Я успешно использовал инструменты сравнения из ApexSQL (Diff и Data Diff) для подобных задач, но вы не можете ошибиться с любым другим, уже упомянутым здесь, особенно Red Gate.
вы можете попробовать SQLBackupAndFTP. Он создаст скрипты для создания всех объектов в вашей базе данных и вставки операторов для всех строк в ваших таблицах. В любой базе данных, вы можете запустить этот скрипт и вся база данных будет создана заново.
посмотрите на этот блог для описания того, как скопировать удаленную базу данных:
резервное копирование базы данных SQL Server 2008 из среды общего хостинга
вы можете использовать базу данных копирования ... щелкните правой кнопкой мыши на удаленной базе данных ... выберите задачи и используйте copy database ... он просит вас об исходном сервере и сервере назначения . что ваш источник является удаленным, а назначение-локальным экземпляром sql server.
Это просто
существует 99% решение для получения файла bak с удаленного sql server на локальный компьютер. Я описал его там в своем посте http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc
В общем это будет выглядеть так:
выполнить SQL-скрипт для создания файлов bak
выполнить сценарий sql, чтобы вставить каждый файл bak во временную таблицу с типом поля varbinary и выбрать эту строку и скачать данные
повторить prev. шаг столько раз, сколько у вас есть файлы BAK
выполнить SQL-скрипт для удаления всех временных ресурсов
вот и все, у вас есть файлы bak на вашем локальном ПК.
банда AppHarbor боролась с этим и разработала временное решение с использованием объектов управления SQL server и SqlBulkCopy.
проверить своем блоге об этом, или пойти прямо в коде.
Они только протестировали его с AppHarbor, но это может быть стоит проверить.
выше ответы не верны. Сценарий SQL даже с данными не является резервной копией. Резервная копия-это файл BAK, содержащий полную базу данных в ее текущей структуре, включая indizes.
конечно, BAK файл с полной резервной копии всех данных и indizes из удаленной базы данных SQL Server могут быть получены на локальной системе.
Это можно сделать с помощью коммерческого программного обеспечения, чтобы напрямую сохранить резервный файл BAK на локальном компьютере, например этот непосредственно создаст резервную копию с удаленного SQL db на локальном компьютере.
Как сказал Мартин Смит, Если у вас нет доступа к машине или файловой системе, вам нужно будет использовать сторонние инструменты, такие как Red Gate или Adept, чтобы сравнить исходные и целевые системы. Инструменты Red Gate позволят вам копировать объекты, схемы и данные.
просто попробуй это:
1) поделитесь папкой с полным разрешением на вашем компьютере
2) в вашем SQL server : панель управления - > Администрирование - > Службы - > щелкните правой кнопкой мыши на всех службах SQL
на вкладке вход в систему должен начинаться с администратора домена
3) в Мастере обслуживания sql server поместите расположение и папку резервного копирования (\yourcomputername\sharedfoldernam)
Я делал удаленное резервное копирование на 8 сервере sql server 2008 года в нашей компании
Я удивлен, что никто не упомянул сценарий резервного копирования, предлагаемых Оле Халленгрен что абсолютно тут позволяет создавать резервные копии БД с удаленного сервера на UNC-путь в вашей сети бесплатно (я фактически использую его, как я печатаю для резервного копирования БД с dev-сервера, к которому у меня нет удаленного доступа, кроме как через SSMS к общему ресурсу на моем dev-ПК). Это доступно с 2008 года и работает на SQL Server 2005 до 2014 года.
вы необходимо убедиться, что настроенный вами ресурс имеет достаточный доступ: я, как правило, разрешаю полное чтение/запись в группу объявлений " Все " на время процесса резервного копирования, потому что я слишком ленив, чтобы выяснить что-либо более ограничительное, но это личный выбор.
Он хорошо используется, хорошо документирован и очень гибкий. Я склонен помещать процессоры и таблицу регистрации в их собственную небольшую базу данных утилит, а затем запускать ее. При условии, что все находится в вашем домене AD, а не удаленно в том смысле, что это на совместном сервере или что-то еще, это работает очень хорошо.
извинения за добавление в очень старую тему, но я наткнулся на это, когда искал что-то еще и решил, что это стоящее дополнение для тех, кто ищет эту тему.
Я мог бы сделать это один раз...для этого у вас должен быть открыт общий ресурс на удаленном сервере. затем вы можете напрямую разместить резервную копию на самом ресурсе, чем расположение по умолчанию...
обычно администратор берет резервную копию и делится ею с нами в какой-то общей папке. Я попробовал, если это сработает, если я помещу туда резервную копию. Это сработало.
yone способ, которым вы можете взять резервную копию с удаленного экземпляра SQL Server на локальный диск, учитывая следующее условие:
- у вас есть общая папка на локальном диске.
- общая папка доступна из окна SQL Server.
теперь при указании команды резервного копирования, используйте путь к общей папке при указании параметра диска.
Если вы используете сценарии генерации в SSMS, нажмите кнопку Дополнительно. В разделе "создание сценариев для зависимых объектов" выберите True. Щелкнув, что любые зависимости каждого объекта также будут написаны в правильном порядке.
некоторые сторонние программы резервного копирования позволяют устанавливать передачу файлов с определенными сетевыми разрешениями. Это очень полезно, когда служба SQL Server работает под ограниченной учетной записью и не имеет достаточных разрешений сети. Попробуйте использовать EMS SQL Backup которая решает эту задачу.
Я использую Redgate backup pro 7 инструменты для этой цели. вы можете создать зеркало из файла резервной копии в create tile в другом месте. и смогите скопировать архивный файл после создания на сети и на хранении хозяина автоматически.
Если вы находитесь в локальной сети, вы можете поделиться папкой на локальном компьютере и использовать ее в качестве папки назначения для резервного копирования.
пример:
-
локальная папка:
C:\MySharedFolder -> URL: \MyMachine\MySharedFolder
-
удаленный SQL Server:
Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\MyMachine\MySharedFolder'