微軟云數(shù)據(jù)庫SQL Azure初體驗
Windows Azure Platform有Windows Azure、SQL Azure、Azure AppFabric三部分。
SQL Azure是云關系數(shù)據(jù)庫。您的數(shù)據(jù):隨時隨地管理。SQL Azure是云中的完全關系數(shù)據(jù)庫。
這節(jié)我們體驗SQL Azure,必備軟件:
Microsoft SQL Server 2008 R2
Windows Azure Platform賬戶
這次體驗有下面幾個步驟,分別是:
初始化SQL Azure
連接到SQL Azure
配置SQL Azure數(shù)據(jù)庫安全
在SQL Azure中創(chuàng)建數(shù)據(jù)庫對象
初始化SQL Azure
首先我們使用賬號登錄SQL Azure門戶,網(wǎng)址為http://sql.azure.com,你可以看到下面頁面。我們點擊項目名稱。
出現(xiàn)使用條款頁面。閱讀后,如果同意接受這些條款,單擊“I accept”(我接受),開始使用實際的SQL Azure數(shù)據(jù)庫。
出現(xiàn)創(chuàng)建服務器頁面。我們首先創(chuàng)建一臺實際的服務器。就服務器種類而言,通常我們熟悉的服務器可能是物理服務器或虛擬服務器,這里,我們創(chuàng)建一個虛擬服務器,即SQL Azure服務器。也就是說它是通過邏輯方式組合到一起的數(shù)據(jù)庫組合,而不是通過物理方式組合起來的。指定管理員用戶名密碼和實際要在哪個SQL Azure數(shù)據(jù)中心創(chuàng)建這臺服務器的數(shù)據(jù)庫組。如果在中國大陸,則可以選擇東亞。我選擇“東亞”的數(shù)據(jù)中心,點擊創(chuàng)建服務器。
當我完成后,出現(xiàn)服務器詳細信息頁面,這個頁面顯示了登錄到這臺服務器的詳細信息和已有的數(shù)據(jù)庫以及防火墻配置。頁面的頂部提供了唯一的ID和“.database.windows.net”的組合是服務器地址。頁面的底部,我們可以看到所有已經(jīng)創(chuàng)建的數(shù)據(jù)庫。現(xiàn)在只有用來存儲其他數(shù)據(jù)庫記錄的默認SQL主數(shù)據(jù)庫,我們還沒有創(chuàng)建任何數(shù)據(jù)庫。接下來我創(chuàng)建的所有數(shù)據(jù)庫都在這個服務器賬戶中。
點擊“Create Database”創(chuàng)建一個數(shù)據(jù)庫,出現(xiàn)下面頁面,這里我將其命名為“lyjDB”,選擇版本類型和數(shù)據(jù)庫大小。這些是由你購買的的選擇決定,Web版本有1G和5G兩個容量,Business版本有10G、20G、30G、40G、50G的大容量。由于這個賬戶沒有限制,我選擇最小的配置體驗下。
創(chuàng)建完之后,我們可以點擊“Connection Strings”連接字符串。SQL Azure為我們提供了兩種數(shù)據(jù)庫連接:
我們單擊底部的“Test Connectivity”(測試連接)按鈕,輸入用戶名和密碼,點擊連接,提示下面錯誤提示框。因為在默認情況下,SQL Azure安全設置不允許任何計算機、服務器或者客戶端連接到SQL Azure。
這時我們點擊“Firewall Settings”(防火墻設置)選項卡。
你會發(fā)現(xiàn)SQL Azure安全設置默認不允許Microsoft服務都無法連接到這個服務器或者數(shù)據(jù)庫,這時我選擇“Allow Microsoft Services access to this service”(允許Microsoft服務訪問這臺服務器)復選框允許連接。這時網(wǎng)站會刷新,并且為我創(chuàng)建一條新的規(guī)則,出現(xiàn)一個特定MicrosoftServices條目,允許Microsoft服務本身進行連接,這樣我們就可以進行連接了。
返回“Databases”(數(shù)據(jù)庫)選項卡,單擊底部的“Test Connectivity”(測試連接)按鈕,輸入用戶名和密碼,然后就可以啟動測試連接,并看到連接成功。
#p#
連接到SQL Azure
1.防火墻設置
打開SQL Server Management Studio R2,用指定的用戶名和密碼進行登錄,連接到這臺服務器。注意必須使用R2版本才能連接到云中的SQL Azure數(shù)據(jù)庫。不過登錄到SQL Azure與登錄內(nèi)部部署SQL數(shù)據(jù)庫方式的登錄名的約定略有不同。除了需要指定用戶名還需要加上“@”符號,然后是服務器名稱的唯一的ID的部分。
單擊“連接”按鈕,我們嘗試進行連接。出現(xiàn)下面對話框提示連接失敗,原因是因為在默認情況下,SQL Azure安全設置不允許任何計算機、服務器或者客戶端連接到SQL Azure。
我們需要配置防火墻,返回門戶,并轉(zhuǎn)到“Firewall Settings”(防火墻設置)選項卡,配置防火墻規(guī)則設置為允許特定連接通過,為我的本地創(chuàng)建一條規(guī)則。這樣,我們就可以在本地通過SQL Server Management Studio R2進行實際連接了。輸入規(guī)則名稱和IP地址或者IP范圍。系統(tǒng)已經(jīng)識別了我正在連接的IP地址。
創(chuàng)建完成之后,在防火墻規(guī)則中出現(xiàn)新增了一條規(guī)則。
2.與SQL Azure交互
切換到SQL Server Management Studio R2嘗試再次連接,這一次一切都設置好了,現(xiàn)在成功實現(xiàn)連接,它連接了實際的SQL Azure實例。請注意,這臺服務器的圖標略有不同。它顯示的是一個小小的藍色數(shù)據(jù)庫符號,表示這是一個Azure連接,而不是一個標準的內(nèi)部部署SQL服務器連接。進入數(shù)據(jù)庫組,你會看到我們剛剛創(chuàng)建的lyjDB數(shù)據(jù)庫。
我現(xiàn)在可以通過SQL Server Management Studio R2和SQL Azure數(shù)據(jù)庫進行交互,方式與使用內(nèi)部部署數(shù)據(jù)庫方式非常像,也就是我在Management Studio R2中的慣用方式。但是,設計體驗略微有些不同,這是因為我們使用的是基于云的數(shù)據(jù)庫。因此,它只具備SQL Server 2008的部分功能,例如,我們無法獲得拖放式設計圖面。大多數(shù)是使用實際的SQL腳本語言來指定表的架構。
在數(shù)據(jù)庫上右擊并執(zhí)行常規(guī)的腳本操作,比如Select命令。執(zhí)行這個命令,并在底部查看顯示的結果,與我們使用內(nèi)部部署數(shù)據(jù)庫非常類似。因此,對于那些標準操作,這與我所習慣的使用和執(zhí)行方式非常類似。
3.連接到master數(shù)據(jù)庫
我們執(zhí)行“SELECT @@version”查詢,查看SQL Azure的版本。可以看到它返回一個信息:SQL Azure由Microsoft SQL Server 2008派生的。
我們使用master數(shù)據(jù)庫查詢sys.databases視圖,我們能夠看到我們的服務器上創(chuàng)建的所有數(shù)據(jù)庫。
4.創(chuàng)建一個新數(shù)據(jù)庫
我們使用Management Studio R2在SQL Azure中創(chuàng)建一個新數(shù)據(jù)庫。這一步非常簡單。在SQL Azure中,我們使用簡單的創(chuàng)建數(shù)據(jù)庫執(zhí)行語句,將立即創(chuàng)建一個新的數(shù)據(jù)庫。
執(zhí)行“CREATE DATABASE yjingleeDB”
再次查詢服務器上數(shù)據(jù)庫,注意我們剛剛創(chuàng)建的yjingleeDB數(shù)據(jù)庫在這個列表中了。
5.連接到新數(shù)據(jù)庫
為了連接到新的數(shù)據(jù)庫,我們必須斷開當前連接并重新打開新連接。因為在SQL Azure中,我們的數(shù)據(jù)庫不一定儲存在相同的物理服務器上面的。
這點與SQL Server有點不同,SQL Server中,我們可以使用USE語句來更改數(shù)據(jù)庫,在SQL Azure中,我們需要重新連接一次以確保重新連接到SQL Azure的物理服務器群集節(jié)點客戶端是正確的。我們關閉查詢標簽,單擊更改連接圖標。
使用相同賬戶登錄,由于我們想要連接到制定數(shù)據(jù)庫,所以需要點擊選項按鈕,指定“yjingleeDB”數(shù)據(jù)庫。
連接成功了,我們調(diào)用DB_NAME()函數(shù)查看當前數(shù)據(jù)庫名稱。
#p#
配置SQL Azure數(shù)據(jù)庫安全
我們將配置yjingleeDB數(shù)據(jù)庫的安全。學習一下如何為一個數(shù)據(jù)庫創(chuàng)建和配置一個新的登錄用戶。
我們使用服務器用戶名和密碼登錄默認SQL Azure數(shù)據(jù)庫,創(chuàng)建一個登錄用戶。
然后我們使用服務器用戶名和密碼重新登錄yjingleeDB數(shù)據(jù)庫。我們?yōu)閥jingleeDB數(shù)據(jù)庫創(chuàng)建一個登錄用戶并把這個用戶增加到db_owner角色中,即對這個數(shù)據(jù)庫擁有操作權限。即依次執(zhí)行下面兩行腳本。
我們就創(chuàng)建好了,使用這個新賬戶登錄yjingleeDB數(shù)據(jù)庫吧。
執(zhí)行一個查詢,驗證當前用戶。
#p#
在SQL Azure中創(chuàng)建數(shù)據(jù)庫對象
1.創(chuàng)建簡單的表
我們創(chuàng)建一個簡單的表,只有一個單一的int類型的列。這里必須注意,SQL Azure里面的表必須要有一個聚集索引。如果沒有的話不能插入任何數(shù)據(jù)。聚集索引的不一定是主鍵列。出于性能的原因,***在其他列上。
然后插入三筆數(shù)據(jù),再執(zhí)行查詢,檢索出這些數(shù)據(jù)。
2.創(chuàng)建復雜的表和索引
我這次依次創(chuàng)建一個Customer表,然后增加一個索引,***插入一筆數(shù)據(jù)并查詢出來。
3.檢查查詢計劃
我們看看從Customer表中查詢數(shù)據(jù)來體驗一下SQL Azure的查詢計劃。我們先執(zhí)行一些T-SQL插入10000行數(shù)據(jù)比較差異。
1行數(shù)據(jù)的查詢計劃:
10000行數(shù)據(jù)的查詢計劃
調(diào)用“Ctrl+L”可視化:
原文鏈接:http://www.cnblogs.com/lyj/archive/2010/11/16/hello-sql-azure.html
【編輯推薦】