10. August 2011
Wenn der Computer, auf dem die Oracle-Datenbank läuft, heruntergefahren wird, besteht die Gefahr, dass die Oracle-Datenbank nicht sauber geschlossen werden kann, weil Windows vor dem Herunterfahren geöffneten Programmen nur wenig Zeit zum Schließen gibt.
Am besten wird die Datenbank vor dem Shutdown sauber heruntergefahren – das beschleunigt den späteren Neustart!
Mit Hilfe eines Powershell-Skripts lässt sich der Vorgang automatisieren.
| MSReboot.ps1 |
# Skript ggfs. mit Administratorrechten neustarten
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$princ = New-Object System.Security.Principal.WindowsPrincipal($identity)
if(!$princ.IsInRole(
[System.Security.Principal.WindowsBuiltInRole]::Administrator))
{
$ps = [System.Diagnostics.Process]::GetCurrentProcess()
$psi = New-Object System.Diagnostics.ProcessStartInfo $ps.Path
$script = $MyInvocation.MyCommand.Path
$prm = $script
foreach($a in $args) {$prm += ' ' + $a}
$psi.Arguments = $prm
$psi.Verb = "runas"
[System.Diagnostics.Process]::Start($psi) | Out-Null
return;
}
# Oracle-Datenbank herunterfahren
$Password = "MeinPWD" # PASSWORT BITTE ANPASSEN
$SqlFile = "${env:temp}\Temp.sql" # Datei für SQL-Anweisungen
"shutdown normal;", "exit;" -join "`n" | Set-Content $SqlFile
sqlplus sys/$Password as sysdba '@'$SqlFile
Remove-Item -Path $SqlFile # Datei löschen
# MEDISTAR-Dienste beenden
Stop-Service "MEDISTAR ISAM"
Stop-Service "MEDISTAR RPCI"
Stop-Service OracleDBConsolemedistar
Stop-Service OracleMTSRecoveryService
Stop-Service OracleOraDb11g_home1TNSListener
Stop-Service OracleServiceMEDISTAR
# Computer neustarten
Restart-Computer |
Wenn das Skript nicht startet, müssen Sie die Ausführungsrichtlinien anpassen.
10. Mai 2011
Unter MEDISTAR-SQL gibt es einen Backup-Dienst, der automatisch eine Sicherung der Datenbank erstellt und im Ordner …\MEDISTAR\Sicherung ablegt. Damit liegt aber keineswegs eine ausreichende Datensicherung vor. Schließlich befinden sich die Backupdateien noch auf der Festplatte, auf der MEDISTAR und Oracle-Datenbank installiert sind. Bei einem Crash wären Original und Backup futsch.
Man ist also selbst dafür verantwortlich, dass diese Dateien auf einem anderen Medium gesichert werden. Das lässt sich mit Windows-Bordmitteln einrichten. Hierzu lassen wir z.B. auf einem Arbeitsplatz-PC eine Batch-Datei laufen, die an jedem Wochentag einen anderen Ordner für die Sicherung verwendet.
| MSBackup.cmd |
@echo off
set Heading=MEDISTAR-Backup-Sicherung
title=%Heading%
:: Pfade bitte individuell anpassen!
set MSPath=\\Server\d%%\MEDISTAR
set BackupDrive=E:
:: Wochentag ermitteln. Geht nicht mit CMD-Befehlen, daher VBS.
echo Wscript.Echo WeekdayName(Weekday(now,0),false,0) > %~n0.vbs
FOR /F "usebackq" %%a IN (`cscript.exe %~n0.vbs //nologo`) DO set weekday=%%a
del %~n0.vbs
:: LogDatei nicht in BackupFolder speichern; ROBOCOPY würde sie löschen!
set BackupFolder=%BackupDrive%\%~n0%weekday%
set TmpFile=%BackupDrive%\%~n0%weekday%.tmp
set LogFile=%BackupDrive%\%~n0%weekday%.log
set Options=/MIR /R:1 /W:1 /NC /NDL /NP /NS /TEE /FFT /Log+:%TmpFile%
:: MEDISTAR-Backup um Makrodateien und Patientenlisten ergänzen.
xcopy /d /h /i /f /k %MSPath%\INST\*.mac %MSPath%\Sicherung\INST\*.*
xcopy /d /i /y /f /k %MSPath%\PARA\PLPARA.* %MSPath%\Sicherung\PARA\*.*
:: LogDatei anlegen, ggfs. überschreiben. Synchronisieren mit ROBOCOPY.
echo %Heading% am %weekday%, den %date% um %time:~0,8% Uhr. > "%TmpFile%"
robocopy %MSPath%\Sicherung %BackupFolder% %Options%
:: ASCII (TmpFile) nach Unicode (LogFile) umwandeln. TmpFile entsorgen.
cmd /u /c type %TmpFile% > %LogFile%
del %TmpFile%
:: LogDatei anzeigen und Batchdatei beenden ohne zu warten.
start %LogFile% |
Wenn die Batchdatei richtig eingerichtet ist, wollen wir das DOS-Fenster nicht mehr sehen – wir bekommen ja nach erfolgter Datensicherung die Logdatei angezeigt. Aus diesem Grund starten wir die Batchdatei ohne sichtbares Fenster mit einem kleinen VB-Skript.
| MSBStart.vbs |
‘ Dieses VisualBasic-Skript startet MSBackup ohne sichtbares Fenster.
‘ Bitte beachten Sie, dass das Skript nicht MSBackup.vbs heißen darf,
‘ weil MSBackup.vbs von der Batchdatei gleichen Namens gelöscht wird!
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "MSBackup.cmd", 0, False
WshShell.Popup "MSBackup wird ausgeführt. Bitte warten...", 3, "Info" |
Der dritte Schritt besteht darin, dass die Datensicherung täglich 10 oder 15 Minuten nach der Backup-Erstellung durch den MEDISTAR-Backup-Dienst mit Hilfe der Windows-Aufgabenplanung automatisch startet. Damit das VB-Skript die Batchdatei findet, muss unter «Starten in (optional)» der Pfad angegeben werden. Administratorrechte («mit höchsten Privilegien») sind erforderlich.


