解决SQL Server Configuration Manager中SQL Server(MSSQLSERVER)无法启动问题

SQL server(MSSQLSERVER)服务启动不了

问题描述

​ 因为要用到数据库,昨天打开 Microsoft SQL Server Management Studio,发现登录不上数据库,

后面发现 Sql Server Configuration Manager 中的SQL Server服务中的SQL Server (MSSQLSERVER)已停止,没有启动,然后点击启动的时候发现启动不了。

解决办法:

1、查看事件查看器
image-20230817115422936

​ 图1-1

发现报的错误是以一种访问权限不允许的方式做了一个访问套接字的尝试,如上图1-1所示

2、查看数据库日志

进入C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Log文件夹中找到ERRORLOG文件,用文本编辑器打开
image-20230817121134146

​ 图2-1

如图2-1所示,发现Server TCP provider failed to listen on [ 'any' <ipv6> 1433]. Tcp port is already in use. 错误。

原因是端口被占用;

3、在CMD终端查看
netsh int ipv4 show excludedportrange protocol=tcp

cmd中输入以上指令,查看协议tcp 端口排除范围,可以查看当前所有已经被征用了的端口

netsh int ipv4 show dynamicport tcp

查看协议tcp动态端口范围,这只是一个「待选择」范围,并不代表其中的所有端口都会被保留

如果以上的开始至结束的范围包含数据库1433端口,就需要进行动态修改

4、在CMD终端中修改
net int ipv4 set dynamic tcp start=49152 num=16384
net int ipv6 set dynamic tcp start=49152 num=16384

然后会提示确定,重启电脑

再次查看如下图4-1所示

image-20230817134403393

​ 图4-1

进行以上操作后,然后再次打开Sql Server Configuration Manager 中的SQL Server服务中的SQL Server (MSSQLSERVER)就可以正常启动了。

原因分析:

由于Windows 11中其它软件需要用到 Hyper-V,端口被随机保留(占用),导致数据库服务不能正常开启。而且随机保留后,哪怕将Hyper-V功能在控制面板\程序\程序和功能\启用或关闭Windows功能中关闭后,依然不能解决问题,对此另一台正常的电脑同样安装了此功能却没有出现此类问题,导致走了不少弯路。

冷知识:

1、Windows 中有一个「TCP 动态端口范围」,处在这个范围内的端口,有时候会被一些服务占用。在 Windows Vista(或 Windows Server 2008)之前,动态端口范围是 1025 到 5000;在 Windows Vista(或 Windows Server 2008)之后,新的默认起始端口为 49152,新的默认结束端口为 65535。

2、如果安装了 Hyper-V,那么 Hyper-V 会为容器宿主网络服务(Windows Container Host Networking Service)随机保留一些端口号使用。

弯路所用的CMD查看命令:
netstat -ano

查看端口被什么程序占用,此命令不显示被系统保留不让用的端口

被系统保留不让用的端口,如果使用,也会提示被占用

netstat -nao | findstr "1433"

可以查看占用的端口的进程号
端口

被系统保留不让用的端口,如果使用,也会提示被占用

netstat -nao | findstr "1433"

可以查看占用的端口的进程号

参考文档:

解决 Windows 10 端口被 Hyper-V 随机保留(占用)的问题

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLSERVER2008的系统数据库迁移 意义: 就是从C盘移动其他分区 从这个硬盘移动其他硬盘,数据库还能启动 为一般数据库的迁移做准备 系统数据库迁移主要迁移以下数据库 第一类:tempdb,model和msdb 第二类:master,mssqlsystemresource 具体的迁移步骤: 一、对于master数据库 默认SQL Server安装完成后,SQL Server的4个系统数据库(Master,Model,MSDB和TempDB)都会被自动安放在安装路径 下,也就是系统盘的Program Files文件夹下。所带来的问题就是绝大多数数据库服务器为了同时照顾到性能,成本和 高可用性这三个方面,都会将系统安装在一个Raid1阵列上,通常这个Raid1阵列还不一 定会用上15K的SAS,有的只是用10K的SAS,更有甚者,为了成本,装2个7.2K的SATA也就 完事了。再加上Raid1阵列本身就是一种读取性能非常强,但是写入性能相当差的阵列形 式,所以,对于系统数据库,尤其是对TempDB数据库来说,是非常不利的,也肯定会对 整个SQLServer的性能造成影响。所以将系统数据库迁移到性能更加高的阵列上,是一个 解决硬件性能瓶颈的基础解决方案。 下面就像大家介绍一下如何将系统数据库迁移到其他分区上(以Microsoft SQL Server 2008 R2为例): 1. 首先迁移master数据库,master数据库是整个SQL Server实例的核心,所有的设置都存放在master数据库里,如果master数据库出现问 题,整个实例都将瘫痪。首先打开SQL Server Configuration Manager,在左边的列表框SQL Server Services节点,然后在右边的列表框找到需要迁移系统数据库的实例的那个SQL Server服务,比如说SQLServer(MSSQLSERVER),停止这个实例的服务(不会停的去 菜场买块豆腐撞死算了),然后右键单击,选最底下的"Properties",并且切换到 "Advanced"标签,如下图所示: 2. 看到"Startup Parameters"了吧,这里的参数就是需要我们更改的。如下图所示: 把这段字符整理一下就是这样: -dC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf; -eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG; -lC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf 基本上看出来了吧,"-d"后面的就是master数据库数据文件的位置,"-e"是该SQL Server实例的错误日志所在的位置,至于"- l"就是master数据库日志文件所在的位置了。修改数据文件和日志文件的路径到适当 为位置,错误日志的位置一般不需要做变更,例如将数据文件存放到D盘的SQLData文 件夹下,日志文件存放到E盘的SQLLog文件夹下,则参数如下: -dD:\SQLData\master.mdf;-eC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lE:\SQLLog\mastlog.ldf 点击"OK"保存并关闭对话框。 3. 然后需要做的是将master数据库的数据文件和日志文件剪切到刚刚"Startup Parameters"定义的路径,接着就可以启动该实例SQL Server服务了。 注意,此时可能仍然会有出现SQL Server服务无法启动的情况,确保刚刚配置准确无误,然后就是NTFS权限的事情了, 如果你不是用Local System来启动SQL Server服务,那么更改完存放路径后,你需要给新的盘符或文件夹相应的权限,这样 服务才能启动,建议直接给相应账号"Full Control"的权限,至于为什么嘛,那是经验,原因得要问Microsoft了。 好了,到这里,master数据库就算迁移完成了。 对于empdb,model和msdb 1、修改文件 路径 1、修改文件 路径 --Move tempdb ALTER DATABASE tempdb MODIFY FILE(NAME='tempdev',FILENAME='D:\Database\tempdb.mdf'); ALTER DATABASE tempdb
回答: 如果SQL Server无法启动,可能有几个原因。首先,您可以检查是否启用了“VIA”服务。您可以打开Microsoft SQL Server 2005配置工具下的SQL Server Configuration Manager,然后在MSSQLSERVER服务属性禁用“VIA”服务。这可能会解决启动问题。\[1\] 如果您使用的是SQL Server 评估版,在180天的试用期后,MSSQLSERVER服务可能无法启动。您可以尝试使用密钥进行升级。您可以进入SQL Server配置工具的安装心,选择版本升级,然后输入相应的产品密钥进行升级。一旦升级成功,您应该能够启动MSSQLSERVER服务。如果启动SQL Server管理器仍然报告过期错误,您可以尝试修改注册表的配置状态,然后重复升级步骤。\[2\] 另外,您还可以检查SQL Server的TCP/IP配置。您可以打开Microsoft SQL Server 2005配置工具下的SQL Server Configuration Manager,选择MSSQLSERVER协议,然后双击右边窗口的TCP/IP,在弹出窗口检查IP配置。确保配置正确。\[3\] 希望这些解决方法能够帮助您启动SQL Server服务。如果问题仍然存在,请提供更多详细信息以便我们进一步帮助您解决问题。 #### 引用[.reference_title] - *1* *2* *3* [SQL Server(MSSQLSERVER)无法启动怎么解决?](https://blog.csdn.net/diyiday/article/details/80236566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tang_0427

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值