Archive for April, 2008

Restore einer MSSQL DB ohne Transaktions Log

Wednesday, April 30th, 2008

Das Wichtigste zuerst, Nicht am Produktiven System üben. Das folgende Beispiel nur im Absoluten Notfall verwenden. Alles ohne Garantie das es funzt und ihr nicht noch mehr zerstört. Bei allen die sich etwas mit dem MS SQL Server auseinander gesetzt haben wissen das es sich beim Transaktion log um das LDF File. Zuerst möchte ich aber etwas näher auf die Funktion des Transaktionslog  eingehen für alle welche nicht so versiert mit Datenbanken sind. Wenn ein Programm eine Update in einer Datenbank macht wird dieses zuerst in das Transaktion log geschrieben. Der SQL Server Schreibt dann die Änderung  in die Eigentliche Datenbankldf1 (mdf). Für alle welche sich mal etwas im Transaktion log umschauen möchten gibt’s den Befehl “DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )”. Wobei ich eigentlich meistens zum Debuggen die Option 0 oder 1 verwende. Insgeheim Denke ich auch das man die leute welche mit der Option 4 Debuggen in der Matrix Leben und keine rl freunde haben ;-)

Aber wieder zurück zum Thema. Also gehen wir mal davon aus das unser DB Server geratscht ist wegen einer Hard Disk wo das LDF File drauf war (Möchte hier nur anmerken das mir das noch nie passiert ist und so ein File auf ein Riad System gehört !!) Des weiter haben wir ein Backup der Datenbank welches ldif2 eine stunden alt ist. Um dies zu simulieren habe ich im Windows Task Manager den “sqlservr.exe” beendet und die ldf Datei gelöscht. Da wir ja kein 0815 Admin sind. Geben wir uns nicht damit zufrieden unser Backup einfach so zurückzustellen und die Armen Kunden (Anwender) die letzen stunden einfach nochmal so einzugeben. Also werfen wir den DB Server mal wieder an. Das unsere Datenbank sich als suspect meldet springt uns als erstes in Auge (sihe PRTSCR 2). Wenn wir versuchen einen Zugriff zu machen wird dies geblockt das kein Transaktion log da ist. Aber wir komme ich weiter ?

Wir besinnen uns auf den SQL Kurs den wir nie hatten und beginnen zu weinen ;-) . Wir können auch etwas Rumsuchen in dem SQL Books Online bei Microsoft. Oder wir Erinnern uns an den von Microsoft nicht dokumentierten befehl DBCC. Ok ich gebe zu in diversen KB artikeln wird mit dem ding rumgebastelt. Oder wir können etwas Googeln und gelangen zu einem Scribt was so ähnlich ist wie dieses Hier.

EXEC sp_configure ‘allow updates’, 1
RECONFIGURE WITH OVERRIDE
GO

BEGIN TRAN
UPDATE master..sysdatabases
SET status = status | 32768
WHERE name = ‘RocketSience’
IF @@ROWCOUNT = 1
BEGIN
   COMMIT TRAN
   RAISERROR(‘emergency mode set’, 0, 1)
END
ELSE
BEGIN
   ROLLBACK
   RAISERROR(‘unable to set emergency mode’, 16, 1)
END
GO
EXEC sp_configure ‘allow updates’, 0
RECONFIGURE WITH OVERRIDE
GO
– Hier den SQL Server neu starten (Service Reicht).

DBCC REBUILD_LOG(‘RocketSience’,'D:\SQLDB\MSSQL$STARFLEETDB\Data\RocketSience_log.LDF’)
/*Hier Testen ob alles wieder geht !!!!!!
Keine garantie das meine DB Konsistent ist */
ALTER DATABASE RocketSience SET MULTI_USER
GO

Und schon lebt unsere Datenbank Wieder. Zum beweis das wir auch ein neues TRN Log haben noch dieser PRTSCR ldif4

Das Scribt habe ich euch natürlich auch als TXT Datei bereit gelegt.

SUPER-MICRO HELIKOPTER

Sunday, April 27th, 2008

Wenn der der Postmann zweimal klingelt, ist bekanntlich niemand zu hause. Deswegen lässt er auch einen Zettel da. Heli1 Alls ich dan auf der Post war fand ich mein Päckli. Es war ein Ferngesteuerter Helikopter drin. Der REELY EP SUPER-MICRO HELIKOPTER RTF vom Conrad Elektro Versand. Das schöne an dem Modell ist es kommt fertig zusammengebastelt, nur noch Akku aufladen und Abstürzen. Es Braucht etwas Übung bis man es mit dem Fliegen etwas im griff hat.

Aber Dank der Agilen Steuerung geht es recht gut. Man kann wie bei einem Richtigen Hubi in all Richtungen fliegen. Hoch Runter, Recht Links, Vor Rückwärts und sich um die eigene Achse drehen. Wie ihr im Video gesehen habt hat das 17cm lange Technikwunder auch schon den einen oder anderen Absturz hinter sich (Heckabgebrochen). Für alle die jetzt schon der sucht verfallen sind, das Ding gibts bei www.conrad.ch unter der Artikel-Nr.: 236000 – 62 für 180 Fr inkl. Akku, Ladegerät, Ersatz Rotor und Fernsteuerung.

Wenn man jetzt sein Leben aufgibt, seine freunde verlässt, sich nur noch von fast Food ernährt. seiht das ganze dann mal so aus :-)

