What Causes A SQL Server 7 Database To Swithc To Single-user Mode
Apr 3, 2002
We have a database that is somehow switching to single-user mode every few days. We suspect that the client application (Access 97) written by a non-developer may be doing something funny.
Has anybody encountered such a problem?
How is this possible?
Recently we had multiple production failures because one database was in single-user mode. I am trying to recreate this scenario to write a script that will kick out that connection that was holding database in single-user.In SSMS window 1 I run the following code:
use master go alter database test set single_user with rollback immediate
[code]....
Yes, it shows one record, but the database name is master, not test. And indeed, I run it from the context of master. Also tried sp_who, sp_who2, sys.dm_exec_requests - nothing works. For dm_exec_requests it shows nothing because it does not run at the current moment.Any other solutions to catch this SPID with a script?
I have a database that got set into single user mode. Unsure the reason or who might opened it. I am trying to reset it, but I am having problems. I am trying the following from http://www.kodyaz.com/articles/alter-single-user-multi-user-mode.aspx to kill the connections. So I can then switch it back to multiple users. DECLARE @DatabaseName nvarchar(50)DECLARE @SPId intSET @DatabaseName = N'Works'DECLARE my_cursor CURSOR FAST_FORWARD FOR SELECT SPId FROM MASTER..SysProcesses WHERE DBId = DB_ID(@DatabaseName) AND SPId <> @@SPIdOPEN my_cursor FETCH NEXT FROM my_cursor INTO @SPIdWHILE @@FETCH_STATUS = 0BEGINKILL @SPIdFETCH NEXT FROM my_cursor INTO @SPIdENDCLOSE my_cursor DEALLOCATE my_cursor Which gives me the following error message when ran. Msg 170, Level 15, State 1, Line 13 Line 13: Incorrect syntax near '@SPId'.
Our company has several SQL Server 7 databases. One of them has now on two occassions, set itself to 'Single User' mode. I am completely baffled as to what can be causing it.
There's no jobs set up to do it. There's no stored procedures programmed to do it. The SQL Server Log shows that a DBCC CHECKDB ran at 18:00:37.73 and that users attempted to and couldn't log in from 18:01:01.95 onwards. There is a maintenance plan set to run every two hours that does a backup, integrity checks, so it fired the CHECKDB.
while recovering it prompts a message 'the system administrator must have exclusive use of database to run the restore operation'. now,how to do it? how to make database to use exclusively when it is connected to an web based aplication. thanks.
I have a problem with databases that are left in single user mode after transaction log backup. I have a database maintenance plan job that backs up the transaction log and checks data and index linkage every hour. Sometimes the job fails and when I look in the report file it says that it has tred to put the database in single user mode and failed because the database is in use and then in the next step it says that it cannot perform the operation because there already is a user in the database.
Why is the database put in single user mode? What can I do to avoid finding my databases in single user mode?
Below is a part of the report file:
[Microsoft SQL-DMO (ODBC SQLState: 42000)] Error 15089: [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot change the 'single user' option of a database while another user is in the database. [1] Database BV Produktion: Check Data and Index Linkage...
** Execution Time: 0 hrs, 0 mins, 1 secs **
[2] Database BV Projektering: Check Data and Index Linkage... [Microsoft SQL-DMO (ODBC SQLState: 42000)] Error 924: [Microsoft][ODBC SQL Server Driver][SQL Server]Database 'BV Projektering' is already open and can only have one user at a time. [Microsoft][ODBC SQL Server Driver][SQL Server]Only the owner of object 'dms_user' can run DBCC CHECKTABLE on it. [Microsoft][ODBC SQL Server Driver][SQL Server]Database 'BV Projektering' is already open and can only have one user at a time. [Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator.
The following errors were found:
[Microsoft][ODBC SQL Server Driver][SQL Server]Database 'BV Projektering' is already open and can only have one user at a time. [Microsoft][ODBC SQL Server Driver][SQL Server]Only the owner of object 'dms_user' can run DBCC CHECKTABLE on it. [Microsoft][ODBC SQL Server Driver][SQL Server]Database 'BV Projektering' is already open and can only have one user at a time. [Microsoft][ODBC SQL Server Driver][SQL Server]DBCC execution completed. If DBCC printed error messages, contact your system administrator. ** Execution Time: 0 hrs, 0 mins, 9 secs **
I put the database in emergency mode, then I executed Checkdb, it shows no errors. The database status is still EMERGENCY and when I try to bring it online, it says he database is in single-user mode, and a user is currently connected to it. There is one processes which is accessing the database, i try to kill it, but it is not going. I am not able to set database to multi user.
I know what single user mode does but my doubt is at what situations we will go for this? What operations to perform ? we will keep the database in single user mode.
I'm taking a database(read-only) backup from one server and restoring it on other server. As soon as restore is done it is bringing database into single-user read-only mode.
why it is bringing the database into single user mode ?
Hello FacultiesWhen doing recovery after loss of data files, one would like tostart SQL Server in single user mode. Is this possible?Thanks in advanceDebashish
I get an error in my ASP.Net application which states: "The server will drop the connection, because the client driver has sent multiple requests while the session is in single-user mode. This error occurs when a client sends a request to reset the connection while there are batches still running in the session, or when the client sends a request while the session is resetting a connection. Please contact the client driver vendor."
I checked out the database properties, it shows that SQL is set for 'MultiUser' mode. What else do I need to check and how can I fix this?
I have hit a problem while trying to re-start the server in Single User Mode in order to restore the master database. I run the command sqlservr -m and it locks after the 'non-unicode character set' line each time.
Is there anyone who knows anything about this? Have I missed something or is it a bug? I have researched quite a few books and haven't found any reference to this problem.
This question came to me from a friend and I don't have a lot of details so I apologize in advance. I thought it might be worth a shot to ask here since I couldn't find anything on point in the MS help or KB. A SQL Server 7 database running on an NT 4.0 box is having a full database backup nightly. The backup routine is pretty standard, created using the Maintenance Wizard. It backs up two databases on the server. The problem is that when folks come into work in the AM, the databases are in Single-User mode and someone has to go in and change this. Is this normal behavior? My (admittedly limited) understanding of SQL 7 backups is that they are relatively transparent, and Single User mode is not necessary. You can operate normally other than you can't to any unlogged txn's while the backup is running. They have not done anything explicit to put the databases in Single-user mode when the backup begins. Any ideas how to prevent this from happening? (Or how to automate the switch out of Single-user mode when the backup is completed?)
I tried to run the SQL in single user mode by executing sqlservr.exe -m. The execution starts in a DOS window but apparently stops at one point. The SQL Server will run in single user mode but when i tried to restore the master db, the restoration process stops and the SQL server stops. Is there any process I left out? I think the execution of single user mode is incomplete. Please help.
Actually, I found exactly the same problem was posted year ago, but there was no solution. Any information would be greatly appreciated.
At the moment some of the databases on my systems drop themseleves into single user mode over the weekend. Has any one expierienced this or does any one know how I could monitor it to find out how it is doing it.
Hello, I have an SMS 2.0 Site in which we ae using SQL Server 6.5. I am having major problems setting server in Single-User Moder and running automated SQL Utilities because of multiple connections at one time. Does anyone know how to FORCE SQL into Single-User Mode. Any help would be greatly appriciated. Thank You, George Aviles gaviles@na2.us.ml.com
I have been trying with no success to start my SQL Server in single user mode and login.
Here's the scenario:
I've got a one node cluster with SQL Server 2000 installed. I changed the startup parameters of SQL Server to reflect the following:
-c -f -m
I have disabled SQL Server Agent so it doesn't start when I bring SQL Server online. But when I do bring SQL Server online, I'm not able to connect at all. I keep getting the "only one administrator can log on at one time".
There is no one else trying to log on and SQL Agent is disabled.
What is the scoop? Has anyone seen this? And if so, how did you address it? I'm trying to restore master and need to get this donesooner rather than later.
Hi I have heard abt starting the SQL Server in Single User Mode,
1) Can any one tell my why would I have to do that , Can some one please give me real time examples as to why he/she started the SQL Server in Single User Mode
2) I have currently got 20 users online,howe can I start the SQL in single user mode.
I know it's completely not advised, but I have to do this: I need to make some updates to a system table. In short, I have some databases that were secondary databases in a log shipping scenario. I needed to recover those, so now they're not in STANDBY. All I want to do is reset those back to STANDBY so I don't have to completely start from scratch. One of the databases is 500GB and I do not feel like having to wait for another full restore of that database.
I have DAC enabled on the server in question. Whenever I try to connect, it says DAC is NOT enabled. Wrong!!! When I run this query: Code Snippetsp_configure 'remote admin connections', 1;GORECONFIGURE;GO The first statement runs fine. It says to RUN RECONFIGURE. I run reconfigure. I then get an error saying ad-hoc updates to system catalogs are not accepted. Huh?????? So I start the SQL Server in Single User Mode. I closed every single connection. Nothing else is trying to connect. When I try to connect to the instance via SSMS using ADMIN:<instance name>, I get an error saying I can't connect because only one adminstrator is allowed to connect while in single user mode. I do not get what the H-E-double-hockey-sticks is going on! I'm set up as a sysadmin on this box... I don't get it...
I have been trying with no success to start my SQL Server in single user mode and login.
Here's the scenario:
I've got a one node cluster with SQL Server 2000 installed. I changed the startup parameters of SQL Server to reflect the following:
-c -f -m
I have disabled SQL Server Agent so it doesn't start when I bring SQL Server online. But when I do bring SQL Server online, I'm not able to connect at all. I keep getting the "only one administrator can log on at one time".
There is no one else trying to log on and SQL Agent is disabled.
What is the scoop? Has anyone seen this? And if so, how did you address it? I'm trying to restore master and need to get this done sooner rather than later.
Ever since installing SQL service pack2 I've run into a very strange error.
Just about every day, 1 or more databases just switch themselves into Single-User Mode. Since these databases form the back-end of websites, this is obviously a serious problem. No-one can get in. I've checked out the MS knowledge base, and books online, but I can't find a thing about this behavior.
Has anybody else run into this? - Does anybody know where I could begin to look to trace this error down? Its been going on for more than a week and I'm still at square one.
Any help would be apppreciated.
------------------------ Windows NT 4 - SP6a SQL 7 - Sp2 ------------------------
Dear All, I have some user databases that go into single user mode for no apparent reason. Is there any reason that SQL Server 7 would set a database in single user mode by itself? NB They are not being set single user by anyone else here, they would not know how.
I been reading that DBCC checkdb should be run in single user mode. While microsoft says to run DBCC checkalloc in single user mode. Does running checkdb in single user mode matter, and should I be running checkdb in single user mode?
In order to automate regular maintenance on SQL Server (6.5 SP3) I'm trying to automate the process of putting the database into single user mode without having to stop/start the process.
The sp_dboption won't allow single user mode while users are still connected to the database, so I was trying the following script:
DECLARE @to_kill int
/* Declare Cursor */ DECLARE spid_cursor CURSOR FOR SELECT spid FROM sysprocesses WHERE dbid = 6
/* Open Cursor */ OPEN spid_cursor
/* Loop Through All Table Names */ FETCH NEXT FROM spid_cursor INTO @to_kill WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) BEGIN KILL @to_kill END FETCH NEXT FROM spid_cursor INTO @to_kill END
This, however gives a sytax error for the KILL command (it seems that KILL will not allow a parameter to be passed). I've tried making the @to_kill variable smallint, int, and varchar without any success.
Is there any automated way way to kill user connections without cycling the server?