Jak wykonać kopię zapasową na poziomie tabeli (zrzut) w MS SQL Server 2005/2008?
Odpowiedzi:
Nie można użyć BACKUP DATABASE
polecenia do wykonania kopii zapasowej pojedynczej tabeli, chyba że oczywiście dana tabela jest przydzielona do jej własnej FILEGROUP
.
Zgodnie z sugestią możesz wyeksportować dane tabeli do pliku CSV. Teraz, aby uzyskać definicję swojej tabeli, możesz „wykreślić” CREATE TABLE
skrypt.
Możesz to zrobić w SQL Server Management Studio przez:
klikając prawym przyciskiem myszy Baza danych> Zadania> Generuj skrypt
Następnie możesz wybrać tabelę, którą chcesz skrypty, a także dołączyć wszelkie powiązane obiekty, takie jak ograniczenia i indeksy.
aby uzyskać dostęp do samego DATA
tylko schema
, musisz wybrać Advanced
na karcie ustawianie opcji skryptów, aw GENERAL
sekcji ustawić Types of data to script
zaznaczSchema and Data
Mam nadzieję, że to pomoże, ale jeśli potrzebujesz dalszej pomocy, skontaktuj się ze mną bezpośrednio.
Advanced
na karcie ustawianie opcji skryptów, aw sekcji OGÓLNE ustawić Types of data to script
wybór Schema and Data
. Nie było to oczywiste, kiedy zrobiłem to po raz pierwszy.
Używam narzędzia do kopiowania zbiorczego, aby tworzyć kopie zapasowe na poziomie tabeli
eksportować:
bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E
importować:
bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
jak widać, można eksportować na podstawie dowolnego zapytania, dzięki czemu można nawet tworzyć przyrostowe kopie zapasowe. Ponadto jest skryptowalny w przeciwieństwie do innych wymienionych tutaj metod, które używają SSMS.
Oto kroki, których potrzebujesz. Krok 5 jest ważny, jeśli chcesz danych. Krok 2 to miejsce, w którym możesz wybrać poszczególne tabele.
Wersja stosu EDIT nie jest do końca czytelna ... oto obraz w pełnym rozmiarze http://i.imgur.com/y6ZCL.jpg
Możesz uruchomić poniższe zapytanie, aby wykonać kopię zapasową istniejącej tabeli, która utworzy nową tabelę z istniejącą strukturą starej tabeli wraz z danymi.
select * into newtablename from oldtablename
Aby skopiować tylko strukturę tabeli, użyj poniższego zapytania.
select * into newtablename from oldtablename where 1 = 2
Jest to podobne do rozwiązania qntmfred , ale z wykorzystaniem bezpośredniego zrzutu tabeli. Ta opcja jest nieco szybsza (zobacz dokumentację BCP ):
eksportować:
bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E
importować:
bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Jeśli szukasz czegoś takiego jak MySQL DUMP
, to dobra wiadomość: SQL Server 2008 Management Studio dodał tę możliwość.
W programie SSMS kliknij prawym przyciskiem myszy odpowiednią bazę danych i wybierz opcję Zadania> Generuj skrypty . Następnie na drugiej stronie kreatora opcji upewnij się, że zaznaczasz, że chcesz, aby dane również były skrypty , a wygeneruje on DUMP
dla Ciebie plik.
Utwórz nową grupę plików, umieść w niej tę tabelę i wykonaj kopię zapasową tylko tej grupy plików.
Możesz skorzystać z bezpłatnego Kreatora publikowania bazy danych firmy Microsoft, aby wygenerować pliki tekstowe ze skryptami SQL (UTWÓRZ TABELĘ i WSTAWIĆ DO).
Możesz utworzyć taki plik dla pojedynczej tabeli i „przywrócić” całą tabelę, w tym dane, po prostu uruchamiając skrypt SQL.
Nie wiem, czy będzie pasować do opisanego tutaj problemu. Musiałem wziąć przyrostową kopię zapasową tabeli! (Należy kopiować tylko nowo wstawione dane). Kiedyś projektowałem pakiet DTS, w którym.
Pobrałem nowe rekordy (na podstawie kolumny „status”) i przesłałem dane do celu. (Poprzez „Zadanie przekształcania danych”)
Potem właśnie zaktualizowałem kolumnę „status”. (Poprzez „Wykonaj zadanie SQL”)
Musiałem poprawnie naprawić „przepływ pracy”.
Każdy model odzyskiwania umożliwia tworzenie kopii zapasowych całej lub częściowej bazy danych SQL Server lub pojedynczych plików lub grup plików bazy danych. Nie można tworzyć kopii zapasowych na poziomie tabeli .
Prawdopodobnie masz dwie opcje, ponieważ SQL Server nie obsługuje kopii zapasowych tabel. Oba rozpoczęłyby się od skryptu tworzenia tabeli. Następnie możesz użyć opcji Script Table - INSERT, która wygeneruje wiele instrukcji wstawiania, lub możesz użyć usług integracji (DTS z 2000) lub podobnych, aby wyeksportować dane jako CSV lub podobny.
BMC Recovery Manager (dawniej znany jako SQLBacktrack) umożliwia odzyskiwanie pojedynczych obiektów w bazie danych (zwanych również tabelami) do określonego punktu w czasie. To nie jest tanie, ale wykonuje fantastyczną pracę: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html
http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html
Jeśli szukasz możliwości przywrócenia tabeli po tym, jak ktoś omyłkowo usunął z niej wiersze, możesz rzucić okiem na migawki bazy danych. Możesz dość łatwo przywrócić tabelę (lub podzbiór wierszy) z migawki. Zobacz http://msdn.microsoft.com/en-us/library/ms175158.aspx
Bezpłatna aplikacja o nazwie SqlTableZip wykona zadanie. Zasadniczo piszesz dowolne zapytanie (które oczywiście może być również [wybierz * z tabeli]), a aplikacja tworzy skompresowany plik ze wszystkimi danymi, który można później przywrócić.
Handy Backup automatycznie tworzy pliki zrzutu z MS SQL Server, w tym MSSQL 2005/2008. Te zrzuty są plikami binarnymi na poziomie tabeli, zawierającymi dokładne kopie określonej zawartości bazy danych.
Aby wykonać prosty zrzut za pomocą Handy Backup, wykonaj następną instrukcję:
Teraz uruchom nowe zadanie, klikając ikonę przed jego nazwą lub poczekaj na zaplanowany czas. Handy Backup automatycznie utworzy zrzut dla Twojej bazy danych. Następnie otwórz miejsce docelowe kopii zapasowych. Znajdziesz folder (lub kilka folderów) z kopiami zapasowymi MS SQL. Każdy taki folder będzie zawierał plik zrzutu na poziomie tabeli, składający się z niektórych tabel binarnych i ustawień skompresowanych w jednym pliku ZIP.
Handy Backup może zapisywać zrzuty dla MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes i dowolnej ogólnej bazy danych SQL ze sterownikiem ODBC. Niektóre z tych baz danych wymagają dodatkowych kroków w celu ustanowienia połączenia między DBMS a Handy Backup.
Narzędzia opisane powyżej często zrzucają bazy danych SQL jako sekwencję poleceń SQL na poziomie tabeli, przygotowując te pliki do wszelkich potrzebnych ręcznych modyfikacji.