Architecting_Availability_Groupsx
Download
Report
Transcript Architecting_Availability_Groupsx
Architecting
Availability Groups
An analysis of Microsoft SQL Server Always-On Availability Group architectures
1
Derik Hammer
@sqlhammer
[email protected]
www.sqlhammer.com
Database Administrator (Traditional/Operational/Production)
Spent a year pretending to be a .NET developer then back to being a DBA
Specialize in High-Availability, Disaster Recovery, Performance and Automation
Chapter leader of FairfieldPASS in Stamford, CT.
BS in Computer Information Systems with a focus in Database Management
Querying Microsoft SQL Server 2012 Databases (70-461)
Administering Microsoft SQL Server 2012 Databases (70-462)
2
Goals
Architecture: Stand-alone instances
Architecture: Stand-alones with multiple subnets
Architecture: AG with Failover Cluster Instances
Architecture: Hybrid approach (DR on the cheap)
Read-only routing
Back-up off-loading
Skill level: 200-300, assuming some familiarity
Not a “how to”, but there are demos
3
Benefits of Availability Groups
When should you use them?
Automatic failover between local replicas.
DB
Mirroring and FCIs have the same capability.
Manual failover between DR sites.
Replication,
log shipping, and DB mirroring have the
same capability.
Group databases together and failover separately from
other groups.
Off-load read loads.
Off-load backups.
4
Stand-alone instances
Server
Server
Availability
Replica A
Availability
Replica B
Local Disk(s)
Local Disk(s)
5
Stand-alone instances (cont.)
Server
Server
Availability
Replica A
Availability
Replica B
Local Disk(s)
Database level automatic
fail-over available with
synchronous commit.
Data duplication - a complete
set of drives and data per
replica.
Must synchronize server
objects between nodes
manually.
Local Disk(s)
The beauty of this architecture is everything that it is not.
6
7
Stand-alone instances – multi-subnet
Server
Server
Availability
Replica C
Subnet 2
Availability
Replica D
Local Disk(s)
Local Disk(s)
Server
Server
Subnet 1
Availability
Replica A
Local Disk(s)
Availability
Replica B
Local Disk(s)
8
Stand-alone instances – multi-subnet
(cont.)
• Nodes synchronize from the primary, remote nodes don’t speak to
each other.
• Even more data duplication.
• One of the few reasons that I might consider favoring a hybrid
with FCIs.
• Availability Group Listener handles multiple IPs across multiple
subnets.
• Asynchronous Commit recommended for remote site, which only
supports manual failover.
9
10
AG with Failover Cluster Instances
Subnet
1
Shared Disks
Server
Server
Server
Availability
Replica B
Server
Availability
Replica A
Subnet
2
Shared Disks
11
AG with Failover Cluster Instances
(cont.)
No need to synchronize server objects within subnet.
Still need to across the subnets.
Instance level failovers within subnets.
Shared storage can’t cross subnets.
Shared storage dependency.
Can’t ever have one AG replica reside on the same node as another.
Forces you to have more nodes to your cluster.
Configurations where all nodes are active are no longer as possible.
Can’t group DBs for failover, entire instance moves.
12
13
Hybrid Architecture AKA DR on the cheap
Subnet
2
Subnet
1
Server
Shared Disks
Server
Server
Availability
Replica B
Availability
Replica A
Local Disks
14
15
Quorum
Prevents “split-brain”
Node majority is typical
Potential voters include
Servers (physical or virtual)
File shares
Remote shared disks
Weight your votes for a complete drop of your connection to your disaster
recovery site
16
Quorum Demo
Why you need to use Windows Server
2012 R2 and above
Dynamic Quorum
Dynamic Witness
Tie breaker
17
Why use the Listener?
It is capable of faster failovers.
Your applications do not have to wait for DNS time to live to
expire.
Read-only routing.
One virtual network name (VNN), regardless of where the Availability
Group (AG) lives.
Different VNN for each AG on the cluster.
Configuration files between DR sites can be identical.
Allows for groups of databases to failover to different servers.
No instance names to worry about.
18
Limitations of the listener
bells & whistles
ApplicationIntent and MultiSubnetFailover requires .NET 4.0.
Or, 3.5 SP1 with hotfix KB2654347.
https://support.microsoft.com/en-us/kb/2654347
Or, JDBC 4.0
Not available for OLEDB or ODBC connections (expect in SQL
Native Client 2012+ some restrictions apply).
Connections must specify a database in the Availability Group
in order to perform read-only routing.
Changing database context after connection has been
established won’t cut it.
19
Listener Demos
SQL Server Management Studio
Persist parameters – Supposedly fixed in vNext as per MS Connect.
http://bit.ly/1wKPucP
Not fixed for SQL Server 2016 CTP2
Reference
the workarounds http://www.sqlhammer.com/blog/store-optional-connectionparameters-in-sql-server-management-studio/
SQLCMD.exe
SQLPS module’s Invoke-SqlCmd (Not a demo, hard to show the nonexistence of something)
Add MultiSubnetFailover and ApplicationIntent options – Vote up on
MS Connect! http://bit.ly/1BCbB82
20
21
Read-only routing
Manually configured and optional.
Must connect using an Availability Group database
context.
Common
stumbling point, thus the 2-slide
emphasis.
No SSMS wizard for configuration.
Incurs a round-robin connection performance hit.
22
Read-only routing connection flow
Step 1: Client connects using
ApplicationIntent=ReadOnly
Step 2: Primary replica replies
with IP for redirection
Primary Replica
(Includes Listener)
Client
Step 3: Connection is made with
read-only instance
Secondary Replica
(Read-Only)
23
Read-only Routing Demos
Configure - T-SQL
(Non-demo
reference) AlwaysOn Tools - Denny
Cherry and Associates http://dcac.co/applications/hosted-byyou/alwayson-tools
Verify - Dynamic Management Views
24
Back-up Off-loading
Transaction log backups
COPY_ONLY full backups
Differentials cannot be taken
Various preferred replica configurations available
sys.fn_hadr_backup_is_preferred_replica
25
Availability Group Monitoring Demos
Availability Group Dashboards
Availability Group state DMVs
26
Materials
Slide deck and demo queries available at:
http://www.sqlhammer.com/blog/community/
This material has already been posted.
If I ever update the material, the most recent updates will be available.
27
References of interest
Syncing server objects between sites
PowerShell driven desired state Availability Group failover test
http://www.sqlhammer.com/blog/store-optional-connection-parameters-in-sql-servermanagement-studio/
Lazy log truncation and filestream
http://www.sqlhammer.com/blog/failing-over-alwayson-availability-groups/
SSMS AG Listener connection work around
http://www.sqlhammer.com/blog/synchronizing-server-objects-for-availability-groups/
http://www.sqlhammer.com/blog/filestream-garbage-collection-with-alwaysonavailability-groups/
Step-by-step work through of the AG + FCI architecture
http://www.sqlhammer.com/blog/how-to-configure-sql-server-2012-alwayson-part-1-of-7/
28
My Contact Information:
@SQLHammer
[email protected]
29
www.sqlhammer.com