Category Archives: KS-PPS

ORA-01033: ORACLE initialization or shutdown in progress

Jeżeli pewnego pięknego dnia nie będziesz mógł podłączyć się do bazy danych, a sqlplus wypluje poniższy błąd:

ORA-01033: ORACLE initialization or shutdown in progress

Zastosuj następujące komendy:

z cmd.exe uruchom: sqlplus sys as sysdba

następnie z poziomu sqlplus:

shutdown abort;

startup nomount;

alter database mount;

alter database open;

tutaj może pojawić się error:

ERROR at line 1:
ORA-01113: file 6 needs media recovery
ORA-01110: data file 6: ‘C:\ORACLEXE\ORADATA\XE\PPS.DBF’

Należy wykonać polecenie:

recover datafile ‘C:\ORACLEXE\ORADATA\XE\PPS.DBF’;

i ponownie:

alter database open;

Po tym zabiegu baza powinna już wstać i działać bez problemu

KS-PPS Testowo, Kasowanie i zakładania użytkowników

W przypadku gdy potrzebujemy potestować bazę KS-PPS przyda się skrypt, który skasuje i założy od nowa użytkowników KS i PPS.
Najpierw logujemy się do bazy:
sqlplus.exe SYSTEM AS SYSDBA
A następnie wklejamy skrypt:

DROP USER PPS CASCADE;
DROP USER KS CASCADE;

CREATE USER KS PROFILE DEFAULT
IDENTIFIED BY ks_password DEFAULT TABLESPACE KS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON KS
ACCOUNT UNLOCK;
GRANT CREATE DATABASE LINK TO KS;
GRANT CREATE PUBLIC SYNONYM TO KS;
GRANT CREATE SYNONYM TO KS;
GRANT CREATE TYPE TO KS;
GRANT CREATE MATERIALIZED VIEW TO KS;
GRANT CREATE ROLE TO KS;
GRANT CREATE TABLE TO KS;
GRANT CREATE VIEW TO KS;
GRANT CREATE PROCEDURE TO KS;
GRANT CREATE SEQUENCE TO KS;
GRANT CREATE TRIGGER TO KS;
GRANT CREATE SESSION TO KS;
GRANT EXECUTE ON DBMS_LOCK TO KS WITH GRANT OPTION;
GRANT EXECUTE ON UTL_SMTP TO KS WITH GRANT OPTION;
GRANT CONNECT TO KS;
GRANT RESOURCE TO KS;

CREATE USER PPS PROFILE DEFAULT
IDENTIFIED BY kspps DEFAULT TABLESPACE PPS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON PPS
ACCOUNT UNLOCK;
GRANT CREATE DATABASE LINK TO PPS;
GRANT CREATE PUBLIC SYNONYM TO PPS;
GRANT CREATE SYNONYM TO PPS;
GRANT CREATE TYPE TO PPS;
GRANT CREATE MATERIALIZED VIEW TO PPS;
GRANT CREATE ROLE TO PPS;
GRANT CREATE TABLE TO PPS;
GRANT CREATE VIEW TO PPS;
GRANT CREATE PROCEDURE TO PPS;
GRANT CREATE SEQUENCE TO PPS;
GRANT CREATE TRIGGER TO PPS;
GRANT CREATE SESSION TO PPS;
GRANT EXECUTE ON DBMS_LOCK TO PPS WITH GRANT OPTION;
GRANT EXECUTE ON UTL_SMTP TO PPS WITH GRANT OPTION;
GRANT CONNECT TO KS;
GRANT RESOURCE TO KS;

Dwie pierwsze linijki to oczywiście skasowanie użytkowników, ale już kolejne to ich założenie.
Oczywiście nie należy zapomnieć o odtworzeniu danych z backupów.

KS-PPS – Disaster Recovery Plan

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.

KS-PPS – hasło PPS

Program KS-PPS wykorzystuje kilka różnych kont podczas dostępu do danych. Tworzy dwóch użytkowników w bazie Oracle. O ile jeden ma hasło ustawiane podczas instalacji to hasło do konta PPS jest domyślne i niezmienialne. Jego znajomość jest potrzebna do importu danych z KS-SWD do KS-PPS. Tak więc hasło użytkownika PPS brzmi “kspps”.

Słowa kluczowe: hasło operatora bazy pps.

KS-PPS – ogólnie

Drogi użytkowniku programu KS-PPS, jeżeli masz jakieś problemy z instalacją serwera Oracle, instalacją programu KS-PPS, importem danych z programu KS-SWD pomogę o ile sam będę potrafił rozwiązać dany problem.

Sam jestem użytkownikiem tego systemu i wiem ile problemów trzeba zwalczyć, żeby to dobrze działało.

Jeżeli to kogoś interesuje to powiem, że serwer Oracle’a mam zainstalowany na Linux’ie Ubuntu, a sam program KS-PPS na komputerze z systemem Windows.

