sqlday2013_denny cherry - sqlserver2012inahighlyavailableworld

74
SQL Server 2012 High Availability and Disaster Recovery Denny Cherry [email protected] twitter.com/mrdenny

Upload: polish-sql-server-user-group

Post on 24-Jan-2015

503 views

Category:

Education


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL Server 2012 High Availability and Disaster Recovery

Denny Cherry

[email protected]

twitter.com/mrdenny

Page 2: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

About Me

• Denny Cherry & Associates Consulting

• Author or Coauthor of 7 books

• 8+ SQL Mag articles

• Dozens of other articles

• Microsoft MVP

• Microsoft Certified Master

• VMware vExpert

• Microsoft Certified Trainer

2

Page 3: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

I love questions

• Try and keep them on point…

• We can always chat during lunch or after the session…

• Remember…

– There’s no such thing as a dumb question…

– But don’t take it personally if we all laugh at with you.

3

Page 4: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Today’s Topics

• Database Log Shipping

• Database Mirroring

• AlwaysOn

– Windows and SQL Server Clustering

– Availability Groups

• When should I use each one?

Page 5: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL SERVER LOG SHIPPING

Page 6: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

What Is Log Shipping?

• Oldest HA/DR solution available

• Backup of logs from one server

• Restoring of logs to multiple servers

• Allows backup servers to be keep X minutes behind

Page 7: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Differences Between Native and Roll Your Own

Native

• Nice UI for setup

• Easy configuration of restore delays

• Integrated with SSMS

• Errors can be cryptic

• UI has a couple of bugs

Roll Your Own

• Total control of the process

• Very easy to add or remove destination servers

• All T-SQL or PoSH Based

Page 8: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 9: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Rolling Your Own…

• Can be done through all T-SQL or not

• Can use one file, or one file per T-Log backup

• Can be setup to keep one of more targets behind production

Page 10: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 11: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Failing Over Log Shipping

• Configure application to use a DNS alias to connect

• Fail the database over (methods here vary)

• Change DNS to point to the new server

• Force DNS replication

• Flush DNS cache on all client machines

Page 12: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Native Failover Process

• Just use the UI to failover

Page 13: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Roll Your Own Failover Process

• Backup final log on source with NORECOVERY

• Restore final log on target with RECOVERY

Page 14: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 15: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Automatic Failover

NO!

Page 16: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Questions?

Page 17: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

DATABASE MIRRORING

Page 18: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Why do I care about a deprecated feature?

• Database Mirroring has been deprecated as of SQL Server 2012

• Feature will be in the product until at least 2016

• Feature will be supported by Microsoft until at least 2026

Page 19: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

What Does Mirroring Do?

• Keeps a second copy of a database updated

• Runs synchronously or asynchronously

– Synchronous mirroring supported in Standard+

– Asynchronous mirroring supported in Enterprise

Page 20: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

What Isn’t Mirrored?

• Logins

• Jobs

• SSIS Packages

• FILESTREAM

• FILETABLE

• Basically Anything which is outside of the database doesn’t come across

Page 21: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

How does Mirroring Work?

• Feeds a transaction log stream from one machine to another

• Log is applied and committed as soon as it arrives

Page 22: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Database Mirroring Options

Synchronous

• Two or Three Servers

• Supports Automatic Failover

• Standard Edition Feature

• Witness Can Be Express

Asynchronous

• Two Servers

• Enterprise Edition Feature

• Both instances must be EE

Page 23: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Mirroring Communication

• Dedicated TCP Endpoint

• Default TCP port 5022

• Only Mirroring Uses Endpoint

• Data Encrypted By Default

• Authentication Can Be Windows Auth or Cert

Page 24: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Mirroring Configuration

Page 25: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Mirroring Dashboard

Page 26: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Failing Over Mirroring

• Triggered on primary server

• T/SQL or SSMS

Page 27: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 28: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Questions?

Page 29: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

ALWAYSON

Page 30: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

What Is AlwaysOn?

• Umbrella Term covering multiple features

– SQL Server Clustering

• Local Clustering

• Geographically Dispersed Clusters

– Availability Groups

Page 31: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Questions?

Page 32: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL SERVER CLUSTERING

Page 33: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL SERVER CLUSTERINGConcepts…

Page 34: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL Server Cluster Configuration

• Built on top of Windows Failover Clustering

• Single set of database files

• Multiple instances configured to use these database files

• Only a Single instance can host the databases at once

Page 35: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL Server Cluster Configuration

Page 36: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL Server Cluster Configuration

Page 37: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL Server Cluster Configuration

Page 38: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

License Limitations

• Standard Edition – 2 nodes

• BI Edition - 2 nodes

• Enterprise Edition – OS Maximum

Page 39: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Instances Redefined

• Instances are installed on multiple machines

• Multiple instances are configured

• Each single clustered instance has the same name

• Separate clustered instances have different names

Page 40: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Instances Redefined

