SQL Server 2012 Express LocalDB


微軟最新推出的 SQL Server 2012 Express LocalDB 是一種 SQL Server Express 的運行模式,特別適合用在開發環境使用,也內置在 Visual Studio 2012 之中。

關於 SQL Server 2012 Express LocalDB 的運作方式

在安裝 LocalDB 時會復制一個 SQL Server Express 實例所需的最少文件,基本上 LocalDB 幾乎等同於完整的 SQL Server Express 數據庫引擎,且 LocalDB 方式啟動的 SQL Server Database Engine 實例與 SQL Server Express 具有相同的限制 (因為跟 SQL Server Express 共享相同的文件),但 LocalDB 由於簡化了管理,所以比 SQL Server Express 還多了一些限制,不過這些限制通常不影響開發。相對舊版的 SQL Server 2008 Express 來說,兩者有些差異性,比較如下:

  • SQL Server 2008 Express
  • 安裝 SQL Server 2008 Express 的過程時間花得比較久
  • 通過 SQL Server 2008 Express 安裝程序一次只能安裝一個 SQL 實例 (Instance),若要安裝更多實例則必須在運行一次 SQL Server 2008 Express 安裝程序
    注:默認實例名稱為 SQLEXPRESS
  • 需通過 SQL Server 配置管理器Windows 服務管理器 啟動該實例
  • SQL Server 2012 Express LocalDB
  • 安裝 SQL Server 2012 Express LocalDB 的過程非常快 (安裝時間非常短)
  • 安裝 SQL Server 2012 Express LocalDB 完后,默認會有個自動實例v11.0,但之后若要建立其他實例不再需要運行安裝程序,只需通過 SqlLocalDB.exe 工具程序即可任意建立新的實例,建立一個實例的時間不超過 3 秒!
  • 可通過特殊的連接字符串自動啟動該實例,或可通過 SqlLocalDB.exe 工具程序啟動,應用程序不需復雜或耗時的組件工作即可開始使用數據庫!
  • 在同一台主機里,每個用戶都可以建立自己的 LocalDB 實例,每個實例是以不同使用者身分運行不同進程,所以不同使用者可有同名的實例

SQL Server 2012 Express LocalDB 區分兩種實例類型,分別為:

  • LocalDB 自動實例 ( Automatic Instances )

LocalDB 自動實例是公用的。

  • 安裝完 LocalDB 后的 v11.0 就是自動實例,雖然感覺只有一個實例,但是由於在同一台主機里,每個用戶都可以建立自己的 LocalDB 實例,所有使用者雖然都有同名的 v11.0 的實例,但彼此都是獨立分開的進程(Process)。這些實例會自動為使用者建立及管理,並且可供任何應用程序使用。
  • 用戶計算機上安裝的每一個 LocalDB 版本各存在一個 LocalDB 自動實例。未來如果還有下一版 SQL Server 2012 Express LocalDB 出現,就會再有新的實例名稱可用,默認自動實例名稱是一個 v 字符后面接着 xx.x 格式的 LocalDB 發行版號碼。 例如,v11.0 代表 SQL Server 2012。
  • LocalDB 具名實例 ( Named Instances )
  • LocalDB 具名實例是私用的。
  • 這些實例是由該負責建立及管理該實例的使用者或特定單一應用程序所擁有。
  • 不同使用者默認無法存取自定義的 LocalDB 具名實例,除非你手動建立具名實例的分享功能,開啟分享功能后就可以讓其他使用者存取該具名實例的數據庫。

了解 SQL Server 2012 Express LocalDB 實例的數據庫文件所在路徑

在安裝好 SQL Server 2012 Express LocalDB 之后,默認會有個實例名為 v11.0,該實例的相關文件所在目錄通常位於以下目錄 ( 請將 <user> 替換成你的登陸賬號 )

C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

或用 %LOCALAPPDATA% 環境變量進入該目錄比較方便:

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances

以下是顯示該目錄的圖標,這里會列出所有 LocalDB 的實例:

clip_image003

在此目錄 ( v11.0 ) 下所看到的文件都是實例的相關文件,系統數據庫文件、錯誤紀錄、紀錄追蹤、加密密鑰、…等等,不過若你在 LocalDB 實例中建立用戶數據庫時,必須要明確指定其數據文件與記錄文件的路徑,否則默認所有建立的數據庫都會位於 %USERPROFILE% 目錄下 ( C:\Users\<username> )

建立 SQL Server 2012 Express LocalDB 具名實例

你可以想象一下,一個 SQL 數據庫實例就如同一台完整的 SQL Server 數據庫服務器,在一個實例里面會有自己的系統數據庫 (master, msdb, model, temp),就跟我們一般在使用 SQL Server 沒有什么兩樣,當你建立額外的 LocalDB 實例的話,這些系統數據庫就會跟另一個具名實例完全獨立開來,彼此完全互不影響。

就開發的角度來說,你甚至可以在開發測試的環境里建立一套跟客戶端正式主機完全相同的數據庫環境,光是這一點就與以往的 SQL Server Express 區別巨大,也是新版 LocalDB 真正厲害的地方!

在建立新的 LocalDB 實例之前,必須先了解 SqlLocalDB.exe 工具程序的路徑,請參考以下路徑:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe

clip_image004

以下是建立 LocalDB 實例的指令,其中 “LocalDbTest” 是你可以自行命名的實例名稱:

SqlLocalDB.exe create LocalDbTest

clip_image006

接着我們通過命令列出所有 LocalDB 已經建立的所有實例,並查看特定實例的相關信息:

SqlLocalDB.exe info
SqlLocalDB.exe info Projects

clip_image008

接着我們在看看文章之前介紹過的實體文件路徑,你將會發現多了一個目錄,我們用 %LOCALAPPDATA% 環境變量進入該目錄看看:

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances

clip_image010

進入該目錄就會看到如同 SQL Server 完整版一樣有這些系統數據庫文件、錯誤紀錄、紀錄追蹤、加密密鑰、…等等,如下圖示:

clip_image012

SQL Server 2012 Express LocalDB 與其他 SQL Server 版本的比較

在 SQL Server 2012 問世之前,SQL Server 依據不同的運行環境各有推出不同的版本,在運行上也有不同的限制,例如:

  • SQL Server Enterprise ( 企業版,適合大量數據或高可用性環境 )
  • SQL Server Standard ( 標准版,適合用在一般數據庫處理環境 )
  • SQL Server Express ( 輕量版,適合用在單機或小量數據庫的環境 )
  • SQL Server Compact ( 精簡版,又稱 SQL CE,適用於行動化或嵌入式系統環境 )

而 SQL Server 2012 Express LocalDB 又是甚么樣的一個定位呢?從數據庫系統復雜度加以重新排序過如下:

  • SQL Server Enterprise > Standard > Express > LocalDB > Compact

由於 SQL Server 2012 Express LocalDB 跟前版的 SQL Server 2008 R2 Express 很像,其中的限制有:

  • LocalDB 的實例排序規則默認為 SQL_Latin1_General_CP1_CI_AS,無法變更。

但支持數據庫層級數據行層級表達式層級定序。

也就是說,你只要在建立數據庫時指定其排序規則即可,或是掛載其他數據庫系統移過來的數據庫文件,或還原自其他數據庫的備份文件也都不會有問題。

自主數據庫遵循自主數據庫定序所定義的元數據和 tempdb 定序規則。

  • LocalDB 不得為合並式復寫訂閱者。
  • LocalDB 不支援 FILESTREAM。
  • LocalDB 針對 Service Broker 只允許本機隊列。

相關鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM