Jak wykonać kopię zapasową zdalnej bazy danych SQL Server na dysku lokalnym?

Muszę skopiować bazę danych ze zdalnego serwera na lokalny. Próbowałem użyć SQL Server Management Studio, ale to tylko kopie zapasowe na dysku na zdalnym serwerze.

Niektóre punkty:

  • nie mam dostępu do zdalnego serwera w sposób umożliwiający kopiowanie plików;
  • nie mam dostępu do konfiguracji ścieżki UNC do mojego serwera;

Jakieś pomysły jak skopiować tę bazę? Czy będę musiał korzystać z narzędzi innych firm?

Author: yoozer8, 2010-10-15

20 answers

W Microsoft SQL Server Management Studio możesz kliknąć prawym przyciskiem myszy bazę danych, którą chcesz utworzyć i kliknąć Zadania - > Generuj Skrypty.

Otwiera się kreator, w którym można ustawić następujące ustawienia, aby wykonać porządną kopię zapasową bazy danych, nawet na zdalnym serwerze :

  • Wybierz bazę danych, którą chcesz utworzyć i kliknij Dalej,
  • w opcjach, które Ci przedstawia:
    1. w 2010: pod opcjami Table/View Zmień 'Script Data' i ' Script Indeksy ' do True I hit next,
    2. w 2012: w sekcji "Ogólne" Zmień "typy danych na skrypt" z "tylko schemat" na "schemat i dane"
    3. w 2014: opcja skryptu danych jest teraz "ukryta" w kroku "Ustaw opcje skryptów" , musisz kliknąć "zaawansowane" i ustawić" typy danych do skryptu "na" schemat i dane " wartość
  • w następnym czterech oknach, naciśnij "Wybierz wszystkie", a następnie następny,
  • Wybierz skrypt do nowego okna zapytania

Once zrobił swoje, będziesz miał gotowy skrypt zapasowy przed sobą. Utwórz nową lokalną (lub zdalną) bazę danych i zmień pierwszą instrukcję " USE " w skrypcie, aby użyć nowej bazy danych. Zapisz skrypt w bezpiecznym miejscu i uruchom go z nową pustą bazą danych. Powinno to utworzyć (prawie) zduplikowaną lokalną bazę danych, którą możesz następnie wykonać w dowolny sposób.

Jeśli masz pełny dostęp do zdalnej bazy danych, możesz wybrać opcję "script all objects" w pierwsze okno kreatora, a następnie zmień opcję "Baza skryptów" na True w następnym oknie. Uważaj jednak, musisz wykonać pełne wyszukiwanie i zastąpić nazwę bazy danych w skrypcie do nowej bazy danych, która w tym przypadku nie będzie musiała być tworzona przed uruchomieniem skryptu. Powinno to utworzyć dokładniejszy duplikat, ale czasami nie jest dostępny z powodu ograniczeń uprawnień.

 160
Author: Daniel Gill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-14 17:09:00

Kopiowanie tylko danych i schematów (nie kopiuje przechowywanych procedur, funkcji itp.), użyj Kreatora importu i eksportu SQL Server i wybierz New... przy wyborze docelowej bazy danych.

Kliknij Prawym Przyciskiem Myszy Baza Danych > Zadania > Importuj Dane.

Wybierz źródło danych

  • Źródło danych: natywny klient SQL Server
  • Nazwa serwera : serwer zdalny
  • uwierzytelnianie :
  • baza danych : db nazwa

Wybierz cel

  • Źródło danych: natywny klient SQL Server
  • Nazwa serwera : serwer lokalny
  • uwierzytelnianie :
  • Baza Danych: New...
Reszta jest prosta.
 38
Author: Shaun Luttin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-12 18:18:27

Ty nie możesz utworzyć kopii zapasowej ze zdalnego serwera na dysk lokalny - po prostu nie ma na to sposobu. I nie ma narzędzi innych firm, aby to zrobić, o ile wiem.

Wszystko, co możesz zrobić, to utworzyć kopię zapasową na zdalnym serwerze, i poprosić kogoś, żeby ją zapinał i wysłał do ciebie.

 27
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-15 12:53:02

Najpierw przyznaj wszystkim pełne uprawnienia kontroli do ścieżki lokalnej na komputerze (jak pokazano poniżej). (Lub alternatywnie nadaje uprawnienia konkretnie do konta Agenta SQL Server).

Po Drugie, wykonaj następujące czynności:

BACKUP DATABASE [dev] TO  DISK = N'\\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;
 24
