Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Microsoft_Press_eBook_Introducing_Microsoft_SQL_Server_2012_PDF

Microsoft_Press_eBook_Introducing_Microsoft_SQL_Server_2012_PDF

Published by Tim Lemos, 2016-04-12 22:33:50

Description: Microsoft_Press_eBook_Introducing_Microsoft_SQL_Server_2012_PDF

Search

Read the Text Version

Introducing Microsoft®SQL Server®2012 Ross Mistry and Stacia Misner

PUBLISHED BYMicrosoft PressA Division of Microsoft CorporationOne Microsoft WayRedmond, Washington 98052-6399Copyright © 2012 by Microsoft CorporationAll rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by anymeans without the written permission of the publisher.Library of Congress Control Number: 2012933508ISBN: 978-0-7356-6515-6Microsoft Press books are available through booksellers and distributors worldwide. If you need support relatedto this book, email Microsoft Press Book Support at [email protected]. Please tell us what you think ofthis book at http://www.microsoft.com/learning/booksurvey.Microsoft and the trademarks listed at http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx are trademarks of the Microsoft group of companies. All other marks are property oftheir respective owners.The example companies, organizations, products, domain names, email addresses, logos, people, places, andevents depicted herein are fictitious. No association with any real company, organization, product, domain name,email address, logo, person, place, or event is intended or should be inferred.This book expresses the author’s views and opinions. The information contained in this book is provided withoutany express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, ordistributors will be held liable for any damages caused or alleged to be caused either directly or indirectly bythis book.Acquisitions Editor: Anne HamiltonDevelopmental Editor: Devon MusgraveProject Editor: Carol DillinghamTechnical Reviewer: Mitch Tulloch; Technical Review services provided by Content Master, a member of CMGroup, Ltd.Copy Editor: Roger LeBlancIndexer: Christina YeagerEditorial Production: Waypoint PressCover: Twist Creative • Seattle

I dedicate this book to my wife, Sherry. Thank you for being one of the onlypeople in my life who has always been there for me regardless of the situationand has never let me down. I am greatly appreciative. –Ross Mistry I dedicate this book to my husband and best friend, Gerry, who excels atkeeping our dreams alive. –Stacia Misner



Contents at a GlancePART 1  DATABASE ADMINISTRATIONCHAPTER 1 SQL Server 2012 Editions and Engine Enhancements 3CHAPTER 2 High-Availability and Disaster-Recovery Enhancements 21CHAPTER 3 Performance and Scalability 41CHAPTER 4 Security Enhancements 57CHAPTER 5 Programmability and Beyond-Relational Enhancements 73PART 2  BUSINESS INTELLIGENCE DEVELOPMENTCHAPTER 6 Integration Services 93CHAPTER 7 Data Quality Services 141CHAPTER 8 Master Data Services 175CHAPTER 9 Analysis Services and PowerPivot 199CHAPTER 10 Reporting Services 229



Contents Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvPART 1  DATABASE ADMINISTRATIONChapter 1 SQL Server 2012 Editions and Engine Enhancements 3 SQL Server 2012 Enhancements for Database Administrators. . . . . . . . . . . 4 Availability Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Scalability and Performance Enhancements. . . . . . . . . . . . . . . . . . . . . 6 Manageability Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Security Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Programmability Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 SQL Server 2012 Editions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Enterprise Edition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Standard Edition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Business Intelligence Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Specialized Editions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 SQL Server 2012 Licensing Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Hardware and Software Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Installation, Upgrade, and Migration Strategies. . . . . . . . . . . . . . . . . . . . . . 17 The In-Place Upgrade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Side-by-Side Migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19What do you think of this book? We want to hear from you!Microsoft is interested in hearing your feedback so we can continually improve our books and learningresources for you. To participate in a brief online survey, please visit: microsoft.com/learning/booksurvey vii

Chapter 2 High-Availability and Disaster-Recovery Enhancements 21 SQL Server AlwaysOn: A Flexible and Integrated Solution . . . . . . . . . . . . . 21 AlwaysOn Availability Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Understanding Concepts and Terminology . . . . . . . . . . . . . . . . . . . . 24 Configuring Availability Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Monitoring Availability Groups with the Dashboard. . . . . . . . . . . . . 31 Active Secondaries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Read-Only Access to Secondary Replicas . . . . . . . . . . . . . . . . . . . . . . 33 Backups on Secondary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 AlwaysOn Failover Cluster Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Support for Deploying SQL Server 2012 on Windows Server Core . . . . . 36 SQL Server 2012 Prerequisites for Server Core. . . . . . . . . . . . . . . . . . 37 SQL Server Features Supported on Server Core. . . . . . . . . . . . . . . . . 38 SQL Server on Server Core Installation Alternatives . . . . . . . . . . . . . 38 Additional High-Availability and Disaster-Recovery Enhancements. . . . . 39 Support for Server Message Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Database Recovery Advisor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Online Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Rolling Upgrade and Patch Management. . . . . . . . . . . . . . . . . . . . . . 40 Chapter 3 Performance and Scalability 41 Columnstore Index Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Columnstore Index Fundamentals and Architecture. . . . . . . . . . . . . . . . . . 42 How Is Data Stored When Using a Columnstore Index?. . . . . . . . . . 42 How Do Columnstore Indexes Significantly Improve the Speed of Queries? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Columnstore Index Storage Organization. . . . . . . . . . . . . . . . . . . . . . 45 Columnstore Index Support and SQL Server 2012. . . . . . . . . . . . . . . 46 Columnstore Index Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Columnstore Index Design Considerations and Loading Data. . . . . . . . . . 47 When to Build a Columnstore Index. . . . . . . . . . . . . . . . . . . . . . . . . . . 47 When Not to Build a Columnstore Index. . . . . . . . . . . . . . . . . . . . . . . 48 Loading New Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48viii Contents

Creating a Columnstore Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Creating a Columnstore Index by Using SQL Server Management Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Creating a Columnstore Index Using Transact-SQL. . . . . . . . . . . . . . 51 Using Columnstore Indexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Using Hints with a Columnstore Index. . . . . . . . . . . . . . . . . . . . . . . . . 53Columnstore Index Observations and Best Practices . . . . . . . . . . . . . . . . . 54Chapter 4 Security Enhancements 57Security Enhancements in SQL Server 2012 . . . . . . . . . . . . . . . . . . . . . . . . . 57Security Manageability Improvements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Default Schema for Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 User-Defined Server Roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Audit Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 Audit Supported on All SKUs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Improved Resilience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 User-Defined Audit Event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Record Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Database Authentication Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Enabling Contained Databases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Creating Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Contained Database Authentication Security Concerns. . . . . . . . . . 70Additional Security Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Cryptography Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Tight Integration with SharePoint and Active Directory . . . . . . . . . 71 Provisioning Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 New Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Chapter 5 Programmability and Beyond-Relational Enhancements 73 Pain Points of Using the Beyond Relational Paradigm. . . . . . . . . . . . . . . . . 73 SQL Server 2012 Beyond-Relational Goals. . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Rich Unstructured Data and Services Ecosystem . . . . . . . . . . . . . . . . . . . . . 74 Contents ix

Beyond-Relational Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 FILESTREAM Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 FileTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 FileTable Prerequisites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Creating a FileTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Managing FileTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Full-Text Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Statistical Semantic Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Configuring Semantic Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Semantic Search Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Spatial Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Spatial Data Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Spatial Data Features Supported in SQL Server. . . . . . . . . . . . . . . . . 86 Spatial Type Improvements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Additional Spatial Improvements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Extended Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 PART 2  BUSINESS INTELLIGENCE DEVELOPMENT Chapter 6 Integration Services 93 Developer Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Add New Project Dialog Box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 General Interface Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Getting Started Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 SSIS Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Shared Connection Managers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Scripting Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Expression Indicators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Undo and Redo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Package Sort By Name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Status Indicators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Control Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Expression Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Execute Package Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102x Contents

Data Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Sources and Destinations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Transformations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Column References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Collapsible Grouping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Data Viewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Change Data Capture Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 CDC Control Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 CDC Data Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Flexible Package Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Deployment Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Supported Deployment Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Project Deployment Model Features. . . . . . . . . . . . . . . . . . . . . . . . . 118 Project Deployment Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Project Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Package Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 Parameter Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Post-Deployment Parameter Values. . . . . . . . . . . . . . . . . . . . . . . . . . 125 Integration Services Catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Catalog Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Catalog Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Environment Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Package Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Logging and Troubleshooting Tools. . . . . . . . . . . . . . . . . . . . . . . . . . 137 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Package File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Contents xi

