Sunteți pe pagina 1din 29

Clustering SQL Server

By
Kareem Syed
www.optimizesql.blogspot.in

www.optimizesql.com/blog

SQLDBA

Agenda

Understanding Windows Clustering


Working with SQL Clustering
Monitoring Clustering
Troubleshooting Clustering

www.optimizesql.com/blog

SQLDBA

HA Overview

SQL Server High Availability

Goal of High Availability is to keep systems, applications, email,


databases etc always running

www.optimizesql.com/blog
3

SQLDBA

Importance of HA

Server downtime is unavoidable.


But we have to keep the business running and competitive.
Server may go offline due to

Maintenance

Upgrade

Software or Hardware

Updates

Hot fixes, security patches

Accidently

Power Outages

Disasters

www.optimizesql.com/blog
4

SQLDBA

Introduction to Clustering
Group of two or more servers (Nodes) that work
together and represent themselves as single Server
(Virtual Server) in the network.
A server cluster is a collection of servers, called nodes
that communicate with each other to make a set of
services highly available to clients.
Server clusters are designed for applications that have
long running in-memory state or frequently updated
data.

www.optimizesql.com/blog

SQLDBA

Introduction
A Microsoft SQL Server Cluster is simply a collection of two or
more physical servers.
These Servers are called Nodes.
These nodes have same access to shared storage and
provides the resources required to store the database files
Each of the nodes talk to one another via a network
If one node does not communicate to the other node the other
node will take ownership of SQL Server service. This process
is called fail over.
A failover can occur both automatically (a server stops
communication for some reason) or manually.

www.optimizesql.com/blog

SQLDBA

Basic Architecture
Client PCs
SQL Server
Server A

Virtual
Server

Server B

Heartbeat

Binn
Install
Upgrade

Cluster management
Shared
Disk Array

Hub

C,D

Hub

SQL Server
www.optimizesql.com/blog

Binn
Install
Upgrad

Backup
Data
FTData
Job, Log, repldata
SQLDBA

C,D

Basic Architecture
Client PCs
SQL Server
Server A

Virtual
Server

Server B

Heartbeat

Cluster management
Shared
Disk Array

Hub

C,D

Hub

C,D

SQL Server
www.optimizesql.com/blog

SQLDBA

Importance of HA
Feature

Database
Mirroring

Failover
Clustering

Log Shipping

Data Loss

No data loss
option

No data loss

Maybe

Failover

Automatic failover
option

Automatic failover

No

Failover time

seconds

~ 20+ seconds

Manual

Special
Hardware

No

Certified hardware

No

Redundancy

Complete
redundancy

Disks are shared

Complete redundancy

Multiple
Secondaries

No

No

Yes

Standby Read
Access

Yes, through
snapshot

No

Yes, WITH STANDBY


option

Granularity

Database

Instance

Database

Conn String

Two

ONE

Two

www.optimizesql.com/blog

SQLDBA

Advantages
High Availability
Protection from failures

Server level hardware and software failures, service


failures etc
Site level Fires, earthquake etc

Online Administration
Software/hardware upgrades/patch and restart with minimal downtime.

Increased Scalability
In some cases, clustering can be used to increase the
scalability of an application. For example, if a current cluster is getting
too busy, another server could be added
to the cluster to expand the
resources and help boost the performance of the
application.

Clustering is transparent to the calling application.

www.optimizesql.com/blog

SQLDBA

10

Advantages
Manageability
Enables managing resources within entire cluster if we are managing a
single computer.

Instance level redundancy and automatic failover for


SQL Server

www.optimizesql.com/blog

SQLDBA

11

Advantages
Reduces downtime.
Allows for an automatic response to a failure in hardware/
software.
Allows you to perform upgrades without forcing users off the
system for extended periods of time.
Clustering doesnt require any servers to be renamed. So
when failover occurs, it is relatively transparent to end-users.
Failing back is relatively quick, and can be done whenever the
primary server is fixed and put back on-line.
In some cases, clustering can be used to increase the
scalability of an application. For example, if a current cluster is
getting too busy, another server could be added to the cluster
to expand the resources and help boost the performance of the
application
Clustering is transparent to the callingSQLDBA
application.
www.optimizesql.com/blog

12

Disadvantages
Failover Cluster is NOT designed to:
Protect data
Protect against a shared disk array from failing.
Load Balance
Prevent server from potential data disasters.
Requires more on-going maintenance than other alternatives.
Requires more experienced DBAs and network
administrators.

www.optimizesql.com/blog

SQLDBA

13

Disadvantages

This can be expensive.


Requires more set up time than other alternatives.
Requires more on-going maintenance than other alternatives.
Requires more experienced DBAs and network
administrators.

www.optimizesql.com/blog

SQLDBA

14

What SQL Server services can we cluster?

Clusterable
SQL Server
SQL Server Agent
Analysis Services

Non Clusterable

SQL Server Integration Services


SQL Server Reporting Services
SQL Browser
SQL Writer

Full text search (FTS) service?


