Codzienna kopia bazy danych, bez wyłączania usługi/odpinania bazy - czy jest możliwe?

0

Dzień dobry,

Mam bazę na SQL Server Express 2017

Potrzebuję kopii bazy danych na tym samym serwerze, do codziennych testów/raportów itp

czyli mam dwie bazy i codziennie byłaby wykonywana kopia danych z jednej do drugiej, przykład:

screenshot-20220713133056.png

Problem jest taki, że chciałbym aby wszystko wykonywało się raz dziennie automatycznie, np. o 23:00, bez wyłączania usługi serwera i odpinania głównej bazy(wolę nie ryzykować)

Przeszukałem już chyba cały internet i nie mogę znaleźć rozwiązania :(

Z góry dzięki za pomoc!

Pozdrawiam
M

1

Rozwiązanie jakiego problemu?

SQL Expres pięknie backupuje bazy online, nawet z aktywnością użytkowników jednocześnie.

ps. pewnie dlatego nie mogles znaleźć - bo nikt nie szuka "rozwiązania" zw z wyłamaniem otwartych drzwi.

3

SQL Express nie ma SQL Agenta, więc musisz się wesprzeć schedulerem OS'a i uzyć narżedzie sqlcmd
skryypt backupu i restore wyklikasz w SSMS, używając przycisku script:

screenshot-20220713144447.png

0

@ZrobieDobrze: Ok, ale chciałbym aby to się działo automatycznie, nie chcę klikać codziennie tego samego... a SQL Express ma pewne ograniczenia, stąd moje pytanie...

@Panczo: Dzięki i niestety się nie doszukałem, ale posprawdzam jeszcze, może coś wynajdę...

1

Ale czego się nie doszukałeś.

W SSMS, prawy klik na bazie którą chcesz skopiować -> Backup database, po ustawieniu klikasz scipt i masz skrypt backupu.
Analogicznie na bazie docelowej tylko zamiast backup wybierasz restore (ważne, abyś zmieniłem destination database po wybraniu pliku backupu) przycisk script i masz skrypt restora na testowej bazie.

zapisujesz skrypt jako plik SQL i używasz parametru in w sqlcmd do jego puszczenia. Puszczasz przy pomocy harmonogramu systemu operacyjnego

0

@Panczo: screenshot-20220713155904.png

użyłem sqlcmd, wykonał się backup, a przy restore mam to i jak to obejść

1

W celu restora nie możesz mieć żadnych połaczeń z bazą. Najprościej przestaw bazę w tryb single user wykonaj restore, przejdź w tryb multi user

1
Panczo napisał(a):

W celu restora nie możesz mieć żadnych połaczeń z bazą. Najprościej przestaw bazę w tryb single user wykonaj restore, przejdź w tryb multi user

Kolega coś kombinuje nie chce / nie umie powiedzieć. Ma jakiś tajemniczy soft, który siedzi 24h na bazie danych. Czy go zabije tradycyjnie, czy przez single user, jeden kij.

Obstawiam, zabicie tradycyjne jest lepsze (ma szansę być lepsze, jeśli się fajnie oprogramuje)
Zabranie połączenia żywemu oprogramowaniu to "syndrom psa Huckelberego" nad przepaścią Oohh, lets going down - to wymaga naprawdę dobrej kultury programisty, aby program przeżył i wznowił prace bez większych problemów. Np dobre vs złe programy "do obsługi firmy", a wręcz nie do zrobienia nad jakimiś archaicznymi frameworkami.

JEŚLI założyć optymistycznie, że zapisy sa pod sensownymi transakcjami, to spójność zapisów ma się obronić, ale wiele rzeczy może zajść, np zjadanie połączeń SQL (wprawdzie na początku jest ich "zaledwie" kilkadziesiąt tysięcy, ale da się to wyczerpać *)- zależnie od dojrzałości środowiska, jakim się robi dostęp, i kultury programisty)

*) znam, miałem raz na prodzie. Trwało tygodniami zjadanie do zera, ale nastapilo. Nie każde zamykane połączenie wracało do puli MS-Servera

0

Ale z tego co rozumiem to ta kopia jest robiona w konkretnym celu, (do raportowania). Jaki sens przejmowania sie czy wszystko się zapisze, jak i tak ,zaraz to przykrywamy kopią głównej bazy?

0

@Panczo: Tak, dokładnie. Sam codzienny backup wykonany w ten sposób rozumiem, że jest bezpieczny? Jeśli chodzi o restore, to nawet gdyby coś poszło nie tak, to mogę to dodać od nowa, nawet kilku dniowa przerwa do tej bazy z restore nie stanowi problemu.

1

Sam codzienny backup wykonany w ten sposób rozumiem, że jest bezpieczny?

Tego pytania nie rozumiem, co masz na myśli bezpieczny?
Poprawnie wykonany pozwoli ci odtworzyć bazę z niego.

Polityka disaster recovery to szeroki temat, poczytaj sobie o tym

0

Hasło do wpisania w Google: "Ms SQL Server Express replication".

1 użytkowników online, w tym zalogowanych: 0, gości: 1