Chapter 7 Data Quality Services 141 Data Quality Services Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Data Quality Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Data Quality Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Knowledge Base Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Domain Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Knowledge Discovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Matching Policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Data Quality Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Cleansing Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Matching Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Activity Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Integration Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Master Data Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Chapter 8 Master Data Services 175 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Upgrade Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Master Data Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Explorer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Integration Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 User and Group Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Model Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 MDS Add-in for Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Installation of the MDS Add-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Master Data Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Model-Building Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Shortcut Query Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Data Quality Matching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194xii Contents

Miscellaneous Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 SharePoint Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Metadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Bulk Updates and Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Chapter 9 Analysis Services and PowerPivot 199Analysis Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Server Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Analysis Services Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Tabular Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Multidimensional Model Storage. . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Server Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Programmability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217PowerPivot for Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Installation and Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Usability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Model Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222PowerPivot for SharePoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Installation and Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Chapter 10 Reporting Services 229New Renderers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Excel 2010 Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Word 2010 Renderer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230SharePoint Shared Service Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Feature Support by SharePoint Edition. . . . . . . . . . . . . . . . . . . . . . . 230 Shared Service Architecture Benefits. . . . . . . . . . . . . . . . . . . . . . . . . 231 Service Application Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Contents xiii

Power View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Data Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Power View Design Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Data Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Sort Order. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Multiple Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Highlighted Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Filters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Display Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 PowerPoint Export. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Data Alerts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Data Alert Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Alerting Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Data Alert Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Alerting Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Index 251 What do you think of this book? We want to hear from you! Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey, please visit: microsoft.com/learning/booksurveyxiv Contents

Introduction Microsoft SQL Server 2012 is Microsoft’s first cloud-ready information platform. It gives ­organizations effective tools to protect, unlock, and scale the power of their data, and it works across a variety of devices and data sources, from desktops, phones, and tablets, to datacenters and both private and public clouds. Our purpose in Introducing Microsoft SQL Server 2012 is to point out both the new and the improved capabilities as they apply to achieving mission-critical confidence, breakthrough insight, and using a cloud on your terms. As you read this book, we think you will find that there are a lot of exciting enhancements and new capabilities engineered into SQL Server 2012 that allow you to greatly enhance performance and availability at a low total cost of ownership, unlock new insights with pervasive data discovery across the organization and create business solutions fast—on your terms.Who Should Read This Book? This book is for anyone who has an interest in SQL Server 2012 and wants to understand its c­ apabilities. In a book of this size, we cannot cover every feature that distinguishes SQL Server from other databases or previous versions, and consequently we assume you have some ­familiarity with SQL Server already. You might be a database administrator (DBA), an application developer, a ­business intelligence solution architect, a power user, or a technical decision maker. Regardless of your role, we hope you can use this book to discover the features in SQL Server 2012 that are most beneficial to you. Assumptions This book expects that you have at least a minimal understanding of SQL Server from both a database administrator’s perspective and business-intelligence perspective. This also includes an ­understanding of the components associated with the product, such as the Database Engine, Analysis Services, R­ eporting Services, and Integration Services.Who Should Not Read This Book As mentioned earlier, the purpose of this book is to provide the reader with a high-level preview of the capabilities and features associated with SQL Server 2012. This book is not intended to be a s­ tep-by-step comprehensive guide. Moreover, there have been over 250 new improvements ­associated with the product; therefore, the book may not cover every improvement in its entirety. xv

How Is This Book Organized? SQL Server 2012, like its predecessors, is more than a database engine. It is a collection of c­ omponents you can implement either separately or as a group to form a scalable, cloud-ready i­nformation platform. In broad terms, this cloud-ready information platform consists of two ­categories: those that help you manage data and those that help you deliver business intelligence (BI). Accordingly, we divided this book into two parts to focus on the new capabilities for each of these areas. Part 1, “Database Administration,” is written with the database administrator (DBA) in mind and introduces readers to the numerous innovations in SQL Server 2012. Chapter 1, “SQL Server 2012 Editions and Engine Enhancements,” discusses the key enhancements affiliated with availability, scal- ability, performance, manageability, security, and programmability. It then outlines the different SQL Server 2012 editions, hardware and software requirements and installation, upgrade, and migration strategies available. In Chapter 2, “High-Availability and Disaster-Recovery Enhancements” readers learn about the new AlwaysOn features in SQL Server 2012—specifically, AlwaysOn Availability Groups and how they can be used to achieve a high level of confidence in your data and related capabilities. Chapter 3, “Performance and Scalability,” introduces a new index type called columnstore and explains how it can be leveraged to significantly accelerate data-warehousing workloads and other queries that are similar in nature. Chapter 4, “Security Enhancements,” covers the new security enhancements associated with the product, such as security manageability improvements and audit and authenti- cation enhancements. Finally, Chapter 5, “Programmability and Beyond-Relational Enhancements,” discusses the new beyond-relational enhancements positively impacting unstructured data, including refinements to existing technology features such as full-text search, spatial data, and FILESTREAM, as well as brand new capabilities like FileTables and statistical semantic search. Part 2, “Business Intelligence Development,” is written for readers who need to understand how SQL Server 2012 can help them more easily perform data integration, data quality improvements, master data management, data analysis, and reporting tasks. Chapter 6, “Integration Services,” explores the comprehensive changes in this release affecting development, deployment, and admin- istration of Integration Services packages. In Chapter 7, “Data Quality Services,” readers learn about the newest BI component available in SQL Server 2012 for centralizing data-quality activities, includ- ing how to store data-quality rules in a knowledge base and how to automate the discovery of rules. Chapter 8, “Master Data Services,” reviews the improved interface of this feature that simplifies the implementation, workflows, and administration of master data management. Chapter 9, “Analysis Services and PowerPivot,” introduces the new tabular server mode, shows how to develop tabular models, and describes enhancements to the Analysis Services platform and PowerPivot for Excel capabilities. Last, Chapter 10, “Reporting Services,” covers the improvements in SharePoint integration and details the self-service capabilities available with the new ad hoc reporting tool, Power View.xvi Introduction

Conventions and Features in This Book This book presents information using the following conventions, which are designed to make the information more readable and easy to follow: ■■ Each exercise consists of a series of tasks, presented as numbered steps (1, 2, and so on) listing each action you must take to complete the exercise. ■■ Boxed elements with labels such as “Note” provide additional information or alternative ­methods for completing a step successfully. ■■ Text that you type (apart from code blocks) appears in bold. ■■ Transact-SQL code is used to help you further understand a specific example.Pre-Release Software To help you get familiar with SQL Server 2012 as early as possible after its release, we wrote this book using examples that work with the Release Candidate 0 (RC0) version of the product. Consequently, the final version might include new features, and features we discuss might change or disappear. Refer to the “What’s New in SQL Server 2012” topic in Books Online for SQL Server at http://msdn.microsoft.com/en-us/library/ms130214%28v=sql.110%29.aspx for the most up-to-date list of changes to the product. Be aware that you might also notice some minor differences between the RTM version of the product and the descriptions and screen shots that we provide.Acknowledgments First, I would like to thank my colleagues at Microsoft Press and O’Reilly Media for providing me with another great authorship opportunity and putting together a stellar product in such a short period of time. Special thanks goes out to Devon Musgrave, Colin Lyth, Karen Szall, Carol Dillingham, Steve S­ agman, Mitch Tulloch, Roger LeBlanc, Christina Yeager, Anne Hamilton, Steve Weiss, and Ken Jones. The publishing team’s support throughout this engagement is much appreciated. Second, I would like to thank my immediate family for being very patient and understanding ­considering I was absent from their lives on many evenings and weekends while I worked on this book. I couldn’t have done this title without their love and support. I would also like to acknowledge Shirmattie Seenarine for assisting me on this title. Shirmattie’s hard work, contributions, edits, and rewrites are much appreciated. And to my author partner, Stacia M­ isner, I want to thank you for once again doing an excellent job on the business intelligence part of this book. Finally, this book would not have been possible without support from my colleagues on the SQL Server team who provided introductions, strategic technology guidance, technical reviews, and edits. I would like to thank the following people: Tiffany Wissner, Quentin Clark, Joanne Hodgins, Justin Introduction xvii

