web-dev-qa-db-ja.com

SQLServer Upgrade Advisor 2014がハングする

SQL Server 2008サーバーに対してSQL Server Upgrade Advisor 2014を実行しようとしています。

2008サーバーに接続するとすべてが正常に見え、分析するデータベースを選択できます。

enter image description here

ただし、起動すると、何もせずに永久に実行されます(ステップ分析ルール:0/112のままです)。

enter image description here

何が起こっているのですか、どうすれば修正できますか?

SQL Server 2008と2014はどちらもExpressバージョンであり、私のラップトップにインストールされています。残念ながら、これはアップグレードアドバイザーを実行するために私が見つけた唯一の方法です(実際のprod/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: ) 

アドバイザがフリーズすると、4sleepingクエリが表示されます(アクティブなクエリはありません)。

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トレースを起動しても、何も疑わしいことはありません...

11
irimias

SQL Server 2014アップグレードアドバイザーに問題があることを知っている限り、移行のワークロードを分析するとハングすることがあります。できることは、SQL Server 2016アップグレードアドバイザーをダウンロードすることです。これは、現在 Data Migration Assistant V 3.1 と呼ばれています。 Microsoftによると、アップグレードアドバイザー2016は非推奨になり、データ移行アシスタントに置き換えられています。

私はよくわかりませんが、MSの人々はこれについて知っていたと思います。そのため、より優れたツールのデータ移行アシスタントに移行しました。

これは、SQL Serverのインストールメディアには組み込まれていません。個別にダウンロードしてください。

4
Shanky