文章出處

如果數據庫用的是SQL Server,那SQL Azure無疑是最吸引人的地方之一。在測試了虛擬機磁盤IO之后,我們迫不急待地進行了SQL Azure的測試。

(一)

首先進入manage.windowsazure.cn -> SQL DATABASES,創建一個數據庫(如下圖)。

輸入數據庫名稱,選擇BUSINESS版本,選擇數據庫空間大小,最后還要選擇一下“New SQL  database server”(明明是第1次創建數據庫,默認卻顯示Choose a server,讓用戶多了2次鼠標操作,這個地方需要改進)。

然后設置數據庫用戶帳戶(SQL Server Management Studio遠程連接時用的就是這個帳戶),見下圖:

數據庫創建后成功后會顯示如下圖的信息,注意最后一列顯示的服務器名稱是隨機字母序列,很不友好、很難區分(建議讓用戶可以指定服務器名稱)。

然后點擊數據庫名稱,進入DASHBOARD,點擊右側的Show connection strings,從連接字符串中得到服務器連接地址。

(二)

將SQL Server 2008數據庫壓縮備份文件上傳至Azure虛擬機,在虛擬機中安裝SQL Server 2012并恢復數據庫備份文件。

在Management Studio中右鍵選擇要遷移至SQL Azure的數據庫,然后選擇Tasks,就會看到Deploy Database to SQL Azure(見下圖,SQL Server 2012的Management Studio才有這個功能)。當時想強大啊、方便啊,Management Studio直接內置SQL Azure的遷移功能,遷移過程會不會如“輕舟已過萬重山”般輕松?

接著摁一下Deploy Database to SQL Azure,進入遷移界面點擊Next,進入Deployment Settings界面,點擊Connect,用之前創建的帳戶與得到的服務器地址連接SQL Azure,然后選擇Edition of SQL Azure與Maximum database size,得到如下的界面:

然后點擊Next -> Finish,就開始Exporting database...

在美好的憧憬與期待中,心想不會這么輕松吧?。。。果然,沒這么輕松,等來的是錯誤界面:

點開Validating schema model一看,暈掉了,一大堆錯誤。

統計了一下,一共有750個錯誤。大多數錯誤是這樣的:

Procedure: [存儲過程] has an unresolved reference to object [另一個數據庫].[dbo].[表]

所有涉及跨數據庫訪問的存儲過程全部出錯。

既然是存儲過程引起的,那我們把所有存儲過程干掉,再遷移試試。

還是出錯,但錯誤少多了,只剩下13個錯誤,錯誤出在兩個地方:1,數據庫中已有的用戶帳戶;2,視圖中的跨數據庫訪問。

于是,繼續干掉用戶帳戶與所有視圖,繼續進行遷移,心想這下應該成功了。

結果讓人大失所望,出現了74個錯誤!

讓我們來具體看看這74個錯誤與哪些因素有關:

1. The element Extended Property: [dbo].[表名].[字段名].[MS_Description] is not supported when used as part of a data package (bacpac).

給字段添加了Description定義。

2. Element Index: [dbo].[表名].[索引名稱] has an unsupported property FillFactor set and is not supported when used as part of a data package.

索引\主鍵\約束中定義了FillFactor。

3. Table Table: [dbo].[表名] does not have a clustered index.  Clustered indexes are required for inserting data in this version of SQL Server.

數據庫表沒有定義聚集索引。

4. Element Primary Key: [dbo].[表名] has an unsupported property DataCompressionOptions set and is not supported when used as part of a data package.

表啟用了Data Compression。

難道還要干掉所有的索引(除了聚集索引),所有的Data Compression,所有的Description,才可以遷入SQL Azure!

(三)

試用感言

這讓人想到了一部電影《絕代艷后》,瑪麗·安托瓦內特在嫁入法國從奧地利進入法國邊境時,除了自己的身體,什么都不能帶入法國,包括衣服、心愛的寵物。難道從SQL Server遷移到SQL Azure也要這么干凈嗎?但這不是從奧地利到法國,這是從微軟的一個“坑”到微軟的另一個“坑”。

不考慮自家產品的兼容性,真是讓人大失所望的糟糕設計。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()