680 likes | 867 Views
第 1 章. SQL Server 2008 簡介. 主從架構. 隨著 1980 年代個人電腦的興起 , 以及個人電腦的運算能力快速地成長 , 使得主從式 (Client-Server) 軟體架構也漸為大眾接受並採行之 , 而逐漸取代過去的 『 主機 - 終端機式 』 或 PC 網路上檔案伺服器 ( 單純分享檔案資源 ) 的運作方式。 以 SQLServer 的主從架構而言 , 就是由 SQL Server 扮演存放資料和提供資料給用戶端的角色 ,
E N D
第 1 章 SQL Server 2008 簡介
主從架構 • 隨著 1980 年代個人電腦的興起, 以及個人電腦的運算能力快速地成長, 使得主從式 (Client-Server) 軟體架構也漸為大眾接受並採行之, 而逐漸取代過去的『主機-終端機式』或 PC 網路上檔案伺服器 (單純分享檔案資源) 的運作方式。 • 以 SQLServer 的主從架構而言, 就是由 SQL Server 扮演存放資料和提供資料給用戶端的角色, • 不過以上這種方式, 只是比較傳統的兩層式主從式架構, 目前的主流是三層式 (3-tier) 或多層式 (N-tier) 的主從架構, SQL Server 當然也支援在此環境下的運作。 • 例如再搭配微軟 IIS 伺服器、ASP.NET 技術或其它伺服器產品, 即可建立多層的主從運算模式。
資料存取介面 • 為了讓用戶端 (應用程式) 能順利查詢/ 異動資料庫中的資料, SQL Server 提供兩種不同的介面, 讓用戶端可視其需求, 透過這些介面來存取資料庫中的資枓: • OLE DB:OLE DB 是微軟公司所發展的一組用來存取各種資料的 COM (Component Object Model) 元件。使用 OLE DB 作為資料存取介面, 應用程式就能透過一致的方式從各種不同資料來源取得所需的資料。 • ODBC:ODBC (Open DataBase Connectivity) 是根據 SQL 語言所發展出來的資料庫存取介面, 名稱中的 Open 意指 『開放』 , 其目的是讓應用程式能利用標準化的查詢方式, 即能從各種不同的資料庫系統取得資料。
資料存取介面 • SQL Server 2008 將上述 2 種資料存取介面功能整合於 SQLNCLI (SQL Native Client) 元件, 此元件支援 OLE DB 與 ODBC 服務, 讓用戶端程式可以透過它向 SQL Server 提出要求, 以取得所需的資料。 • 除了上述的途徑外, SQL Server 2008 也提供了 HTTP 的存取方式, 可以讓程式透過 SOAP 呼叫取得資料庫中的資料, 為 Web Service 應用系統提供了完善的支援。
溝通的橋樑--Net-Library • 用戶端和伺服端有了可互通的介面後, 建立兩邊 IPC 溝通管道的工作則是交由 Net- Library (網路函式庫) 來負責。 • 當用戶端程式使用某種介面向伺服器提出查詢的要求時, 這項要求必須經由 IPC 送達伺服端, 因此, 資料庫介面驅動程式 (SQLNCLI 驅動程式) 就要設法產生這個IPC。 • 為了簡化及支援多種網路通訊協定, 微軟將這些功能都建立在 Net-Library 之中。也就是說資料庫介面驅動程式會呼叫用戶端上的 Net-Library, 而 Net-Library則會呼叫 IPC 應用程式介面以產生 IPC。
溝通的橋樑--Net-Library • 若用戶端和伺服端是在同一台電腦上, 例如我們在 SQL Server Management Studio 操作本機伺服器的資料庫, 則此時 Net-Library 會使用 Local IPC, 若是要透過網路存取遠端的伺服器, 則會經由目前雙方所使用的網路協定堆疊產生 Remote IPC 。 • SQL Server 2008 的 Net-Library 支援了包括Shared Memory 、TCP/IP、Named Pipes (具名管道)、和 VIA (Virtual Interface Adapter) 等多種通訊協定。
SQL Server 2008 功能概觀 • 微軟公司的 SQL Server 歷經數次重大改版, 功能早已成熟, 由於人們對資料應用的需求不斷演進, 資料的收集與處理較以往更普遍、更複雜, SQL Server 每個版本也都會整合新功能至其資料庫應用中。我 • 們可以由安裝程式列出的元件組合, 來認識 SQL Server 2008 的功能。
SQL Server 2008 功能概觀 • SQL Server Database Engine:資料庫引擎, 這是 SQL Server 最核心的元件, 提供資料儲存、處理、與防護。在 SQL Server 2008 中還增加了許多新功能, 例如資料庫壓縮/加密、備份壓縮、安全稽核、新的資料型別與資料儲存機制...等;在硬體管理方面, 也新增了如熱新增 CPU、資源管理等功能。另外還有兩項重要的應用也包含在資料庫引擎中: • 資料庫複寫 (Replication):複寫功能可以讓資料庫由某伺服器自動複製到一或多個目的伺服器, 提供資料庫的分散式應用。 • 全文檢索 (Full-Text Search):全文檢索可以讓資料庫從長度較長的文字欄位中, 快速搜尋到需要的資料。
SQL Server 2008 功能概觀 • Analysis Services:分析服務, 是微軟的商業智慧 (BI, Business Intelligence) 解決方案之一, 主要提供線上分析處理 (OLAP) 及資料探勘 (Data Mining) 的功能。 • Reporting Services:報表服務, 其主要用途在於讓管理者及使用者可以從資料庫建立各式報表。而 SQL Server 2008 不但加強了報表製作功能, 也改良不再需依賴 IIS 網頁伺服器, 以減輕管理上的負擔。
SQL Server 2008 功能概觀 • Integration Services:整合服務, 簡單的說, 此功能可將各種不同資料來源 (文字檔、Excel 試算表、Access 或 Oracle 等異質資料庫) 的資料加以整合、處理, 並可匯入 SQL Server 資料庫中。 • 管理工具:不單只是『管理』SQL Server 2008 用的工具程式, 它們也提供許多實用且重要的功能: • SQL Server Management Studio:整合的 SQL Server 2008 管理中心, 可對SQL Server 進行設定、管理、開發等多項工作。SQL Server 2008 更新增了原則管理功能, 大大減輕管理多伺服器的負擔。
SQL Server 2008 功能概觀 • SQL Server Configuration Manager:基本的 SQL Server 服務設定工具, 可設定SQL Server 及上列各項服務的啟動方式、SQL Server 使用的通訊協定等。 • SQL Server Profiler:以圖形化介面監視 Database Engine 或 Analysis Services上執行的活動。 • Database Engine Tuning Advisor:資料庫調校精靈, 可藉由分析即有的 SQL Server Profiler 記錄或查詢敘述, 提供可提升效能的解決方案。 • Business Intelligence Development Studio:可用於建立 Analysis Services、Reporting Services、Integration Services 解決方案的整合開發環境, 讓管理者或開發人員可透過簡單的圖形操作介面, 即能建立複雜的相關應用。
實體的資料庫結構 • 檔案是作業系統提供給 SQL Server 的儲存空間, 至於在檔案內部, SQL Server 則會另行採用分頁(Page) 和範圍(Extent) 的單位來管理這些儲存空間。 • 分頁是 SQL Server 中基本的資料儲存單位, 每個分頁的大小為 8 KBytes, 分頁依其用途可分為數種, 例如 Data page (資料頁) 就是用來存放資料表中各欄位的資料, 但 text 、ntext、image、nvarchar (max)、varchar (max)、varbinary (max)與 xml 等型別的資料則是另存於文字/影像 (Text/Image) 的分頁中, 索引的資訊則是存於 Index Page (索引頁) 中。
實體的資料庫結構 • 範圍則是 SQL Server 在配置空間給資料表和索引時的單位, 每個範圍為 8 個連續頁, 相當於 64 KB 的大小。由於 64K 也算是個不小的空間, 因此為避免空間的浪費, 當資料表和索引的資料量不大時, SQL Server 會將它們放在同一個範圍的不同分頁中。
多執行個體 • SQL Server 2008 具備 Multiple Instances (多執行個體) 的功能, 所謂多執行個體, 就是說可在同一台電腦上同時執行多『份』 (Instance, 執行個體) SQL Server。 • 每一份 SQL Server 都有它自己的資料庫及登入設定, 因此這些 SQL Server 雖然是在同一電腦上執行, 卻和裝在不同電腦上的 SQL Server 一樣, 可獨立運作、使用。 • 要使用多執行個體的功能, 必須在電腦上重複安裝 SQL Server 2008。
多執行個體 • 安裝 SQL Server 時, SQL Server 的名稱預設沿用自電腦名稱。 • 例如電腦名稱為 Flag, 其上的 SQL Server 名稱也是 Flag, 我們稱之為 Default Instance, 若想安裝第 2、第 3 個執行個體, 就需另行指定不同的名稱, 因此這些執行個體稱為 Named Instances (具名執行個體)。
多執行個體 • 管理者可在電腦上安裝多個 SQL Server 的執行個體, 並開放不同的執行個體給需求不同的使用者使用, 以提高安全管理的彈性。 • 而且當有一個 SQL Server 的執行個體受到不當的操作而停擺或資料庫毀損時, 其它的執行個體並不會受到影響, 而仍可正常運作。下一章會介紹如何安裝多個 SQL Server 執行個體。
1-2 伺服器與作業系統的關係 • SQL Server 是個專為 Windows 作業系統所設計的資料庫管理系統, 因此和其它可在多種平台上使用的資料庫管理系統比起來, SQL Server 在 Windows 平台上的效能表現非常的出色。 • 但是由於 SQL Server 的多項功能會用到 Windows Server 2003/2008 伺服器上的功能, 所以在 Windows XP/Vista 等環境下的功能將受到限制。關於 SQL Server 各版本可以安裝在什麼作業系統, 會於下一章說明。 • 以下就簡要說明 SQL Server 2008 為達到能與 Windows 作業系統合作無間, 所特別設計的各項功能與特色。
安全機制 • 要使用 SQL Server 的服務, 必須先『登入』 SQL Server, 所謂登入就是以系統認得的使用者帳戶和密碼通過伺服器的驗證 (Authentication), 然後才能進入系統並使用其中的各項服務。 • 但為了簡化 Windows 使用者的登入過程, SQL Server 除了支援以 SQL Server 本身帳戶做登入外, 也特別支援直接以 Windows 的使用者帳戶登入 SQL Server 的方式。 • 因為 Windows 使用者在進入 Windows 網路環境時, 就需先以 Windows 本機或網域帳戶來登入。因此到了準備使用 SQL Server 服務時, 使用者應該已經通過安全驗證。
安全機制 • 若將 SQL Server 設定為可接受 Windows 的使用者帳戶, 管理者就可直接將Windows 中的使用者或群組帳戶設定成 SQL Server 的登入帳戶, 並可設定是允許存取 SQL Server 或禁止存取 SQL Server 的帳戶。 • 而使用者在登入 SQL Server 時, 也不需再以專屬於 SQL Server 的登入帳戶來登入, SQL Server 會直接根據使用者目前所用的 Windows 帳戶來查核此帳戶是否允許登入。這對管理者和使用者, 都是相當方便的。
平行處理能力 • Windows Server 2003/2008 具有平行處理的能力 (支援多 CPU) , 其所採用的是對稱式平行處理 (SMP), 也就是說運算的工作會分配到各處理器上來分工完成, 因此可大幅提升系統的效能。 • 但並非任何的應用程式放在有多個處理器的 Windows 電腦上, 就能發揮平行處理的效用, 應用程式必須是針對平行處理的架構來設計才行, 例如多執行緒的應用程式, 就能讓各執行緒分別在不同的處理器上來處理, 加速完成其工作。
以服務的方式執行 • SQL Server 是以服務 (Service) 的方式被執行。 • 服務是一種較特殊的應用程式執行方式, 它可以由作業系統自己來啟動程式。 • 以服務啟動的程式, 會固定在背景執行, 以便隨時向使用者提供 " 服務"。 • 服務可設定成在系統啟動時就自動被啟動 (SQL Server 預設就是會自動啟動),如此一來, 只要電腦一開機 , 該項服務就已準備好回應使用者對它的要求了。
善用加強的磁碟 I/O 功能 • 資料庫伺服器為了提供眾多使用者的查詢服務, 必須借重強大的運算能力, 以處理各種查詢需求, 另一方面也要能快速存取磁碟上的資料, 以便讀出資料供使用者使用, 或是將新的資料寫入。 • 因此 SQL Server 特別提供了 Windows 作業系統的兩項特殊磁碟 I/O 功能, 以提升其資料處理效能。
善用加強的磁碟 I/O 功能 • Windows 作業系統提供了一種稱為非同步 (Asynchronous) I/O的處理方式, 當程式送出 I/O 的要求給作業系統時, Windows 會立即將控制權返回給應用程式, 讓程式可繼續進行其它的處理工作, 稍後再來檢查看看資料是否已讀出或寫入。 • 傳統的同步式 I/O 則是在送出 I/O 需求給作業系統後, 需等作業系統確實完成 I/O 的動作, 才會將控制權交還應用程式, 因此在 I/O 較耗時的情況下, 就會使應用程式的效能大幅下滑。 • SQL Server 可同時對同一個檔案進行多個非同步 I/O 的處理, 這對效能的提升有很大的幫助。
善用加強的磁碟 I/O 功能 • 另外, Windows 從NT 4.0 Service Pack 2 之後使用了一種新的 I/O 模式, 稱為 Scatter-gather I/O。 • 因為早期在 Windows NT 中, 每次讀出或寫入磁碟的資料, 都必須放在連續的記憶體空間才行, 在這種情況下, 若 SQL Server 要將分散在數個不連續空間中的資料寫入磁碟, 必須先另行將它們複製到一塊連續的記憶體空間才行。 • 但有了 Scatter-gather I/O 之後, SQL Server 就可省下此一步驟, Windows 作業系統自己會把這些分散的部分放在緩衝區來做處理。
資料庫管理者的工作 • 所謂的資料庫管理者, 簡單的說, 就是要負責管理資料庫伺服器, 使其能維持正常運作的管理人員。 • 一般而言, SQL Server 資料庫管理者的工作大概包括下列數項: • 安裝與更新 SQL Server: • 和以下所列的其它工作比起來, 安裝和更新 SQL Server應該是比較少做的工作。 • 除非是有許多台伺服器需要安裝, 不過就算是如此也只是在每台電腦上做一次, 此後大概只有換新的電腦時, 才需再做安裝的動作。 • 更新的機會則稍微多一點, 舉凡版本的更新、Service Pack 的安裝, 都算是資料庫管理者的工作。
資料庫管理者的工作 • 建立與管理資料庫: • 建立資料庫通常也是資料庫管理者的工作之一, 不過在分工較細的環境中, 有時也會另有專門的人來建立資料庫。 • 資料庫建好後, 還要做日常的管理和維護工作, 像是配置新的磁碟空間給資料庫來存放新的資料等等。 • 管理安全性: • 安全性管理是很重要的工作, 資料庫管理者需建立伺服器的使用者帳戶, 以及為不同的使用者設定存取權限等等。
資料庫管理者的工作 • 在不同的資料來源間轉換資料: • 在較大的組織環境中, 資料可能是分散在不同的地方, 像是會計部將資料存於試算表、業務部將資料存於 Access 之類的桌上型資料庫中, 甚至也可能有資料是存於大型主機的資料庫中。 • 身為資料庫管理者,可能就需要將分散在這些不同來源的資料, 都轉入 SQL Server 資料庫中, 或是也要將 SQL Server 的資料轉出。 • 如果有使用資料倉儲的需要, 這類轉移和轉換資料的工作更是不可免的。
資料庫管理者的工作 • 備份與回存資料庫:資料庫中最重要的就是其中的資料, 因此資料庫管理者需定期備份資料庫的內容, 以便在發生意外時, 能回存這些備份的資料, 使資料庫的內容不致喪失。 • 進行資料複寫:如需將相同的資料庫放到多個 SQL Server 中, 以提供分散式的資料存取時 , 資料庫管理者就需設定各伺服器之間的複寫 (Replication), 以便讓各伺服器上的資料庫內容能保持一致。
資料庫管理者的工作 • 維護伺服器運作: • 保持 SQL Server 隨時在『最佳狀態』下運作也是管理工作的重點, 因此資料庫管理者需不時地監視伺服器的狀態, 並在有問題發生時及時解決。 • 資料庫管理者也需根據監視到的效能數據, 適時地調校 SQL Server 的各項設定, 讓伺服器有最佳的效能表現, 或預防問題的發生。 • 設定作業排程: • 電腦雖可二十四小時全天運作, 但人卻需要休息養生。因此資料庫管理者可設定各類能夠交由 SQL Server 自動執行的作業(Job), 例如於夜間自動備份資料庫, 以減輕使用者或自己的負擔。
資料庫管理者的工作 • 協調資料庫的使用: • 資料庫伺服器是有許多不同角色的人在使用, 例如單純的資料庫使用者、應用程式設計人員等等, 雖然 SQL Server 是由資料庫管理者負責管理, 卻也不能一意孤行, 以一己之意來控制資料庫。 • 管理者需與其它的使用者來協調關於資料庫的使用方式、程式的設計方式等問題, 才能讓 SQL Server 能有效的提供服務給所有使用者。
資料庫管理者的工作 • 上面這些都是常見且較重要的工作項目, 在不同的環境下, 資料庫管理者需進行的工作也會有所增減。 • 例如單伺服器的環境就不必進行複寫; 而在有資料倉儲需求的環境中, 資料庫管理者可能也要負責有關資料倉儲的維護工作; 在人手較少的單位中, 管理者甚至得身兼程式設計等其它工作。
資料庫管理者所需具備的知識 • 資料庫管理者負責的工作內容這麼多, 因此必須具備能有效完成各項工作的知識, 才能勝任愉快。 • 作業系統:如前所述, SQL Server 和 Windows 作業系統的關係非常密切, 因此資料庫管理者不但要對 Windows 作業系統的使用和操作非常熟悉, 此外也應儘可能充實 Windows 作業系統的相關知識。 • SQL Server:既然是 SQL Server 的資料庫管理者, 當然得對 SQL Server 本身有徹底的瞭解。
資料庫管理者所需具備的知識 • 關聯式資料庫:SQL Server 是個關聯式資料庫管理系統, 因此資料庫管理者也應該要能掌握關聯連式資料庫的理論和架構, 如此才能設計出實用且有效率的資料庫。 • T-SQL:雖然 SQL Server 附有 Management Studio 等數個圖形介面的管理工具, 但資料庫管理者仍應對 T-SQL 語法有基本的認識, 才能提高管理的效率。此外 SQL Server 2008 所提供的各類工具也非萬能, 通常管理者得自行加上適當的 T-SQL 指令才能完成所需的工作。因此就算不需成為 T-SQL 程式設計高手, 至少也應該熟悉基本的 T-SQL 語法。
資料庫管理者所需具備的知識 • 雖然我們能從書藉、雜誌取得大多數的資訊, 不過為尋找各種相關問題的解決方案, 資料庫管理者也需不時上網取得新知。 • 在本書中介紹各類主題時, 也會儘可能將相關的作業系統等資訊做說明, 以便讓讀者能在對主題有完整的瞭解下, 依自己的需求來訂出最有效的管理方式。
微軟公司的 SQL Server 相關認證 • 因應新的 SQL Server 2008 產品, 微軟公司也推出全新的 SQL Server 2008 專業認證, 與管理相關的認證項目包括: • MCTS: SQL Server 2008, Implementation and Maintenance:著重於 SQL Server 2008 的安裝、設定、一般性維護, 取得此項認證需通過『 Exam 70-432: TS: Microsoft SQL Server 2008, Installation and Maintenance』 測驗。
微軟公司的 SQL Server 相關認證 • MCTS: SQL Server 2008, Database Development:雖然名稱看起來偏重於資料庫應用程式開發能力, 但其實此認證著重於管理人員也會用到的 T-SQL 及 .NET CLR 設計能力。取得此認證需通過『Exam 70-433: TS: Microsoft SQL Server 2008, Database Development』測驗。 • MCTS: SQL Server 2008, Business Intelligence Development and Maintenance:重點為 SQL Server 2008 的 Reporting Services 、Analysis Services 及 Integration Services。取得此認證需通過 『Exam 70-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance』 測驗。
微軟公司的 SQL Server 相關認證 • MCITP: Database Administrator 2008:已取得MCTS: SQL Server 2008, Implementation and Maintenance認證者, 再通過 『Exam 70-450: PRO: Designing, Optimizing and Maintaining a Database Server Infrastructure using Microsoft SQL Server 2008』測驗, 即成為『微軟認證 IT 開發專家』 (MCITP, Microsoft Certified IT Professional), 可取得此項代表 SQL Server 2008 管理專業能力的認證。
微軟公司SQL Server 2012 相關認證 • MCSA – SQL Server 2012 • SQL Server 2012第一個要考的證照 • MCSE - Data Platform • MCSE – Business Intelligence
微軟公司的 SQL Server 相關認證 • 詳細資訊可參見 http://www.microsoft.com/learning/mcp/sql/2008/default.mspx。
SQLServer 2008 Express • SQL Server 2008 Express是SQLServer的免費試用版 • 資料庫容量大小限制在4G,最大記憶體支援到1G • SQL Server Management Studio (SSMS)需要另外下載 • 需要下載及安裝 Microsoft SQL Server 2008 支援的 Microsoft Visual Studio 2005 Service Pack 1 更新才 能連接至 Visual Studio 2005
系統需求 • 支援的作業系統: • Windows 7; Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Server 2008 R2; Windows Vista Service Pack 1; Windows XP Service Pack 3 • 32 位元系統 • 備有 Intel 或相容 1GHz (或更快) 處理器 (建議使用 2 GHz 或更快,只支援單一處理器) 的電腦。 • 最少 256 MB RAM (建議 1 GB 或以上) • 1GB 可用硬碟空間 • 64 位元系統 • 1.4 GHz 或更高等級處理器 (建議使用 2 GHz 或更快,只支援單一處理器)。 • 最少 256 MB RAM (建議 1 GB 或以上) • 1 GB 的可用硬碟空間
軟體需求 • 必須具有電腦的管理權限(eg. Administrator) • 步驟 1 • 下載並安裝 Microsoft .Net Framework 3.5 SP1 • 步驟 2 • 下載並安裝 Windows Installer 4.5 • 步驟 3 • 下載 • SQLEXPR_x86(32位元OS上安裝) • SQLEXPR_x64 (64 位元OS上安裝)
SQLServer Express版本 • SQL Server 2008 Express • 最基本只包含資料庫的版本 • SQL Server 2008 Express with Tools • 多了SSMS管理介面的版本 • SQL Server 2008 Express with Advanced Services • 多了全文檢索與Analysis Service的版本 • 需要多安裝windows powershell軟體
安裝中心 • 可點選”System Configuration Checker”檢查是否有妨礙安裝的狀況 • 檢查的東西不一定會發生,僅作參考
System Configuration Checker • 若有錯誤,排除錯誤後可點選重新執行測試
安裝 • 點選”新的SQL Server獨立安裝或將功能加入到現有安裝”