Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL-Sessions trennen vor DBCC SHRINKFILE

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

16.02.2010, aktualisiert 18.10.2012, 9004 Aufrufe, 4 Kommentare

Hallo,
ich habe ein kleines Problem mit meinem neu aufgesetzten SQL-Server 2005. Ich möchte die physische Dateigröße des Transaktionsprotokolls einer Datenbank verringern (mittlerweile ca. 65 GB!).

Hierzu lasse ich folgendes Script laufen:

01.
USE MeineDB
02.
CHECKPOINT
03.
BACKUP LOG MeineDB WITH NO_LOG
04.
DBCC SHRINKFILE(MeineDB_Log,NOTRUNCATE)
05.
DBCC SHRINKFILE(MeineDB_Log,TRUNCATEONLY)
Auf dem alten Server (auch 2005) lief das per Task nachts problemlos. War ja auch keiner weiter eingeloggt.
Bei dem neuen klappt es aber nicht. Es kommt dann nur die folgende Meldung:

"Cannot shrink log file 2 (MeineDB_Log) because all logical log files are in use."

Wenn ich die Zugriffe auf die Datenbank per Script abrufe sehe ich auch mehrere Einträge, obwohl diese User definitiv keine Verbindung zur Datenbank zu diesem Zeitpunkt haben.
Irgendwie scheinen sie nicht sauber getrennt zu werden.

Selbst wenn ich die Datenbank als "SINGLE_USER" setze sehe ich sie noch und kann bekomme dann die gleiche Meldung.
Warum werden diese User nicht sauber getrennt? Gibt es da eine generelle Einstellung? oder wie kann ich sie ganz hart rauswerfen?

Torsten
Mitglied: Tommy70
16.02.2010 um 08:05 Uhr
Hallo,

eventuell funktioniert es so.

01.
ALTER DATABASE [TestDb] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE 2
02.
ALTER DATABASE [TestDB] SET  MULTI_USER 
Der erste Befehl bewirkt, dass die Datenbank in den Single-User-Mode gesetzt wird und fährt dabei gleichzeitig alle offenen Transaktionen zurück
Beim zweiten wird die Datenbank wieder in den Normal-Mode zurückgesetzt.

Allerdings würde ich zuerst abklären wieso Connections offen bleiben. Eventuell arbeitet die Client-Software nicht sauber.
Bitte warten ..
Mitglied: goodbytes
16.02.2010 um 12:33 Uhr
Hallo Tommy70,
leider funktioniert es so auch nicht. Es ist mir ein echtes Rätsel. Wenn die Datenbank in Beim alten Server hat es mit den gleichen Clients perfekt funktioniert. Die Clientversionen haben sich auch nicht geändert. Halt nur ein neuer Server.

Torsten
Bitte warten ..
Mitglied: Biber
16.02.2010 um 19:19 Uhr
Moin TorstenB,

Zitat von goodbytes:
Hallo Tommy70,
leider funktioniert es so auch nicht. Es ist mir ein echtes Rätsel. Wenn die Datenbank in Beim alten Server hat es mit den
gleichen Clients perfekt funktioniert. Die Clientversionen haben sich auch nicht geändert. Halt nur ein neuer Server.

Torsten
Dann kann es nach menschlichem bzw biberschen Ermessen nur so sein, dass die vorherige vermeintlich baugleiche Serverinstanz im SIMPLE Recoverymodus lief, die neue/jetzige dagegen im FULL Recovery Mode.

Schau mal bitte im Enterprise Manager bei alter (falls noch vorhanden) und neuer Datenbank unter (neudeutsch: ) "Properties", "Options", "Recovery Mode (FULL oder SIMPLE) und vermutlich auf deutsch "Eigenschaften", "Optionen", "Wiederherstellungmodus?".

SIMPLE Recovery ist zwar nichts, was einer Prod-DB angetan werden sollte, aber wenn ihr eh Transactions-Logs jede Nacht verkürzt... *lach*

Wie kommt ihr denn auf den Bolzen, dass das halb-manuell per Skript gemacht werden muss? Jede Nacht, wenn normale DBs schlafen?
Das Transaction-Log sollte eigentlich immer eine konstante (physische/von außen erkennbare) Größe behalten und NUR verkleinert werden, wenn abzusehen ist, dass es auch nie nie wieder auf die einmal erreichte Größe anwachsen wird (z.B. weil der Server nicht mehr 5000 Tabellen und 10 Appz & DBs beherbergt, sondern nur noch 200 Tabellen und 1 Appz).

Wenn ihr meint, der Server braucht mehr freien Plattenplatz--> auf nach eBucht/DasIsMeinLaden und größere Platte kaufen.

Grüße
Biber
Bitte warten ..
Mitglied: goodbytes
17.02.2010, aktualisiert 18.10.2012
Hallo Biber,
standardmässig steht die Prod-DB auf FULL. Ich hatte vor paar Tagen mal eine Test-Datenbank auf dem SQL-Server versuchsweise von FULL auf SIMPLE gesetzt und ein Backup gezogen. Genauso hatte ich im FULL-Modus mal die Transaktionsprotokolle gesichert. Alles hat nix gebracht; die physische Dateigroße wächst und wächst...

