Eksportowanie i importowanie baz danych MSSQL przez udział sieciowy

  • Mike Sherman
  • 8 października 2020, 9:00

podczas pracy z bazami danych MSSQL może się okazać, że konieczne jest eksportowanie baz danych przez udział sieciowy bezpośrednio z interfejsu SQL Server Management Studio (SMSS). Chociaż SMSS nie zawiera tej funkcji natywnie, pokażemy Ci obejście!

najpierw omówmy eksportowanie i importowanie baz danych MSSQL

jako podstawową konieczność korzystania z tego przewodnika, chcemy się upewnić, że wiesz, jak eksportować i importować bazy danych .pliki bak. Jest to zarówno sposób tworzenia kopii zapasowej bazy danych MSSQL, jak i przenoszenia bazy danych między dwoma serwerami. Proces ten jest określany wewnętrznie w SSMS (SQL Server Management Studio) jako tworzenie kopii zapasowych lub przywracanie bazy danych, w zależności od tego, w jakim kierunku idziesz.

eksportowanie bazy danych MSSQL przez kopię zapasową

aby rozpocząć eksportowanie bazy danych, otwórz SSMS, Zaloguj się na serwer i przejdź do bazy danych.

możesz wykonać kopię zapasową bazy danych, klikając prawym przyciskiem myszy żądane bazy danych i przechodząc do zadań > Kopia zapasowa.

Uruchom kopię zapasową bazy danych, klikając prawym przyciskiem myszy żądane bazy danych i przechodząc do kopii zapasowej Zadań.

Reklama

otwiera to Menu Kopia zapasowa bazy danych, w którym można wybrać bazę danych do utworzenia kopii zapasowej, typ kopii zapasowej, miejsce docelowe pliku i wiele innych opcji. Ze względu na ten artykuł nie musimy obecnie modyfikować żadnych dodatkowych ani zaawansowanych ustawień, więc po prostu pamiętaj o menu i jego układzie.

 tutaj możesz wybrać opcje, aby wybrać opcje do wykonania kopii zapasowej.

podczas tworzenia kopii zapasowej MSSQL twoja baza danych zostanie wyeksportowana jako.akta bak. W sekcji miejsce docelowe powyższego menu możesz dodać lub usunąć lokalizacje, w których chcesz utworzyć kopię zapasową bazy danych. Możesz dodać jedną lub wiele lokalizacji dla lokalizacji docelowej .akta bak.

kliknij OK, a twoja baza danych zostanie zarchiwizowana do wybranej lokalizacji.

Importowanie bazy danych MSSQL poprzez przywrócenie

aby przywrócić bazę danych, wykonamy podobny proces, ale odwrotnie. Zamiast eksportować bazę danych do a .bak pliku, będziemy importować bazę danych z .akta z powrotem.

aby zaimportować bazę danych, kliknij prawym przyciskiem myszy serwer zamiast bazy danych i wybierz Przywróć bazę danych.

Importuj bazę danych, klikając prawym przyciskiem myszy serwer i wybierając Przywróć bazę danych.

spowoduje to przejście do menu podobnego do menu kopii zapasowej, w którym można wybrać plik, z którego importujesz, w ustawieniach urządzenia i jego lokalizację docelową, a także inne zaawansowane opcje, których możesz potrzebować.

wybierz Plik, z którego chcesz zaimportować, w ustawieniach urządzenia, wraz z jego lokalizacją docelową i innymi niezbędnymi opcjami zaawansowanymi.

Reklama

wybranie ikony pod źródłem > menu urządzenia umożliwia wybór .plik bak, który chcesz zaimportować. Kliknij Dodaj i możesz przejść do .plik bak, który chcesz przywrócić. Kliknij OK, a twoja baza danych zostanie zaimportowana do bieżącego serwera SQL!

w tym momencie, jeśli próbujesz zaimportować lub wyeksportować do udziału sieciowego lub zmapowanego dysku, możesz napotkać pewne trudności.

dlaczego nie mogę eksportować bezpośrednio na zmapowany dysk?

ten przewodnik istnieje, ponieważ Microsoft natywnie nie zawiera funkcji eksportowania bazy danych bezpośrednio do udziału sieciowego lub zmapowanego dysku. Podczas eksportowania bazy danych do celów tworzenia kopii zapasowych lub importowania na inny serwer nie można wybrać z menu żadnych dysków sieciowych ani ręcznie wprowadzić lokalizacji zdalnej.

wybór lokalizacji sieciowej, w której ma być przechowywana kopia zapasowa.

