适用于SQL Server 2005的具体相关方法sql server 还原网站数据库时提示网站数据库正在使用,无法进行操作办法的解
这个问题的原因在于有用户连接了当前要做还原的网站数据库,这里的用户甚至包括当前要做还原的用户。解决办法就是关闭与要还原网站数据库的所有连接。,①先切换网站数据库到master网站数据库。执行数据库语句 select * from master..sysprocesses where dbid=db_id( '网站数据库名称') ②然后逐步运行数据库语句 exec ,问题就解决了。哈哈,今天在还原网站数据库的时候,提示"因为网站数据库正在使用,所以无法获得对网站数据库的独占访问权",无论我是重启网站数据库,还是重启计算机,都不能解决问题,多番尝试后,终于解决了该问题。现将引发该问题的原因与解决方案写,引发原因:是因为我在还原网站数据库的时候,还有其他的用户正在使用网站数据库,所以就会出现以上提示。,解决具体相关方法:,1,设置网站数据库在单用户模式下工作。 设置具体相关方法:在需要还原的网站数据库上右击,在右键菜单开始执行命令上选择"属性"- >"选项"- >"状态"- >"限制访问"- >"Single"。这是SQLSERVER2005,复制具体相关代码 具体相关代码如下:,declare @dbname varchar(50) set @dbname='网站数据库名称' declare @sql varchar(50) declare cs_result cursor lo,该SQL数据库语句利用游标循环所有正在使用该网站数据库的进程,并通过kill开始执行命令杀死进程。,3,利用SQL数据库语句,断开所有用户链接,并回滚所有事务,具体SQL数据库语句如下:,复制具体相关代码 具体相关代码如下:,ALTER DATABASE [网站数据库名称] SET OFFLINE WITh ROLLBACK IMMEDIATE,注意:在使用具体相关方法2与3时,不要在需要的还原的网站数据库下执行,建议在master网站数据库下面执行。
---------------------------------------------
复制具体相关代码 具体相关代码如下:
USE DNName
GO
1,清理日志
复制具体相关代码 具体相关代码如下:
Backup Log DNName WITh no_log
GO
2,截断事务日志
复制具体相关代码 具体相关代码如下:
DUMP TRANSACTION DNName WITh no_log
GO
3,收缩
两种相关方式:
1):压缩网站数据库
DBCC ShRINKDATABASE(库名)
GO
2):指定数据网站网站文件,可以通过这个数据库语句查询到:select * from sysfiles
此相关方式也可以通过操作办法:右键您要压缩的网站数据库--所有任务--收缩网站数据库--收缩网站网站文件,分别选择数据和日志的网站网站文件要压缩的大小来执行
DBCC ShRINKFILE (网站网站文件名)
GO
4.为了最大化的缩小日志网站网站文件(假如如果是sql 7.0,这步只能在查询分析器中进行)
下面的示例分离 pubs,然后将 pubs 中的一个网站网站文件附加到当前 站点服务器。
a.分离
EXEC sp_detach_db @dbname='库名'
b.删除日志LOG网站网站文件
c.再附加
复制具体相关代码 具体相关代码如下:
EXEC sp_attach_single_file_db @dbname='库名',
@physname='c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--站点服务器--右键网站数据库--属性--选项--选择"自动收缩"
--SQL数据库语句设置相关方式:
复制具体相关代码 具体相关代码如下:
EXEC sp_dboption '库名', 'autoshrink', 'TRUE'
6.假如如果想以后不让它日志增长得太大
企业管理器--站点服务器--右键网站数据库--属性--事务日志
--将网站网站文件增长限制为xM(x是您允许的最大数据网站网站文件大小)
--SQL数据库语句的设置相关方式:
alterdatabase 库名 modify file(name=逻辑网站网站文件名,maxsize=20)
------分--隔-----
适用于SQL Server 2008的具体相关方法
[code]
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITh NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
USE DNName
GO
DBCC ShRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITh NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
[code]