Author: T. Webster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:42:42

Wiem, że to późna odpowiedź, ale muszę skomentować większość głosowanych odpowiedzi, która mówi, aby użyć opcji generowania skryptów w SSMS.

Problem z tym, że ta opcja nie musi generować skryptu w prawidłowej kolejności wykonania, ponieważ nie bierze pod uwagę zależności.

Dla małych baz danych to nie jest problem, ale dla większych z pewnością jest, ponieważ wymaga ręcznego ponownego zamówienia tego skryptu. Spróbuj na 500 obiektowej bazie danych;)

Niestety w tym przypadku jedynym rozwiązaniem są narzędzia innych firm.

Z powodzeniem wykorzystałem narzędzia porównawcze zApexSQL (Diff i Data Diff) do podobnych zadań, ale nie można się pomylić z innymi już wspomnianymi tutaj, szczególnie z Red Gate.

 16
Author: Phill C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-12 08:55:52

Możesz spróbować SQLBackupAndFTP. Utworzy skrypty do tworzenia wszystkich obiektów w bazie danych i wstawi instrukcje dla wszystkich wierszy w tabelach. W dowolnej bazie danych można uruchomić ten plik skryptu i cała baza danych zostanie ponownie utworzona.

 13
Author: adinas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-09 20:39:55

Spójrz na ten blog, aby znaleźć opis jak skopiować zdalną bazę danych:

Tworzenie kopii zapasowych bazy danych SQL Server 2008 ze współdzielonego środowiska hostingowego

 6
Author: Marcel W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 08:32:57

Możesz użyć Kopiuj bazę danych ... kliknij prawym przyciskiem myszy na zdalnej bazie danych ... wybierz zadania i użyj Kopiuj bazę danych ... zapyta Cię o serwer źródłowy i serwer docelowy . że twoje źródło jest zdalne, a miejsce docelowe to Twoja lokalna instancja sql server.

It ' s that easy

 4
Author: Pouyan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-11 13:58:14

Istnieje 99% rozwiązanie, aby pobrać plik bak ze zdalnego serwera sql do lokalnego komputera. Opisałem to tam w moim poście http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc

Ogólnie będzie to wyglądało tak:

  • Wykonaj skrypt sql do generowania plików bak

  • Wykonaj skrypt sql, aby wstawić każdy plik bak do tabeli temp z typem pola varbinary i wybierz ten wiersz i pobierz DANE

  • Powtórz poprzedni artykuł. krok jak wiele razy jak masz pliki bak

  • Wykonaj skrypt sql, aby usunąć wszystkie zasoby tymczasowe

To jest to, masz swoje pliki bak na lokalnym komputerze.

 4
Author: okarpov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-27 12:22:00

Gang AppHarbor zmaga się z tym i opracował tymczasowe rozwiązanie wykorzystujące obiekty zarządzania SQL server i SqlBulkCopy.

Sprawdź ich blog post o tym, lub idź prosto do kodu .

Przetestowali go tylko z AppHarbor, ale może warto to sprawdzić.

 3
Author: Daniel Gill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-16 08:52:20

Powyższe odpowiedzi nie są poprawne. Skrypt SQL nawet z danymi nie jest kopią zapasową. Kopia zapasowa to plik BAK, który zawiera pełną bazę danych w swojej obecnej strukturze, w tym indizes.

Oczywiście plik BAK zawierający pełną kopię zapasową wszystkich danych i danych ze zdalnej bazy danych SQL Server można pobrać w systemie lokalnym.

Można to zrobić za pomocą komercyjnego oprogramowania, aby bezpośrednio zapisać plik kopii zapasowej BAK na lokalnym komputerze, na przykład Ten utworzy bezpośrednio kopię zapasową ze zdalnego bazy danych SQL na komputerze lokalnym.

 3
Author: Matthias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-28 10:38:05

Jak powiedział Martin Smith, jeśli nie masz dostępu do maszyny lub systemu plików, musisz użyć narzędzi innych firm, takich jak Red Gate lub Adept, aby porównać systemy źródłowe i docelowe. Narzędzia Red Gate pozwolą Ci kopiować obiekty i schematy oraz dane.

 1
Author: Vinnie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-15 15:01:23

Po prostu spróbuj tego:

1) Udostępnij folder z pełnym pozwoleniem na komputerze

2) w Twoim serwerze SQL : Panel sterowania -> Narzędzia administracyjne -> Usługi -> kliknij prawym przyciskiem myszy wszystkie usługi SQL

