Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: sztywniak w Lipiec 16, 2010, 22:56:50
-
W załączniku prosty skrypt archiwizujacy który można uruchamiać z harmonogramu zadań jako plik *.cmd
W pliku należy ustawić swoje haslo do serwera SQL, swoją nazwę bazy i swoje ścieżki do katalogów gdzie mają być przechowywane archiwa.
Skrypt robi backup do wybranego katalogu a następnie kompresuje baze programem 7zip i jednoczesnie ją szyfruje wybranym przez nas hasłem.
Później baza jest kopiowana na drugi serwer.
Oczywiście 7zip-a trzeba sobie ściągnąć i zainstalować.
Polecam jeszcze przy ustawianiu harmonogramu zadań ustawienie sobie raportowania w przypadku niepowodzeń żeby było widać np że na dysku skończyło się miejsce.
-
Mam problem z tym skryptem...
Podmieniłem ścieżki, zapisałem jako *.cmd. W harmonogramie zadań dodałem jako program, ale po uruchomieniu pokazuje się okienko z command line, za moment znika i nic się nie dzieje. Jakieś sugestie co robię źle?
-
wszystkie programiki muszą być w tym samym katalogu co skrypt
-
Teraz działa - powiedzmy ;) Tworzy archiwum o nazwie utworzonej na podstawie daty we wskazanych lokalizacjach (serwer i drugi komputer), ale archiwa są puste.
-
Sztywniak, pomożesz coś poradzić z tymi pustymi archiwami?
-
A sprawdzałeś czy działa sam backup (czyli pierwsza linijka w tym skrypcie)?
-
Cholerka nie mam żadnego hasła do bazy - Tworzy się pusty katalog.
Klikam na ikonę Subiekta i od razu mam okno programu.
-
W skrypcie nie chodzi o hasło do programu tylko o hasło do SQL serwera. To, że jak klikasz skrót do Subiekta i włącza Ci się od razu program nie oznacza wcale, że nie masz haseł do SQL'a. Równie dobrze wszystko możez mieć zapisane w pliku Subiekt.XML (Za pomocą programu serwisowego - parametry uruchomieniowe).
Spróbuj uruchomić cmd (Start->Uruchom>cmd) i wpisz tam coś takiego:
osql -U sa -S .\insertgt
Co Ci pokazuje w wyniku ?
-
wynikiem jest:
"Password:"
Nie pamiętam, żebym zakładał jakieś hasło.
Informacja o serwerze podaje "użytkownik - sa"
-
jak naciśniesz Enter bez podawania hasła to Cię wpuszcza ?
-
bez podania jakiegokolwiek hasła mam wynik:
1> i migający znacznik kursowa
-
Czyli masz odpowiedź - nie masz hasła. Zalogowałeś się w ten sposób do serwera SQL
Teraz w skrypcie sztywniaka po -P nie podawaj nic
Możesz wcześniej sprawdzić tak jak poprzednio
osql -U sa -P - S .\insertgt
-
Coś dalej nie tak - komunikat mówi, że nie można znaleźć lokalizacji bazy.
Ca ma być wpisane zamiast (local) ?
-
A co masz wpisane jako Serwer jak się logujesz Subiektem ?
-
DAREK-PC\SUBIEKTGT
-
no to wpisz to samo
-
osql -Usa -P -S DAREK-PC\INSERTGT\sqlexpress -Q "BACKUP DATABASE DAREK-PC\INSERTGT TO DISK = 'c:\arch\baza.bak' WITH FORMAT"
7z a -PQAZxcv789 -mx7 c:\arch\%date%.7z c:\arch\baza.bak
wygląda to tak ale i tak nie działa :D
-
Bo powinno wyglądać raczej tak:
osql -U sa -P -S DAREK-PC\INSERTGT -Q "BACKUP DATABASE tutaj_nazwa_twojej_bazy TO DISK = 'c:\arch\baza.bak' WITH FORMAT"
Wpisz nazwę Twojej bazy (najczęściej to nazwa podmiotu). No i sprawdź czy masz folder arch na dysku C
-
Znalazłem błąd - już jest OK.
Katalog C:\arch założyłem oczywiście.
-
Uśmiech dziś zagościł na mojej twarzy - po poradach birds22 i detemoto zmusiłem skrypcik do działania.
Mam jeszcze jedno pytanie, co zrobić żeby archiwum 7z tworzyło się bez hasła (w tym momencie podczas uruchomienia skryptu pyta jakie hasło założyć na archiwum)?
W tym momencie mam tak:
7z a -P -mx7 d:\Archiwa\%date%.7z d:\Archiwa\baza.bak
Drugie pytanko: dałoby się tak zrobić żeby tworzył powiedzmy przez 10 dni archiwa a w 11 dniu nadpisywał to pierwsze? Bo za 10 dni zrobi mi się z tego 600 MB, a za miesiąc prawie 2GB.
-
Pyta bo po literce P nie masz wpisanego hasła. Jeżeli nie chcesz hasła to usuń -P
Co do usuwania starych plików to poszukaj jak z linii poleceń (DOS) usunąć stare pliki. Już dawno nie pisałem plików wsadowych pod dosem ale coś mi się wydaje, że trochę zabawy z tym będzie.
-
osql -Usa -P -S (local)\insertgt -Q "BACKUP DATABASE ZUH_Marian_Kubiczek TO DISK = 'd:\Archiwa\archiwum_insert_zuh.bak' WITH FORMAT"
7z a -mx7 d:\Archiwa\archiwum_insert_zuh_%date%.7z d:\Archiwa\archiwum_insert_zuh.bak
COPY d:\Archiwa\archiwum_insert%date%.7z \\SKLEP2\SharedDocs\archiwum_insert_zuh_%date%.7z /Y
Plik *.cmd wyzwolony "myszką" działa bez zarzutu - jak dodałem go w harmonogramie zadań to tworzy tylko archiwum_insert_zuh.bak w lokalizacji d:\Archiwa\ i nie pakuje tego do 7z i nie wysyła na drugi komputer. [/code]
-
Uprawnienia do katalogów?
W harmonogramie jest coś takiego jaki użytkownik ma to uruchamiać chyba...
-
Pomimo zaznaczenia "uruchom z najwyższymi uprawnieniami" nie działa. Poniżej screen z ustawień.
Dziwne jest to BARTEK/ad. NA komputerze mam użytkowników Bartek i włączone konto Gość.
Jak odbierałem nowy komputer ze sklepu, to domyślny użytkownik (administrator) nazywał się właśnie "ad" ale zmieniłem mu nazwę na "Bartek".
-
Zmieniłeś mu tylko nazwę wyświetlaną. Co do harmonogramu to Ci nie pomogę. Rzadko tego używam.
-
A wiesz gdzie zmienić nazwę podaną przy instalacji (tą "ad")?
Ktoś się zna na harmonogramie zadań?
-
Ja mogę zmienić w przystawce Użytkownicy i Grupy lokalne - Uruchamiam to np tak Start ->Uruchom ->lusrmgr.msc
Nie wiem czy tak jest we wszystkich wersjach Visty - ja mam Business
-
Niestety pod WIN7 nie działa - pisze, że mam sobie do Panelu Sterowani iść... chyba obrazek zmienić :D
EDIT: poczytałem w googlach - praktycznie to "ad" jest niezmienialne (trzeba by mieć dostęp do dysku bez włączania win7 - drugi system - i zmieniać ręcznie w rejestrze).
EDIT2: dalej mi nie działa odpalanie skryptu harmonogramem - co dopisać do skryptu żeby okienko się nie zamykało na końcu (żebym mógł poczytać co się wydarzyło)?
-
dopisz "pause" po każdej lini i daj zrzut ekranu
-
Dopisanie "PAUSE" nic nie pomogło, ale w harmonogramie zadań wyświetla się takie coś (załącznik) jak ustawiam to jako zadanie podstawowe.
-
a sprawdzales w ustawieniach harmonogramu "uruchom niezależnie czy użytkownik jest zalogowany" ?
-
Wtedy wyskakuje takie coś (załącznik).
Na kompie mam użytkownika "Bartek" i konto Gość. Obydwa bez haseł.
-
a probowales na użytkowniku np usługa lokalna ??
komunikat który masz na ekranie mówi o tym że zasady systemu nie pozwalają na używanie kont bez haseł
możesz oczywiście zmienić te zasady ale nie wiem czy jest sens, już lepiej jest nadać hasło użytkownikowi
ale spróbuj najpierw z usługą lokalną
-
Mówisz żeby zaznaczyć to "Nie przechowuj hasła..."? Próbowałem, odpalam zadanie i nie dzieje się nic.
-
Nadałem hasło użytkownikowi Bartek. Przelogowałem się, stworzyłem zadania od nowa podając hasło. Objawy nadal te same. Skrypt nie działa. Odpaliłem skrypt teraz zewnętrznym programem ala Harmonogram Zadań (Marxio Timer) i działa.
Jak zmusić Harmonogram do współpracy?
-
lookne na to wieczorkiem ok ?
-
Moze byc nawet jutro wieczorem. W Tobie nadzieja.
-
Opis dla Windows 7 64 bit Professional
W harmonogramie zadań wybrałem : Utwórz zadanie podstawowe
Krok 1 : wpisałem nazwę klikam Dalej
Krok 2 : zostawiłem tak jak jest czyli "codziennie", klikam Dalej
Krok 3 : wpisałem godzine, klikam Dalej
Krok 4 : zostawiam domyslne Uruchom program , klikam Dalej
Krok 5 : wskazuje plik BAT do uruchomienia, w polu Rozpocznik w (opcjonalnie) wpisuje ścieżkę do katalogu gdzie znajduje się plik bat i 7-zip, klikam Dalej i zakończ.
U mnie działa.
-
sztywniak, dziaaaała! :) Duże piwko dla Ciebie.
Kluczowym krokiem okazał się krok numer 5, czyli pole: "Rozpocznij w".
Jeszcze raz wielkie dzięki!
A czy to będzie też działać jak będę wylogowany?
-
będzie działać jesli odpowiednio to skonfigurujesz w zadaniu ale pewnie to już obcykałeś ;-)
-
witam
panowie wogóle sobie z tym skryptem nie radzę
wrzuciłem skrypt do katalogu subiekta GT
wpisałem adres serwera sql
nie mam pojęcia skąd mam wziąć -Q "BACKUP DATABASE .......... TO DISK
stworzyłem katalog arch na dysku c
nie mam pojęcia gdzie i jak mam wpisać adres serwera gdzie ma być przechowywany backup
bardzo proszę o pomoc
-
Jest to skrypt archiwizujący bazę (której nazwę podajesz po słowie database) z serwera (którego nazwę podajesz po parametrze -S) na dysk (ścieżkę podajesz po słowie DISK)
Napisz może co chcesz osiągnąć
-
mam w firmie 2 komputery które działają na tym samym magazynie (jeden jest w sklepie drugi w magazynie -oba oddalone od siebie o 10km więc nie mogą być podłączone do sieci lokalnej) i jak mam jechać wydać towar z magazynu klientowi muszę robić archiwizację w sklepie później dearchiwizować na magazynie i dopiero wystawić paragon czy fv, to samo po powrocie z magazynu a często zapominam zabierać pendrive z archiwicacją
więc szukam możliwości archiwizacji na serwer lub też poztawienie sql na serwerze nazwa.pl żeby stany były dostępne na bieżąco
-
To musisz to zrobić raczej na dwa razy. To co zrobi ten fragment tekstu to archiwizacja do pliku, następnie musisz naleźć sposób na wysłanie pliku na serwer. Możesz to zrobić za pomocą klienta ftp. Wpisz w linii poleceń taki ciąg : ftp /? i poczytaj o składni tego polecenia.
-
Próbuję uruchomić ten skrypt i mam pytanie - czy uzycie polskich liter w haśle do sql jest przeszkodą?
Do do SSMS loguję się bez problemu, a tu mi wyskakuje błąd logowania.
Odpowiem sam - nie może byc polskich liter.
Natomiast mam nowe pytanie - jak usuwać automatycznie pliki .bak po ich skopiowaniu i skompresowaniu.
-
Próbuję uruchomić ten skrypt i mam pytanie - czy uzycie polskich liter w haśle do sql jest przeszkodą?
Do do SSMS loguję się bez problemu, a tu mi wyskakuje błąd logowania.
Odpowiem sam - nie może byc polskich liter.
Nie powinno być problemu o ile ustawisz poprawną stronę kodową: https://technet.microsoft.com/pl-pl/library/bb490874.aspx (https://technet.microsoft.com/pl-pl/library/bb490874.aspx).
Natomiast mam nowe pytanie - jak usuwać automatycznie pliki .bak po ich skopiowaniu i skompresowaniu.
"Del": https://technet.microsoft.com/en-us/library/cc771049(v=ws.11).aspx (https://technet.microsoft.com/en-us/library/cc771049(v=ws.11).aspx) ?
-
"Del": https://technet.microsoft.com/en-us/library/cc771049(v=ws.11).aspx (https://technet.microsoft.com/en-us/library/cc771049(v=ws.11).aspx) ?
Dzięki, potraktoweałeś mnie jak kolegę po fachu, chociaż nim nie jestem. :)
-
Opis dla Windows 7 64 bit Professional
W harmonogramie zadań wybrałem : Utwórz zadanie podstawowe
Krok 5 : wskazuje plik BAT do uruchomienia, w polu Rozpocznik w (opcjonalnie) wpisuje ścieżkę do katalogu gdzie znajduje się plik bat i 7-zip, klikam Dalej i zakończ.
U mnie działa.
Sztywniak, wracam do tego bo mi nie działa wyzwalanie z harmonogramu. Może przyczyna jest plik .bat o którym w kroku 5 napisałeś. Plik podstawowy ma rozszerzenie .cmd i odpalany z palca działa. Więc o jakim pliku .bat mowa? Czy harmonogram nie potrafi uruchomić .cmd?
-
Rozszerzenie bat to nie problem - przyzwyczajenie Sztywniaka ze starszych systemów.
CMD powinien się uruchamiać z harmonogramu.
Jak dodasz zadanie do harmonogramu i je ręcznie uruchomisz to masz jakiś błąd (po odświeżeniu)?
-
W Historii mam Zadanie zostało ukończone. Na dole w Ogólne jest komunikat - Harmonogram zadań pomyślnie zakończył wystąpienie „{9c3106f8-2d5b-44ae-ad66-7048a6c0e988}” zadania „\Archiwizacja bazy ZUS”...
A pliku archiwizacji nie ma. Jak uruchomię cmd ręcznie archiwum powstaje bez problemu.
-
Jaki system?
-
Jest jakiś ślad w logach serwera SQL ?
-
Jaki system?
Win 10 Pro 64.
Jest jakiś ślad w logach serwera SQL ?
A gdzie tego szukać?
-
Jest jakiś ślad w logach serwera SQL ?
A gdzie tego szukać?
Insert GT: Program serwisowy->Serwer->Log
SSMS: Management->SQL Server Logs
dysk: katalog instalacyjny->MSSQL->Log
-
Jest jakiś ślad w logach serwera SQL ?
A gdzie tego szukać?
Insert GT: Program serwisowy->Serwer->Log
SSMS: Management->SQL Server Logs
dysk: katalog instalacyjny->MSSQL->Log
W Insert GT to wiem, tylko co ma zupełnie zewnętrzna archiwizacja do logów GT?
W logach SQL znalałem taki zapis:
2016-09-20 20:10:01.36 Backup Database backed up. Database: XXX_ZUS, creation date(time): 2016/08/12(10:59:47), pages dumped: 2570, first LSN: 2681:388:37, last LSN: 2681:405:1, number of dump devices: 1, device information: (FILE=1, TYPE=DISK: {'R:\Temp\ZUS.bak'}). This is an informational message only. No user action is required.
2016-09-20 20:10:01.39 Backup BACKUP DATABASE successfully processed 2554 pages in 0.530 seconds (37.633 MB/sec).
Czyli proces zakończył się sukcesem, tylko pliku nie ma.
-
A jakie masz polecenia w tym pliku *.cmd?
-
Jest jakiś ślad w logach serwera SQL ?
A gdzie tego szukać?
Insert GT: Program serwisowy->Serwer->Log
SSMS: Management->SQL Server Logs
dysk: katalog instalacyjny->MSSQL->Log
W Insert GT to wiem, tylko co ma zupełnie zewnętrzna archiwizacja do logów GT?
No tyle, że program serwisowy pokazuje cały log serwera SQL, a nie tylko wpisy wygenerowane przez programy Insertu.
W logach SQL znalałem taki zapis:
2016-09-20 20:10:01.36 Backup Database backed up. Database: XXX_ZUS, creation date(time): 2016/08/12(10:59:47), pages dumped: 2570, first LSN: 2681:388:37, last LSN: 2681:405:1, number of dump devices: 1, device information: (FILE=1, TYPE=DISK: {'R:\Temp\ZUS.bak'}). This is an informational message only. No user action is required.
2016-09-20 20:10:01.39 Backup BACKUP DATABASE successfully processed 2554 pages in 0.530 seconds (37.633 MB/sec).
Czyli proces zakończył się sukcesem, tylko pliku nie ma.
A nie masz przypadkiem na końcu polecenia kasującego backup, pytałeś wcześniej jak go usuwać ?
Niej mniej z logu wynika, że serwer SQL wykonał backup i problem jest gdzieś dalej, czyli na etapie kompresji, podejrzewam, że jest problem z uprawnieniami do katalogów. Czy harmonogram jest skonfigurowany na tym samym użytkowniku, na którym jesteś zalogowany do systemu operacyjnego i archiwum się wykonywało ?
-
No tyle, że program serwisowy pokazuje cały log serwera SQL, a nie tylko wpisy wygenerowane przez programy Insertu.
Nie przyszło mi to do głowy, a nie sprawdziłem,że GT pokazuje wszystkie "śmieci"
W logach SQL znalałem taki zapis:
2016-09-20 20:10:01.36 Backup Database backed up. Database: XXX_ZUS, creation date(time): 2016/08/12(10:59:47), pages dumped: 2570, first LSN: 2681:388:37, last LSN: 2681:405:1, number of dump devices: 1, device information: (FILE=1, TYPE=DISK: {'R:\Temp\ZUS.bak'}). This is an informational message only. No user action is required.
2016-09-20 20:10:01.39 Backup BACKUP DATABASE successfully processed 2554 pages in 0.530 seconds (37.633 MB/sec).
Czyli proces zakończył się sukcesem, tylko pliku nie ma.
A nie masz przypadkiem na końcu polecenia kasującego backup, pytałeś wcześniej jak go usuwać ?
Niej mniej z logu wynika, że serwer SQL wykonał backup i problem jest gdzieś dalej, czyli na etapie kompresji, podejrzewam, że jest problem z uprawnieniami do katalogów. Czy harmonogram jest skonfigurowany na tym samym użytkowniku, na którym jesteś zalogowany do systemu operacyjnego i archiwum się wykonywało ?
Mam usuwanie na końcu. Ale nawet jak wyłączyłem usuwanie, to i tak nie powstaje archiwum .zip
Wszystkie operacje i dostępy - ten sam uzytkownik. Dziś jest ustawiony termin, to zobaczę czy jest coś nowego.
-
No więc sytuacja wygląda tak, że plik bak się robi, a nie startuje 7z.
Jak uruchomię ręcznie, wykonywana jest całość, łącznie z utworzeniem archiwum zip.
-
Używasz jakiś ścieżek względnych wskazujących na 7z.exe, bazę źródłową lub docelową spakowaną?
-
Używasz jakiś ścieżek względnych wskazujących na 7z.exe, bazę źródłową lub docelową spakowaną?
Polecenie wygląda tak:
osql -U Kopia -P xxxxxxx -S ZZZ-Serwer\Biuro_ZZZ -Q "BACKUP DATABASE ZZZ_ZUS TO DISK = 'R:\Temp\ZUS.bak' WITH FORMAT"
7z a -mx7 \\NAS\archiw\ZZZ_bazy\%date%.zip R:\Temp\ZUS.bak
REM R:\Temp\ZUS.bak
To ostatnie wyremowałem, żeby sprawdzić czy robi się plik .bak. I jak napisałem wyżej robi się.
Nie uruchamia się tylko polecenie od 7z....
Ale jak wywołam cmd ręcznie, to robi do końca prawidłowo.
-
Program 7z.exe masz w katalogu, gdzie masz plik cmd?
Jeżeli tak, to czy w zadaniu dopisałeś ścieżkę do tego katalogu (Rozpocznij w: )?
-
Program 7z.exe masz w katalogu, gdzie masz plik cmd?
Tak
Jeżeli tak, to czy w zadaniu dopisałeś ścieżkę do tego katalogu (Rozpocznij w: )?
Nie, ścieżka jest określona w zakładce Akcje - R:\Temp\Archiwum_ZUS.cmd. A samo wywołanie 7z jest z wnętrza cmd.
Tak jak pisałem wcześniej ręczne uruchomienie cmd powoduje wykonanie kompletu poleceń w nim zawartych.
Dopisałem, zobaczę co z tego wyjdzie.
-
Program 7z.exe masz w katalogu, gdzie masz plik cmd?
Tak
Jeżeli tak, to czy w zadaniu dopisałeś ścieżkę do tego katalogu (Rozpocznij w: )?
Nie, ścieżka jest określona w zakładce Akcje - R:\Temp\Archiwum_ZUS.cmd. A samo wywołanie 7z jest z wnętrza cmd.
Tak jak pisałem wcześniej ręczne uruchomienie cmd powoduje wykonanie kompletu poleceń w nim zawartych.
Dopisałem, zobaczę co z tego wyjdzie.
No własnie tutaj może być problem ze ścieżką względną do 7z.
Przy uruchomieniu ręcznym katalog odniesienia to katalog, gdzie jest plik cmd (więc również program 7z).
Przy uruchomieniu z harmonogramu, bez odniesienia skąd ma się uruchamiać zadanie jest uruchamiane z katalogu systemowego, a tam nie ma programu 7z.
Rozwiązań może być kilka:
1. Dopisanie wspomnianej ścieżki uruchomienia w harmonogramie (Rozpocznij w:)
2. Wskazanie ścieżki bezwzględnej w skrypcie do programu 7z
3. Dodanie do zmiennej środowiskowej Path ścieżki do programu 7z
4. Wrzucenie 7z do lokalizacji już ujętej w zmiennej Path