亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣遷移 SQL Server 數據庫到 Azure SQL

發布時間:2021-12-30 10:15:06 來源:億速云 閱讀:107 作者:柒染 欄目:云計算

本篇文章為大家展示了怎樣遷移 SQL Server 數據庫到 Azure SQL,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Azure SQL 的版本

Azure SQL Database 是微軟提供的 SQL 服務(PaaS)。最新的版本叫 Azure SQL Database V12,其實微軟還是通過 SQL Server 2014 來提供數據庫服務:

 怎樣遷移 SQL Server 數據庫到 Azure SQL

上圖中第一個數據庫服務器是本地安裝的 SQL Server 2014,第二個和第三個則是云上的 Azure SQL Database。我們可以很清楚的看到,它們的版本是一樣的。

但是可不要以為 Azure SQL Database 提供的數據庫和本地安裝版本是一樣的噢。它們還是有不少差別的,這一點在遷移現有數據庫時尤為重要。

由于提供的是在線的服務,所以 Azure SQL Database 可以快速的發布新特性,這些從不斷更新的 MSDN 文檔可見一斑。MS也強烈建議我們在和 Azure SQL Database 打交道時一定要用最新版的工具。筆者在剛開始使用了 SQL Server 2014 中的 SSMS (SQL Server Management Studio) ,結果連接 Azure SQL 后發現顯示的信息和 Azure portal 對不上,安裝最新版的 SSMS 后問題消失。

下面進入正題,看看遷移的過程中都需要什么樣的工具,如何操作以及需要注意的事項。在此特別強調,舊數據庫一般都是處于正在使用的狀態,所以千萬不要在真實的庫上做各種實驗。筆者所有的前期實驗都是在通過恢復備份文件創建的測試庫上完成的。

遷移要點分析

在云端創建 Azure SQL Server

Azure SQL Database 是運行在 Azure SQL Server 中的,所以我們要在 Azure 上先把 Azure SQL Server 創建好。操作過程比較簡單,直接在 Azure 上添加 SQL Server (logical server) 就可以了,請注意選擇合適的區域(這會影響訪問速度)。

允許從本地訪問 Azure SQL Server

Azure SQL Server 創建好以后,我們通過 SSMS 測試一下連接情況。當我們輸入了正確的地址和用戶信息后卻彈出了一個提示框:

 怎樣遷移 SQL Server 數據庫到 Azure SQL

它提示我們,當前的IP不能訪問 Azure 上的數據庫服務器,并且讓我以 Azure 賬號登錄并創建一條防火墻規則。

其實這是 Azure 提供的一個安全措施,它讓你顯式的指定哪些IP地址或者IP網段可以訪問 Azure SQL Server。

此時我們有兩種解決方法:

1.點擊對話框中的 ”Sign in”,用 Azure 賬戶登錄;然后點擊 ”OK”,此時已經完成了防火墻規則的設置,SSMS 已登錄 Azure SQL Server。這種方法一般用于開發和測試,只能添加當前客戶端所使用的IP。

2.更加通用的方法是登錄 Azure portal,進入 Azure SQL Server 的配置界面,為防火墻添加規則。同樣的,可以添加單個IP也可以一次添加一個網段:

 怎樣遷移 SQL Server 數據庫到 Azure SQL

兼容性處理

由于 MS SQL Server 版本眾多,且云上的版本與本地版本也有差異,所以能不能遷移成功,主要看能不能找到并解決數據庫之間的兼容性問題。

下面將詳細的介紹筆者碰到的兼容性問題。

兼容性處理詳情
數據庫中設置的用戶不存在

兼容性檢查的報告顯示下面的信息:

Error SQL71564: Error validating element [xxxx]: The element [xxxx] has been orphaned from its login and cannot be deployed.

其中的xxxx是數據庫中設置的用戶名。

這個錯誤的原因是用戶被定義在本地的 SQL Server 中,數據庫中一旦使用用戶的信息,把數據庫遷移到云上后,就找不到對應用戶的定義了,所以就需要移除本地用戶的信息。

不用擔心數據庫的訪問問題,因為完成遷移后,你可以使用剛才創建的 Azure SQL Server 賬號訪問數據庫。當然你也可以為一個數據庫創建獨立的訪問賬號,具體操作請參考 MSDN。

不支持Extended Property

兼容性檢查的報告顯示下面的信息:

One or more unsupported elements were found in the schema used as part of a data package.

Error SQL71564: The element Extended Property: [dbo].[xxxx].[MS_Description] is not supported when used as part of a data package (.bacpac file).