jeśli spróbujesz przejść do dysku, wybierając ikonę w menu wybierz miejsce docelowe kopii zapasowej, Twój sieciowy dysk Z: nie zostanie wyświetlony i zostaną wyświetlone tylko dyski lokalne.

dyski lokalne do wyboru z menu wybierz miejsce docelowe kopii zapasowej.

Wiele osób próbuje ręcznie wprowadzić ścieżkę do swojego dysku sieciowego. Jeśli bezpośrednio wejdziesz w ścieżkę do dysku udostępniania sieciowego, na przykład Z:\mybackup.bak, możesz kliknąć OK w menu wybierz miejsce docelowe kopii zapasowej.

możesz bezpośrednio wprowadzić ścieżkę do dysku udostępniania sieciowego w menu wybierz miejsce docelowe kopii zapasowej.

Reklama

ale po kliknięciu OK na ostatnim eksporcie wyskakuje komunikat o błędzie podobny do tego:

jeśli kopia zapasowa nie może znaleźć właściwej ścieżki do przechowywania kopii zapasowej, przy ostatecznym eksporcie zostanie wyświetlony komunikat o błędzie.

jak widać, może to być problem, jeśli potrzebujesz wykonać kopię zapasową baz danych w zdalnej lokalizacji z powodu braku miejsca lub ze względów bezpieczeństwa. Zazwyczaj trzeba będzie wyeksportować bazę danych lokalnie, skopiować ją na zdalny serwer,a następnie zaimportować do docelowego serwera SQL.

Jak Obejść Tę Brakującą Funkcjonalność?

aby to zrobić, należy uruchomić serię skryptów, aby dodać dysk sieciowy do menu wyboru MSSQL. Pierwszą rzeczą do zrobienia jest usunięcie bieżącego udziału sieciowego, ponieważ odtwarzasz go podczas procesu w wierszu poleceń SQL. Aby to zrobić, po prostu kliknij prawym przyciskiem myszy dysk w Eksploratorze plików i wybierz “Rozłącz” lub otwórz wiersz polecenia i wprowadź:

net use Z: /delete

Twój udział sieciowy jest literą dysku Z.

po usunięciu istniejącego udziału otwórz SSMS i utwórz nowe zapytanie za pomocą następujących poleceń:

EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell',1 GO RECONFIGURE GO

kliknij wykonaj, a zobaczysz następujące okno:

usuwanie aktualnego udziału sieciowego.

ten skrypt konfiguruje powłokę poleceń dla SQL, aby umożliwić uruchamianie własnych skryptów bezpośrednio z powłoki poleceń zgodnej z SQL.

Reklama

po uruchomieniu powyższego polecenia Utwórz nowe zapytanie i wykonaj następujące polecenie:

EXEC XP_CMDSHELL 'net use Z: \192.168.1.1\C$ /user:Administrator '

Zastąp 192.168.1.1 adresem IP zdalnego serwera docelowego i zaktualizuj hasło użytkownika administracyjnego. Pamiętaj, że aby utworzyć te udziały, prawie na pewno potrzebujesz uprawnień administratora.

możesz teraz sprawdzić, czy dysk sieciowy jest poprawnie skonfigurowany w SQL, wykonując następujące zapytanie:

EXEC XP_CMDSHELL 'Dir V:'

włączyłeś commandshell, utworzyłeś udział sieciowy w SQL i zweryfikowałeś jego istnienie. Możesz teraz eksportować i importować kopie zapasowe bezpośrednio z tej lokalizacji. Możesz go zobaczyć, przechodząc do bazy danych > zadania > Kopia zapasowa, gdzie możesz zobaczyć, że dysk Z: jest dostępny podczas dodawania lokalizacji docelowej, do której ma zostać wykonana kopia zapasowa.

Gratulacje! Teraz skonfigurowano udział sieciowy w SQL, który utrzymuje się nawet po zamknięciu i ponownym otwarciu SSMS. Możesz teraz tworzyć kopie zapasowe lub przywracać je bezpośrednio do tej lokalizacji i nie musisz już martwić się o tworzenie kopii zapasowych baz danych lokalnie, tylko natychmiast przenieść je na zdalny serwer.

Mike Sherman
Mike Sherman pracował jako główny administrator serwerów korporacyjnych w Międzynarodowym Centrum danych, a także konsultant techniczny w krajowym MSP. Ma wieloletnie doświadczenie w hostingu, bezpieczeństwie i praktycznym rozwiązywaniu problemów.Przeczytaj Cały Biogram ”

Leave a Reply