Jest to dobre rozwiązanie jeżeli planujesz używać programu na wielu stanowiskach. Pytanie możesz zadać albo mailem albo nawet jako komentarz do tego postu.

W planach mam wdrożenie systemu drukowania recept i prowadzenia pełnej dokumentacji medycznej – postaram się to zrobić w ciągu najbliższego roku.

Pozdrawiam wszystkich świadczeniodawców.

NFZ zaatakowany DoS

Każdy (prawie) użytkownik Internetu słyszał zapewne o ataku typu DoS (Denial of Service). Winny: krakier 😉 … ale nie w przypadku stron NFZ. Nie trzeba być włamywaczem, żeby dokonać tego ataku. Wystarczy być użytkownikiem portalu SZOI naszego narodowego operatora zdrowia. 🙂

Proszę sobie wyobrazić, że nie tylko każdy świadczeniodawca, który podpisuje umowe bezpośrednio z NFZ ale także podwykonawca usług medycznych musi mieć konto w serwisie. Problem polega na tym, że wszyscy dowiadują się o tym pod koniec roku kiedy trzeba przygotować ofertę na rok 2008. No i niestety, serwer “odmówił posługi” ;). Chyba Nasz Fundusz Zachorowań nie przewidział takiego ataku i nie przygotował odpowiednio sprzętu, dlatego przez najbliższych kilka dni najczęściej pojawiającym się komunikatem było:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

W tej chwili jest godzina 2:37 (na ranem) i komunikat pojawia się za każdym razem.

Dopiero pod koniec listopada NFZ rozstrzygnęło przetarg na nowy serwer bazodanowy – o ile będzie służył świadczeniodawcom – to powinien sobie poradzić z obsługa takiego niespodziewanego 😉 ruchu. Powinien, bo kosztował tylko nieco ponad dwa miliony złotych. W zamian za dwie bańki NFZ dostanie oryginalnego IBM’a z 4 procesorami Power 6, 64 GB RAM i 1,6 TB pamięci dyskowej. Czy to pomoże? Zapewne tylko do kolejnego pomysłu NFZ – czyli do przyszłorocznych negocjacji. 🙂

Czego i sobie i pozostałym świadczeniodawcom NIE życzę. 🙂

Oracle dla KS-PPS

Podczas instalacji bazy Oracle Database XE pod Linuxem przeczytaj najpierw artykuł z poniższego linku.

http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html

Ułatwi Ci znacznie jej instalacje i konfiguracje.

Najważniejszą rzeczą przy instalowaniu Oracle jest albo wcześniejsze utworzenie odpowiednio dużej partycji SWAP albo dołożeniu pliku swap w trakcie jej instalacji.

Pokrywające się częściowo informacje znajdują się też na stronie DebianHelp oraz debian-administration.

Import danych – błąd DBService

Jeżeli będziesz importował dane z KS-SWD do KS-PPS i pojawi się błąd:

“Utworzenie DBService’a import nie powiodło się”

oraz:

“Nie udało się utworzyć połaczenia z bazą danych”,

to powinieneś ściągnąć plik DBServiceError, i rozpakować go do klienta PPS do katalogu BDE.
Plik bde.reg zaplikuj do rejestru oraz uruchom MiniReg.bat

Następnie w instalkach programu PPS znajdź plik sqlora.dll i przegraj go do folderu
c:\program files\common files\borland shared\bde”.

Teraz Import danych powinien obyc sie bez problemów

Oracle CHARACTER SET EE8MSWIN1250

Podczas instalacji progrmau KS-PPS może wystąpić błąd informujący o niezgodności zestawu znaków między programem KS-PPS, a bazą Oracle.

Rozwiązaniem będzie tutaj zaaplikowanie EE8MSWIN1250, który poprawi ten błąd.

Należy pamiętać, aby logować się do SQLPlus’a na stacji, na której stoi Oracle, gdyż zdalne sesje zostaną zerwane.

W związku z tym, że skrypt otrzymałem gotowy to gdyby wystąpiły jakieś problemy z jego uruchomieniem zalecam:

poprawić linijkę skryptu na
sqlplus SYSTEM AS sysdba @ee8mswin1250.sql
i skopiować to w ogóle do katalogu BIN OracleXE.

Skrypt:

SET ECHO ON
SET SERVEROUTPUT ON
SPOOL EE8MSWIN1250.TXT
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE EE8MSWIN1250;
SHUTDOWN IMMEDIATE;
STARTUP OPEN;
SPOOL OFF
EXIT

[Edit: 2009.11.04]

KS-PPS

No i stało się.

NFZ już nie chce płacić na KS-SWD więc świadczeniodawcy muszą kupic program we własnym zakresie.

Nic trudnego. W końcu Kamsoft, niejako z rozpędu, jest jednym z dwóch głównych dostawców takiego oprogramowania.

W poniższych wpisach będę przedstawiał niektóre z problemów, które przydarzyły mi się podczas wdrożenia KS-PPS.