Weitere Informationen zu robocopy finden Sie hier.
4. Dezember 2010
Praxen, die ihren Server/Hauptrechner nicht ständig durchlaufen lassen, erleben jeden Morgen, dass es etliche Minuten dauert, bis alle Oracle-Dienste hochgefahren sind und MEDISTAR starten kann. Bis vor kurzem kam es zu Fehlermeldungen, wenn vorzeitig versucht wurde, MEDISTAR zu starten. Mit den letzten Updates scheint die zulässige Wartezeit für die die Bereitstellung der Dienste verlängert worden zu sein.
Es gibt aber ein paar Stellschrauben für die Beschleunigung des Vorgangs:
- Der Dienst „OracleDBConsolemedistar‟ wird für die Ausführung des „Oracle Enterprise Manager Database Control‟ benötigt, einer Browser-basierten, graphischen Bedienoberfläche zur Verwaltung der Datenbank. Der Manager und somit auch der Dienst werden im normalen Betrieb nicht verwendet. Es empfiehlt sich deshalb, den Starttyp dieses Dienstes auf „manuell‟ zu setzen.
Das gleiche gilt für den Dienst „OracleMTSRecoveryService‟, auch wenn er relativ wenig Zeit zum Starten benötigt. Dieser Dienst stellt Funktionen für den Microsoft-Transaction-Server zur Verfügung, der entweder auf dem Computer nicht vorhanden ist oder nicht genutzt wird.

- In der Server-Konfigurationsdatei „listener.ora‟ lässt sich der Pfad zu den Diensten angeben. Dadurch wird eventuell ein wenig Zeit eingespart. Die Datei befindet sich in folgendem Ordner:
D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
Hier können Sie folgende Zeilen hinzufügen. Die Kommentarzeilen (#) können Sie weglassen.
# SID_LIST_LISTENER section for listener named LISTENER (default)
# SID_LIST list of SID descriptions.
# SID_DESC service information for a specific database instance
# SID_NAME the Oracle System Identifier (SID) of the instance
# ORACLE_HOME the Oracle home location of the service
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = MEDISTAR)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
)
)
Übrigens prüft mein Tool MSHotkey auf Wunsch, ob die Dienste auf dem Server bereitstehen. Erst danach wird die Autostart-Funktion für den ersten MEDISTAR-Task ausgeführt.