Damit werden auch die Backups immer größer, welche ja noch irgendwie mit auf die täglichen Bandsicherungen passen müssen. Mittlerweile ist ein DB-Backup gut 100 GB groß.

Mich würde einfach interessieren, warum das Shrinken nicht funktioniert. Wenn ich folgendes Script auf meinen SQL-Server loslasse sehe ich seltsamerweise noch bestehende Logins, obwohl die User gar nicht eingeloggt sein können:

01.
SELECT 
02.
   I.NTUserName,
03.
   I.loginname,
04.
   I.SessionLoginName,
05.
   I.databasename,
06.
   Min(I.StartTime) as first_used,
07.
   Max(I.StartTime) as last_used,
08.
   S.principal_id,
09.
   S.sid,
10.
   S.type_desc,
11.
   S.name
12.
FROM
13.
   sys.traces T CROSS Apply
14.
   ::fn_trace_gettable(CASE 
15.
                          WHEN CHARINDEX( '_',T.[path]) <> 0 THEN 
16.
                               SUBSTRING(T.PATH, 1, CHARINDEX( '_',T.[path])-1) + '.trc' 
17.
                          ELSE T.[path] 
18.
                       End, T.max_files) I LEFT JOIN
19.
   sys.server_principals S ON
20.
       CONVERT(VARBINARY(MAX), I.loginsid) = S.sid  
21.
WHERE
22.
    T.id = 1 And
23.
    I.LoginSid is not null
24.
Group By
25.
   I.databasename,
26.
   I.NTUserName,
27.
   I.loginname,
28.
   I.SessionLoginName,
29.
   S.principal_id,
30.
   S.sid,
31.
   S.type_desc,
32.
   S.name
Hier eine Zeile der Ausgabe:

01.
NULL	user1	user1	MeineDB	11.02.2010 11:53	15.02.2010 09:51	281	0x2615590140F99742A836EFC2E6B54649	SQL_LOGIN	user1
Wenn ich aus der Anwendung heraus von einem Client nach eingeloggten Usern schaue ist dort nichts. Offenbar werden die Sessions einfach nicht sauber getrennt. Wie kann ich sie nun wirklich wenigstens testweise mal canceln?

Weitere Nachforschungen ergaben, dass die Datenbank offenbar noch auf Replikationen wartet.
Genau wie hier: https://www.administrator.de/forum/sql-server-2005-transaktionsprotokoll ...

Ich denke, dass es eine generelle falsche Einstellung am SQL-Server ist, da es alle Datenbanken betrifft (sogar meine VMware vSphere-Datenbanken, bei welchen sich ja momentan wirklich nichts tut).

Was also tun?

Torsten
Bitte warten ..
Ähnliche Inhalte
Windows Server
Citrix-Session auf RDS-Session-Host
Frage von BirdyBWindows Server3 Kommentare

Hallo zusammen, ich habe da gerade ein recht komisches Setup und bräuchte mal Meinungen und Ratschläge Bei uns arbeiten ...

Windows Server

Session zwischen Terminalservern verschieben

Frage von Kabelbinder67Windows Server5 Kommentare

Hallo zusammen, ich administriere zur Zeit unter anderem ein paar RDS Umgebungen unter Windows 2012. Hier gibt es immer ...

Windows Server

Druckermapping Citrix Session - Alternativen?

Frage von pixel0815Windows Server5 Kommentare

Hallo zusammen, gibt es noch andere Wege einen Printserverdrucker in eine Terminalsitzung zu bekommen? - Per GPP und Zielgruppenadressierung - ...

Router & Routing

Monitoring einer IPv6-BGP-Session

Frage von LordGurkeRouter & Routing4 Kommentare

Moin, ich zweifle gerade abwechselnd an mir und den namhaften Routerherstellern Ich habe hier mehrere BGP-Sessions (via IPv4 und ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 8 StundenWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 2 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 3 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 5 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Vmware
Richtige Einstellungen beim ESXI 6.5 in Sachen CPU Zuweisung bei einer VM
gelöst Frage von zeroblue2005Vmware14 Kommentare

Hallo Zusammen, heute wollte ich mal fragen, wie ich eine VM die richtige Anzahl der von CPUs zuweise. Bin ...

Vmware
ESXI hebt Registrierung von Masschinen auf
Frage von SpitzbubeVmware12 Kommentare

Hallo, nutze seit einiger Zeit für meine IT Projekte einen alten HP G7 Server mit ESXi 6.5 und einem ...

Entwicklung
Programmieren lernen - Vorkenntnisse bisher nur in PowerShell
gelöst Frage von SomebodyToLoveEntwicklung10 Kommentare

Hallo zusammen, ich würde gerne tiefer in das Programmieren einsteigen, der Wunsch hängt mir schon im Kopf seid ich ...

Hyper-V
Chaosbeseitigung in Domainlandschaft
Frage von Rolf935Hyper-V10 Kommentare

Hallo zusammen, ich hätte gerne mal ein paar praktische Tipps oder Hinweise. Derzeit haben wir einen NAS als Fileserver ...