SQL Server Virtual Labs 系列 - SQL Server 2012 What's new in Manageability (SQL 147)

本文將透過【SQL Server 2012 What' s new in Manageability】Virtual Lab 來介紹 SQL Server 2012 管理上的新功能。

SQL Server 2012 提供許多新功能來幫助 DBA 可以更有效率的管理組織內的 SQL Server,本文將透過【SQL Server 2012 – What’s new in Manageability (SQL 147)】Virtual Lab 來跟大家分享有哪些好用的資料庫管理功能。

Exercise 1

當您需要管理多台 SQL Server 伺服器,可以透過 SQL Server Management Studio(以下簡稱 SSMS)來幫助您簡化您的作業;另外在還原資料庫時,新的 TimeLine 視窗可讓 DBA 可以很清楚看到資料庫備份的資訊,也可讓 DBA 透過 GUI 的方式來還原到特定時間點;以及新版的 SSMS 2012 有哪些可以讓您在撰寫資料庫程式時更好用更有效率。

Task 1

註冊 SQL Server 伺服器。

  • 首先您可以從【Start > All Programs > Microsoft SQL Server 2012 > SQL Server Management Studio】來開啟 SSMS。

    螢幕截圖00022
  • 接著在【Connect to Server】視窗中選擇或輸入 Server name 為【SQLONE】,然後按【Connect】。

    螢幕截圖00023
  • 若您想在管理 SQLTHREE,您可以在 SSMS 的【Object Explorer > Connect > Database Engine】進行連接至 SQLTHREE 執行個體。

    螢幕截圖00024
  • 在【Connect to Server】視窗中選擇或輸入 Server name 為【SQLTHREE】,然後按【Connect】。

    螢幕截圖00025
  • 完成後您就可以在 Object Explorer 中看到如下圖的兩台 SQL Server 伺服器的執行個體,後續您可以針對這兩台伺服器進行各項的開發與維護工作。

    螢幕截圖00026

 


Task 2

利用備份檔案來還原資料庫。

  • 接續 Task 1 所註冊好的 SQL Server 伺服器,由【SQLONE > Databases > Restore Database】開啟資料庫還原精靈。

    螢幕截圖00027
  • 由於本次練習是要從資料庫備份檔案來還原資料庫,因此請於【Restore Database】視窗中點選【Device > … > Add】來選擇要還原的資料庫備份檔。

    螢幕截圖00028
  • 備份檔案路徑為【C:\LabFiles\Setup\Databases\Backup\Adventureworks2012.bak】,選擇完畢後按 OK 。

    螢幕截圖00029
  • 於【Select backup devices】視窗中您將看到上個步驟所選擇的檔案,接著按 OK 。

    螢幕截圖00030
  • 您可以在【Restore Database】視窗中點選【Timeline】來查看備份檔的相關資訊,像是完整備份、差異備份、交易記錄備份及截尾記錄備份等,都會清楚的標示出來。若您要還原到特定時間點,再也不用像過去一樣,自行撰寫 T-SQL,只要透過 Backup Timeline 視窗中所提供的 GUI 就可以輕鬆完成。

    螢幕截圖00031
  • 點選【Restore Database】視窗中的【Files > Relocate database files to folder】來重新指定資料庫檔案和交易記錄檔的位置。當來源 SQL Server 伺服器與要還原的伺服器預設資料庫檔案放置路徑不同時,這個功能尤其方便。

    螢幕截圖00032
  • 假設您要還原的資料庫已經存在(資料庫檔案和交易記錄檔),您可以選擇【Options > Overwrite the existing database(WITH REPLACE)】來將之覆蓋。

    螢幕截圖00033
  • 假設一切順利,您將看到如下圖的畫面,表示資料庫還原成功。

    螢幕截圖00034

 


Task 3

SSMS 的新功能。

  • 首先您必須連接至 SQLONE,接著點選【Object Explorer > SQLONE > New Query】來開啟查詢編輯器。

    螢幕截圖00035
  • 接著於查詢編輯器中輸入下列的 T-SQL 敘述。

       1:  select *
       2:  from sys.tab
    
    

 

當您輸入到 tab 時,SSMS 會自動列出所有包含 tab 的名稱的資料庫物件(如下圖),這個功能稱之為【Intellisense】。