8. September 2010
Da ich MEDISTAR-SQL nicht nur in der Praxis installiert habe, sondern auch auf meinem Heimrechner, konnte ich einige Erfahrungen sammeln.
Installation auf einem NICHT-Server-Betriebssystem
Auf beiden Rechnern konnte sich MEDISTAR am Ende der Installation nicht mit der Oracle-Datenbank verbinden.
Die Ursache war ein zu korrigiernder Eintrag in einer Konfigurationsdatei für den Authentifizierungs-Service von Oracle. In der Datei sqlnet.ora (Pfad: D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN) musste die Zeile
SQLNET.AUTHENTICATION_SERVICES= (NTS)
in
SQLNET.AUTHENTICATION_SERVICES= (NONE)
geändert werden. Diese Änderung ist wahrscheinlich nur dann erforderlich, wenn die Installation auf einen NICHT-Server-Betriebssystem erfolgt.
32Bit und 64Bit-Version
In der Praxis läuft auf dem Hauptrechner ein 32Bit-Windows. Zuhause benutzte ich Windows 7 in der 64Bit-Version. Auf der meiner Installations-DVD befindet sich nur die 32Bit-Version. Ich habe sie auf die Festplatte kopiert und den Oracle-Ordner mit den von der Oracle-Webseite heruntergeladenen 64Bit-Dateien überschrieben. Wenn man dann die Install.exe übergeht und gleich im Ordner „Setup” die Setup.exe startet, funktioniert die Installation.
Erfassen neuer Patienten
Nach der Installation ist das Erfassen neuer Patienten nicht möglich. Beim Versuch erscheint die Fehlermeldung: „Die Datenansicht für Praxis 1 ist nicht eingetragen. Es können daher für diese Praxis keine Patienten angelegt werden.“
Lösung: Index – Installation | Festlegung Passwörter: Freigabe Praxen: Alle Praxen markieren und freigeben.
Default-Wert für die Lebensdauer der Datenbank-Passwörter
Die unter Oracle vergebenen Kennworte laufen gemäß Voreinstellung nach 180 Tagen ab. Das würde ohne Korrektur bedeuten, dass 6 Monate nach der Installation nichts mehr läuft.
Lösung: Win+R, cmd eingeben, SQL-Plus aufrufen:
sqlplus sys/Passwort as sysdba (Passwort bitte anpassen)
Einstellungen prüfen:
select username, expiry_date, profile from dba_users;
Wenn bei den Usern sys, system und msuser ein Expiry-Date steht (s. Bild), muss dies geändert werden:
alter profile default limit password_life_time unlimited;

Benutzername und Passwort für Installation
Eigentlich sollte während der skriptgesteuerten Installation keine Nachfrage nach Benutzernamen und Passwort erfolgen. Nach einem vorhergehenden gescheiterten Installationversuch kann es aber offenbar dazu kommen. Bei mir funktionierte die Eingabe des Benutzernamens „system“. Das Passwort für diesen Benuzter habe ich der Datei D:\MEDISTAR\INST\sql.ini entnommen.
28. August 2010
Seit einer Woche läuft in meiner Praxis die neue MEDISTAR-Version. Die Installation gelang im zweiten Versuch. Anschließend befanden sich 5,9 GB mehr Daten auf der Festplatte. OK, ein gewisser Anteil besteht aus Sicherungskopien, die später gelöscht werden können.
Was hat sich geändert?
Nach dem Hochfahren des Rechners bzw. Servers dauert es mehrere Minuten, bis die neuen Dienste gestartet sind. Erst wenn diese Dienste laufen, kann MEDISTAR gestartet werden.
Die auffälligste Änderung besteht darin, dass eine MD-Zeile nun über 1000 Zeichen erfassen kann. Die Position des Umbruchs („weicher Umbruch“) kann über einen Schieberegler eingestellt werden. Dieses an und für sich positive Feature ist aber noch nicht konsequent umgesetzt worden: bei der Übernahme der Zeilen in die Brieftextverarbeitung werden sie zerstückelt, d.h. es werden Semikolons eingefügt. Bei K- und Y-Zeilen erfolgt kein weicher Umbruch. Was zunächst nach Bug aussieht, geschieht aus Rücksicht auf alte Formularprogramme.
Besonders positiv fällt auf, dass Patientenlisten nun viel schneller erstellt werden. Ich vermute, dass dies auch für die Patientenmarker-Funktion zutrifft.
Die befürchtete Verlangsamung auf den Arbeitsplatzrechnern ist nicht eingetreten. Der älteste Rechner in meiner Praxis ist 10 Jahre alt (Pentium 1 GHz, 256 MB Arbeitsspeicher). Obwohl der Hardware-Check zur Entsorgung rät, lässt sich weiterhin mit ihm arbeiten, selbstverständlich unter der Voraussetzung, dass der Hauptrechner/Server schnell genug arbeitet.
Wenn ein Patient in einer Patientenliste angeklickt wird, ist es nicht mehr möglich direkt in den MDs zu landen.
Für die Datensicherung wurde in MEDISTAR eine neue Funktion eingebaut. Der „MEDISTAR Backup Dienst“ arbeitet im Hintergrund und sichert z.B. nachts die Einträge der Oracle-Datenbank und die ISAM-Datenbanken. Die Sicherungsdateien werden im Ordner D:\MEDISTAR\Sicherung abgelegt.
Die Datensicherung ist durch das nebeneinander von Oracle-Datenbank und ISAM-Datenbanken komplizierter geworden. Der nützliche Backup-Dienst sieht derzeit nur eine Sicherung pro Tag vor. Der Vorteil des Online-Backups (Datensicherung im laufenden Betrieb) existiert derzeit nicht, da sich Oracle- und ISAM-Sicherung auf dem gleichen Stand befinden müssen. Für Großpraxen spielt das wahrscheinlich eine untergeordnete Rolle, da dort die Ausfallsicherung über RAID-Systeme erfolgt.
PS: Bitte beachten Sie, dass sich dieser Bericht auf den Stand vom August 2010 bezieht. Sowohl die Installationsroutine wie auch das Programm selbst werden ständig weiterentwickelt.
Kommentare