Send Mail via SMTP

Thursday, April 24th, 2008

Wer kennt das nicht, der Exchange weigert sich von einer Minute zur andern einfach so Mail’s zuzustellen. Oder ist es vielleicht das Mail-Relay welches keine E-Mail’s weitergibt, oder ist gar der Port 25 für smtp zu.

Was in solchen Situation immer sehr hilfreich ist wenn man ein Mail Direkt an einen SMTP Server in der Kette schicken kann. Dazu braucht es nämlich nur eine Konsole und Telnet. Es gibt auch 100 Anleitungen im GBI, aber irgendwie ist jede inkomplett ;-) . Deswegen trage ich auch mal was zusammen.

Zuerst mal Verbindung zum Mail Server Herstellen, dies machen wir ganz easy in der CMD line von Windows. Einfach "Start" -> "run" -> "CMD" -> "ok" (Die Vista Nassen unter euch müssen noch zuerst ein Telnet nachinstalieren). in dem Schwarten Fenster geben wir das mal "Color 1a" ein, ist nicht wirklich nötig aber mit gelb auf blau wird man nicht so schnell depressiv. Dan folgt die Zeile "Telnet <MailServerDnsNameOderIp> 25"

TN1

Worauf uns auch gleich angezeigt wird was wir für einen SMTP Mail Server haben. In meinem Fall ist es ein Exchange 2003 von MS. Weil wir auch höfliche Admin’s sind sagen wir auch zuerst mal Hallo, mit der Einfachen Code Zeile "HELO <MailServerDnsNameOderIp>" (alle Comands am anfang Gross Schreiben). Das es auch ein Leute mit Fat Fingers  gibt muss zum teil auch EHLO verwendet werden !!!

TN2

Nach dem hallo gesagt haben, sollten wir auch mal sagen wer wir sind. Hier ist darauf zu achten das es uns auch gibt. je nach Mail Server geht es sonst nicht. Einfach "MAIL FROM:Benutzer@Domain.ch" eingeben.

TN3

Nun brauchen wir auch noch einen Netten Empfänger . Der empfanger kann irgendwo im Netz sein und Muss nicht in der Lokalen Domäne Sein, also einfach Nachtippen "RCPT TO:Benutzer@Domain.ch"

TN4

Man könnte auch mit dem Befehl "SUBJECT:" noch eine Betreff an geben aber wer will das schon, wenn man nur schnell testen will. Aber ein Kleiner Text im Mail Muss schon sein dies kann man ganz einfach mit dem Befehl "DATA [ENTER]" Machen. Dan einfach etwas Text eingeben und zum abschicken einfach eine neue Zeile beginnen und einen "." machen.

TN5

So das war auch schon die ganze Hexerei.

TN6

The World of NTFS part 3

Friday, April 18th, 2008

Part 3 of 3 Was der Chef wissen will.

Hier gehen wir mal auf die Organisatorischen Probleme mit NTFS ein. Generell gibt es hier mehre Ansätze. Ich Denke das Grosse Ziel ist das man jederzeit weiss Wer, Wo Zugriff hat und wer diesen Erlaubt hat. Zu bestimmen wer wo Zugriff hat ist meiner Meinung nach nicht Aufgabe der IT. Ich bin hier ein Anhänger der "Götti" Prinzip. Was soviel heisst wie jeder Ordner hat einen "rl" Besitzer. Dieser bestimmt wer darf und wer nicht darf. Die ganze Kommunikation sollte schriftlich abgelegt oder über ein geeignetes Tool abgehandelt werden um die Nachvollziehbarkeit und Revisionssicherheit (gilt in der CH) zu gewähren. Angemerkt sei hier das dies rechtliche Aspekte sind  und zur Strafverfolgung von Privat Personen führen kann (auch wenn mir kein fall bekannt ist). Im Grossen und ganzen bin ich aber für einen Relativ offen Zugriff auf Daten. 

Das AHA Ordner Prinzip (Shared)

