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?
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?
I have a database in development in SQL Server 6.5 that needs to be occasionally deleted and rebuilt from a script when table structures are changed. I found that when very complex queries were performed, the 2 MB default size of tempdb filled up and returned errors, so I went to the Enterprise Manager to expand tempdb, learned that I had to first expand a device to expand tempdb into, and foolishly chose to expand tempdb into the same device space used by my application, instead of into one of the system databases. Then when I tried to delete the device in preparation for its rebuild, the Enterprise Manager responded with an error message saying the device can't be deleted because it contains system tables. The answer (apparently) is to move tempdb into RAM, but when I tried to do that, I got an error message saying I couldn't unless I was in single-user mode. So I put it in single-user mode, and now I can't get to the server at all through the Enterprise Manager because an error message pops up saying "A connection could not be established to SERVER3 - [SQL Server]. Database 'tempdb' is already open and can only have one user at a time."
So now I'm really stuck. There are no other connections or users accessing the database. How can I get back in? No command-line switches seem to make any difference (-c, -f).
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 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.
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.
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.
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 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 have a db maintenance plan which is set to backup (then truncate hopefully)the transaction log. In order to backup a transaction log the db must be insingle user mode so the maint. plan fails. How do you automatically set the db,in single user mode, for the transaction log to be backed up then truncated?Also, I manually set the db in single user mode and it shows itself to be insingle user mode yet the number of users in the db properties says there are 8users connected. What's this about?ThanksMark
Having an extremely frustrating issue trying to connect to SQL once I've done the NET START MSSQL$SQL_DEV /c /m /T3608. Briefly: SQL 2K and 2K5 named instances running on same DEV box. Can't open admin:<serverinstance> in SSMS, I get the following error:
"Login failed for user 'sa'. Reason: Server is in single user mode. Only one administrator can connect at this time. (Microsoft SQL Server, Error: 18461)
This happens regardless of credentials supplied (my AD acct (local admin on box), AD acct running SQL services or sa). Object Explorer is closed, remote connections disabled in SS Surface Area Config. I open SSMS and make no attempt to connect to server. Choose File >New > Query with Current Connection. In dialogue box, I attemp to utilize DAC and get the above error. In DOS prompt where I issued the single user mode startup cmd, try to use sqlcmd to grab DAC session and receive the following error:
SQL Network Interfaces: An error occurred while obtaining the dedicated administrator connection (DAC) port. Make sure that SQL Browser is running, or check the error log for the port number [xFFFFFFFF]. Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
So, no matter what method I use, I've managed to disable ALL access to the instance, despite the tips I've seen here and on Google. I need to move the system databases to new disk volume, but cannot do so until I can open a connection to the instance once I've put it in single user mode. Looking in the SQL Srvr log following startup in single user mode I see the following:
Message Server is listening on [ 'any' <ipv4> 3560]. Message Dedicated admin connection support was established for listening remotely on port 3560.
Do I need to call the port# specifically when using SSMS or sqlcmd? I can include screenshots of the failures and mssgs if necessary.
More disturbing is in a DR situation, I CAN'T OPEN A SESSION TO THE INSTANCE, which would be a very bad thing...
I have gotten my production version of SQL locked into single user mode. We recently upgraded to a clustered configeration and when I went to pause the system to get control I was told Pause was not available in a clustered environment. I restarted the service with -m [single user] but couldn't run Enterprise Manager as it appeared to take the only user slot and not give me one. Then I hit on startingup with Query Analyzer and that worked but now how do I get it back into multi-user mode. I placed the -m in the settings using Enterprise manager; could I stop the service and restart at the cmd prompt using -f [minimal config] and get Enterprise manager running? Any assistance appreciated.
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.