2018年11月26日 星期一

SQL 2014升級SQL 2017

原本以為SQL 2014 商業智慧版要升級SQL 2017企業版時,只消點選安裝下的從版本升級,精靈就會自動一路做到好,做到滿,做到成功升級。

殊不知,在試了3次後,在升級過程中,都會先顯示一個錯誤訊息,像這樣...
Unable to Connect to Analysis Services with name 'MSSQLServerOLAPService', please start the service and try the upgrade process.

 



然後再跑個10分鐘後,顯示大多數的功能都是安裝失敗的,像這樣...


但查看服務,人家可活得好好的,為什麼說不存在咧? you xia le your eye.....


幸好只是測試機,而且是在VM上,可以讓我費時費日的調整可能的原因,然後前後試了3次的升級,失敗了就還原點重來過。

後來找到了一篇文章,看到可疑處,難道是因為SQL BROWSER服務沒開啟的關係嗎?難道是因為使用的服務帳號權限不足嗎?
https://blog.sqlauthority.com/2015/03/10/sql-server-fix-a-connection-cannot-be-made-to-redirector-ensure-that-sql-browser-service-is-running-microsoft-analysisservices-adomdclient/

所以在開啟SQL BROWSER服務更改OLAP服務的登入帳後重啟服務,想說先試看看OLAP的連線是否OK,於是在SSMS上連線Analysis Service,直接打了連線主機的名稱後,
呃......,連線怎麼不通,而且出現了和安裝時一樣的錯誤訊息

 DIME protocol error: The '9' DIME version is not supported. Only version 1 is supported.

嚇得我花容失色..... 因為OLAP 服務正常,相關的網站應用功能也是正常的,怎麼我本機SSMS連線就不行?

果然,是上了年紀的人,我都忘了,原來OLAP SERVER的PORT在當初安裝時,port 2383被改成另外一個port了,所以使用SSMS連線時,需在主機名稱後加上PORT NO。
例如 BITest:1234,像這樣....


而且網站的應用功能,都是採用HTTP OLAP方式連線,難怪一切都正常。


在那一刹那,我突然了解了,這想必是SQL升級的BUG吧。
所以找到 "C:\Program Files\Microsoft SQL Server\MSAS12.MSSQLSERVER\OLAP\Config\msmdsrv.ini"
找到<Port>1234</Port>這行,先把他改回<Port>0</Port>(0代表為預設i的port 2383),然後因為重啟OLAP服務看來還是走1234 port,所以後來我改成重開機。

然後再進行一次升級後,這次就終於成功了。完成升級後再把OLAP 改回<Port>1234</Port>,再重開機一次,確認一切正常。

灑花..........拉炮........轉圈圈............,耶....................。


publish error allowDefinition='MachineToApplication'

一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...