Es ist in der Datenbank möglich Trigger für CONNECT, DISCONNECT, TRANSACTION START, TRANSACTION COMMIT oder TRANSACTION ROLLBACK anzulegen.
Damit könnte man sogar den Sysdba aussperren.
Für diesen Fall gibt es den Schalter -nodbtriggers. Anwendbar auf gbak und isql
Hier ein Beispiel um einen DB-Trigger abzuschalten
isql myFirebidDB.fdb -user sysdba -pass masterkey -nodbtriggers
Database: myFirebidDB.fdb, User: sysdba
SQL> ALTER TRIGGER MYONCONNECTDBTRIGGER INACTIVE;
SQL> EXIT;
Donnerstag, 1. Oktober 2009
Freitag, 14. August 2009
aliases.conf unter Windows Vista
Die eine oder andere Datenbank wird lokal unter Windows Vista ausgeführt und die Ansteuerung über die aliases.conf definiert. Die Bearbeitung der aliases.conf unter Windows Vista sollten Sie allerdings als Administrator vornehmen.
Administrator zu sein reicht nicht, Sie müssen ggf. bereits den Explorer als Administrator starten.
Andernfalls schiebt das System die Datei in das Verzeichnis
C:\Users\Benutzername\AppData\Local\VirtualStore\Program Files\Firebird\Firebird_2_0
In diesem Verzeichnis sucht der Server nur, wenn Sie ihn über localhost ansteuern. Remote über die eigene IP greift Firebird auf den eigenen Programmpfad zu und dort steht ggf. noch die installierte aliases.conf.
Administrator zu sein reicht nicht, Sie müssen ggf. bereits den Explorer als Administrator starten.
Andernfalls schiebt das System die Datei in das Verzeichnis
C:\Users\Benutzername\
In diesem Verzeichnis sucht der Server nur, wenn Sie ihn über localhost ansteuern. Remote über die eigene IP greift Firebird auf den eigenen Programmpfad zu und dort steht ggf. noch die installierte aliases.conf.
Dienstag, 14. Juli 2009
Firebird 2.5 Netzwerkprotokoll
Adriano dos Santos Fernandes hat das verbesserte Protokoll der Version 2.5 unter die Lupe genommen und unter hoher Latenz getestet.
http://asfernandes.blogspot.com/2009/07/network-latency-influence-on-firebird.html
http://asfernandes.blogspot.com/2009/07/network-latency-influence-on-firebird.html
Sonntag, 17. Mai 2009
RAID? Kann, muss nicht, hilft nicht immer.
Mit RAID - Systemen kann man viele Vorteile erreichen. Wenn allerdings der RAID-Controller defekt ist, kann bereits ein fehlerhaftes Byte Ihre mehrere Gigabyte große Datenbank zur Strecke bringen.
Die Auswirkungen sind enorm und der Fehler -wenn überhaupt - nur schwer zu finden. Schlimmstenfalls bauen Sie Ihre Datenbank also auf demselben System neu auf und stehen wenige Stunden später vor demselben Problem.
Allen Technikgläubigen sei ins Stammbuch geschrieben, dass man noch so tief in die Tasche greifen kann für einen Markencontroller seiner Wahl: wir haben so einen entsorgt.
Meine Empfehlung bei einer zerstörten Datenbank lautet: Wenn Sie nicht wissen, was die Ursache dafür war, wechseln Sie auf den Ausfallserver.
Eine Reparatur (z.B. FBFirstAid) hinterläßt immer Spuren und niemals einen vollständigen Datenbestand. Arbeiten Sie mit der letzten Sicherung weiter und nutzen Sie die reparierte Datenbank, um verlorene Daten zu ergänzen.
Das nachfolgende firebird.log zeigt (natürlich stark verkürzt) die Auswirkungen eines defekten Controllers. Wenn Sie auch nur eine Zeile davon bei sich finden, haben Sie ein Hardwareproblem.
Versprochen.
firebird.log
internal gds software consistency check (wrong record length (183), file: vio.cpp line: 1109)
internal gds software consistency check (cannot find record fragment (248), file: dpm.cpp line: 1181)
internal gds software consistency check (decompression overran buffer (179), file: sqz.cpp line: 222)
Index 5 is corrupt on page 203839 level 140544214827009.
File: ../src/jrd/validation.cpp, line: 140544214828627
in table TESTTABLE (141)
Record 9267366 is wrong length in table TESTTABLE2 (142)
Fragmented record 9267368 is corrupt in table TESTTABLE2 (142)
Chain for record 9267372 is broken in table TESTTABLE2 (142)
Page 238166 wrong type (expected 5 encountered 7)
Data page 238225 (sequence 20685) is confused in table TESTTABLE2 (142)
Relation has 4294966985 orphan backversions (4354 in use) in table TESTTABLE2 (142)
Index 3 is corrupt on page 188383 level 140544214827009. File: ../src/jrd/validation.cpp, line: 140544214828627
in table TESTTABLE3 (146)
Page 238382 doubly allocated
Index 8 is corrupt (missing entries) in table TESTTABLE (173)
Page 152989 is an orphan
Die Auswirkungen sind enorm und der Fehler -wenn überhaupt - nur schwer zu finden. Schlimmstenfalls bauen Sie Ihre Datenbank also auf demselben System neu auf und stehen wenige Stunden später vor demselben Problem.
Allen Technikgläubigen sei ins Stammbuch geschrieben, dass man noch so tief in die Tasche greifen kann für einen Markencontroller seiner Wahl: wir haben so einen entsorgt.
Meine Empfehlung bei einer zerstörten Datenbank lautet: Wenn Sie nicht wissen, was die Ursache dafür war, wechseln Sie auf den Ausfallserver.
Eine Reparatur (z.B. FBFirstAid) hinterläßt immer Spuren und niemals einen vollständigen Datenbestand. Arbeiten Sie mit der letzten Sicherung weiter und nutzen Sie die reparierte Datenbank, um verlorene Daten zu ergänzen.
Das nachfolgende firebird.log zeigt (natürlich stark verkürzt) die Auswirkungen eines defekten Controllers. Wenn Sie auch nur eine Zeile davon bei sich finden, haben Sie ein Hardwareproblem.
Versprochen.
firebird.log
internal gds software consistency check (wrong record length (183), file: vio.cpp line: 1109)
internal gds software consistency check (cannot find record fragment (248), file: dpm.cpp line: 1181)
internal gds software consistency check (decompression overran buffer (179), file: sqz.cpp line: 222)
Index 5 is corrupt on page 203839 level 140544214827009.
File: ../src/jrd/validation.cpp, line: 140544214828627
in table TESTTABLE (141)
Record 9267366 is wrong length in table TESTTABLE2 (142)
Fragmented record 9267368 is corrupt in table TESTTABLE2 (142)
Chain for record 9267372 is broken in table TESTTABLE2 (142)
Page 238166 wrong type (expected 5 encountered 7)
Data page 238225 (sequence 20685) is confused in table TESTTABLE2 (142)
Relation has 4294966985 orphan backversions (4354 in use) in table TESTTABLE2 (142)
Index 3 is corrupt on page 188383 level 140544214827009. File: ../src/jrd/validation.cpp, line: 140544214828627
in table TESTTABLE3 (146)
Page 238382 doubly allocated
Index 8 is corrupt (missing entries) in table TESTTABLE (173)
Page 152989 is an orphan
Sonntag, 22. März 2009
Firebird Classic Server unter Linux
Der Classicserver ist unter Linux bei Mehrprozessormaschinen die erste Wahl. Allerdings sind im Gegensatz zum Superserver einige Einstellungen zur Serverkonfiguration vorzunehmen bzw. anzupassen um ausreichend skalieren zu können. Die folgende Beispielkonfiguration zielt auf einen Einsatz des Classicservers mit mehr als 100 Benutzern auf einer SMP-Maschine mit entsprechender Ausstattung.
/etc/pam.d/xdm und login
session required pam_limits.so
/etc/security/limits.conf
firebird soft nproc 16384
firebird hard nproc 16384
firebird soft nofile 65536
firebird hard nofile 65536
/etc/xinet.d/firebird
service gds_db {
# These lines cause problems with Windows XP SP2 clients
# using default firewall configuration (SF#1065511)
# log_on_success += USERID
# log_on_failure += USERID
socket_type = stream
protocol = tcp
wait = no
user = firebird
server = /opt/firebird/bin/fb_inet_server
flags = REUSE
instances = UNLIMITED
per_source = UNLIMITED
}
/etc/sysctl.conf
#Disable response to broadcasts.
#You don't want yourself becoming a Smurf amplifier.
#net.ipv4.icmp_echo_ignore_broadcasts = 1
#enable route verification on all interfaces
#net.ipv4.conf.all.rp_filter = 1
#enable ipV6 forwarding
#net.ipv6.conf.all.forwarding = 1
kernel.shmall = 134217728
kernel.shmmax = 134217728
kernel.sem=4096 512000 1600 9000
fs.file-max = 16384
kernel.threads-max = 50000
/opt/firebird/firebird.conf
DefaultDbCachePages = 2048
LockSemCount = 1048
LockHashSlots = 2017
LockMemSize = 8388608
/etc/services
gds_db 3050/tcp # Firebird SQL Database Remote Protocol
/etc/pam.d/xdm und login
session required pam_limits.so
/etc/security/limits.conf
firebird soft nproc 16384
firebird hard nproc 16384
firebird soft nofile 65536
firebird hard nofile 65536
/etc/xinet.d/firebird
service gds_db {
# These lines cause problems with Windows XP SP2 clients
# using default firewall configuration (SF#1065511)
# log_on_success += USERID
# log_on_failure += USERID
socket_type = stream
protocol = tcp
wait = no
user = firebird
server = /opt/firebird/bin/fb_inet_server
flags = REUSE
instances = UNLIMITED
per_source = UNLIMITED
}
/etc/sysctl.conf
#Disable response to broadcasts.
#You don't want yourself becoming a Smurf amplifier.
#net.ipv4.icmp_echo_ignore_broadcasts = 1
#enable route verification on all interfaces
#net.ipv4.conf.all.rp_filter = 1
#enable ipV6 forwarding
#net.ipv6.conf.all.forwarding = 1
kernel.shmall = 134217728
kernel.shmmax = 134217728
kernel.sem=4096 512000 1600 9000
fs.file-max = 16384
kernel.threads-max = 50000
/opt/firebird/firebird.conf
DefaultDbCachePages = 2048
LockSemCount = 1048
LockHashSlots = 2017
LockMemSize = 8388608
/etc/services
gds_db 3050/tcp # Firebird SQL Database Remote Protocol
Abonnieren
Posts (Atom)