Erickson, Santosh Balasubramanian, Gopal Ashok, Goden Yao, Jack Richins, Susan Price, Michael Rys, Srini Acharya, Darmadi Komo, and Luis Daniel Soto Maldonado. –Ross Mistry I, too, want to thank the entire team that has supported Ross and me through yet another ­publication. It is a pleasure to collaborate again with all of you and with Ross. I look forward to future opportuni- ties should they arise! Each of the product teams has been very helpful, and I am grateful for their assistance and a­ ppreciative of the products they have developed. In particular, I wish to thank Matt Masson, ­Akshai Mirchandani, Marius Dumitru, and Thierry D’hers for their amazing responsiveness to my ­questions because I know they are very busy people. This is the first book for which my husband did not have the opportunity to demonstrate his s­ eemingly unending supply of patience with me because he was busy in another state preparing a new home for us. Therefore, I can’t really thank him for his support of this book in the typical sense, but I can thank him for ensuring that I will have a comfortable place in which to work and write later this year. He gives me great peace of mind and fuels my anticipation of things to come! –Stacia MisnerErrata & Book Support We’ve made every effort to ensure the accuracy of this book and its companion content. Any ­errors that have been reported since this book was published are listed on our Microsoft Press site at oreilly.com: http://go.microsoft.com/FWLink/?Linkid=245673 If you find an error that is not already listed, you can report it to us through the same page. If you need additional support, email Microsoft Press Book Support at [email protected]. Please note that product support for Microsoft software is not offered through the addresses above.We Want to Hear from You At Microsoft Press, your satisfaction is our top priority, and your feedback our most valuable asset. Please tell us what you think of this book at: http://www.microsoft.com/learning/booksurvey The survey is short, and we read every one of your comments and ideas. Thanks in advance for your input!Stay in Touch Let’s keep the conversation going! We’re on Twitter: http://twitter.com/MicrosoftPress.xviii Introduction

PART 1DatabaseAdministrationCHAPTER 1 SQL Server 2012 Editions and Engine Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . 3CHAPTER 2 High-Availability and Disaster-RecoveryCHAPTER 3 Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21CHAPTER 4 CHAPTER 5 Performance and Scalability . . . . . . . . . . . . . . . . . . . 41 Security Enhancements . . . . . . . . . . . . . . . . . . . . . . . 57 Programmability and Beyond-Relational Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 1



CHAPTER 1SQL Server 2012 Editions andEngine EnhancementsSQL Server 2012 is Microsoft’s latest cloud-ready information platform. Organizations can use SQL Server 2012 to efficiently protect, unlock, and scale the power of their data across the desktop,mobile device, datacenter, and either a private or public cloud. Building on the success of the SQLServer 2008 R2 release, SQL Server 2012 has made a strong impact on organizations worldwide withits significant capabilities. It provides organizations with mission-critical performance and availabil-ity, as well as the potential to unlock breakthrough insights with pervasive data discovery across theorganization. Finally, SQL Server 2012 delivers a variety of hybrid solutions you can choose from. Forexample, an organization can develop and deploy applications and database solutions on traditionalnonvirtualized environments, on appliances, and in on-premises private clouds or off-premises publicclouds. Moreover, these solutions can easily integrate with one another, offering a fully integratedhybrid solution. Figure 1-1 illustrates the Cloud Ready Information Platform ecosystem. Traditional Hybrid IT PublicNonvirtualized Cloud Private Off-premises cloud Cloud On-premises cloudNonvirtualized Pooled (Virtualized) Managed Servicesapplications Elastic Self-service Pooled (Virtualized) Usage-based Elastic Self-service Usage-basedFIGURE 1-1  SQL Server 2012, cloud-ready information platform To prepare readers for SQL Server 2012, this chapter examines the new SQL Server 2012 features,capabilities, and editions from a database administrator’s perspective. It also discusses SQL Server2012 hardware and software requirements and installation strategies. 3

SQL Server 2012 Enhancements for Database Administrators Now more than ever, organizations require a trusted, cost-effective, and scalable database platform that offers mission-critical confidence, breakthrough insights, and flexible cloud-based offerings. These organizations face ever-changing business conditions in the global economy and challenges such as IT budget constraints, the need to stay competitive by obtaining business insights, and the ability to use the right information at the right time. In addition, organizations must always be adjusting because new and important trends are regularly changing the way software is developed and deployed. Some of these new trends include data explosion (enormous increases in data usage), consumerization IT, big data (large data sets), and private and public cloud deployments. Microsoft has made major investments in the SQL Server 2012 product as a whole; however, the new features and breakthrough capabilities that should interest database administrators (DBAs) are divided in the chapter into the following categories: Availability, Manageability, Programmability, Scalability and Performance, and Security. The upcoming sections introduce some of the new features and capabilities; however, other chapters in this book conduct a deeper explanation of the major technology investments. Availability Enhancements A tremendous amount of high-availability enhancements were added to SQL Server 2012, which is sure to increase both the confidence organizations have in their databases and the maximum uptime for those databases. SQL Server 2012 continues to deliver database mirroring, log shipping, and rep- lication. However, it now also offers a new brand of technologies for achieving both high availability and disaster recovery known as AlwaysOn. Let’s quickly review the new high-availability enhancement AlwaysOn: ■■ AlwaysOn Availability Groups  For DBAs, AlwaysOn Availability Groups is probably the most highly anticipated feature related to the Database Engine for DBAs. This new capability protects databases and allows for multiple databases to fail over as a single unit. Better data redundancy and protection is achieved because the solution supports up to four secondary replicas. Of these four secondary replicas, up to two secondaries can be configured as syn- chronous secondaries to ensure the copies are up to date. The secondary replicas can reside within a datacenter for achieving high availability within a site or across datacenters for disas- ter recovery. In addition, AlwaysOn Availability Groups provide a higher return on investment because hardware utilization is increased as the secondaries are active, readable, and can be leveraged to offload backups, reporting, and ad hoc queries from the primary replica. The solution is tightly integrated into SQL Server Management Studio, is straightforward to deploy, and supports either shared storage or local storage. Figure 1-2 illustrates an organization with a global presence achieving both high availability and disaster recovery for mission-critical databases using AlwaysOn Availability Groups. In ­addition, the secondary replicas are being used to offload reporting and backups.4 PART 1  Database Administration

Replica2 A Primary Datacenter Reports A A 25% Replica3 50% 15% Replica1 70% Secondary Reports Backups Datacenter 25% A Primary Replica A 50% 15% A Secondary Replica Replica4 70% Synchronous Data Movement Asynchronous Data Movement Backups FIGURE 1-2  AlwaysOn Availability Groups for an organization with a global presence ■■ AlwaysOn Failover Cluster Instances (FCI)  AlwaysOn Failover Cluster Instances provides superior instance-level protection using Windows Server Failover Clustering and shared ­storage. However, with SQL Server 2012 there are a tremendous number of enhancements to improve availability and reliability. First, FCI now provides support for multi-subnet failover clusters. These subnets, where the FCI nodes reside, can be located in the same datacenter or in geographically dispersed sites. Second, local storage can be leveraged for the TempDB d­ atabase. Third, faster startup and recovery times are achieved after a failover transpires. Finally, improved cluster health-detection policies can be leveraged, offering a stronger and more flexible failover. ■■ Support for Windows Server Core  Installing SQL Server 2012 on Windows Server Core is now supported. Windows Server Core is a scaled-down edition of the Windows operating system and requires approximately 50 to 60 percent fewer reboots when patching servers. CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 5

This translates to greater SQL Server uptime and increased security. Server Core ­deployment options using Windows Server 2008 R2 SP1 and higher are required. Chapter 2, “High-­ Availability and Disaster-Recovery Options,” discusses deploying SQL Server 2012 on Server Core, including the features supported. ■■ Recovery Advisor  A new visual timeline has been introduced in SQL Server Management Studio to simplify the database restore process. As illustrated in Figure 1-3, the scroll bar b­ eneath the timeline can be used to specify backups to restore a database to a point in time. FIGURE 1-3  Recovery Advisor visual timeline Note  For detailed information about the AlwaysOn technologies and other high-­ availability enhancements, be sure to read Chapter 2. Scalability and Performance Enhancements The SQL Server product group has made sizable investments in improving scalability and ­performance associated with the SQL Server Database Engine. Some of the main enhancements that allow organizations to improve their SQL Server workloads include the following: ■■ Columnstore Indexes  More and more organizations have a requirement to deliver b­ reakthrough and predictable performance on large data sets to stay competitive. SQL Server 2012 introduces a new in-memory, columnstore index built directly in the relational engine. Together with advanced query-processing enhancements, these technologies provide blazing-fast performance and improve queries associated with data warehouse workloads by 10 to 100 times. In some cases, customers have experienced a 400 percent improvement in performance. For more information on this new capability for data warehouse workloads, review Chapter 3, “Blazing-Fast Query Performance with Columnstore Indexes.”6 PART 1  Database Administration