From SQL Server 2008, FTS service is integrated into SQL Server
engine

www.optimizesql.com/blog

SQLDBA

15

Active and Passive


SQL Server offers Single Instance Clusters and Multi-Instance
Clusters.
Single Instance
Only one SQL Server Instance running at any given time on your
cluster. Itll be running either on your 1st node or 2nd node.
(Active-Passive).
Multi Instance
We have 2 nodes running 2 Instances or even 4 Instances of
SQL Server, Or lets say youve 3 nodes where youve 2
Instances of SQL Server(Active-Active-Passive), the third node
serving as a standby node ready to take ownership in an event
of any failure of Node1 or Node2.
www.optimizesql.com/blog

SQLDBA

16

Basic Architecture

Virtual Name
Public Network
Node1
Active
SQL
Instance1

Heart Beat

Private Network

SAN
Shared Storage

Active/Passive Cluster
www.optimizesql.com/blog

SQLDBA

Node2
Passive

Basic Architecture

Virtual Name
Public Network
Node1
Active
SQL
Instance1

Heart Beat

Private Network

SAN
Shared Storage

Active/Active Cluster
www.optimizesql.com/blog

SQLDBA

Node2
Active
SQL
Instance2

Basic Components

A minimum of two identical servers.


Two NICs are needed per server.

Private, Public
Storage (optional)

Shared disk storage (SAN)

Quorum (Maintains cluster meta data) 256MB


MSDTC (Replication/Dist Trans)
SQL Server (Backup,FTData,data,repldata,log,job)
Tempdb
Data, T.Log Files

Distributed Transaction Coordinator (DTC)


Domain Controller.
Operating System, service or Application
www.optimizesql.com/blog

SQLDBA

Failover Clustering
Terminology

SQL Server virtual server


It is cluster-configured resource group that contains all
resources necessary for SQL Server to operate on the
cluster. This includes
NetBIOS
Name of the virtual server,
TCP/IP address for the virtual server
All disk drives,
SQL Server services

www.optimizesql.com/blog

SQLDBA

20

Failover Clustering
Terminology

Heartbeat

A single User Datagram Protocol (UDP) packet is sent


every 500 milliseconds between nodes in the cluster across
the internal private network,
This packet relays health information about the cluster
nodes as well as health information about the clustered
application

www.optimizesql.com/blog

SQLDBA

21

Failover Clustering
Terminology

Failover

It is the process of one node in the cluster changing states


from offline to online.
It results in the node taking over responsibility of the SQL
Server virtual server.
The Cluster Service fails over a group in the event that node
becomes unavailable or one of the resources in the group
fails.

www.optimizesql.com/blog

SQLDBA

22

Failover Clustering
Terminology

Failback

Failback is the process of moving a SQL Server virtual


server that failed over in the cluster back to the original
online node.

www.optimizesql.com/blog

SQLDBA

23

Failover Clustering
Terminology

Quorum Resource

The quorum resource, also referred to as the witness disk in


Windows Server 2008.
It is the shared disk that holds the cluster servers
configuration information.
All servers must be able to contact the quorum resource to
become part of a SQL Server 2008 cluster

www.optimizesql.com/blog

SQLDBA

24

Failover Clustering
Terminology

Resource Group

A collection of cluster resources such as the SQL Server


NetBIOS name, TCP/IP address, and the services belonging
to the SQL Server cluster.
A resource group also defines the items that fail over to
surviving nodes during failover.
Resource group is owned by only one node in the cluster at a
time.

www.optimizesql.com/blog

SQLDBA

25

Failover Clustering
Terminology

LUNs

An LUN is used to identify a disk or a disk volume that is


presented to a host server or multiple hosts by the shared
storage device.

www.optimizesql.com/blog

SQLDBA

26

Preparing Windows
Clustering

Pre installation checklist

Ensure that all nodes are working properly and are configured properly.
Confirm that each node can access shared array or SAN drives.
Verify that none of the nodes have been configured as domain controller.
Verify that all drives are NTFS and are not compressed.
Ensure that private and public networks are properly configured.
Verify that you have disabled NetBIOS for all private network cards.
Verify that Windows Task Scheduler service is running on each node.
Take a domain admin account for configuring windows cluster.
Use separate account for cluster service.
Add cluster service account to the Local Administrators group of all the
nodes in the cluster.
Decide windows cluster virtual name and virtual IP.

www.optimizesql.com/blog

SQLDBA

27

Preparing Windows
Clustering

Pre installation checklist

Ensure that shared drives are available for the following


requirements

Quorum
MSDTC
TempDB
User Defined database data files
User Defined database T.Log files
Backups

www.optimizesql.com/blog

SQLDBA

28

Preparing Windows
Clustering

IP Address Requirements
Name of Resource

IP Address

Private Network heartbeat (one per node)

Public Network (one per node)

MSDTC

Windows Cluster Name

SQL Cluster Name

www.optimizesql.com/blog

SQLDBA

29

S-ar putea să vă placă și