⑴ SQL server 数据库问题
错误提示已经明示您要创建的数据库“My”已经存在了,您可以换一个数据库名试一试,比如“My1”之类,直到不报错就好了。
⑵ sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法
这个问题的原因在于有用户连接了当前要做还原的数据库,这里的用户甚至包括当前要做还原的用户。解决办法就是关闭与要还原数据库的所有连接。
脚本之家小编推荐的一个方法:到服务里面重启下sqlserver服务即可。
问题一描述:SQL
Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样
问题二描述:在对SQL
Server数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权。(Microsoft.SqlServer.Smo)。出现此问题的原因是在还原数据库时,有其他用户正在使用数据库。还原数据库要求数据库工作在单用户模式。通常就是DBA在操作时,不允许其他用户连接数据库。
问题一解决办法:
右键点击数据库
->
属性
->
选项
->
状态
->
限制访问
->
选择Multiple
->
确定。
问题二解决办法:
方法一(最方便):右键点击数据库
->
属性
->
选项
->
状态
->
限制访问
->
选择Single->
确定。然后还原。
方法二(最直接):断开数据库连接
方法三(最暴力):注销/重启数据库服务器
方法四(最麻烦):写代码修改数据库相关属性,虽然麻烦,有的时候还是要用到,那就用到的时候再研究。
①先切换数据库到master数据库。执行语句
select
*
from
master..sysprocesses
where
dbid=db_id(
'数据库名称')
②然后逐步运行语句
exec
kill
spid(上一步结果集中的数据),
问题就解决了。哈哈
今天在还原数据库的时候,提示"因为数据库正在使用,所以无法获得对数据库的独占访问权",无论我是重启数据库,还是重启计算机,都不能解决问题,多番尝试后,终于解决了该问题。现将引发该问题的原因与解决方案写出来,有不对的地方欢迎大家提出来。
引发原因:是因为我在还原数据库的时候,还有其他的用户正在使用数据库,所以就会出现以上提示。
解决方法:
1,设置数据库在单用户模式下工作。
设置方法:在需要还原的数据库上右击,在右键菜单命令上选择"属性"-
>"选项"-
>"状态"-
>"限制访问"-
>"Single"。这是SQLSERVER2005的菜单命令,其它版本请自己查找。
2,利用SQL语句,杀死正在使用该数据库的所有进程,自己以前在做一个SQL
SERVER操作小工具的时候有写过该功能的SQL,贴出来供大家参考:
复制代码
代码如下:
declare
@dbname
varchar(50)
set
@dbname='数据库名称'
declare
@sql
varchar(50)
declare
cs_result
cursor
local
for
select
'kill
'+cast(spid
as
varchar(50))
from
sys.sysprocesses
where
db_name(dbid)=@dbname
open
cs_result
fetch
next
from
cs_result
into
@sql
while
@@fetch_status=0
begin
execute(@sql)
fetch
next
from
cs_result
into
@sql
end
close
cs_result
deallocate
cs_result
该SQL语句利用游标循环所有正在使用该数据库的进程,并通过kill命令杀死进程。
3,利用SQL语句,断开所有用户链接,并回滚所有事务,具体SQL语句如下:
复制代码
代码如下:
ALTER
DATABASE
[数据库名称]
SET
OFFLINE
WITH
ROLLBACK
IMMEDIATE
注意:在使用方法2与3时,不要在需要的还原的数据库下执行,建议在master数据库下面执行。
⑶ sql server单用户模式下怎么修改为多用户模式
原理是先kill占用了数据库的那个进程,然后设置数据库为多用户模式。
USE master;
Go
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
FROM master..sysprocesses
WHERE dbid=DB_ID('数据库名');
EXEC(@SQL);
GO
ALTER DATABASE 数据库名 SET MULTI_USER;
(3)关闭数据库单用户模式扩展阅读:
机制结构
SQL Server 是一种客户机/服务器系统
多年来,SQL Server 一直被认为是一种客户机/服务器系统。事实上,Sybase DataServer(以此为基础开发了原始的 SQL Server)正是第一个作为客户机/服务器系统开发的商用关系数据库系统。那这又说明了什么呢?这不只意味着 SQL Server 是一个双层系统。
从传统上看,双层系统意味着客户机应用程序运行在一台机器上,向另一台计算机上的服务器发送请求。而对于 SQL Server,客户机/服务器意味着 SQL Server 的组成部分,即客户机 API 部分,驻留在处理结构中的远端,与服务器组件本身是分开的。
在典型的双层模型中,客户机程序部分驻留在台式机上,具有大量客户机应用程序逻辑和业务逻辑,并且会直接向数据库系统发出请求。然后,客户机得到服务器响应这些请求所返回的数据。
三层系统也采用了同样的模型。多年以来,SQL Server 一直用在事务处理监视系统中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,这些系统早在二、三十年前就采用了典型的三层模型。
三层模型在今天基于 Web 的应用系统中占据了支配地位,这类系统以 Microsoft 的 MTS 以及新的 COM+ 1.0 为代表。从 SQL Server 的角度看,三层解决方案中的客户机程序是放在中间层的。
中间层直接与数据库交互。实际的桌面,或瘦客户机(Thin Client),使用其他机制并通常直接与中间层交互,而不是直接与数据库系统交互。
⑷ sql2000数据库经常置疑怎么处理
修复数据库前,请做好相关备份。最好不要前后台相连,以免造成不必要的数据丢失。我们以名为“kspos”的数据库为例。1.首先把服务管理器先停止,把原来置疑的数据库下的两个文件拷贝出来,
启动服务管理器,在企业管理器中删除该数据库,然后建立一个同名的数
据库。停止服务管理器,把置疑的数据库文件拷贝进去覆盖。2.运行中输入“isqlw”,打开查询分析器。3.输入语句USE
MASTER
GOSP_CONFIGURE
'ALLOW
UPDATES',1
RECONFIGURE
WITH
OVERRIDE
GOUPDATE
SYSDATABASES
SET
STATUS
=-32768
WHERE
NAME='kspos'
Go使数据库处于紧急修复模式4.输入语句:use
kspos
go
dbcc
checkdb
('kspos')
此语句作用在于查询数据库的损坏状况。5.删除原来的日志文件,重新建立新的日志文件。
DBCC
REBUILD_LOG
('kspos','D:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\bw9kyy_01_Log.LDF'
)6.右击kspos数据库\属性\选项\选择单用户。7.修复
dbcc
checkdb
('kspos',REPAIR_ALLOW_DATA_LOSS)
REPAIR_ALLOW_DATA_LOSS
执行由
REPAIR_REBUILD
完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象。这些修复可能会导致一些数据丢失。修复操作可以在用户事务下完成以允许用户回滚所做的更改。如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。修复完成后,备份数据库。
REPAIR_FAST
进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失数据的危险。
REPAIR_REBUILD
执行由
REPAIR_FAST
完成的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不会有丢失数据的危险。
8.关闭单用户模式,在企业管理器中直接右击kspos\属性\选项,把前面的对
勾去掉即可。
然后在查询分析器中执行如下语句:
USE
MASTER
GO
SP_CONFIGURE
'ALLOW
UPDATES',0
RECONFIGURE
WITH
OVERRIDE
GO
到此修复工程完毕。注:一般此修复步骤需要5-8次,只需执行第7步即可。 这个方法绝对好用。
⑸ 登录sqlserver时出现服务器处于单用户模式。目前只有一位管理员能够连接,怎么办啊
楼主,这个问题其实和你安装报的错误是没任何关系的。首先我说下ReportingServices是做什么的。这个也通常被大家简称为SSRS,是微软推出的商务智能报表开发软件,是一种可视化的数据报表开发软件。如果是你这个地方安装报错了,事实上是不关系到你登录数据库引擎的,最多是SSRS用不了。那么在说说你单用户模式的问题。数据库在设定建立之初,管理员可以设定一个模式,即单用户模式还是多用户模式。所谓单用户模式,即数据库当前只能有一个账户登录,多用户模式,即不限制用户个数。此选项设置菜单在数据库的属性菜单-选项-状态-访问限制里面。同样也可以使用SQL语句来更改对应的数据库访问用户模式,SQL为:
USE [master]
GO
ALTER DATABASE [dbname] SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [dbname] SET MULTI_USER
GO
其中MULTI_USER代表的是多用户模式,如果写SINGLE USER即代表单用户模式。若需要从单用户恢复到多用户,使用windows验证登录后,在属性里面修改或者通过SQL修改即可。
⑹ linux单用户模式怎样关闭数据库自启动
修改配置文件或者chkconfig mysql off
⑺ sql2005设置为单用户模式,怎么操作
请参考:http://blog.csdn.net/yubofighting/article/details/6640739
两种方法:
一、sqlservr.exe -m -c
1、 如图所示,关闭sqlserver(实例)服务
2、 运行---->cmd--->cd C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe –m
注:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe -m这个路径按照自己的sql server安装路径自行调整
3、 经过上面两步就设置好的单用户登陆,你既可以使用企业管理器登陆,又可以通过在运行框中执行sqlcmd.exe运行doc下的命令
二、在sql server2005的配置管理工具中设置
1、如图打开配置管理工具,在sql server(实例名称)上右键打开属性,在高级的启动参数前加上-m; 别忘了‘;‘因为参数是通过’;‘来分隔的
2、设置完成后重启sql server 服务即可
⑻ sqlserver2000还原数据库出现单用户模式问题
数据库"置疑"了应该是文件损坏了,例如你把数据库分离后,用记事本打开他会看到很多内乱码,强行改动里容边的那些乱码,保存后附加数据库,由于里边格式乱了,数据库就"置疑"了。你首先要进入“单用户模式”,让你可以重新操作数据库,然后用SELECT 命令可以看出什么表出错了(上帝保佑你只是某个表出错了),如果只是某个表出错,而又只是数据错误,不是结构错误,还可以通过运行带WHERE子句的SQL看看数据是到哪里出错,把,错误点以后的数据都删除掉,那至少数据库还可以用。如果你的数据不是真的都那么要紧的话,用还原功能是最方便可行的办法。当然备份档之后的数据是没有了。
⑼ sql2008数据库单用户模式怎么改回来
1、打开SQL Server Management Studio。如下图所示。