W zakładce log On należy zacząć od administratora domeny

3) w kreatorze konserwacji sql server umieść lokalizację kopii zapasowej i folder (\yourcomputername\sharedfoldernam)

Wykonałem zdalny backup na 8 serwerze sql server 2008 w naszej firmie
 1
Author: Parsaria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-08 20:02:34

Jestem zdumiony, że nikt nie wspomniał o skryptowym rozwiązaniu do tworzenia kopii zapasowych oferowanym przez Ola Hallengren, które absolutnie Pozwala wykonać kopię zapasową bazy danych ze zdalnego serwera do ścieżki UNC w Twojej sieci za darmo(używam go podczas pisania, aby wykonać kopię zapasową bazy danych z serwera dev, do którego nie mam zdalnego dostępu innego niż przez SSMS do udziału na moim komputerze dev). Jest on dostępny od 2008 roku i działa na SQL Server 2005 aż do 2014 roku.

Musisz upewnić się, że skonfigurowany udział ma wystarczający dostęp: zazwyczaj zezwalam na pełny odczyt/zapis do grupy reklam "wszyscy" na czas trwania procesu tworzenia kopii zapasowej, ponieważ jestem zbyt leniwy, aby wymyślić coś bardziej restrykcyjnego, ale to osobisty wybór.

Jest dobrze używany, dobrze udokumentowany i bardzo elastyczny. Zazwyczaj umieszczam procs i tabelę logowania w ich własnej małej bazie danych, a potem odpalam. Pod warunkiem, że wszystko jest w Twojej domenie reklamowej, a nie zdalne w tym sensie, że jest na wspólnym serwerze czy coś, to działa bardzo dobrze.

Przepraszam za dodanie do bardzo starego wątku, ale natknąłem się na to, gdy szukałem czegoś innego i uznałem, że jest to wartościowy dodatek dla każdego, kto szuka tego tematu.

 1
Author: Steve Pettifer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-30 11:07:21

I could do that once...TO w tym celu musisz mieć otwarty udział na zdalnym serwerze. następnie możesz bezpośrednio umieścić kopię zapasową na samym udziale, niż domyślną lokalizację...

Zazwyczaj administrator bierze kopię zapasową i udostępnia ją nam w jakimś udostępnionym folderze. Próbowałem, jeśli to zadziała, jeśli umieszczę tam kopię zapasową. Zadziałało.

 0
Author: Vivek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-21 02:09:35

Yone sposób można wykonać kopię zapasową ze zdalnej instancji SQL Server na dysk lokalny, biorąc pod uwagę następujący warunek:

  1. masz folder udostępniony na dysku lokalnym.
  2. folder udostępniony jest dostępny z pola SQL Server.

Teraz przy określaniu polecenia kopii zapasowej należy użyć ścieżki folderu udostępnionego przy określaniu opcji dysku.

 0
Author: Naresh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-15 06:11:44

Jeśli używasz skryptów generowania pod SSMS, kliknij przycisk Zaawansowane. W opcji "Generuj Skrypty dla obiektów zależnych" kliknij True. Klikając, że wszelkie zależności każdego obiektu będą również wyświetlane w odpowiedniej kolejności.

 0
Author: user2684,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-03 05:12:06

Niektóre programy do tworzenia kopii zapasowych innych firm umożliwiają ustawienie transferu plików z określonymi uprawnieniami sieciowymi. Jest to bardzo przydatne, gdy usługa SQL Server działa pod ograniczonym kontem i nie ma wystarczających uprawnień sieciowych. Spróbuj użyć EMS SQL Backup , który rozwiązuje to zadanie.

 0
Author: curandero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-08 03:30:22

Używam do tego celu narzędzi Redgate backup pro 7. możesz utworzyć lustro z pliku kopii zapasowej w Utwórz kafelek w innej lokalizacji. i może skopiować plik kopii zapasowej po utworzeniu w sieci i na pamięci masowej hosta automatycznie.

 0
Author: mehdi lotfi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 08:16:26

Jeśli jesteś w sieci lokalnej, możesz udostępnić folder na komputerze lokalnym i użyć go jako folderu docelowego dla kopii zapasowej.

Przykład:

  • Folder lokalny:

    C:\MySharedFolder -> URL: \\MyMachine\MySharedFolder

  • Remote SQL Server:

    Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\\MyMachine\MySharedFolder'

 -1
Author: Tonatio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-10 15:54:14