螢幕截圖00036

  • 若您覺得查詢編輯器的字型大小太小或太大,您可以像在 Visual Studio 2010 中一樣,透過 Zoom 視窗來調整顯示的百分比,而不需要大費周章的從【Tools > Options】中去設定。

    螢幕截圖00037
  • 假設您嘗試透過 T-SQL 來建立資料庫物件,您對建立物件的指令不熟,除了查詢線上說明外,現在您可以利用內建的 Code Snippet 來幫您完成 T-SQL 程式碼的框架,您只要在查詢編輯器中按滑鼠右鍵,選擇【Insert Snippet】。

    螢幕截圖00038

    SSMS 就會提供您內建的程式碼片段來幫助您輸入您所要的 T-SQL 敘述,本 Lab 主要以 Create Table 為範例(如下圖)。

    螢幕截圖00039

    建立好框架之後您只要利用 TAB 鍵就可以在下圖反白處巡覽,依照您的實際需求來輸入資料表的相關資訊,即可輕鬆地利用 T-SQL 來建立資料表。

    螢幕截圖00040

【Exercise 2

SQL Server 提供一套簡單的方式來幫助 DBA 或資料庫開發人員部署和管理資料層的物件 – Data Tier Application,透過 Data Tier Application 您可以很方便地把資料庫打包並部署到其他 SQL Server 伺服器,甚至是 SQL Azure上的執行個體,都相當容易。r

Task 1

擷取 Data Tier Application。

  • 以 Lab 中的範例來說,您可以點選【Object Explorer > AdventureWorksDW2012 > Tasks > Extract Data-tier Application】來開啟 Data Tier Application Wizard。

    螢幕截圖00041
  • 於歡迎畫面中按 Next。

    螢幕截圖00042
  • 輸入要將 DAC Package 儲存路徑及檔案名稱,請依照 Lab 文件中所述,輸入【C:\Labfiles\AdventuresDW.dapac】,然後按 Next 。

    螢幕截圖00043
  • 於 Summary 視窗中按 Next。

    螢幕截圖00044
  • 接個 Data Tier Application Wizard 就會開始打包資料庫物件,若順利完成您將看到如下圖的畫面,接著按 Finish。

    螢幕截圖00045
  • 假設要將上述步驟的封裝檔部署至 SQLTHREE,請點選【SQLTHREE > Databases > Deploy Data-tier Application】。

    螢幕截圖00046
  • 於歡迎畫面中按 Next。

    螢幕截圖00047
  • 於【Select Package】步驟中,選擇前面所產生的封裝檔。

    螢幕截圖00048
  • 於【Update Configuration】步驟中您可以設定資料庫名稱,接著按 Next。

    螢幕截圖00050
  • 於【Summary】步驟中按 Next。

    螢幕截圖00051
  • 部署成功後,您將看到如下圖的畫面。

    螢幕截圖00052

 


【Exercise 3

接下來的練習,將介紹如何透過 Powershell 來管理 SQL Server,甚至利用一些 Scripts 可以進行自動化資料庫備份作業。



  • 請於【SQLONE > Start PowerShell】來開啟 PowerShell 視窗。

    螢幕截圖00053
  • 利用【Invoke-Sqlcmd】模組來引用 Sqlcmd 來查詢資料庫版本,程式碼如下:

    Invoke-Sqlcmd -Query "SELECT @@VERSION" -QueryTimeout 3

  • 您也可以先利用【cd database】來切換至 database 目錄,接著執行下列 Script 來列舉執行個體上的資料庫,您可以於下圖 3 處看到執行結果。

    foreach ($database in (Get-ChildItem)) {Write-Host $database.Name}

  • 您也可以事先將要執行的 PowerShell Scripts 寫好儲存在 *.psl 檔案中,接著於 PowerSell 命令提示字元中直接加以執行,如下圖就是執行一個位於【C:\LabFiles\Setup\Manageability\Scripts\Ps-BackupDatabases.psl】的 Script 檔案來備份執行個體中的資料庫。

    螢幕截圖00058
  • 執行完畢之後可於【C:\LabFiles\BAK File】路徑下看到上一個步驟所備份的檔案。

    螢幕截圖00059

 


Exercise 4

SQL Server 2012 提供一個新的高可用性技術 – AlwaysOn,這個練習將介紹如何監控 AlwaysOn Availability Groups。

  • 請於【Connect to Server】輸入 Server name 為【SQLPRODUCTION】後按 Connect。

    螢幕截圖00060
  • 您可以於【Object Explorer > SQLPRODUCTION > Databases】看到 ContosoCRM 和 ContosoSalesDB 狀態為 Synchronized,表示這兩個資料庫已經加入 AlwaysOn Availability Group,正處於資料同步的狀態。

    螢幕截圖00061
  • 您可以展開【Object Explorer > AlwaysOn High Availability > Availability Group】查看參與 AlwaysOn Group 的成員及其相關資訊。

    螢幕截圖00062
  • 若您想查看 Availability Group 的狀態,可點選【ProductionAG(Primary)> Show Dashboard】已開啟儀表板。

    螢幕截圖00063
  • 儀表板中可以查看 Availability Group 的健康狀態,如下圖所示:

    螢幕截圖00064