Was den Administrativen Aufwand exterm senkt ist ein AHA (Alle Haben Access) Ordner. Wo vom CIO bis zur Putzfrau alle Daten ablegen können. Idealerweise ist dieser über das ganze unternehmen Verfügbar und trägt einen eigen Laufwerks Buchstaben.  Das ist dann sozusagen das Kriegsgebiet wo jeder alle Daten sieht und jeder alles Löschen, Lesen, Speichern kann.

Der Schlüssel hier ist die Vernunft, und ab und zu mal ein kleiner tipp aus der IT an einzelne Kunden (Anwender).

Das User Home

Ist aus Unternehmens das Dööfste  seit der Erfindung des Konkurs. Eines der Grossen  Ziele jeder Firma ist das jeder ersetzbar ist bzw das es immer einen Stellvertreter gibt. also müssen auch immer mindesten 2 Leute Zugriff eine Information haben. Was sich aber 1 zu 1 bisst mit der Idee des Home Drive. Die Einzige Rechtfertigung eines solchen Speicherplatz ist es wenn die Firma Private Arbeiten erlaubt, dies ist meistens so wenn diese Außerhalb der Arbeitszeit Stadt finden.  Die Kunden sollten aber auf solche Details hingewiesen werden.

Was die IT immer wieder vor Probleme stellt. Wir kennen alle das Problem "Kunde A" hat was auf dem Home Drive gespeichert und ist im Urlaub. "Kunde B" braucht genau in diesem Moment eine Datei. Toll nicht. An die Datei zu kommen ist meist nicht das Problem den irgendwer muss diese ja jeden Abend auf Band  sichern. Darf man die Datei jetzt weitergeben, wenn ja haben wir eine AHA Folder geschaffen, wenn nein haben wir unproduktive Arbeit. Was beides irgendwie nicht so toll ist.

Das Gruppen Laufwerk

Eine Tolle Erfindung wenn sie richtig Benützt wird. Auf dem Gruppen Laufwerk erstellen wir also mal ein paar Ordner, am besten etwas mit System. Das unten erwähnte System basiert auf "AGDLP" es eignet sich für Mittlere bis Grosse Firmen, Für klein unternehmen wurde ich AGP und für Firmen mit einem Forest, mehrere AD Domänen (Was aber irgendwie kennen sin macht da Simens auch mit "nur" einem AD lebt WELTWEIT!!!!) dazu später mehr . Ich mache meist einen Ordner pro "Businessunit" (BO)  (zb. Buchhaltung) und unterhalb Ordner pro "Workunit" (WO) zb. (Kreditoren, Debitoren, etc) Gleich nach dem Anlegen der Ordner erstelle ich Pro BU eine DL- Gruppe (domain local security groupe) welche ich zb auf den Namen "DL_RN_SRV1_Share1_Buchhaltung" Taufe. DL = domain local, RN = Read NotBequeath. Für die WO Ordner erstelle ich immer 2 Gruppen zb. "DL_RB_SRV1_Share1_Buchhaltung_Kreditoren" und eine "DL_WB_SRV1_Share1_Buchhaltung_Kreditoren" wobei RB = Read Bequeath und WB = Write Bequeath bedeutet. Ich erstelle die gruppen immer gleich mit dem Ordner, dann geht’s nicht nicht vergessen.

AGDLP

Beim AGDLP (Accounts in Globalgruopes in DomainLocalGroups auf Premmisions) geht’s eigentlich darum die Kunden in Gruppen zusammenzufassen, Also zb. alle "Debitoren Buchhalter" in die Globalegrupe "G_Buchhaltung_Debitoren" und zb die Kreditoren in die Gruppe "G_Buchhaltung_Kreditoren". Dan Verschachteln wir die gruppen in die DL Gruppen und schon hat jeder den Zugriff welchen er benötigt.

agdlp1  

Fazit

Dieses NTFS kann unglaubliche Abgründe bereithalten für den Admin Welcher einfach mal etwas drauflos klickt. Allso ist es extrem wichtig das man zuerst plant. Nach der Planung sollte ein vernünftiger "proof of concept" gemacht werden bei dem das oberste gebot den Kunden Fragen ob das führ ihn so gut ist !!!! Anbei noch ein paar tips wie ihr den Kunden Super verärgern könnt. Benennt alles mit Abkürzungen, macht aus dem Folder "Buchhaltung"  den Folder "CHFSTMA" so was lieben die Anwender. Das Alphabet hat genügend Buchstaben also nutzt das auch und Verbindet min 20 Netzwerk Laufwerke. Als Letzer tip möchte ich noch mitgeben das es OK ist wenn euer Konzept so kompliziert ist das es mehr als eine A4 Seite füllt :-)

In diesem Sinne noch etwas Selbst Kritik: Beim Schreiben ist mir aufgefallen das doch noch einiges Fehlt, es volgt allso in den nachsten Wochen noch "Part 4 of 3 The secret’s of NTFS Quotas".

 

Gruss Koni