• Each Instance is installed and managed separately

• Each Instance is installed on each of the servers of the cluster (or a subset)

• Each instance requires a separate network name and IP address

Page 41: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Resource Dependencies

10.2.4.78

Page 42: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

New SQL 2012 Clustering Features

• Multi-Subnet Failover Support

• Network Storage Support

• Windows Core Mode Installs

• TempDB on local disk

Page 43: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Multi-Subnet Failover

• Two different IP Addresses configured for SQL

• Only one comes online at a time using OR statements within SQL Server

• Uses network subnet configuration to determine IP to bring online

Page 44: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Multi-Subnet Failover

Thanks to Allan Hirt for the images!

Page 45: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Quorum

• For the cluster to start and stop services, it must have quorum

• Quorum is the requirement to have a vote, without being able to have a tie

• Quorum is used to decide which node of the cluster will host the resource groups

Page 46: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Quorum Options

• Majority Node Set

• Network Share Quorum

• Quorum Drive

Page 47: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL SERVER CLUSTERINGPractical Information

Page 48: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Steps to Clustering Windows

• Run Validation

• Run Clustering Wizard

Page 49: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 50: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Steps to Clustering Windows

• Launch the Clustered Instance wizard

• Select the components to install

• Configure the network name and IP address which the clustered SQL Server instance will use

• Assign disks to the clustered SQL Instance

• Define the resource group name

Page 51: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Multi-Node Installation

• Each instance is installed on each node separately

• Secondary node installations are much simpler

Page 52: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 53: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Failover Detection

• Cluster Service Logs into SQL Server regularly

• Cluster Service runs a basic query

• Number of failed attempts acceptable can be configured

• Number of times instance can failover within X number of minutes can be configured

• Failback is optional (and usually not recommended)

Page 54: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 55: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Questions?

Page 56: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

ALWAYS ON AVAILABILITY GROUPS

Page 57: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

New Terms to Know

• Availability Groups

• Availability Replicas

• Availability Databases

• Availability Group Listener

Page 58: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Availability Group Topology

Page 59: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Are AG’s Just Mirroring?

• AGs support 4 secondary replicas

– 2 Synchronous

– 4 Asynchronous

• Transaction Log Stream

• Uses encrypted Mirroring endpoint

• Secondary Replicas can be read only

• Automatic Failover for Synchronous

Page 60: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

What To Do About Cluster Quorum

Single Site

• Shared Quorum

• Majority Node Set– Odd number of nodes

Multi Site

• Majority Node Set– Nodes in DR site disabled

from voting

– Odd Number of nodes in primary site

Page 61: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

What To Do About Cluster Quorum

Single Site

• Shared Quorum

• Majority Node Set– Odd number of nodes

Multi Site

• Majority Node Set– Nodes in DR site disabled

from voting

– Odd Number of nodes in primary site

• Asymmetric Disk Only Quorum

Page 62: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

FCI + AGs

• Availability Groups can be built on top of FCIs

• Allows for additional redundancy at each site

A

A

A

Page 63: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Setup Process

• Cluster Windows

• Install SQL on needed nodes

• Enable AlwaysOn Availability Groups

• Create/Attach/Restore database(s)

• Configure AlwaysOn Availability Group

Page 64: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
Page 65: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Cross Support With Other Features

• FILESTREAM

• FileTable

• ColumnStore Indexes

• Full Text Indexes

• Replication

– Publication

– Subscription

• Contained Databases

• Clustering

• Policy Based Management

• Maintenance Plans

• Auditing

• User Defined Server Roles

• Transparent Data Encryption

• SQL Service Broker

Page 66: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Questions?

Page 67: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

WHEN SHOULD I USE EACH ONE?

Page 68: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Business Case #1

• Single Data Center

• No Single Points of Failure

• Least Cost

• Multiple Redundant Copies

• 30 minute or less failover time

Page 69: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Business Case #2

• All Data is stored on the SAN

• Three Data Centers

– Two Copies of the data in the primary data center

– Two Copies of the data in the secondary data center

– One copy of the data in the tertiary data center

• Short Failover Time

• Automatic Failover To Secondary Data Center

• SAN Replication is available

Page 70: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Business Case #3

• All data is stored on DAS

• Six Offices, 50 miles between each

• Automatic Failover Between 2 offices

• No Single Points of Failure

Page 71: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Business Case #4

• All data is stored on the SAN

• 3 Redundant Servers

• Lowest Hardware Costs

Page 72: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

Business Case #5

• Three Data Centers

– 20 miles between primary and secondary

– 400 miles between primary and 3rd

• Automatic Failover between primary and secondary

• Multiple Servers Per Data Center

• All Data on SAN Storage

• Lowest Storage Costs

Page 73: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

ADDITIONAL READINGhttp://mrdenny.com/res/hadr

Page 74: SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld

SQL Server 2012 in a Highly Available World

Denny [email protected]

twitter.com/mrdenny