700 likes | 966 Views
SQL Server 2005 資料庫管理達人一日體驗營. 錢曉明 資策會 資深講師. 議程. SQL Server 2005 新功能槪述 檢視資料庫 Metadata 災難復原 Piecemeal Restore Restore a damaged page online 如何利用資料庫快照還原被刪除的資料表 ? 資料庫監控與效能調教 效能最佳化模型 Default Trace 透過 DMV 及 DMF 檢視效能瓶頸 異地備援 Peer-to-Peer Replication 交易鎖定 Snapshot Isolation Level 高可用度
E N D
SQL Server 2005 資料庫管理達人一日體驗營 錢曉明 資策會 資深講師
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
What Is SQL Server 2005? Integration Services Notification Services Analysis Services SQL Server 2005 Full-Text Search Relational Database Engine Reporting Services .NET CLR Service Broker Replication Native HTTP Support
SQL 2005 Top 30 –管理 管理 開發 智慧 管理 開發 B I • Database Mirroring • Online Indexing Operations • New Integrated Toolset • Snapshot Isolation • Data Partitioning • Mirrored Backups • Online Restore • Fast Recovery • Dedicated Administrator Connection • Replication Enhancements
SQL 2005 Top 30 –開發 管理 開發 智慧 管理 開發 B I • .NET Framework Hosting • XML Technologies • ADO.NET 2.0 • Transact-SQL Enhancements • SQL Service Broker • Notification Services • Web Services • XQuery Support • Full-Text Search Enhancements • Security Enhancements
SQL 2005 Top 30 –商業智慧 管理 開發 智慧 管理 開發 B I • Analysis Services • SSIS (Data Transformation Services) • Data Mining • Reporting Services • Clustering Support • Key Performance Indicators • Scalability and Performance • One-Click Cube • Architecture Enhancements • Integration with the Microsoft Office System
Standard Edition Enterprise Edition • Multiple CPU index operations • Automatic index view usage • Single CPU index operations • Manual index views usage Database Performance No Scale-up Limited scale out Scale-up included Scale out included DatabaseScale • Service Broker • Peer-to-Peer replication • Service Broker Only Partitioning Up to 4 CPUs Up to 64 CPUs Hardware
SQL Server 2000: Database is available after Undo completes SQL Server 2005 Standard Edition: Database is available when Undo begins SQL Server 2005 Enterprise Edition: Database recovery leverages all CPU’s Faster Recovery Database is Available! Redo Undo Undo Redo Database is Available! Redo Undo Database is Available!
Increasing Availability with EE Protect from User & Logical Errors Recover from user & logical errors Prevent user errors Decrease Maintenance Downtime Online Service Pack Install & Upgrades Online Maintenance Operations Recovery from Failures Disaster Recovery Recovery from HW/SW Failure Recovery from Database Failure Database Snapshots DDL Triggers DB Mirroring, Clustering & Peer-to-Peer Replication Online Index Operations Database Mirroring Mirroring, Clustering & Replication Fast Recovery, Online Restore
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
SQL Server Management Studio Reports • Server • Memory Consumption • DBCC DropCleanBuffers • Database • Disk Usage • Service Broker • Service Broker Statistics • Logins • Login Statistics • Management • Number of Errors
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
What Is a File or Filegroup Backup Strategy? • Use file or filegroups if: • Database is very large • A full backup would take too long • Back up transaction logs separately • Can be complex to manage Datafile 1 Data file 2 Data file 3 Sunday Monday Tuesday Wednesday
How to Perform a Piecemeal Restore • Restore a database in stages based on filegroups • Start with primary filegroup • Continue with secondary filegroups • Each filegroup comes online as it is restored • Transactions involving filegroups not yet restored will hold locks until rollback can complete
Overview of Online Restore Operations Database Primary filegroup online, database available Primary Filegroup Filegroup A File unavailable, filegroup offline Restoringfile Filegroup B All files available, filegroup online
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
How to Restore a Damaged Page • Identify ID of damaged page • Restore page from a full or differential backup • Use PAGE clause to specify pages to restore • Specify NORECOVERY • Restore transaction logs • Backup transaction log tail • Restore transaction log tail 1 2 RESTORE DATABASE AdventureWorks PAGE = '1:610' FROM AWBack WITH NORECOVERY 3 4 5
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
What Is a Database Snapshot? • Read-only, consistent view of a database at a specified point in time • Useful as test or development database, or for reporting • Must exist on same server as source database 12:00 Snapshot
How Database Snapshots Work Source DB Snapshot DB SELECT … Copy-On-Write (first time only) UPDATE … SELECT …
How to Use a Database Snapshot to Recover Data Script the object in the database snapshot 1 Execute the script in the source database 2 Repopulate the object (if appropriate) 3 Caution: Not a substitute for a comprehensive backup and restore strategy INSERT INTO Production.WorkOrderRouting SELECT * FROM AdventureWorks_dbsnapshot_1800.Prod.WorkOrderRouting UPDATE HR.Department SET Name = ( SELECT Name FROM AdventureWorks_dbsnapshot_1800.HR.Department WHERE DepartmentID = 1) WHERE DepartmentID = 1
Read-only, consistent copy of database Very fast to create Can be created for any database Production databases Instant standby databases with Database Mirroring Supports scale-out and high availability scenarios Great solution for reporting/read-only applications Safeguarding data against application and human error Rollback to a snapshot to correct the error
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
效能最佳化模型 伺服器 調校 交易鎖定 索引最佳化 查詢最佳化 資料庫結構設計
資料庫設計迷思 • 到底需不需要正規化呢? • 資料庫交易記錄檔應該設多大? • 索引到底該如何建才正確? • 要如何才能避免資料被Lock呢?
正規化(Normalization) • 正規化(Normalization)的目的是減少「重複累贅的資料」。 • 一般只會實施到第三正規化。 • 優點--方便維護及修改。 • 缺點--查詢資料時需要Join 較多的資料表才能得到所需資料,因此回應時間加長。 • 檢視標準--每次存取資料時均要Join 六、七個資料表,回應時間加長,既表示過渡正規化。
應用程式特性(一) • 線上交易(OLTP)應用程式 • 「多人同時上線」(Concurrency) • 「頻繁」的從事「小量交易」 • 使用指令Select/Insert/Update/ Delete • 主要 workload • Reads, writes • 可能問題 • Locking,Blocking,Disk I/O,CPU,Memory • 可能的解決方案 • 可以做正規化 • 刪除不必要的索引 • 使用Transaction Isolation Level Snapshot • 非同步處理(Asynchronous data access)
應用程式特性(二) • Decision Support System(DSS)應用程式 • OLAP • Data Mining • 報表製作(Reporting) • 特性 • 讀取大量資料,然後作彙總計算 • 使用Select • 主要 workload • Reads • 可能問題 • 大量硬碟 I/O • 資料碎裂 • 可能的解決方案 • 可以做非正規化 • 建立索引 • 索引重整(Index Rebuild)
索引最佳化 • 建在單一欄位上的非叢集式索引,百分之九十的情況下,Query Analyzer會選擇使用Table Scan,而不會使用該索引。 • 資料經過一段時間,新增/修改/刪除之後,會產生碎裂,應執行索引重整 (類似磁碟機重整)。 • 作索引重整(Index Rebuild)對提升報表製作(Reporting)應用程式效能有幫助。
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
Default Trace • 佔資源少 • 預設路徑 C:\Program Files\Microsoft SQL Server\ MSSQL.1\MSSQL\LOG • 預設追蹤事件約三十多項,如: • Audit Addlogin Event • Audit Login Failed • Audit Backup/Restore Event • Data File Auto Grow • Database Mirroring State Change • Object: Created • Object: Altered • Object: Deleted • Server Memory Change
Disable Default Trace SP_CONFIGURE 'show advanced options',1 go RECONFIGURE GO SP_CONFIGURE 'DEFAULT TRACE ENABLED',1 GO RECONFIGURE GO
議程 • SQL Server 2005 新功能槪述 • 檢視資料庫 Metadata • 災難復原 • Piecemeal Restore • Restore a damaged page online • 如何利用資料庫快照還原被刪除的資料表? • 資料庫監控與效能調教 • 效能最佳化模型 • Default Trace • 透過DMV及DMF檢視效能瓶頸 • 異地備援 • Peer-to-Peer Replication • 交易鎖定 • Snapshot Isolation Level • 高可用度 • Database Mirroring Configurations
透過DMV及DMF檢視效能瓶頸 • SQL Server 2000,必需得靠Profiler記錄的trace file(追蹤記錄檔)。 • SQL Server 2005中新增許多系統檢視及系統函數 • Dynamic Management View(DMV) • Dynamic Management Function(DMF)。
Dynamic Management View(DMV) Dynamic Management Function(DMF) • 與系統資料表不同,DMV 不會存檔。 • DMV中的紀錄會隨著資料庫的使用狀態而改變 • DMV/DMF的命名規則 • 命名一定是dm_* • DMV及DMF均屬於sys 這個schema • 用時一定要寫two-part name 或three-part name,如sys.dm_*
Dynamic Management View(DMV) Dynamic Management Function(DMF) • DMV/DMF 可大分為兩類,伺服器層級及元件層級 • 伺服器層級(Server Level) • sys.dm_exec_* • 記錄使用者程式碼執行狀態。 • sys.dm_os_* • 記錄伺服器層級系統相關資訊,例如記憶體,locking,及排程等。 • sys.dm_tran_* • 記錄Transactions 及 isolation 相關資訊。 • sys.dm_io_* • 記錄網路及硬碟上的I/O。 • sys.dm_db_* • 記錄資料庫及其相關物件。
Dynamic Management View(DMV) Dynamic Management Function(DMF) • 元件層級(Component Level) • sys.dm_repl_* • 記錄資料庫複寫。 • sys.dm_broker_* • 記錄Service Broker相關資訊。 • sys.dm_fts_* • 記錄全文檢索相關資訊。 • sys.dm_qn_* • 記錄Query Notifications相關資訊。 • sys.dm_clr_* • 記錄CLR程式碼執行相關資訊。
sys.dm_exec_requests • 可檢查伺服器上各Session執行狀態 Select scheduler_id, session_id, status, command, wait_type, wait_resource, percent_complete, cpu_time from sys.dm_exec_requests where session_id > 50
CPU Pressure(處理器瓶頸) • Runnable Queue -- Status 欄位顯示為runnable,表示這些session正在等待執行 • 這一類的等待表示一切資源均已完備,只等待CPU 處理,稱之為 Signal Waits。 • 計算Signal Waits的時間,即可知道處理器是否產生瓶頸,此一項評量標準稱為CPU Pressure。
Resources Waits • Waiter List(等待清單)-- Status 欄位顯示為suspended • 這一類的等待稱為Resources Waits,表示在等待資源(Resources),至於是哪種資源,可能是記憶體,或是資料被Block住,或是Disk I/O,…等原因,可參考wait_type(等待種類)欄位 • wait_type -- 在SQL Server 2000 約有76種,SQL Server 2005 約有192種