Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Einzelbenutzermodus geht nicht, was soll ich tun?

Empfohlene Antworten

Hallo,

ich will folgendes Script ausführen:

DBCC CHECKDB ('EXAMPLE', REPAIR_ALLOW_DATA_LOSS)
Dabei kommt es zu einem Fehler, dass die DB muss im Einzelbenutzermodus sein. Für Einzelbenutzer modus habe ich folgendes Script verwendet:
exec sp_dboption 'Example','single user','TRUE'
Der wurde auch erfolgreich ausgeführt, aber der erste Script geht immer noch mit dem gleichen Fehler. Ich habe einen MS SQL 2000 und versuche die Example wiederherzustellen, von dem ich nur mdf und ldf Dateien habe (kein bak). Habe den Script:
UPDATE SYSDATABASES SET STATUS = 32768 WHERE NAME='EXAMPLE'

dafür benutzt um die db wiederherzu.

Ich habe folgende Fragen:

1. Wieso kann ich kein checkdb ausführen?

2. Wieso schaltet sich dafür der single mod nicht ein?

3. Wie kann ich den letzten Script umkehren bzw Normal Status für den Datenbank erreichen?

4. Was ist ein Bypass Recovery-Modus?

Vielen Dank für die Hilfe

HIIIEELFE

Ich habe den Einzelbenutzermodus aktiviert (unter Startparametern die -m eingefügt) und jetzt kann ich überhaupt nichts mehr machen. :eek

Die Startparametern habe ich mit Enterprise Manager verändert und jetzt kann ich das nicht mehr zurück ändern. Bei der verbindung kommt immer wieder der Satz, dass nur ein Administrator sich anmelden kann.

WIE kommt das denn zu stande?

Ist das wegen dem Extrakonto für SQL Server Dienst?

Und wie kann ich das ändern?

Hab schon versucht mich mit dem ServerKonto anzumelden, geht aber trotzdem nicht. :rolleyes:

Es ist jetzt aber echt sch... Jemand eine Idee?

Entwarnung

alles wieder im griff, bis auf die Fragen des ersten Teils

UND

Warum wurde ich im Einzelbenutzer Modus ausgespert?

erstmal: keine panik!

WIE kommt das denn zu stande?

Ist das wegen dem Extrakonto für SQL Server Dienst?

Und wie kann ich das ändern?

[...]

Warum wurde ich im Einzelbenutzer Modus ausgespert?

wenn du die instanz mit -m startest, ist ein einziger zugriff möglich. vergewissere dich also, dass nicht ein zweites query analyzer fenster oder der SQLSERVERAGENT auf die instanz zugreifen.

der beschriebene fehler (bitte zukünftig vielleicht genau mit angeben :) muss dann wohl 18461 sein.

so, und dann lass ma mal laufen:

exec sp_dboption 'meinedatenbank','single user','TRUE'

Befehl(e) wurde(n) erfolgreich abgeschlossen.

DBCC CHECKDB ('meinedatenbank', REPAIR_ALLOW_DATA_LOSS)

DBCC-Ergebnis für 'meinedatenbank'.

[...]

Von CHECKDB wurden 0 Zuordnungsfehler und 0 Konsistenzfehler in der 'meinedatenbank'-Datenbank gefunden.

Die DBCC-Ausführung wurde abgeschlossen. Falls DBCC Fehlermeldungen ausgegeben hat, wenden Sie sich an den Systemadministrator.

exec sp_dboption 'meinedatenbank','single user','FALSE'

Befehl(e) wurde(n) erfolgreich abgeschlossen.
mit dem parameter -m gestartet (am einfachsten über die diensteigenschaften) startet die instanz ohnehin mit sp_configure 'allow updates' d.h. das muss nicht mehr angegeben werden. dann mittels
SELECT name, databasepropertyex(name, 'status') FROM master.dbo.sysdatabases
den status der db merken. dann datenbank reparieren
Wie kann ich den letzten Script umkehren bzw Normal Status für den Datenbank erreichen?
indem anschliessend mit
ALTER DATABASE meinedatenbank SET online

die datenbank wieder online gestellt wird.

s'Amstel

Danke

Habe jetzt nur das Problem, die

DBCC CHECKDB ('EXAMPLE', REPAIR_ALLOW_DATA_LOSS)

REPAIR-Anweisung nicht verarbeitet. Datenbank muss im Einzelbenutzermodus befinden.
auszuführen. Der Server ist aber im Einzelbenutzermodus (Startparametern -m)
DBCC CHECKDB ('EXAMPLE')

zeigt leider mir 39 Reservierungsfehler und 967 Konsistenzfehler. Und ich kann kein REPAIR starten :(

Gibt es eine Möglichkeit die DB zu Repariren gleich nach dem Serverstart (vor allen anderen anmeldungen)?

Hat den wirklich keiner eine Idee, wieso ich

1. im Einzelbenutzermodus beim Ausführen des Befehls CHECKDB REPAIR (mit QueryAnalyser) eine Meldung kriege, dass die DB im Einzelbenutzermodus sein sollte?

2. Wie könnte ich alle anderen Benuter rausschmeissen um CHECKDB auszuführen?

(exec sp_dboption 'Example','single user','TRUE' und ALTER DATABASE meinedatenbank SET single_user werden ausgeführt aber helfen nicht)

Hat den wirklich keiner eine Idee, wieso ich

1. im Einzelbenutzermodus beim Ausführen des Befehls CHECKDB REPAIR (mit QueryAnalyser) eine Meldung kriege, dass die DB im Einzelbenutzermodus sein sollte?

2. Wie könnte ich alle anderen Benuter rausschmeissen um CHECKDB auszuführen?

(exec sp_dboption 'Example','single user','TRUE' und ALTER DATABASE meinedatenbank SET single_user werden ausgeführt aber helfen nicht)

Also bei mir hat das so geklappt:

Im Enterprise Manager geschaut ob Prozesse auf die DB zugreifen. (Bei mir wars die MSDB). Ein Prozeß war auf jeden Fall der SQL - ServerAgent, sonst natürlich andere DBs, die auf die MSDB zugreifen.

Damit mir keine andere DB dazwischenfunkt habe ich alle BenutzerDBs "offline" geschaltet.

Zum testen ob kein anderer Benutzer/Prozeß auf die DB zugreift hab ich immer wieder versucht die DB im EM auf Einzelbenutzermodus zu schalten. Wenn noch was da war (z.b. Query Analyzer, Agent,...) kam eine Fehlermeldung.

Anschließend den Quälenden Analyser gestartet (und EM beendet und natürlich den Einzelbenutzermodus vorher ausgeschaltet) und den EinzelbenutzerModus mit sp_dboption eingeschaltet, checkdb ausgeführt und die DB wieder mit sp_dboption auf Mehrbenutzer zurückgeschaltet.

Zum Schluß wieder alles per EM Online geschaltet und den Integritätscheck mit dem Agent durchlaufen lassen.

Nun läuft wieder alles wie gewünscht.

2. Wie könnte ich alle anderen Benuter rausschmeissen um CHECKDB auszuführen?

(exec sp_dboption 'Example','single user','TRUE' und ALTER DATABASE meinedatenbank SET single_user werden ausgeführt aber helfen nicht)

Versuchs doch mal mit

ALTER DATABASE meineDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE

Goos

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.