■■ Partition Support Increased  To dramatically boost scalability and performance associated with large tables and data warehouses, SQL Server 2012 now supports up to 15,000 partitions per table by default. This is a significant increase from the previous version of SQL Server, which was limited to 1000 partitions by default. This new expanded support also helps enable large sliding-window scenarios for data warehouse maintenance. ■■ Online Index Create, Rebuild, and Drop  Many organizations running mission-critical workloads use online indexing to ensure their business environment does not experience downtime during routine index maintenance. With SQL Server 2012, indexes containing varchar(max), nvarchar(max), and varbinary(max) columns can now be created, rebuilt, and dropped as an online operation. This is vital for organizations that require maximum uptime and concurrent user activity during index operations. ■■ Achieve Maximum Scalability with Windows Server 2008 R2  Windows Server 2008 R2 is built to achieve unprecedented workload size, dynamic scalability, and across-the-board availability and reliability. As a result, SQL Server 2012 can achieve maximum scalability when running on Windows Server 2008 R2 because it supports up to 256 logical processors and 2 terabytes of memory in a single operating system instance. Manageability Enhancements SQL Server deployments are growing more numerous and more common in organizations. This fact demands that all database administrators be prepared by having the appropriate tools to success- fully manage their SQL Server infrastructure. Recall that the previous releases of SQL Server included many new features tailored toward manageability. For example, database administrators could easily leverage Policy Based Management, Resource Governor, Data Collector, Data-tier applications, and Utility Control Point. Note that the product group responsible for manageability never stopped investing in manageability. With SQL Server 2012, they unveiled additional investments in SQL Server tools and monitoring features. The following list articulates the manageability enhancements in SQL Server 2012: ■■ SQL Server Management Studio  With SQL Server 2012, IntelliSense and Transact-SQL d­ ebugging have been enhanced to bolster the development experience in SQL Server ­Management Studio. ■■ IntelliSense Enhancements  A completion list will now suggest string matches based on partial words, whereas in the past it typically made recommendations based on the first ­character. ■■ A new Insert Snippet menu  This new feature is illustrated in Figure 1-4. It offers developers a categorized list of snippets to choose from to streamline code. The snippet picket tooltip can be launched by pressing CTRL+K, pressing CTRL+X, or selecting it from the Edit menu. ■■ Transact-SQL Debugger  This feature introduces the potential to debug Transact-SQL scripts on instances of SQL Server 2005 Service Pack 2 (SP2) or later and enhances breakpoint ­functionality. CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 7

FIGURE 1-4  Leveraging the Transact-SQL code snippet template as a starting point when writing new Transact-SQL statements in the SQL Server Database Engine Query Editor ■■ Resource Governor Enhancements  Many organizations currently leverage Resource Governor to gain predictable performance and improve their management of SQL Server workloads and resources by implementing limits on resource consumption based on incoming requests. In the past few years, customers have also been requesting additional improvements to the Resource Governor feature. Customers wanted to increase the maximum number of resource pools and support large-scale, multitenant database solutions with a higher level of isolation between workloads. They also wanted predictable chargeback and vertical isolation of machine resources. The SQL Server product group responsible for the Resource Governor feature introduced new capabilities to address the requests of its customers and the SQL Server community. To begin, support for larger scale multitenancy can now be achieved on a single instance of SQL Server because the number of resource pools Resource Governor supports increased from 20 to 64. In addition, a maximum cap for CPU usage has been introduced to enable predictable ­chargeback and isolation on the CPU. Finally, resource pools can be affinitized to an ­individual schedule or a group of schedules for vertical isolation of machine resources. A new Dynamic Management View (DMV) called sys.dm_resource_governor_resource_pool_ affinity improves database administrators’ success in tracking resource pool affinity. Let’s review an example of some of the new Resource Governor features in action. In the f­ollowing example, resource pool Pool25 is altered to be affinitized to six schedulers (8, 12, 13, 14, 15, and 16), and it’s guaranteed a minimum 5 percent of the CPU capacity of those ­schedulers. It can receive no more than 80 percent of the capacity of those schedulers. When there is contention for CPU b­ andwidth, the maximum average CPU bandwidth that will be allocated is 40 percent.8 PART 1  Database Administration

ALTER RESOURCE POOL Pool25 WITH(      MIN_CPU_PERCENT = 5,      MAX_CPU_PERCENT = 40,      CAP_CPU_PERCENT = 80,     AFFINITY SCHEDULER = (8, 12 TO 16),      MIN_MEMORY_PERCENT = 5,      MAX_MEMORY_PERCENT = 15, ); ■■ Contained Databases  Authentication associated with database portability was a challenge in the previous versions of SQL Server. This was the result of users in a database being associ- ated with logins on the source instance of SQL Server. If the database ever moved to another instance of SQL Server, the risk was that the login might not exist. With the introduction of contained databases in SQL Server 2012, users are authenticated directly into a user data- base without the dependency of logins in the Database Engine. This feature facilitates better portability of user databases among servers because contained databases have no external dependencies. ■■ Tight Integration with SQL Azure  A new Deploy Database To SQL Azure wizard, pictured in Figure 1-5, is integrated in the SQL Server Database Engine to help organizations deploy an on-premise database to SQL Azure. Furthermore, new scenarios can be enabled with SQL Azure Data Sync, which is a cloud service that provides bidirectional data synchronization between databases across the datacenter and cloud. FIGURE 1-5  Deploying a database to SQL Azure with the Deploy Database Wizard CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 9

■■ Startup Options Relocated Within SQL Server Configuration Manager, a new Startup ­Parameters tab was introduced for better manageability of the parameters required for startup. A DBA can now easily specify startup parameters compared to previous versions of SQL Server, which at times was a tedious task. The Startup Parameters tab can be invoked by right-clicking a SQL Server instance name in SQL Server Configuration Manager and then selecting Properties. ■■ Data-Tier Application (DAC) Enhancements  SQL Server 2008 R2 introduced the ­concept of data-tier applications. A data-tier application is a single unit of deployment containing all of the database’s schema, dependent objects, and deployment requirements used by an ­application. SQL Server 2012 introduces a few enhancements to DAC. With the new SQL Server, DAC upgrades are performed in an in-place fashion compared to the previous side-by- side upgrade process we’ve all grown accustomed to over the years. Moreover, DACs can be deployed, imported and exported more easily across premises and public cloud environments, such as SQL Azure. Finally, data-tier applications now support many more objects compared to the previous SQL Server release.Security EnhancementsIt has been approximately 10 years since Microsoft initiated its trustworthy computing initiative. Sincethen, SQL Server has had the best track record with the least amount of vulnerabilities and exposuresamong the major database players in the industry. The graph shown in Figure 1-6 is from the ­NationalInstitute of Standards and Technology (Source: ITIC 2011: SQL Server Delivers Industry-Leading­Security). It shows common vulnerabilities and exposures reported from January 2002 to June 2010.350300250200150100500 DB2 MySQL SQL Server OracleFIGURE 1-6  Common vulnerabilities and exposures reported to NIST from January 2002 to January 2010 With SQL Server 2012, the product continues to expand on this solid foundation to ­deliver­enhanced security and compliance within the database platform. For detailed informa-tion of all the security enhancements associated with the Database Engine, review Chapter 4,10 PART 1  Database Administration

“­ Security E­ nhancements.” For now, here is a snapshot of some of the new enterprise-ready security capabilities and controls that enable organizations to meet strict compliance policies and regulations: ■■ User-defined server roles for easier separation of duties ■■ Audit enhancements to improve compliance and resiliency ■■ Simplified security management, with a default schema for groups ■■ Contained Database Authentication, which provides database authentication that uses ­self-contained access information without the need for server logins ■■ SharePoint and Active Directory security models for higher data security in end-user reports Programmability Enhancements There has also been a tremendous investment in SQL Server 2012 regarding programmability. ­Specifically, there is support for “beyond relational” elements such as XML, Spatial, Documents, Digital Media, Scientific Records, factoids, and other unstructured data types. Why such investments? Organizations have demanded they be given a way to reduce the costs associated with managing both structured and nonstructured data. They wanted to simplify the development of applications over all data, and they wanted the management and search capabilities for all data improved. Take a minute to review some of the SQL Server 2012 investments that positively impact programmability. For more information associated with programmability and beyond relational elements, please review Chapter 5, “Programmability and Beyond-Relational Enhancements.” ■■ FileTable  Applications typically store data within a relational database engine; however, a myriad of applications also maintain the data in unstructured formats, such as documents, media files, and XML. Unstructured data usually resides on a file server and not directly in a relational database such as SQL Server. As you can imagine, it becomes challenging for ­organizations to not only manage their structured and unstructured data across these dis- parate systems, but to also keep them in sync. FileTable, a new capability in SQL Server 2012, addresses these challenges. It builds on FILESTREAM technology that was first introduced with SQL Server 2008. FileTable offers organizations Windows file namespace support and a­ pplication compatibility with the file data stored in SQL Server. As an added bonus, when a­ pplications are allowed to integrate storage and data management within SQL Server, full- text and semantic search is achievable over unstructured and structured data. ■■ Statistical Semantic Search  By introducing new semantic search functionality, SQL Server 2012 allows organizations to achieve deeper insight into unstructured data stored within the Database Engine. Three new Transact-SQL rowset functions were introduced to query not only the words in a document, but also the meaning of the document. ■■ Full-Text Search Enhancements  Full-text search in SQL Server 2012 offers better query performance and scale. It also introduces property-scoped searching functionality, which a­ llows organizations the ability to search properties such as Author and Title without the need CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 11

