Przy tego typu danych powinien byc zapewniony jakiś mechanizm tworzenia kopii zapasowych i co najważniejsze mechanizm ich poprawnego odzyskiwania.
O ile od biedy program KS-PPS posiada mechanizm do tworzenia backupu, pod warunkiem, że baza Oracle i program klienta znajdują się na tej samej maszynie. W innym przypadku, tak jak u mnie, należy postąpić nieco inaczej.
1. Zabezpieczenie danych – BACKUP.
Na komputerze, na którym będzie robiony proces backupu powiniśmy mieć zainstalowaną bazę Oracle. Jeżeli jest to komputer inny niż serwer bazy KS-PPS to po zainstalowaniu Oracle’a możeby wyłączyć jego serwis i skasować pliki bazy danych. Odzyskamy ponad 1 GB na dysku, a będziemy mieli potrzebne narzędzia do tworzenia i zarządzania danymi. Przy procesie tworzenia kopii zapasowych skorzystamy z programu exp.exe zawartego w folderze: C:\oraclexe\app\oracle\product\10.2.0\server\BIN\exp.exe
Pamiętajmy jednak przed tym, żeby plik TNSNAMES.ORA wskazywał na poprawny serwer. Po instalacji serwera, nawet jeżeli będzie wyłączony, obowiązuje plik znajdujący się tutaj: C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\tnsnames.ora
Wystarczy w sekcji:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = galaxy1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
wpisać odpowiedni adres w polu HOST.
Teraz proponuję wykorzystać skrypt KSPPS_Backup_DB_Oracle, który wykona zrzut bazy danych KS i PPS do plików. Pliki będa miały w nazwie datę i czas utworzenia. (Po jego downloadzie proszę zmienić rozszerzenie z txt na cmd)
Jedyne co powinniśmy w nim zmienić to ścieżkę do katalogu z kopiami. Uruchom go, zostaniesz poproszony o wpisanie haseł dwóch użytkowników – KS i PPS.
Po chwili 😉 kopie wraz z logami sa zapisane na dysku. Możesz je nagrać na CD lub schować w bezpieczne miejsce.
2. ODTWARZANIE danych.
Moja propozycja wygląda następująco.
Instalujesz program KS-PPS i wybierasz instalacje serwerową. Chyba, że już masz zainstalowanego Oracle’a – to wybierasz tylko tworzenie danych w istniejącej bazie.
Teraz musimy skasować istniejących użytkowników KS i PPS. Proponuję zrobić to przez stronę www. Adres: http://127.0.0.1:8080/apex, ewentualnie zmieniamy adres maszyny. Logujemy sie na użytkownika SYSTEM, hasło jest takie jak podane podczas instalacji. Przechodzimy do menu: Administration \ Database Users. Klikamy na kasowanym użytkowniku. Klikamy przycisk Drop, zaznaczamy przełącznik Cascade i wciskamy przycisk Drop User. W zależności od szybkości serwera operacje mogę trwać około minuty.
Po ich skasowaniu należy założyć nowe konta.
Polecam użyć do tego programu sqlplus.exe znajdującego się w folderze serwera Oracle.
C:\oraclexe\app\oracle\product\10.2.0\server\BIN
Ale po kolei: Uruchamiamy okno cmd.exe
przechodzimy do folderu BIN poleceniem
C:\
cd \oraclexe\app\oracle\product\10.2.0\server\BIN
Oczywiście dotyczy to domyślnej instalacji na komputerze z zainstalowanym systemem Windows.
teraz musimy zalogować się do bazy jako SYSDBA.
Wykonujemy polecenie:
sqlplus SYSTEM@XE AS SYSDBA
i w okno programu wklejamy zawartość pliku: KSPPS – Create User.
Można też zrobić to w jednej linii ale trzeba jawnie użyć hasła.
sqlplus SYSTEM/password@XE AS SYSDBA < sqlplus_SYSTEM_SYSDBA.txt
Jeżeli plik sqlplus_SYSTEM_SYSDBA.txt znajduje sie w innym folderze niż aktualny to przed nim trzeba podać bezwzględną ścieżkę do niego.
Teraz kolej na import danych.
Nie wychodząc z folderu BIN wykonujemy następujące polecenia (uwaga!!! ważna jest kolejność importu, najpierw KS, a potem PPS):
imp.exe KS@XE FILE=”KS_Backup.dat”
imp.exe PPS@XE FILE=”PPS_Backup.dat”
W międzyczasie zostaniemy poproszeni o wpisanie stosownych haseł i na koniec powinna pojawić się linijka, że odzyskanie danych odbyło się “without error”. Oczywiście nazwy plików mogą sie różnić i w zależności od ich umiejscowienia należy podać stosowna ścieżkę dostępu.
Oryginalna instalacja nie przewiduje aby użytkownicy mieli nadane niektóre uprawnienia i przed uruchomieniem programu można je zdjąć. Nie przedstawiam tutaj skryptu, można to zrobić przez stronę www. Uprawnienia do odebrania:
- CREATE PUBLIC SYNONYM
- CREATE TYPE
- CREATE MATERIALIZED VIEW
- CREATE ROLE
Jednak jeśli ktoś jest w tanie mi pomóc to będę bardzo wdzięczny za zamianę kliknięć na stronie www na skrypty SQL.
Coś ten skrypt niedokońca działa uruchamia sie przelatuje.. ale nie zatrzymuje sie do podania hasła tylko zamyka sie skrypt.
P.s. Zakładka kontakt nie działa ;P
Witam.
1. Dziękuję za zwrócenie uwagi z mailem – nieco poprawione.
2. Musi być spełnionych kilka warunków, żeby skrypt zadziałał.
a. Musi istnieć folder do przechowywania backupów. Jego nazwa jest określona w skrypcie zmienną SCRIPTPATH. Proszę sprawdzić poprawna ścieżkę i ją ew. zmienić
b. Skrypt MUSI być wykonany na komputerze, na którym jest zainstalowany Oracle XE – chociaż możliwe jest zrobienie backupu na zdalnej maszynie.
c. Skrypt był testowany na Windows XP i na starszych systemach wyliczenie zmiennej SCRIPTDATE może nie działać. W tym celu proszę ustawić zmienną na jakiś tekst lub po prostu z niej zrezygnować w poleceniu exp.exe.
d. Na końcu skryptu polecam dopisać linijkę z poleceniem
“pause”. Okno nawet po błędzie NIE powinno sie zamknąć i użytkownik powinien zobaczyć wynik wykonania polecenia. Jeżeli to możliwe proszę o jego przesłanie.
e. Spotkałem sie z taka sytuacją, że polecenie exp.exe NIE działało, mimo, że serwis bazy wstał i nawet KS-PPS działał, pomogło zrestartowanie komputera – nie wiem czemu.
f. Proszę pamiętać także, że SID Pana bazy i tej w skrypcie musi być identyczny. Mowa tutaj o “KS@XE” i “PPS@XE” – chociaż nie przewiduję tutaj różnic między instalacjami.
Komputer komputerowi nie równy, a skrypt jest dosyć sztywny – może się nieco inaczej zachowywać na innych maszynach.
Pozdrawiam