我尝试对SQL Server 2008服务器运行SQL Server Upgrade Advisor 2014。
连接到2008服务器时,一切看起来都很好,我可以选择要分析的数据库。
但是一旦启动,它将永远运行,无需进行任何操作(停留在分析规则步骤:0/112)。
发生了什么事,我该如何解决?
SQL Server 2008和2014均为Express版本,均安装在我的笔记本电脑上。不幸的是,这是我发现运行升级顾问的唯一方法(存在太多限制,无法在实际的pro / dev数据库上运行它)。
在SQL 2008实例是SP3的需要。
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
当Advisor冻结时,我们可以看到4个休眠查询(没有活动查询):
SELECT name,
cmptlevel
FROM
(SELECT name,
dbid,
cmptlevel,
DATABASEPROPERTYEX(name, N'UserAccess') AS 'UserAccess',
DATABASEPROPERTYEX(name, N'Status') AS 'Status',
DATABASEPROPERTYEX(name, N'IsInStandBy') AS 'IsInStandBy'
FROM master.dbo.sysdatabases) t
WHERE LOWER(name) NOT IN ('tempdb',
'master',
'model',
'msdb')
AND HAS_DBACCESS(name) = 1
AND dbid NOT IN (32767)
AND UserAccess != 'SINGLE_USER'
AND Status = 'ONLINE'
AND IsInStandBy = 0
ORDER BY name;
和
(@dbname nvarchar(256))
SELECT COUNT(*)
FROM master.dbo.sysdatabases
WHERE name=@dbname
和
SELECT 'Edition'=SUBSTRING(@@VERSION,PATINDEX(N'%Corporation%',@@VERSION)+DATALENGTH('Corporation')+2,PATINDEX(N'% on %',@@VERSION)-(PATINDEX(N'%Corporation%',@@VERSION)+DATALENGTH('Corporation')+2))
和
SELECT N'Job.Step',
j.name + N'.' + js.step_name
FROM msdb.dbo.syssubsystems ss
JOIN msdb.dbo.sysjobsteps js ON ss.subsystem = js.subsystem
JOIN msdb.dbo.sysjobs j ON js.job_id = j.job_id
WHERE ss.description_id=14555
UNION
SELECT N'Proxy',
p.name
FROM msdb.dbo.sysproxysubsystem ps
JOIN msdb.dbo.sysproxies p ON ps.proxy_id = p.proxy_id
JOIN msdb.dbo.syssubsystems ss ON ss.subsystem_id = ps.subsystem_id
WHERE ss.description_id=14555
当然,当我们手动启动它们时,它们会起作用。
当我在服务器上启动SQL跟踪时,没有任何可疑...