for developers to maintain file properties in a separate database. Developers can now also benefit by customizing proximity search by using the new NEAR operator that allows them to specify the maximum number of non-search terms that separate the first and last search terms in a match. ■■ Extended Events Enhancements  This new user interface was introduced to help simplify the management associated with extended events. New extended events for functional and performance troubleshooting were also introduced in SQL Server 2012.SQL Server 2012 Editions SQL Server 2012 is obtainable in three main editions. All three editions have tighter alignment than their predecessors and were designed to meet the needs of almost any customer with an increased investment in business intelligence. Each edition comes in a 32-bit and 64-bit version. The main ­editions, as shown in Figure 1-7, are the following: ■■ Standard edition ■■ Business Intelligence edition ■■ Enterprise editionEnterprise Standard Business Intelligence FIGURE 1-7  The main editions of SQL Server 2012 Enterprise Edition The Enterprise edition of SQL Server 2012 is the uppermost SKU; it is meant to meet the highest ­demands of large-scale datacenters and data warehouse solutions by providing mission-critical ­performance and availability for Tier 1 applications, the ability to deploy private-cloud, highly v­ irtualized environments, and large centralized or external-facing business-intelligence solutions.12 PART 1  Database Administration

Note  The Datacenter edition included in the previous version of SQL Server is now retired. All ­Datacenter capabilities are included in the Enterprise edition of SQL Server 2012. The Enterprise ­edition features include the following: ■■ Maximum number of cores is subject to the operating system being used ■■ Advanced high availability can be achieved with AlwaysOn ■■ Unlimited virtualization if the organization has software insurance ■■ Support for the new columnstore indexing feature ■■ Advanced auditing ■■ Transparent Data Encryption (TDE) ■■ Compression and partitioning ■■ Includes all of the Business Intelligence edition’s features and capabilities: ■■ Reporting ■■ Analytics ■■ Multidimensional BI semantic model ■■ Data-quality services ■■ Master data services ■■ In-memory tabular BI semantic model ■■ Self-service business intelligence Standard Edition The Standard edition is a data-management platform tailored toward departmental databases and limited business-intelligence applications that are typically appropriate for medium-class solutions, smaller organizations, or departmental solutions. It does not include all the bells and whistles of the Enterprise and Business Intelligence editions; however, it continues to offer best-in-class manage- ability and ease of use. Compared to the Enterprise and Business Intelligence editions, the Standard edition supports up to 16 cores and includes the following: ■■ Spatial support ■■ FileTable ■■ Policy-based management CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 13

■■ Corporate business intelligence ■■ Reporting ■■ Analytics ■■ Multidimensional BI semantic model ■■ Basic high availability can be achieved with AlwaysOn 2-Node Failover Clustering ■■ Up to four processors, up to 64 GB of RAM, one virtual machine, and two failover clustering nodes Business Intelligence Edition For the first time in the history of SQL Server, a Business Intelligence edition is offered. The ­Business Intelligence edition offers organizations the full suite of powerful BI capabilities such as scalable reporting and analytics, Power View, and PowerPivot. It is tailored toward organizations trying to achieve corporate business intelligence and self-service capabilities, but that do not require the full online transactional processing (OLTP) performance and scalability found in the Enterprise edition of SQL Server 2012. Here is a high-level list of what the new Business Intelligence edition includes: ■■ Up to a maximum of 16 cores for the Database Engine ■■ Maximum number of cores for business intelligence processing ■■ All of the features found in the Standard edition ■■ Corporate business intelligence ■■ Reporting ■■ Analytics ■■ Multidimensional BI semantic model ■■ Self-service capabilities ■■ Alerting ■■ Power View ■■ PowerPivot for SharePoint Server ■■ Enterprise data management ■■ Data quality services ■■ Master data services ■■ In-memory tabular BI semantic model ■■ Basic high availability can be achieved with AlwaysOn 2-Node Failover Clustering14 PART 1  Database Administration

Specialized Editions Above and beyond the three main editions discussed earlier, SQL Server 2012 continues to deliver specialized editions for organizations that have a unique set of requirements. Some examples include the following: ■■ Developer The Developer edition includes all of the features and functionality found in the Enterprise edition; however, it is meant strictly for the purpose of development, testing, and demonstration. Note that you can transition a SQL Server Developer installation directly into production by upgrading it to SQL Server 2012 Enterprise without reinstallation. ■■ Web  Available at a much more affordable price than the Enterprise and Standard editions, SQL Server 2012 Web is focused on service providers hosting Internet-facing web services environments. Unlike the Express edition, this edition doesn’t have database size restrictions, it supports four processors, and supports up to 64 GB of memory. SQL Server 2012 Web does not offer the same premium features found in Enterprise and Standard editions, but it still remains the ideal platform for hosting websites and web applications. ■■ Express  This free edition is the best entry-level alternative for independent software vendors, nonprofessional developers, and hobbyists building client applications. Individuals learning about databases or learning how to build client applications will find that this edi- tion meets all their needs. This edition, in a nutshell, is limited to one processor and 1 GB of memory, and it can have a maximum database size of 10 GB. Also, Express is integrated with Microsoft Visual Studio. Note  Review “Features Supported by the Editions of SQL Server 2012” at http://msdn.microsoft.com/en-us/library/cc645993(v=sql.110).aspx and http://www.microsoft.com/sqlserver/en/us/future-editions/sql2012-editions.aspx for a ­complete comparison of the key capabilities of the different editions of SQL Server 2012.SQL Server 2012 Licensing Overview The licensing models affiliated with SQL Server 2012 have been both simplified to better align to customer solutions and optimized for virtualization and cloud deployments. Organizations should process knowledge of the information that follows. With SQL Server 2012, the licensing for comput- ing power is core-based and the Business Intelligence and Standard editions are available under the Server + Client Access License (CAL) model. In addition, organizations can save on cloud-based computing costs by licensing individual database virtual machines. Because each customer environ- ment is unique, we will not have the opportunity to provide an overview of how the license changes affect your environment. For more information on the licensing changes and how they impact your o­ rganization, please contact your Microsoft representative or partner. CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 15

Review the following link for more information on SQL Server 2012 licensing:http://www.microsoft.com/sqlserver/en/us/future-editions/sql2012-licensing.aspx.Hardware and Software RequirementsThe recommended hardware and software requirements for SQL Server 2012 vary depending on thecomponent being installed, the database workload, and the type of processor class that will be used.Let’s turn our attention to Tables 1-1 and 1-2 to understand the hardware and software requirementsfor SQL Server 2012. Because SQL Server 2012 supports many processor types and operating systems, Table 1-1 c­ oversonly the hardware requirements for a typical SQL Server 2012 installation. Typical installationsinclude SQL Server 2012 Standard and Enterprise running on Windows Server 2008 R2 operatingsystems. Readers needing information for other scenarios should reference “Hardware and SoftwareR­ equirements for Installing SQL Server 2012” at http://msdn.microsoft.com/en-us/library/ms143506(v=SQL.110).aspx.TABLE 1-1  Hardware RequirementsHardware Component RequirementsProcessor Processor type: (64-bit) x64 Minimum: AMD Opteron, AMD Athlon 64, Intel Xeon with Intel EM64T support, Intel Pentium IV with EM64T support Processor speed: minimum 1.4 GHz; 2.0 GHz or faster recommended Processor type: (32-bit) Intel Pentium III-compatible processor or faster Processor speed: minimum 1.0 GHz; 2.0 GHz or faster recommendedMemory (RAM) Minimum: 1 GB Recommended: 4 GB or more Maximum: Operating system maximumDisk Space Disk space requirements will vary depending on the components you install. Database Engine: 811 MB Analysis Services: 345 MB Reporting Services: 304 MB Integration Services: 591 MB Client components: 1823 MBTABLE 1-2  Software RequirementsSoftware Component RequirementsOperating system Windows Server 2008 R2 SP1 64-bit Datacenter, Enterprise, Standard or Web edition or Windows Server 2008 SP2 64-bit Datacenter, Enterprise, Standard or Web edition.NET Framework Microsoft .NET Framework 3.5 SP1 and Microsoft .NET Framework 4.016 PART 1  Database Administration