其中的xxxx是數據庫中一張表的名稱。

這下可麻煩了,不支持 Extended Property!在筆者的數據庫中有好幾處都用到了這個特性。怎么辦?只好一遍又一遍的查看程序。最后發現程序中沒有使用這個特性,好像當時只是有人用它做了一些說明。還好,最終的結論是可以移除的。

創建 clustered index

兼容性檢查的報告顯示下面的信息:

One or more unsupported elements were found in the schema used as part of a data package.

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

其中的xxxx是數據庫中一張表的名稱。

需要給表創建 clustered index,這可不是一件小事情,因為任何對表的修改都可能會影響到程序邏輯,怎么辦呢?網上的朋友們早就有了比較靠譜的解決方案,就是給表添加一列用來做 clustered index,這樣原來表中的列就沒有發生變化:

ALTER TABLE [xxxx] ADD

RowId int NOT NULL IDENTITY (1, 1) PRIMARY KEY CLUSTERED

GO

其他

還有一些點,主要是和業務相關的,就不在此贅述。個人感覺絕大多數的問題在網上都有不同的解決方案,關鍵是要采用自己的業務能夠接受的方式去解決問題。

接下來把所有對數據庫的變更寫成一個腳本文件,在正式的遷移中,直接在正式庫上執行腳本文件。

遷移過程

MS提供了不同的工具進行兼容性檢查、遷移等工作。我們這里統統使用 SSMS (SQL Server Management Studio) 。

下面看看具體的操作步驟。

在 SSMS 中右鍵需要遷移的數據庫,選擇 Tasks 中的 ”Deploy Database to Microsoft Azure SQL Database…”。

 怎樣遷移 SQL Server 數據庫到 Azure SQL

在打開的向導中點擊 “next” 進入 “Deployment Settings” 界面。

首先需要設置Azure SQL Server的連接地址和連接賬號:

 怎樣遷移 SQL Server 數據庫到 Azure SQL

接下來設置遷移后的數據庫名稱和資源配置:

 怎樣遷移 SQL Server 數據庫到 Azure SQL

注意 Azure SQL Database settings,MS把數據庫使用的資源劃分成了三個不同的類別:Basic, Standard, Premium。每個類別中又劃分了不同的收費標準,簡單說就是你要使用更多更好的資源就要付更多的錢。當然也可以反過來說,如果我用的資源不多,付一點點錢就夠了!

我們發現上圖中的最后一行要求我們為 *.bacpac 文件指定一個存儲路徑。*.bacpac 文件是遷移過程中生成的中間文件,當兼容性檢查通過后,就把數據庫中的所有內容都導出到這個文件中。從這個信息我們可以得知,無論采用何種遷移方式,其核心操作都是兩步:先從本地數據庫生成 *.bacpac 文件,再從*.bacpac 文件恢復一個 Azure SQL Database。

單擊 “Next” 顯示配置的詳情,再下一步就開始兼容性檢查。如果沒有兼容性問題,就執行遷移操作。

我的數據庫存在一些兼容性問題,所以顯示了錯誤報告并終止了遷移操作:

 怎樣遷移 SQL Server 數據庫到 Azure SQL

點擊 “Result” 列中的鏈接就能看到詳細的報告,前面已經介紹過兼容性問題,直接執行我們處理兼容性問題的腳本文件,然后再試一次!

 怎樣遷移 SQL Server 數據庫到 Azure SQL

這次的執行已經沒有錯誤提示了,其實后臺已經開始了遷移過程。比較不方便的是這個過程沒有詳細的進度提示,只能耐心等待。我的經驗數據是8G的庫完成遷移大概是8-12小時。當然這和你連接 Azure 的帶寬有很大的關系…

上述內容就是怎樣遷移 SQL Server 數據庫到 Azure SQL,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上林县| 卓尼县| 肃宁县| 康平县| 宁阳县| 靖西县| 新龙县| 嘉善县| 红河县| 金寨县| 峨眉山市| 永昌县| 从化市| 石景山区| 阿鲁科尔沁旗| 龙里县| 阿坝县| 白银市| 永济市| 水城县| 华坪县| 台山市| 永州市| 夏邑县| 黑山县| 深州市| 吉木萨尔县| 德惠市| 玉龙| 上蔡县| 法库县| 林芝县| 宁化县| 天津市| 丹巴县| 漳平市| 大竹县| 苏尼特右旗| 昌都县| 五原县| 杭锦旗|