Мне нужно скопировать базу данных с удаленного сервера на локальный. Я пытался использовать SQL Server Management Studio, но он создает резервные копии только на диске на удаленном сервере.
Некоторые моменты:
- У меня нет доступа к удаленному серверу таким образом, чтобы я мог копировать файлы;
- У меня нет доступа для настройки UNC-пути к моему серверу;
Любые идеи о том, как я могу скопировать эту базу данных? Должен ли я использовать сторонние инструменты?
sql
sql-server
backup
Фернандо
источник
источник
Generate and Publish Scripts
опцию. Я получаю все таблицы и схемы. Но я не получил никаких данных с таблицами. Как я могу это исправить.Ответы:
В Microsoft SQL Server Management Studio вы можете щелкнуть правой кнопкой мыши базу данных, которую вы хотите сделать резервную копию, и выбрать Задачи -> Создать сценарии.
Это откроет мастер, где вы можете установить следующее, чтобы выполнить достойное резервное копирование вашей базы данных, даже на удаленном сервере :
Как только это будет сделано, перед вами будет готов скрипт резервного копирования. Создайте новую локальную (или удаленную) базу данных и измените первый оператор «USE» в сценарии, чтобы использовать новую базу данных. Сохраните сценарий в безопасном месте и запустите его для новой пустой базы данных. Это должно создать вам (почти) дублированную локальную базу данных, которую вы сможете затем создавать резервные копии по своему усмотрению
Если у вас есть полный доступ к удаленной базе данных, вы можете выбрать «сценарий для всех объектов» в первом окне мастера, а затем изменить параметр «База данных сценариев» на «Истина» в следующем окне. Однако будьте осторожны, вам нужно будет выполнить полный поиск и замену имени базы данных в сценарии на новую базу данных, которую в этом случае вам не придется создавать перед запуском сценария. Это должно создать более точную копию, но иногда недоступно из-за ограничений разрешений.
источник
Во-первых, предоставьте всем пользователям права полного доступа к локальному пути на вашем компьютере (как показано ниже). (Или альтернативно предоставьте разрешения специально для учетной записи агента SQL Server).
Во-вторых, выполните следующее:
источник
Чтобы скопировать только данные и схему (не будут копировать хранимые процедуры, функции и т. Д.), Используйте мастер импорта и экспорта SQL Server и выберите « Создать ...» при выборе целевой базы данных.
Щелкните правой кнопкой мыши База данных> Задачи> Импорт данных.
Выберите источник данных
Выберите место назначения
New...
Остальное прямо вперед.
источник
Вы не можете создать резервную копию с удаленного сервера на локальный диск - просто нет способа сделать это. И нет никаких сторонних инструментов, чтобы сделать это также, насколько я знаю.
Все, что вы можете сделать, это создать резервную копию на компьютере с удаленным сервером, попросить кого-нибудь сжать ее и отправить вам.
источник
Я знаю, что это поздний ответ, но я должен сделать комментарий о наиболее проголосовавшем ответе, в котором говорится, что в SSMS нужно использовать опцию создания сценариев.
Проблема в том, что эта опция не обязательно генерирует скрипт в правильном порядке выполнения, потому что он не учитывает зависимости.
Для небольших баз данных это не проблема, но для более крупных это, конечно, потому, что для этого необходимо вручную переупорядочить этот скрипт. Попробуйте это на 500 объектах базы данных;)
К сожалению, в этом случае единственным решением являются сторонние инструменты.
Я успешно использовал инструменты сравнения из ApexSQL (Diff и Data Diff) для аналогичных задач, но вы не ошибетесь с любым другим, уже упомянутым здесь, особенно с Red Gate.
источник
Вы можете попробовать SQLBackupAndFTP . Он создаст сценарии для создания всех объектов в вашей базе данных и операторы INSERT для всех строк в ваших таблицах. В любой базе данных вы можете запустить этот файл сценария, и вся база данных будет воссоздана.
источник
Посмотрите в этом блоге описание того, как скопировать удаленную базу данных:
Резервное копирование базы данных SQL Server 2008 из среды общего хостинга
источник
Существует 99% решение, чтобы получить bak-файл с удаленного сервера sql на ваш локальный компьютер. Я описал это там в своем посте http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc
В целом это будет выглядеть так:
выполнить скрипт sql для генерации bak-файлов
выполнить скрипт sql для вставки каждого файла bak во временную таблицу с типом поля varbinary, выбрать эту строку и загрузить данные
повторить пред. шагайте столько раз, сколько у вас есть bak-файлов
выполнить скрипт sql для удаления всех временных ресурсов
Вот и все, у вас есть файлы BAK на вашем локальном компьютере.
источник
Вы можете использовать Копировать базу данных ... щелкните правой кнопкой мыши на удаленной базе данных ... выберите задачи и используйте копию базы данных ... она спросит вас об исходном и конечном серверах. что ваш источник удаленный, а пункт назначения - ваш локальный экземпляр сервера sql.
это так просто
источник
Бригада AppHarbor боролась с этим и разработала временное решение с использованием объектов управления сервером SQL и SqlBulkCopy.
Проверьте их сообщение в блоге об этом, или перейдите прямо к коду .
Они только протестировали его с AppHarbor, но это может стоить проверить.
источник
Ответы выше просто не верны. Скрипт SQL даже с данными не является резервной копией. Резервная копия - это файл BAK, который содержит полную базу данных в ее текущей структуре, включая индексы.
Конечно, файл BAK, содержащий полную резервную копию со всеми данными и индексируемый из удаленной базы данных SQL Server, может быть получен в локальной системе.
Это можно сделать с помощью коммерческого программного обеспечения, например, для непосредственного сохранения файла BAK резервной копии на локальном компьютере. Этот файл создаст резервную копию из удаленной базы данных SQL на локальном компьютере.
источник
Как сказал Мартин Смит, если у вас нет доступа к компьютеру или файловой системе, вам потребуется использовать сторонние инструменты, такие как Red Gate или Adept, для сравнения исходной и целевой систем. Инструменты Red Gate позволят вам скопировать объекты и схемы И данные.
источник
В любом случае вы можете создать резервную копию с удаленного экземпляра SQL Server на локальном диске, если выполняется следующее условие:
Теперь при указании команды резервного копирования используйте путь к общей папке при указании параметра диска.
источник
просто попробуйте это:
1) Предоставить общий доступ к папке на вашем компьютере
2) на вашем сервере SQL: панель управления -> инструменты администрирования -> службы -> щелкните правой кнопкой мыши все службы SQL
на вкладке логин должен начинаться с вашего администратора домена
3) в мастере обслуживания сервера sql укажите место и папку для резервного копирования (\ yourcomputername \ sharedfoldernam)
Я сделал удаленное резервное копирование на 8 сервере SQL Server 2008 в нашей компании
источник
Я удивлен , что никто не упомянул скриптового решение для резервного копирования , предлагаемые Ola Hallengren , который абсолютно ничего позволит вам сделать резервную копию БД с удаленного сервера на путь UNC в сети бесплатно (я на самом деле , используя его как тип I сделать резервную копию БД с сервера dev, к которому у меня нет удаленного доступа, кроме как через SSMS, к общему ресурсу на моем компьютере dev). Это доступно с 2008 года и работает с SQL Server 2005 до 2014.
Вы должны убедиться, что настроенный вами общий ресурс имеет достаточный доступ: я имею тенденцию разрешать полное чтение / запись для группы AD «Все» на время процесса резервного копирования, потому что мне лень выяснять что-то более ограничительное, но это личный выбор
Он хорошо используется, хорошо документирован и очень гибок. Я склонен помещать процы и таблицу журналов в их собственную небольшую служебную базу данных, а затем запускать их. Если все находится в вашем домене AD и не является удаленным в том смысле, что оно находится на совместно расположенном сервере или чем-то еще, это работает очень хорошо.
Извиняюсь за добавление в очень старую ветку, но я наткнулся на это, когда искал что-то еще, и подумал, что это стоящее дополнение для тех, кто ищет эту тему.
источник
Для 2019 года я бы порекомендовал использовать mssql-scripter, если вы хотите создать локальную резервную копию. Да, это сценарии, но вы можете настроить его так, чтобы он включал в себя все, что вы хотите, включая все данные. Я написал скрипт bash для автоматического ежедневного резервного копирования с использованием этого на машине с Linux. Оформить заказ
источник
Я мог бы сделать это один раз ... Чтобы сделать это, вы должны открыть общий ресурс на удаленном сервере. тогда вы можете непосредственно поместить резервную копию на сам ресурс, чем в папку по умолчанию ...
Обычно администратор берет резервную копию и делится ею с нами в какой-то общей папке. Я попытался, если это сработает, если я положу туда резервную копию. Это сработало.
источник
Если вы используете Generate Scripts в SSMS, нажмите кнопку Advanced. Под опцией «Создать сценарии для зависимых объектов» нажмите «Истина». Нажав, что любые зависимости каждого объекта также будут записаны в правильном порядке.
источник
Некоторые сторонние программы резервного копирования позволяют настроить передачу файлов с определенными сетевыми разрешениями. Это очень полезно, когда служба SQL Server работает под ограниченной учетной записью и не имеет достаточных сетевых разрешений. Попробуйте использовать EMS SQL Backup, которая решает эту задачу.
источник
Для этой цели я использую инструменты Redgate Backup Pro 7 . Вы можете создать зеркало из файла резервной копии в создании плитки в другом месте. и может автоматически копировать файл резервной копии после создания в сети и на хост-хранилище.
источник
Создайте локальную общую папку с правами чтения и записи «каждому»
Подключитесь к целевой базе данных, запустите резервное копирование и укажите общий ресурс, как показано ниже
\ Моя_машина \ shared_folder \ mybackup.bak
(Пробовал в доменной среде Windows)
источник
Я знаю, что это более старая статья, но я обнаружил, что «самое простое» решение - просто щелкнуть правой кнопкой мыши базу данных и выбрать «Задачи» -> «Экспортировать приложение уровня данных». Вполне возможно, что эта опция доступна только потому, что сервер расположен на Azure (из того, что я помню, работая с Azure в прошлом, формат .bacpac был довольно распространённым там).
После этого вы можете щелкнуть правой кнопкой мыши список «Базы данных» на локальном сервере и использовать «Приложение уровня данных для импорта», чтобы получить данные на локальный компьютер с помощью файла .bacpac.
Просто имейте в виду, что экспорт может занять много времени. Мне потребовалось около двух часов, чтобы закончить экспорт. Импортировать часть намного быстрее, хотя.
источник
Если вы находитесь в локальной сети, вы можете поделиться папкой на локальном компьютере и использовать ее в качестве папки назначения для резервного копирования.
Пример:
Локальная папка:
C:\MySharedFolder -> URL: \\MyMachine\MySharedFolder
Удаленный SQL Server:
Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\\MyMachine\MySharedFolder'
источник