Software Component Requirements Windows PowerShell SQL Server support tools and Windows PowerShell 2.0 software SQL Server 2012 - SQL Server Native Client Internet Explorer SQL Server 2012 - SQL Server Setup Support Files Virtualization Minimum: Windows Installer 4.5 Minimum: Windows Internet Explorer 7 or later version Windows Server 2008 SP2 running Hyper-V role or Windows Server 2008 R2 SP1 running Hyper-V role Note  The server hardware has supported both 32-bit and 64-bit processors for several years; however, Windows Server 2008 R2 is 64-bit only. Take this into serious consideration when planning SQL Server 2012 deployments.Installation, Upgrade, and Migration Strategies Like its predecessors, SQL Server 2012 is available in both 32-bit and 64-bit editions. Both can be ­installed with either the SQL Server Installation Wizard through a command prompt or with Sysprep for automated deployments with minimal administrator intervention. As mentioned earlier in the chapter, SQL Server 2012 can now be installed on the Server Core, which is an installation option of Windows Server 2008 R2 SP1 or later. Finally, database administrators also have the option to ­upgrade an existing installation of SQL Server or conduct a side-by-side migration when installing SQL Server 2012. The following sections elaborate on the different strategies. The In-Place Upgrade An in-place upgrade is the upgrade of an existing SQL Server installation to SQL Server 2012. When an in-place upgrade is conducted, the SQL Server 2012 setup program replaces the previous SQL Server binaries with the new SQL Server 2012 binaries on the existing machine. SQL Server data is automatically converted from the previous version to SQL Server 2012. This means data does not have to be copied or migrated. In the example in Figure 1-8, a database administrator is conducting an in-place upgrade on a SQL Server 2008 instance running on Server 1. When the upgrade is complete, Server 1 still exists, but the SQL Server 2008 instance and all of its data is upgraded to SQL Server 2012. Note  SQL Server 2005 with SP4, SQL Server 2008 with SP2, and SQL Server 2008 R2 with SP1 are all supported for an in-place upgrade to SQL Server 2012. Unfortunately, earlier versions such as SQL Server 2000, SQL Server 7.0, and SQL Server 6.5 cannot be upgraded to SQL Server 2012. CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 17

Pre-Migration Post-Migration Upgrade Server 1 Server 1SQL Server 2008 SQL Server 2012FIGURE 1-8  An in-place upgrade from SQL Server 2008 to SQL Server 2012 Review the following link for a detailed list of upgrades supported from earlier versions of SQLServer to SQL Server 2012: http://msdn.microsoft.com/en-us/library/ms143393(SQL.110).aspx.In-Place Upgrade Pros and ConsThe in-place upgrade strategy is usually easier and considered less risky than the side-by-side migra-tion strategy. Upgrading is fairly fast, and additional hardware is not required. Because the names ofthe server and instances do not change during an upgrade process, applications still point to the oldinstances. As a result, this strategy is less time consuming because there is no need to make changesto application connection strings. The disadvantage of an in-place upgrade is there is less granular control over the upgrade process.For example, when running multiple databases or components, a database administrator does nothave the flexibility to choose individual items for upgrade. Instead, all databases and components areupgraded to SQL Server 2012 at the same time. In addition, the instance remains offline during thein-place upgrade. This means if a mission-critical database or application or an important line-of-business application is running, a planned outage is required. Furthermore, if a disaster transpiresduring the upgrade, the rollback strategy can be a complex and time-consuming affair. A databaseadministrator might have to install the operating system from scratch, install SQL Server, and restoreall of the SQL Server data.SQL Server 2012 High-Level In-Place StrategyThe high-level in-place upgrade strategy for upgrading to SQL Server 2012 consists of the followingsteps: 1. Ensure the instance of SQL Server that will be upgraded meets the hardware and software requirements for SQL Server 2012. 2. Review the deprecated and discontinued features in SQL Server 2012. Refer to “Deprecated Database Engine Features in SQL Server 2012” at http://technet.microsoft.com/en-us/library /ms143729(v=sql.110).aspx for more information.18 PART 1  Database Administration

3. Ensure the version and edition of SQL Server that will be upgraded is supported. To review all the upgrade scenarios supported for SQL Server 2012, see “Supported Version and Edition Upgrades” at http://msdn.microsoft.com/en-us/library/ms143393(SQL.110).aspx. 4. Run the SQL Server Upgrade Advisor for SQL Server 2012. The Upgrade Advisor is a tool included with SQL Server 2012, or it can be downloaded directly from the Microsoft website. It analyzes the installed components on the SQL Server instance you plan to upgrade to ensure the system supports SQL Server 2012. The Upgrade Advisor generates a report identifying anomalies that require fixing or attention before the upgrade can begin. 5. Install the SQL Server 2012 prerequisites. 6. Begin the upgrade to SQL Server 2012 by running Setup. Side-by-Side Migration The term “side-by-side migration” describes the deployment of a brand-new SQL Server 2012 i­nstance alongside a legacy SQL Server instance. When the SQL Server 2012 installation is complete, a database administrator migrates data from the legacy SQL Server database platform to the new SQL Server 2012 database platform. Side-by-side migration is depicted in Figure 1-9. Note  You can conduct a side-by-side migration to SQL Server 2012 by using the same server. The side-by-side method can also be used to upgrade to SQL Server 2012 on a single server. Pre-Migration Post-Migration Migration Server 1 Data is migrated from SQL Server 2008 SQL Server 2008 Server 1 on Server 1 SQL Server 2008 to SQL Server 2012 on Server 2 Server 2 SQL Server 2012 FIGURE 1-9  Side-by-side migration from SQL Server 2008 to SQL Server 2012 CHAPTER 1  SQL Server 2012 Editions and Engine Enhancements 19

Side-by-Side Migration Pros and Cons The greatest benefit of a side-by-side migration over an in-place upgrade is the opportunity to build out a new database infrastructure on SQL Server 2012 and avoid potential migration issues that can occur with an in-place upgrade. The side-by-side migration also provides more granular control over the upgrade process because you can migrate databases and components independent of one another. In addition, the legacy instance remains online during the migration process. All of these advantages result in a more powerful server. Moreover, when two instances are running in parallel, additional testing and verification can be conducted. Performing a rollback is also easy if a problem arises during the migration. However, there are disadvantages to the side-by-side strategy. Additional hardware might need to be purchased. Applications might also need to be directed to the new SQL Server 2012 instance, and it might not be a best practice for very large databases because of the duplicate amount of storage required during the migration process. SQL Server 2012 High-Level, Side-by-Side Strategy The high-level, side-by-side migration strategy for upgrading to SQL Server 2012 consists of the f­ ollowing steps: 1. Ensure the instance of SQL Server you plan to migrate meets the hardware and software requirements for SQL Server 2012. 2. Review the deprecated and discontinued features in SQL Server 2012 by referring to “­Deprecated Database Engine Features in SQL Server 2012” at http://technet.microsoft.com /en-us/library/ms143729(v=sql.110).aspx. 3. Although a legacy instance will not be upgraded to SQL Server 2012, it is still beneficial to run the SQL Server 2012 Upgrade Advisor to ensure the data being migrated to the new SQL Server 2012 is supported and there is no possibility of a break occurring after migration. 4. Procure the hardware, and install your operating system of choice. Windows Server 2012 is recommended. 5. Install the SQL Server 2012 prerequisites and desired components. 6. Migrate objects from the legacy SQL Server to the new SQL Server 2012 database platform. 7. Point applications to the new SQL Server 2012 database platform. 8. Decommission legacy servers after the migration is complete.20 PART 1  Database Administration

CHAPTER 2High-Availability and Disaster-Recovery Enhancements Microsoft SQL Server 2012 delivers significant enhancements to well-known, critical ­capabilities such as high availability (HA) and disaster recovery. These enhancements promise to ­assist ­organizations in achieving their highest level of confidence to date in their server environments. ­Server Core ­support, breakthrough features such as AlwaysOn Availability Groups and active ­secondaries, and key ­improvements to features such as failover clustering are improvements that provide organizations a range of accommodating options to achieve maximum application avail- ability and data protection for SQL Server instances and databases within a datacenter and across ­datacenters. This chapter’s goal is to bring readers up to date with the high-availability and disaster-recovery capabilities that are fully integrated into SQL Server 2012 as a result of Microsoft’s heavy investment in AlwaysOn.SQL Server AlwaysOn: A Flexible and Integrated Solution Every organization’s success and service reputation is built on ensuring that its data is always ­accessible and protected. In the IT world, this means delivering a product that achieves the ­highest level of availability and disaster recovery while minimizing data loss and downtime. With the p­ revious versions of SQL Server, organizations achieved high availability and disaster recovery by using t­echnologies such as failover clustering, database mirroring, log shipping, and peer-to-peer r­eplication. Although organizations achieved great success with these solutions, they were tasked with combining these native SQL Server technologies to achieve their business requirements related to their Recovery Point Objective (RPO) and Recovery Time Objective (RTO). Figure 2-1 illustrates a common high-availability and disaster-recovery strategy used by o­ rganizations with the previous versions of SQL Server. This strategy includes failover clustering to protect SQL Server instances within each datacenter, combined with asynchronous database ­mirroring to provide disaster-recovery capabilities for mission-critical databases. 21

