sqlserver 2016 系统数据库msdb状态恢复挂起,导致数据库无法使用,服务重启过还是不行,这个要怎么办?

sqlserver 2016 系统数据库msdb状态恢复挂起,导致数据库无法使用,服务重启过还是不行,这个要怎么办?,第1张

如果您的SQL Server 2016的msdb数据库恢复状态挂起,您可以尝试以下解决方案:

用命令行或SQL Server Management Studio终止挂起的恢复:

ALTER DATABASE msdb SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE msdb SET MULTI_USER

2. 尝试从备份恢复msdb数据库:

RESTORE DATABASE msdb

FROM DISK = '<backup_file_path>'

WITH REPLACE

3. 如果以上方法都不起作用,您可以考虑重建msdb数据库:

4. 停止SQL Server服务

5. 删除msdb数据库和其相关文件(包括LDF和MDF文件)

6. 启动SQL Server服务,msdb数据库将自动重建。

请注意,在进行任何 *** 作之前,请确保您已经备份了所有重要数据!!!!

释放磁盘空间并且重新运行恢复 *** 作,按照下面的步骤收缩日志

sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。

为从根本上解决这样的问题,你可以按下面的 *** 作配置SQLSERVER 2000:

a.如果不需要恢复到指定的时间点,你可以将数据库的恢复模式配置为简单,这样

UPDATE,DELETE,SELECT就不会记录日志,日志就不会增加的很大:

USE MASTER

GO

ALTER DATABASE DB_NAME SET RECOVERY SIMPLE

b.如果你的恢复模式是全部,你一定要配置日志字段收缩:

USE MASTER

GO

sp_dboption 'databasename','trunc. log on chkpt.',true

sp_dboption 'databasename','autoshrink',true

c.通过每日备份将日志收缩:

BACKUP DATABASE DATABASE_NAME TO BACKUP_DEVICES

BACKUP LOG DATABASE_NAME TO LOG_DEVICES

OR

BACKUP LOG DATABASE_NAME with truncate_only

**检查日志的容量:DBCC SQLPERF (LOGSPACE) 这时日志并没有收缩!

d.每天在备份数据库完成之后,重新启动MS SQLSERVER SERVICE.

USE DATABASE_NAME

go

DBCC SHRINKFILE(2,truncateonly)

**检查日志的容量:DBCC SQLPERF (LOGSPACE) 这时日志已经收缩!

e.手动快速收缩日志:

/ *run below script,you will shrink you database log files

immediately, in my experience,you need to run the script for 3 or

4 minutes before stopping it manually */

use databasename

dbcc shrinkfile(2,notruncate)

dbcc shrinkfile(2,truncateonly)

create table t1(char1 char(4000))

go

declare @i int

select @i=0

while(1=1)

begin

while(@i<100)

begin

INSERT INTO T1 VALUES ('A')

SELECT @I=@I+1

END

TRUNCATE table T1

BACKUP LOG youdatabasename with truncate_only

end

GO

注意 只有在您的主要支持提供者指导下或有疑难解答建议的做法时,才可以使用

sp_resetstatus。否则,可能会损坏数据库。

由于该过程修改了系统表,系统管理员必须在运行 sp_resetstatus这个过程前,启用系统表更新。要

启 用更新,使用下面的过程:

USE master

GO

sp_configure 'allow updates', 1

GO

RECONFIGURE WITH OVERRIDE

GO

过程创建后,立即禁用系统表更新:

sp_configure 'allow updates', 0

GO

RECONFIGURE WITH OVERRIDE

GO

只有系统管理员才能执行 sp_resetstatus。执行该过程后,立即关闭 SQL Server。

应该是你的SQL Server 2005 没有启用远程连接造成的,请参考以下方法启用远程连接

一、为 SQL Server 2005 启用远程连接

1. 单击"开始",依次选择"程序"、"Microsoft SQL Server 2005"、"配置工具",然后单击"SQL Server 外围应用配置器"。

2. 在"SQL Server 外围应用配置器"页上,单击"服务和连接的外围应用配置器"。

3. 在"服务和连接的外围应用配置器"页上,展开"Database Engine"(数据库引擎),

单击"远程连接,选择"本地连接和远程连接"复选框,选择适用于您的环境的相应协议(我这里使用TCP/IP),然后单击"应用"。

注意:请在接收到以下消息时单击“确定”。

直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。

二、启用 SQL Server Browser 服务

1. 单击"开始",依次选择"程序"、"Microsoft SQL Server 2005"、"配置工具",然后单击"SQL Server 外围应用配置器"。

2. 在"SQL Server 外围应用配置器"页上,单击“服务和连接的外围应用配置器”。

3. 在"服务和连接的外围应用配置器"页上,单击"SQL Server Browser",在"启动类型"中单击"自动"选项,然后单击"应用"。

4. 单击"启动",然后单击"确定"。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9985924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存