Der tägliche Wahnsinn
Archiv für Juni 2009
Defraggel fraggel fraggel
18. Jun
Sodelle, heute ist es mal wieder soweit. Ich quäle mich durch unsere Datenbanken, und reorganisiere unsere Indizes. Aber lieber jetzt, als heute Nacht wenn ich Rufbereitschaft habe
und ich wegen eines Timeouts aus dem Bett geholt werde.
Zum glück verwenden wir von Idera den SQLDefrag Manager, das erspart mir das mühsame DBCC CHECKDB oder DBCC CHECKTABLE.
SQL Server Backup mit Idera SQLSafe Freeware Edition
12. Jun
Heute will ich ein kostenloses Tool von Idera vorstellen. Leider ist das Backup von gerade sehr großen Datenbanken mit den Boardmitteln des SQL Servers oft eine sehr langwierige Angelegenheit (von den größenb der Backup File mal ganz zu schweigen).
Da kommt der SQLSafe von Idera ins Spiel, von dem es auch eine Freeware Edition gibt (im vergleich zur Vollversion kann man diesen nicht per Policies bzw. der Console steuern). Wer aber nur eine Hand voll Datenbanken sichern möchte, sollte sich den Safe einmal genauer ansehen.
Die größten Vorteile:
- Komprimierung der Backups bis zu 95%
- Schnellere Backups bis zu 50% Zeitersparnis im vergleich zu nativen Backups
- Einfach zu Scripten
Nachdem Ihr den SQLSafe installiert habt, stehen euch zwei Möglichkeiten zum sichern der Datenbanken zur Verfügung. Zum einen über die Kommandozeile (SQLSafecmd) oder über die Stored Procedures (xp_ss_backup oder xp_ss_restore). Beispiele zu der Verwenung der Scripte findet ihr in den mitgelieferten Hilfefiles.
Als kleines Beispiel zum Sichern der Datenbanken via Kommandozeile:
SQL safecmd backup northwind c:\backup\northwind.safe SQL safecmd backup northwind c:\backup\nw_%timestamp%.safe
Beispiel zum Sichern der Datenbanken über T-SQL:
DECLARE @Returncode int EXEC @Returncode = [master].[dbo].[xp_ss_backup] @database = “Northwind”, @filename = "c:\backup\northwind.safe"
Upgrade auf Wordpress 2.8 und neues Theme
11. Jun
Ich habe soeben ein Upgrade von Wordpress installiert (ok, habe auf aktualisieren geklickt, und der Rest ging ganz von alleine). Nachdem ich mit dem neuen/alten Theme nicht allzu glücklich war, habe ich das auch nun abgeändert. Denke, daß es schon ein wenig besser aussieht.
Jetzt gehts ab ins Bett. Morgen ist zwar Brückentag, aber es hat halt nicht jeder Urlaub
Freitag! Wie nur die letzten Stunden rumbringen?
05. Jun
Bald ist wieder eine Woche gesachafft. Meine Rufbereitschaft habe ich ohne einen Call durchgehalten (bis auf ein kleines LUN, welches ich gestern Abend noch vergrößern mußte).
Jetzt sind es noch wenige Stunden, bis das Wochende lacht. Bis dahin kann ich euch eins meiner lieblings Flash-Spiele ans Herz legen: Warzone Tower Defense! Aber natürlich nicht auf der Arbeit spielen!
YouTube XL
04. Jun
Endlich kann ich auf meinem 1900×1280 15,4″ Notebook-Display in einer Augenfreundlichen Version mir die lustigen Videos von Youtube ansehen. YouTube XL ist für den Fernseher gedacht, um Videos auf der XBOX oder PS3 mit einer ansehnlichen und leicht zu steuernden Oberfläche anzuzeigen.
Wer es selbst einmal ausprobieren will, klickt am besten gleich hier: YouTube XL.
Project Natal: Microsoft macht den Menschen zum Controller
03. Jun
Na wenn das mal keine schweißtreibende Angelegenheit wird
Project Natal: Microsoft und die Revolution im Wohnzimmer – Golem.de.
SQL Server Logins synchronisieren
03. Jun
Nachdem ich schon seit ein paar Wochen nichts geschrieben habe, wird es mal wieder Zeit.
Vor einigen Monaten haben wir auf der Arbeit unsere altes Cluster neu aufgesetzt, und den SQL Server auf neuer Hardware installiert. Nachdem wir massig SQL Logins und Windows Gruppen berechtigt hatten, stellte sich die Frage, wie wir diese Logins wieder auf den Datenbanken berechtigen können, ohne uns durch jede Datenbank zu klickern.
Um die Logins anzulegen hatte ich bereits ein Script zur Hand, jedoch mußten die neuen Logins (neue SID) mit den Datenbanken synchronisiert werden. Hier habe ich auf der SQLServerCenteral zwei kleine aber sehr gute Helferscripte gefunden, welche jedem DBA das Leben erleichtern.
Zunächst das erste Script, welches alle nicht synchronen Logins auf dem Server ausliest:
DECLARE @Collation varchar(100)
DECLARE @SQL VARCHAR(2000)
CREATE TABLE ##TempSync
(
DB_NME Varchar(50),
DBUserName varchar(50),
SysLoginName varchar(50)
)
SELECT @Collation = CONVERT(SYSNAME,DatabasePropertyEx('master','Collation'))
SET @SQL = 'USE [?]
SELECT ''?'' DB_NME,
A.name DBUserName,
B.loginname SysLoginName
FROM sysusers A
JOIN master.dbo.syslogins B
ON A.name Collate ' + @Collation + ' = B.Name
JOIN master.dbo.sysdatabases C
ON C.Name = ''?''
WHERE issqluser = 1
AND (A.sid IS NOT NULL
AND A.sid <> 0x0)
AND suser_sname(A.sid) IS NULL
AND (C.status & 32) =0 --loading
AND (C.status & 64) =0 --pre recovery
AND (C.status & 128) =0 --recovering
AND (C.status & 256) =0 --not recovered
AND (C.status & 512) =0 --offline
AND (C.status & 1024) =0 --read only
ORDER BY A.name'
INSERT into ##TempSync
EXEC sp_msforeachdb @SQL
SELECT * FROM ##TempSync
DROP TABLE ##TempSync
Und nun das Script, was alle Logins wieder synchronisiert
DECLARE @Collation VARCHAR (100)
DECLARE @SQL VARCHAR(2000)
SELECT @Collation =CONVERT(SYSNAME,DatabasePropertyEx('master','Collation'))
SET @SQL = 'USE [?]
DECLARE @DBUserName varchar(50)
DECLARE @SysLoginName varchar(50)
DECLARE SyncDBLogins CURSOR FOR
SELECT A.name DBUserName,
B.loginname SysLoginName
FROM sysusers A
JOIN master.dbo.syslogins B
ON A.name Collate ' + @Collation + ' = B.Name
JOIN master.dbo.sysdatabases C
ON C.Name = ''?''
WHERE issqluser = 1
AND (A.sid IS NOT NULL
AND A.sid <> 0x0)
AND suser_sname(A.sid) IS NULL
AND (C.status & 32) =0 --Loading
AND (C.status & 64) =0 --pre recovery
AND (C.status & 128) =0 --recovering
AND (C.status & 256) =0 --not recovered
AND (C.status & 512) =0 --offline
AND (C.status & 1024) =0 --read only
ORDER BY A.name
OPEN SyncDBLogins
FETCH NEXT FROM SyncDBLogins
INTO @DBUserName, @SysLoginName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC sp_change_users_login ''update_one'', @DBUserName, @SysLoginName
FETCH NEXT FROM SyncDBLogins
INTO @DBUserName, @SysLoginName
END
CLOSE SyncDBLogins
DEALLOCATE SyncDBLogins
'
EXEC sp_msforeachdb @SQL
Orginal Artikel: http://go.xinox.net/52sceq
Letzte Kommentare