Primary DatacenterSecondaryDatacenter SQL Server 2008 R2 Failover ClusterSQL Server 2008 R2Failover Cluster Asynchronous Data Movement with Database MirroringFIGURE 2-1  Achieving high availability and disaster recovery by combining failover clustering with databasem­ irroring in SQL Server 2008 R2 Likewise, for organizations that either required more than one secondary datacenter or that didnot have shared storage, their high-availability and disaster-recovery deployment incorporated­synchronous database mirroring with a witness within the primary datacenter combined with logshipping for moving data to multiple locations. This deployment strategy is illustrated in Figure 2-2. Primary Datacenter Log ShippingDisaster Recover Log Shipping WitnessDatacenter 1 Disaster Recover SQL Server 2008 R2 Datacenter 2 Database MirroringSQL Server 2008 R2 SQL Server 2008 R2 Log Shipping Synchronous Data Movement with Database MirroringFIGURE 2-2  Achieving high availability and disaster recovery with database mirroring combined with log shippingin SQL Server 2008 R222 PART 1  Database Administration

Figures 2-1 and 2-2 both reveal successful solutions for achieving high availability and disaster recovery. However, these solutions had some limitations, which warranted making changes. In addi- tion, with organizations constantly evolving, it was only a matter of time until they voiced their own concerns and sent out a request for more options and changes. One concern for many organizations was regarding database mirroring. Database mirroring is a great way to protect databases; however, the solution is a one-to-one mapping, making multiple secondaries unattainable. When confronted with this situation, many organizations reverted to log shipping as a replacement for database mirroring because it supports multiple secondaries. Unfortu- nately, organizations encountered limitations with log shipping because it did not provide zero data loss or automatic failover capability. Concerns were also experienced by organizations working with failover clustering because they felt that their shared-storage devices, such as a storage area net- work (SAN), could be a single point of failure. Similarly, many organizations thought that from a cost perspective their investments were not being used to their fullest potential. For example, the passive servers in many of these solutions were idle. Finally, many organizations wanted to offload reporting and maintenance tasks from the primary database servers, which was not an easy task to achieve. SQL Server has evolved to answer many of these concerns, and this includes an integrated ­solution called AlwaysOn. AlwaysOn Availability Groups and AlwaysOn Failover Cluster Instances are new ­features, introduced in SQL Server 2012, that are rich with options and promise the highest level of availability and disaster recovery to its customers. At a high level, AlwaysOn Availability Groups is used for database protection and offers multidatabase failover, multiple secondaries, active second- aries, and integrated HA management. On the other hand, AlwaysOn Failover Cluster Instances is a feature tailored to instance-level protection, multisite clustering, and consolidation, while consistently providing flexible failover polices and improved diagnostics.AlwaysOn Availability Groups AlwaysOn Availability Groups provides an enterprise-level alternative to database mirroring, and it gives organizations the ability to automatically or manually fail over a group of databases as a single unit, with support for up to four secondaries. The solution provides zero-data-loss protection and is flexible. It can be deployed on local storage or shared storage, and it supports both synchronous and asynchronous data movement. The application failover is very fast, it supports automatic page repair, and the secondary replicas can be leveraged to offload reporting and a number of maintenance tasks, such as backups. Take a look at Figure 2-3, which illustrates an AlwaysOn Availability Groups deployment strategy that includes one primary replica and three secondary replicas. CHAPTER 2  High-Availability and Disaster-Recovery Enhancements 23

Secondary PrimaryDatacenter Datacenter SQL Server Replica2 A Reports A SQL Server 25% Replica3 A 50% 15% SQL Server Replica1 70%SQL Server Reports Backups A 25% 50% 15% 70%Replica4 A Primary Replica Backups A Secondary Replica Synchronous Data Movement Asynchronous Data MovementFIGURE 2-3  Achieving high availability and disaster recovery with AlwaysOn Availability Groups In this figure, synchronous data movement is used to provide high availability within the primarydatacenter and asynchronous data movement is used to provide disaster recovery. Moreover, second-ary replica 3 and replica 4 are employed to offload reports and backups from the primary replica. It is now time to take a deeper dive into AlwaysOn Availability Groups through a review of the newconcepts and terminology associated with this breakthrough capability.Understanding Concepts and TerminologyAvailability groups are built on top of Windows Failover Clustering and support both shared andn­ onshared storage. Depending on an organization’s RPO and RTO requirements, availability groupscan use either an asynchronous-commit availability mode or a synchronous-commit availabilitymode to move data between primary and secondary replicas. Availability groups include built-in­compression and encryption as well as support for file-stream replication and auto page repair.Failover between replicas is either automatic or manual. When deploying AlwaysOn Availability Groups, your first step is to deploy a Windows FailoverCluster. This is completed by using the Failover Cluster Manager Snap-in within Windows Server 2008R2. Once the Windows Failover Cluster is formed, the remainder of the Availability Groups configura-tions is completed in SQL Server Management Studio. When you use the Availability Groups wizards24 PART 1  Database Administration

to configure your availability groups, SQL Server Management Studio automatically creates the a­ ppropriate services, applications, and resources in Failover Cluster Manager; hence, the deployment is much easier for database administrators who are not familiar with failover clustering. Now that the fundamentals of the AlwaysOn Availability Groups have been laid down, the most natural question that follows is how an organization’s operations are enhanced with this feature. U­ nlike database mirroring, which supports only one secondary, AlwaysOn Availability Groups sup- ports one primary replica and up to four secondary replicas. Availability groups can also contain more than one availability database. Equally appealing is the fact you can host more than one availabil- ity group within an implementation. As a result, it is possible to group databases with application d­ ependencies together within an availability group and have all the availability databases seamlessly fail over as a single cohesive unit as depicted in Figure 2-4. FIGURE 2-4  Dedicated availability groups for Finance and HR availability databases In addition, as shown in Figure 2-4, there is one primary replica and two secondary replicas with two availability groups. One of these availability groups is called Finance, and it includes all the Finance databases; the other availability group is called HR, and it includes all the Human Resources databases. The Finance availability group can fail over independently of the HR availability group, and unlike database mirroring, all availability databases within an availability group fail over as a single unit. Moreover, organizations can improve their IT efficiency, increase performance, and reduce CHAPTER 2  High-Availability and Disaster-Recovery Enhancements 25

total cost of ownership with better resource utilization of secondary/passive hardware because these secondary replicas can be leveraged for backups and read-only operations such as reporting and maintenance. This is covered in the “Active Secondaries” section later in this chapter. Now that you have been introduced to some of the benefits AlwaysOn Availability Groups offers for an organization, let’s take the time to get a stronger understanding of the AlwaysOn Availability Groups concepts and how this new capability operates. The concepts covered include the following: ■■ Availability replica roles ■■ Data synchronization modes ■■ Failover modes ■■ Connection mode in secondaries ■■ Availability group listeners Availability Replica Roles Each AlwaysOn availability group comprises a set of two or more failover partners that are referred to as availability replicas. The availability replicas can consist of either a primary role or a secondary role. Note that there can be a maximum of four secondaries, and of these four secondaries only a maxi- mum of two secondaries can be configured to use the synchronous-commit availability mode. The roles affiliated with the availability replicas in AlwaysOn Availability Groups follow the same principles as the legendary Sith rule of two doctrines in the Star Wars saga. In Star Wars, there can be only two Siths at one time, a master and an apprentice. Similarly, a SQL Server instance in an availabil- ity group can be only a primary replica or a secondary replica. At no time can it be both because the role swapping is controlled by Windows Server Failover Cluster (WSFC). Each of the SQL Server instances in the availability group is hosted on either a SQL Server failover cluster instance (FCI) or a stand-alone instance of SQL Server 2012. Each of these instances resides on different nodes of a WSFC. WSFC is typically used for providing high availability and disaster recovery for well-known Microsoft products. As such, availability groups use WSFC as the underlying mecha- nism to provide internode health detection, failover coordination, primary health detection, and distributed change notifications for the solution. Each availability replica hosts a copy of the availability databases in the availability group. Because there are multiple copies of the databases being hosted on each availability replica, there isn’t a prerequisite for using shared storage like there was in the past when deploying traditional SQL Server failover clusters. On the flip side, when using nonshared storage, an organization must realize that storage requirements increase as the number of replicas it plans on hosting increases.26 PART 1  Database Administration

