Microsoft® SQL
Server
2012
Administration
Adam
Jorgensen
Steven Wort
Ross LoForte
Brian
Knight
®
WILEYCONTENTS
INTRODUCTION xxxvii
CHAPTER 1: SQL SERVER 2012 ARCHITECTURE 1
SQL Server 2012
Ecosystem
1New
Important
Features in 2012 2Production DBA 2
Development
DBA 2Business
Intelligence
DBA andDeveloper
3SQL Server Architecture 4 Database Files and Transaction
Log
4SQLNative Client 5
Standard
System
Databases 6Schemas 8
Synonyms 8
Dynamic
Management
Objects
9SQL Server 2012 Data
Types
10Editions of SQL Server 17
Edition Overview 17
Licensing
18Summary
20CHAPTER 2: INSTALLING SQLSERVER 2012 BEST PRACTICES 21
Planning
theSystem
22Hardware Options 22
Software and Install Options 27
Installing
SQL Server 29 New Installs 30Side-by-Side
Installs 30Upgrades
30 Unattended Installs 30 Attended Installations 36Installing
Analysis
Services 40Multidimensional and Data
Mining
Mode(UDM
Mode)
41Tabular Mode 42
Installing
PowerPivot for SharePoint 43Post-Install
Configuration
45Configuring
SQLServerSettings
forPerformance 46tempdb
47Configuring
SQL ServerSetting
forSecurity
49Best Practices Analyzer
(BPA)
50 SQL ServerConfiguration
Manager
50Back It
Up
51Uninstalling
SQL Server 51Uninstalling Reporting
Services 51Uninstalling Analysis
Services 51Uninstalling
the SQLServer DatabaseEngine
52Troubleshooting
a FailedInstall 52Summary
52CHAPTER 3: UPGRADING SOL SERVER 2012 BEST PRACTICES 53
Why Upgrade
to SQL Server 2012? 53Risk
Mitigation
—the Microsoft Contribution 54Independent
Software Vendors and SQLCommunity
Contributions 54Upgrading
toSQL Server 2012 55In-Place
Upgrading
55Side-by-Side Upgrade
57In-Place
Upgrade
versusSide-By-SideUpgrade
Considerations 58Pre-Upgrade
Steps
and Tools 58Pre-Upgrade Steps
58Pre-Upgrade
Tools 59Backward
Compatibility
67Unsupported
and Discontinued Features inSQLServer2012 67 SQL Server 2012Deprecated
Database Features 67 Other SQL Server 2012Changes Affecting
Behavior 68SQL Server
Component
Considerations 68Upgrading
Full-TextCatalog
68Upgrading
ReportingServices 68Upgrading
to 64-Bit 69Post-Upgrade
Checks 69Poor
Query
Performance AfterUpgrade
69Summary
70CHAPTER 4:MANAGING ANDTROUBLESHOOTING
THE DATABASE ENGINE 71
Configuration
andAdministration
Tools 71SQL Server
Configuration
Manager 72Startup
Parameters 73CONTENTS
Startup
Stored Procedures 77Partially
Contained Databases 78Troubleshooting
Tools 79Dedicated AdministratorConnection 79
Rebuilding
theSystem
Databases 81Management
Studio 82Reports
82Configuring
SQL ServerinManagement
Studio 85Filtering Objects
90Error
Logs
90Activity
Monitor 91Monitoring
Processes
in T-SQL 96sp_who
and sp_who2 96sys.dm__exec_connections
97sys.dm_exec_sql_text
97Multiserver
Management
98Central
Management
Servers and ServerGroups
98 SQL ServerUtility
99Trace
Flags
99Getting Help
fromSupport
101SQLDumper.exe
101SQLDiag.exe
102Summary
104CHAPTER 5: AUTOMATINGSQL SERVER 105
Maintenance Plans 106
Maintenance PlanWizard 106 Maintenance Plan
Designer
109Automating
SQL
Serverwith SQL ServerAgent
111Jobs 112
Schedules 117
Operators 118
Alerts 121
SQL Server
Agent Security
126Service Account 126
AccesstoSQL
Agent
126 SQL ServerAgent
Proxies 127Configuring
SQL ServerAgent
130General
Properties
131Advanced
Properties
132 AlertSystem
Properties
133Job
System Properties
133Connection Properties 134 History
Properties
134 Database Mail 134 Architecture 135Security
135Configuration
136Archiving
140 Multiserver Administration 140Using
TokenReplacement
140Event
Forwarding
143Using
WMI 143Multiserver Administration —
Using
Master andTarget
Servers 145Summary
146CHAPTER 6: SERVICEBROKER IN SQL SERVER 2012 147
Asynchronous Messaging
147SQLService Broker Overview 148
SQL Server Service Broker Versus Other
Message
Queues 148Configuring
SQL Server Service Broker 149Enabling
149Message
Types
151 Contracts 151 Queues 152 Services 153 Routes 154 Priorities 156 Conversation Groups 156Using
SQL Server ServiceBroker 157Sending
Messages
157Receiving
Messages
160Sending
Messages
BetweenDatabases 161Sending Messages
Between Instances 162External Activation 163
Summary
165CHAPTER7: SQLSERVER CLR INTEGRATION 167
Introduction
to the CLR 167SQLServeras a .NET Runtime Host 169
Application
Domains 170T-SQLversus CLR 170
Enabling
CLRIntegration
171Creating
CLRAssemblies
172The Non-Visual Studio
Way
172Using
MicrosoftSQL Server Data Tools 174Securing
CLR 176Performance
Monitoring
177Windows
System
Monitor 177SQL Profiler 178
Dynamic Management
Views(DMVs)
179CLR
Integration Design
Goals 180Summary
180CHAPTER 8:SECURING THE DATABASE INSTANCE 181
Authentication
Types
181SQL Authentication 182
Windows Authentication 183
SQL Versus Windows Authentication 183
Authorizing
Securables 184Server Securables 185
DatabaseSecurables 189
Permission Chains 190 Cross Database Permission Chains 191
Row Level
Security
193Summary
194CHAPTER 9: CHANGE MANAGEMENT 197
Creating
Solutions andProjects
198Creating
aConnection 199Creating
aProject Query
200Policy-Based Management
200Policy-Based Management
Overview 201Policy-Based Management
Stepby
Step 202Scripting Policy-Based Management
209Policy-Based Management Implementation
210DDL
Trigger Syntax
212 DatabaseTriggers
212 ServerTriggers
217Trigger
Views 218Scripting
Overview 218sqlcmd
219 PowerShell 223Creating Change Scripts
225Data-Tier
Applications
225SQL Server Data Tools 229
VersionTables 229
CHAPTER 10: CONFIGURING THE SERVER FOR OPTIMAL
PERFORMANCE 233
What
Every
DBA Needsto Know About Performance 234The Performance
Tuning Cycle
234Defining
Good Performance 235Focus onWhat's Most
Important
236What
the Developer
DBANeeds
to Know About Performance 237Users 237
SQL Statements 237
Data
Usage
Patterns 238Robust Schema 238
What the Production DBA Needs toKnow About Performance 238
Optimizing
the Server 239Hardware
Management
241 CPU 241 x64 242 Cache 242Hyper-threading
243 Multicore 244System
Architecture 246Memory
248Physical Memory
248Physical
AddressSpace
248Virtual
Memory Manager
249The Page File 249
Page
Faults 250I/O
251Network 252
Disks 252
Storage
Considerations 255Designing
aStorage System
257Large Storage System
Considerations:SANSystems
262 ServerConfiguration
264Fragmentation
269Summary
271CHAPTER 11: OPTIMIZING SQL SERVER 2012 273
Application Optimization
273Defining
aWorkload 274System Harmony
Is the Goal 274The Silent Killer: I/O Problems 274
CONTENTS
SQL Server I/OProcessModel 275
DatabaseFile Placement 275
tempdb
Considerations 276Table and Index
Partitioning
279Why
ConsiderPartitioning?
280Creating
a Partition Function 281Creating
Filegroups
284Creating
a Partition Scheme 284Creating
Tables and Indexes 285Data
Compression
290
Row
Compression
290Page Compression
291Estimating
Space
Savings
293Monitoring
DataCompression
295Data
Compression
Considerations 295CPU Considerations 296
Cache
Coherency
297Affinity
Mask 297Max
Degree
of Parallelism(MAXDOP)
300Affinity
I/O Mask 301Memory
Considerations andEnhancements
302Tuning
SQL ServerMemory
30264-bitVersionsof SQLServer 2012 305
Data
Locality
306Max Server
Memory
307Index Creation
Memory Option
307 MinimumMemory
perQuery
308Resource Governor 309
The Basic Elementsof ResourceGovernor 309
Using
Resource Governorfrom SQL Server2012Management
Studio 313Monitoring
Resource Governor 314Summary
315CHAPTER 12: MONITORING YOUR SQL SERVER 317
The Goal of
Monitoring
318Determining
YourMonitoring
Objectives
318Establishing
a Baseline 318Comparing
CurrentMetricsto the Baseline 319Choosing
theAppropriate Monitoring
Tools 319 Performance Monitor 321CPU Resource Counters 322
Disk
Activity
324Memory
Usage
330Performance
Monitoring
Tools 333Monitoring
Events 335The Default Trace 337
system_health
Session 338SQL Trace 338
Event Notifications 352
SQLServer Extended Events 355
Monitoring
withDynamic Management
Views andFunctions
376What's
Going
on Inside SQLServer? 377Viewing
theLocking
Information 380Viewing
Blocking
Information 380Index
Usage
in a Database 381Indexes Not Usedin a Database 382 View Queries
Waiting
forMemory
Grants 383 Connected UserInformation 384Filegroup
FreeSpace
384Query
Plan andQuery
Text forCurrently Running
Queries 385Memory Usage
385Buffer Pool
Memory
Usage
385Monitoring
Logs
386
Monitoring
the SQLServer ErrorLog
386Monitoring
the Windows EventLogs
387Management
DataWarehouse
387System
Data CollectionSets 388Viewing
DataCollectedby
theSystem
Data Collection Sets 388Creating
Your Own Data Collection Set 390Examining
the Data YouCollected 392SQL
Server
StandardReports
393System
Center
Management
Pack 395SQL Server Best Practice
Analyzer
396System
Center Advisor 396Summary
397CHAPTER 13: PERFORMANCE TUNINGT SQL 399
Physical Query Processing
PartOne:
Compilation
and
Recompilation
399Compilation
400Recompilation
401Tools and Commands for
Recompilation
Scenarios 408CONTENTS
Parser and
Algebrizer
410Optimization
412Physical
Query
Processing
Part Two:Execution
417Database I/O Information 418
Working
withtheQuery
Plan 419Estimated Execution Plan 420 Actual Execution Plan 424
IndexAccess Methods 427
Fragmentation
438Statistics 439
Join
Algorithms
440Data Modification
Query
Plan 443Query
Processing
Enhancementson PartitionedTables and Indexes 444Gathering Query
Plans forAnalysis
with SQL Trace 446Summary
447CHAPTER 14: INDEXING YOUR DATABASE 449
Noteworthy
Index-Related
Features in SQLServer 449What's New forIndexes in SQL Server 2012 450 Index Featuresfrom SQLServer
2008R2,
SQL Server2008,
and SQLServer 2005 452
Partitioned Tables
and Indexes 455Understanding
Indexes 455CreatingIndexes 458
Why Use Both Partitioned Tablesand Indexes? 459
Creating
PartitionedTables 460Index Maintenance 461
Monitoring
IndexFragmentation
462Cleaning Up
Indexes 462Improving Query
Performance with Indexes 464Database
Tuning
Advisor 468Too
Many
Indexes? 469Summary
471
CHAPTER 15: REPLICATION 473
Replication
Overview
473Replication Components
474Replication Types
476Replication
Enhancements in SQL Server 2012 478Replication
Models
478
Multiple Publishers, Single
Subscriber 480Multiple
PublishersAlsoSubscribing
481Updating
Subscriber 482Peer-to-Peer 483
Implementing Replication
484Setting Up Snapshot Replication
484Setting Up
Distribution 484Implementing Snapshot Replication
487Implementing
Transactional andMerge
Replication 497Peer-to-Peer
Replication
498Setting Up
Peer-to-PeerReplication
498Configuring
Peer-to-PeerReplication
499Scripting Replication
502Monitoring Replication
502Replication
Monitor 502 Performance Monitor 505Replication
DMVs 505sp_replcounters
506Summary
507CHAPTER 16: CLUSTERING SQL SERVER 2012 509
Clustering
and YourOrganization
510What
Clustering
Can Do 510What
Clustering
Cannot Do 511Choosing
SQLServer 2012Clustering
for theRight
Reasons 512Alternatives to
Clustering
512Clustering:
TheBig
Picture 514How
Clustering
Works 515Clustering Options
518Upgrading
SQL ServerClustering
520Don't
Upgrade
520Upgrading
Your SQL Server 2012 ClusterIn Place 520Rebuilding
Your Cluster 521Back-Out Plan 523
Which
Upgrade Option
Is Best? 523Getting Prepared
forClustering
523Preparing
the Infrastructure 523Preparing
the Hardware 524Clustering
Windows Server 2008 527Before
Installing
Windows 2011Clustering
527Installing
WindowsServer 2008 FailoverClustering
528Preparing
Windows Server 2008 forClustering
531CONTENTS
Clustering
MicrosoftDistributed Transaction Coordinator
532Clustering
SQL Server 2012 534Step by Step
to ClusterSQL Server 534Installing
the Service Pack and CumulativeUpdates
540Test,
Test,
and TestAgain
540Managing
andMonitoring
the Cluster 542Troubleshooting
ClusterProblems
543How toApproach WindowsFailover
Clustering
Troubleshooting
544Doing
ItRight
the First Time 544Gathering
Information 544Resolving
Problems 545Working
with Microsoft 545Summary
546CHAPTER 17: BACKUP AND RECOVERY 547
Types
of Failure 548Hardware Failure 548
Data Modification Failure 548
SoftwareFailure 550
Local Disasters 550
Making
Plans
551Backup/Recovery
Plan 551Disaster
Recovery
Planning
554Creating
the DisasterRecovery
Plan 556Maintaining
the Plan 558Overview of
Backup
and
Restore 559How
Backup
Works 559Copying
Databases 562Backup
Compression
570Comparing
Recovery
Models 571Choosing
a Model 573Switching Recovery
Models 574Backing
UpHistory
Tables 575Permissions
Required
forBackup
and Restore 576Backing Up System
Databases 577Full-Text
Backup
578Verifying
theBackup Images
578HowRestore Works 579
Preparing
forRecovery
581Recoverability
Requirements
581Data
Usage
Patterns 582MaintenanceTime Window 583
Other
High-Availability
Solutions 584Developing
and
Executing
aBackup
Plan 585Using
SQL ServerManagement
Studio 585Database Maintenance Plans 589
Using
Transact-SQLBackup
Commands 591Managing Backups
593Backup
and Restore Performance 594Performing
Recovery
Restore ProcessSQL Server
Management
Studio Restore 599T-SQLRestore Command 602
Restoring System
Databases 602Archiving
Data 604SQL Server Table
Partitioning
604Partitioned View 605
Summary
606CHAPTER 18: SQL SERVER 2012 LOG SHIPPING 607
Log Shipping Deployment
Scenarios
608Log
Shipping
to Createa WarmStandby
Server 608Log Shipping
as a DisasterRecovery
Solution 609Log Shipping
as aReport
DatabaseSolution 610Log-Shipping
Architecture 611Primary
Server 611Secondary
Server 611Monitor Server 612
Log
Shipping
Process 612System Requirements
613Network 613
Identical
Capacity
Servers 613Storage
614Software 614
Deploying
Log
Shipping
614Initial
Configuration
614Deploying
withManagement
Studio 616Deploying
with T-SQLCommands 624Monitoring
andTroubleshooting
624Monitoringwith
Management
Studio 625Monitoring
with Stored Procedures 626Troubleshooting
Approach
626CONTENTS
Managing Changing
Roles 627Synchronizing
Dependencies
627Switching
Roles fromthePrimary
toSecondary
Servers 630Switching
BetweenPrimary
andSecondary
Servers 632Redirecting
Clients to Connect to theSecondary
Server 632 DatabaseBackup
Plan 633Integrating Log Shipping
with
OtherHigh-Availability
Solutions
634SQL Server 2012 Data
Mirroring
634 WindowsFailoverClustering
635 SQL Server 2012Replication
635Removing Log Shipping
636Removing Log Shipping
withManagement
Studio 636Removing
Log Shipping
with T-SQLCommands 636Log-Shipping
Performance 637Upgrading
toSQL Server 2012Log Shipping
638Minimum Downtime
Approach
638 With DowntimeApproach
638Deploy Log
Shipping Approach
639Summary
639CHAPTER 19: DATABASE MIRRORING 641
Overview of Database
Mirroring
641Operating
ModesofDatabaseMirroring
643Database
Mirroring
In Action 645Preparing
theEndpoints
646Preparing
the DatabaseforMirroring
652Initial
Synchronization
BetweenPrincipal
and Mirror 653Establishing
theMirroring
Session 653High-Safety
Operating
ModeWithout AutomaticFailover 655High-Safety
Operating
Mode with Automatic Failover 655High-Performance
Operating
Mode 657Database
Mirroring
and SQL Server2012 Editions 658 DatabaseMirroring Catalog
Views 658sys.database_mirroring
658sys.database__mirroring_witnesses
660sys.database_mirroring_endpoints
660Database
Mirroring
RoleChange
661Automatic Failover 661
Manual Failover 664
Forced Failover 666
Database
Availability
Scenarios 667Principal
Is Lost 667Mirror is Lost 668
Witness Is Lost 669
Mirror and Witness Are Lost 669
Monitoring
DatabaseMirroring
670
Monitoring Using System
Monitor 670Monitoring
Using
DatabaseMirroring
Monitor 672Setting
Thresholdson CountersandSending
Alerts 676Troubleshooting
DatabaseMirroring
678Troubleshooting Setup
Errors 678Troubleshooting
RuntimeErrors 679Automatic
Page Repair
680Preparing
the Mirror ServerforFailover
681Hardware,
Software,and ServerConfiguration
681 DatabaseAvailability
During
Planned Downtime 682SQL Job
Configuration
onthe Mirror 684 DatabaseTRUSTWORTHY Bitonthe Mirror 684Client Redirection tothe Mirror 684
Mirroring Multiple
Databases 685Database
Mirroring
and OtherHigh-Availability
Solutions
686 DatabaseMirroring
versusClustering
687Database
Mirroring
versus TransactionalReplication
687 DatabaseMirroring
versusLog
Shipping
687Database
Mirroring
VersusAvailability
Groups
688Mirroring
Event ListenerSetup
688Database
Snapshots
692Summary
693CHAPTER 20: INTEGRATION SERVICES
ADMINISTRATION
AND
PERFORMANCE
TUNING 695ATourof
Integration
Services 696Integration
Services Uses 696The Main Parts of
Integration
Services 697Project
Management
andChange
Control 699Administration
oftheIntegration
Services
Service 699An Overviewof the
Integration
Services Service 700Configuration
700Event
Logs
704Monitoring
Activity
705Administration
ofIntegration
ServicesPackages
inPackage Deployment
Model
706Using Management
Studio forPackage Management
706Deployment
709Administration of
Integration
ServicesPackages
in
Project Deployment
Model 712Configuring
the SSISCatalog
712Deploying Packages
714Configuring Packages
716Execution and
Scheduling
719 RunningPackages
in SQL ServerData Tools 720Running Packageswith the SQL Server
Import
and
Export
Wizard 720Running Packages
with DTExec 720Running Packages
with DTExecUl(Package
Deployment Model)
721Running Packages
with the ExecutePackage
Tool(Project Deployment Model)
722Scheduling
Execution with SQL ServerAgent
723Running
Packages
with T-SQL 725Applying Security
toIntegration
Services 725An Overview of
Integration
ServicesSecurity
725Securing Packages
inPackage Deployment
Model 726Summary
728CHAPTER 21: ANALYSIS SERVICES ADMINISTRATION
AND PERFORMANCE TUNING 729 Tour of
Analysis
Services 730MOLAP Components 731
Tabular ModelComponents 732
Analysis
Services ArchitecturalComponents
732Administering Analysis
Services Server 733Server
Properties
734Required
Services 735Analysis
ServicesScripting Language
736Administering
Analysis
Services Databases 737Deploying Analysis
ServicesDatabases 737Processing Analysis
ServicesObjects
741Backing Up
andRestoring
Analysis
Services Databases 745Synchronizing
AnalysisServices Databases 748Analysis
Services PerformanceMonitoring
andTuning
749Monitoring Analysis
Services Events 749Creating
Traces forReplay
750Using Flight
Recorder for After-the-FactAnalysis
751Management
ofAnalysis
Services MOLAP ModelStorage
752Storage
Modes 752Partition
Configuration
753Designing Aggregations
in the MOLAP Model 755Applying
Security
toAnalysis
Services in the MOLAPModel
758Server Role 758
Database Role 758
Database Role Permissions 750
Applying
Security
toAnalysis
Services in the TabularModel 762Summary
763CHAPTER 22: SQL SERVER REPORTING SERVICES
ADMINISTRATION 765
SQL Server
Reporting
ServicesConfiguration Manager
765The ServiceAccount 768
The Web Service URL 769
Reporting
Services Databases 771The
Report Manager
URL 773Settings
774Execution Account 775
Encryption
Keys
776Scale-out
Deployment
777Report
ServerProperties
778General
Properties Page
779 ExecutionProperties Page
780History Properties Page
781Logging Properties Page
781Security Properties
Page
782Advanced
Properties Page
783The
Report
ExecutionLog
784Report
Builder 786Report
Manager
795Managing Report
Manager
796Managing Reports
803Summary
814CHAPTER 23: SQL SERVER 2012 SHAREPOINT 2010INTEGRATION 815
Components
ofIntegration
815PowerPivot 816
Reporting
Services 818Power View 819
Service
Application
Architecture 820Data Refresh 820
CONTENTS
Using
Data Connections in Excel 820PerformancePoint
Data Refresh 826Visio ServicesData Refresh 827
PowerPivotData Refresh 829
Summary
836CHAPTER 24: SQL AZURE ADMINISTRATION
AND CONFIGURATION 837 Introduction to
SQL
Azure837
SQL AzureArchitecture
838 ClientLayer
838 ServicesLayer
838 PlatformLayer
839 InfrastructureLayer
839Configuring
SQL Azure 839Serverand Database
Provisioning
840Throttling
and LoadBalancing
844Configuring
SQL Azure Firewalls 845Connecting
toSQLAzure 847Administering
SQL
Azure 848Creating Logins
and Users 848Assigning
AccessRights
850Working
with SQL Azure 850Backups
with SQL Azure 852Object
Explorer
for SQLAzure 852What's
Missing
in SQLAzure
854Summary
855CHAPTER 25: ALWAYSON AVAILABILITY GROUPS 857
Architecture 858
Availability
Group Replicas
and Roles 858Availability
Modes 859Types
of FailoverSupported
859Allowing Read-Only
Access toSecondary
Replicas
860Availability Group Example
862Configure
a NewAvailability Group
862Configure
anExisting Availability
Group
870Availability Group
FailoverOperation
872Suspend
anAvailability
Database 873Resume an
Availability
Database 874Active Secondary
forSecondary Read-Only
875Read-Only
Access Behavior 876Secondary Replica
ClientConnectivity
876Performance 878
Backup
ontheSecondary Replica
879Evaluate