Data Synchronization Modes To move data from the primary replica to the secondary replica, each mode uses either ­synchronous-commit availability mode or asynchronous-commit availability mode. Give ­consideration to the following items when selecting either option: ■■ When you use the synchronous-commit mode, a transaction is committed on both replicas to guarantee transactional consistency. This, however, means increased latency. As such, this option might not be appropriate for partners who don’t share a high-speed network or who reside in different geographical locations. ■■ The asynchronous-commit mode commits transactions between partners without waiting for the partner to write the log to disk. This maximizes performance between the application and the primary replica and is well suited for disaster-recovery solutions. Availability Groups Failover Modes When configuring AlwaysOn availability groups, database administrators can choose from two failover modes when swapping roles from the primary to the secondary replicas. For administra- tors who are familiar with database mirroring, you’ll see that to obtain high availability and disaster recovery the failover modes are very similar to the modes in database mirroring. These are the two AlwaysOn failover modes available when using the New Availability Group Wizard: ■■ Automatic Failover  This replica uses synchronous-commit availability mode, and it supports both automatic failover and manual failover between the replica partners. A maximum of two failover replica partners are supported when choosing automatic failover. ■■ Manual Failover  This replica uses synchronous or asynchronous commit availability mode and supports only manual failovers between the replica partners. Connection Mode in Secondaries As indicated earlier, each of the secondaries can be configured to support read-only access for r­eporting or other maintenance tasks, such as backups. During the final configuration stage of A­ lwaysOn availability groups, database administrators decide on the connection mode for the ­secondary replicas. There are three connection modes available: ■■ Disallow connections  In the secondary role, this availability replica does not allow any ­connections. ■■ Allow only read-intent connections  In the secondary role, this availability replica allows only read-intent connections. ■■ Allow all connections  In the secondary role, this availability replica allows all connections for read access, including connections running with older clients. CHAPTER 2  High-Availability and Disaster-Recovery Enhancements 27

Availability Group Listeners The availability group listener provides a way of connecting to databases within an availability group via a virtual network name that is bound to the primary replica. Applications can specify the network name affiliated with the availability group listener in connection strings. After the availability group fails over from the primary replica to a secondary replica, the network name directs connections to the new primary replica. The availability group listener concept is similar to a Virtual SQL Server Name when using failover clustering; however, with an availability group listener, there is a virtual network name for each availability group, whereas with SQL Server failover clustering, there is one virtual network name for the instance. You can specify your availability group listener preferences when using the Create A New ­Availability Group Wizard in SQL Server Management Studio, or you can manually create or mod- ify an availability group listener after the availability group is created. Alternatively, you can use ­Transact-SQL to create or modify the listener too. Notice in Figure 2-5 that each availability group listener requires a DNS name, an IP address, and a port such as 1433. Once the availability group listener is created, a server name and an IP address cluster resource are automatically created within Failover Cluster Manager. This is certainly a testimony to the availability group’s flexibility and tight integration with SQL Server, because the majority of the configurations are done within SQL Server. FIGURE 2-5  Specifying availability group listener properties Be aware that there is a one-to-one mapping between availability group listeners and availability groups. This means you can create one availability group listener for each availability group. How- ever, if more than one availability group exists within a replica, you can have more than one avail- ability group listener. For example, there are two availability groups shown in Figure 2-6: one is for28 PART 1  Database Administration

the ­Finance availability databases, and the other is for the Accounting availability databases. Each a­ vailability group has its own availability group listener that clients and applications connect to. FIGURE 2-6  Illustrating two availability group listeners within a replica Configuring Availability Groups When creating a new availability group, a database administrator needs to specify an availability group name, such as AvailablityGroupFinance, and then select one or more databases to be part of in the availability group. The next step involves first specifying one or more instances of SQL Server to host secondary availability replicas, and then specifying your availability group listener preference. The final step is selecting the data-synchronization preference and connection mode for the second- ary replicas. These configurations are conducted with the New Availability Group Wizard or with Transact-SQL PowerShell scripts. Prerequisites To deploy AlwaysOn Availability Groups, the following prerequisites must be met: ■■ All computers running SQL Server, including the servers that will reside in the disaster-­ recovery site, must reside in the same Windows-based domain. ■■ All SQL Server computers must participate in a single Windows Server failover cluster even if the servers reside in multiple sites. ■■ All servers must partake in a Windows Server failover cluster. ■■ AlwaysOn Availability Groups must be enabled on each server. ■■ All the databases must be in full recovery mode. CHAPTER 2  High-Availability and Disaster-Recovery Enhancements 29

■■ A full backup must be conducted on all databases before deployment. ■■ The server cannot host the Active Directory Domain Services role. Deployment Examples Figure 2-7 shows the Specify Replicas page you see when using the New Availability Group Wizard. In this example, there are three SQL Server instances in the availability group called Finance: SQL01\Instance01, SQL02\Instance01, and SQL03\Instance01. SQL01\Instance01 is configured as the Primary replica, whereas SQL02\Instance01 and SQL03\Instance01 are configured as secondaries. SQL01\Instance01 and SQL02\Instance01 support automatic failover with synchronous data move- ment, whereas SQL-03\Instance01 uses asynchronous-commit availability mode and supports only a forced failover. Finally, SQL01\Instance01 does not allow read-only connections to the secondary, whereas SQL02\Instance01 and SQL03\Instance01 allow read-intent connections to the secondary. In addition, for this example, SQL01\Instance01 and SQL02\Instance01 reside in a primary datacenter for high availability within a site, and SQL03\Instance01 resides in the disaster recovery datacenter and will be brought online manually in the event the primary datacenter becomes unavailable. FIGURE 2-7  Specifying the SQL Server instances in the availability group One thing becomes vividly clear from Figure 2-7 and the preceding example: there are many ­different deployment configurations available to satisfy any organization’s high-availability and disaster-recovery requirements. See Figure 2-8 for the following additional deployment alternatives: ■■ Nonshared storage, local, regional, and geo target ■■ Multisite cluster with another cluster as the disaster recovery (DR) target30 PART 1  Database Administration

■■ Three-node cluster with similar DR target ■■ Secondary targets for backup, reporting, and DR A AA A A AA AA AA AA Multisite Cluster with Another Nonshared Storage, Local, Cluster as Disaster Recovery Target Regional, and Geo Target A AA A A A AA A AA Three-Node Cluster with Similar Secondary Targets for Backup, Disaster Recovery Target Reporting, and Disaster Recovery FIGURE 2-8  Additional AlwaysOn deployment alternatives Monitoring Availability Groups with the Dashboard Administrators have an opportunity to leverage a new and remarkably intuitive manageability dashboard in in SQL Server 2012 to monitor availability groups. The dashboard, shown in Figure 2-9, reports the health and status associated with each instance and availability database in the availability group. Moreover, the dashboard displays the specific replica role of each instance and provides syn- chronization status. If there is an issue or if more information on a specific event is required, a data- base administrator can click the availability group state, server instance name, or health status hyper- links for additional information. The dashboard is launched by right-clicking the Availability Groups folder in the Object Explorer in SQL Server Management Studio and selecting Show ­Dashboard. CHAPTER 2  High-Availability and Disaster-Recovery Enhancements 31

FIGURE 2-9  Monitoring availability groups with the new Availability Group dashboardActive Secondaries As indicated earlier, many organizations communicated to the SQL Server team their need to improve IT efficiency by optimizing their existing hardware investments. Specifically, organizations hoped their production systems for passive workloads could be used in some other capacity instead of remaining in an idle state. These same organizations also wanted reporting and maintenance tasks offloaded from production servers because these tasks negatively affected production workloads. With SQL Server 2012, organizations can leverage the AlwaysOn Availability Group capability to configure secondary replicas, also referred to as active secondaries, to provide read-only access to databases affiliated with an availability group. All read-only operations on the secondary replicas are supported by row versioning and are ­automatically mapped to snapshot isolation transaction level, which eliminates reader/writer ­contention. In addition, the data in the secondary replicas is near real time. In many circumstances, data latency between the primary and secondary databases should be within seconds. Note that the latency of log synchronization affects data freshness. For organizations, active secondaries are synonymous with performance optimization on a primary replica and increases to overall IT efficiency and hardware utilization.32 PART 1  Database Administration


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook