2. sp_who
Solution Architect - Principal Consultant - SQL Server Evangelist
1982 >The first contact with computers.
1988 > I started my professional carrier in IT,
especially in software development.
1998 > I earned my 1st Certification as MCSD
(3rd in Greece). Since then I certified as
MCP, MCSD, MCT, MCDBA,
MCAD, MCTS, MCITP, MCPD, MCSA, OCA.
1999 > I started my Trainer carrier as MCT. Since
then I have more than 14.000 hours of
training
2010 > I became for first time Microsoft MVP
on SQL Server.
Leader of IAMCT Europe Greek Chapter
Moderator of autoexec.gr
Member of the dotNETZone.gr
3. Connect with me
â blogâ
@antoniosch
sqlschoolgr
.wordpress.com
help@sqlschool.gr
http://sqlschool.gr
9. New Installation Features
Product Update
Server Core Installation
Data Quality Services
Distributed Relay
Multi-subnet clustering
System Databases can be installed on file share on an Server
Message Block (SMB) file server.
11. New inputs
New common line parameters
UpdateSource: Where to search for updates
⢠MU: Microsoft update
⢠UNCPath (network share) or local folder
UpdateEnabled
⢠True/False: turns feature on or off
For example:
Setup.exe /Action=Install /UpdateSource=U:DenaliCTP3b
12. Upgrade Path
All Editions from SQL Server 2005 can be upgraded direct to
SQL Server 2012 except SQL Server 2000.
Use Upgrade Advisor utility.
Use Distributed Replay utility.
13. Post Upgrade Tasks
Re-register servers
Re-populate full text catalogs
Run DBCC UPDATEUDAGE on all databases to correct any
incorrect row or page counts.
Validate on remove USE PLAN hints that are generated by
SQL Server 2005 and applied to queries on partitioned tables
and indexes
Update Statistics on all databases.
Special consideration for Replicated databases (BOL)
16. Whatâs New
AlwaysOn SQL Server Failover Cluster Instances
Multi-subnet failover clusters
Flexible failover policy for clusters health detection
Indirect checkpoints
AlwaysOn Availability Groups
Online Operations
Extended support for online index builds
(LOB, XML data types)
Reduced downtime for application upgrade
(less than a second an exclusive lock held)
18. Failover Clustering over Stretched V-LAN
SQL Server 2008 R2 and below
V-LAN
Network Name: SqlClus
IP: 10.10.10.10
subnet
1
Local Site
SAN Replication
subnet
2
Remote Site
22. Multi-Subnet Clustering Requirements
SQL SKU: Enterprise Edition
OS version: Windows Server 2008 R2 +
SAN replication for cross-site DR (e.g. EMC SRDF)
Single AD domain for all nodes
23. Indirect Checkpoints
Previously checkpoints on ?????? intervals
Variance in failover time
Variance in IO load
New in SQL Server 2012
Background checkpointing over time
Smoother IO load
More predicable failover times
Configurable per database
Off-by-default for backcompat
24. Current Algorithm: Dirty Pages
Algorithm
Buffer Pool
1. Checkpoint starts
2. FlushCache() visits all pages and writes each dirty
page: P10, P20, P30, P40 in that order
3. FlushCache() order has nothing to do with log order
4. MinRecLSN must be == begin checkpoint LSN
1, 100
âŚ
10, 111
âŚ
20, 108
âŚ
30, 112
âŚ
40, 110
40
30
40
30
20
30
40
40
20
10
40
10
30
10
0
10
1
10
2
10
3
10
4
10
5
10
6
10
7
10
8
10
9
11
0
11
1
11
2
Log Order
25. Indirect Checkpoint: Dirty Pages
Algorithm
Buffer Pool
1.
1, 100
2.
âŚ
10, 111
3.
âŚ
20, 108
âŚ
New structure links dirtied buffers in the order they are first
dirtied.
Checkpoint can write buffers in that order:
â˘
Writing page 40 covers log up to < LSN 101. Writing
page 30 next covers up to < LSN 104. Writing page
20 next covers log up to < 109.
MinRecLSN can advance independently of checkpoint
Dirtied buffers
with âfirst
dirtied LSNâ
40, 100
30, 101
20, 104
10, 109
âŚ
30, 112
âŚ
40, 110
40
30
40
30
20
30
40
40
20
10
40
10
30
10
0
10
1
10
2
10
3
10
4
10
5
10
6
10
7
10
8
10
9
11
0
11
1
11
2
Log Order
26. Flexible Failover Policy - Configuration
HealthCheckTimeout
Default: 60 sec
Min: 15 sec
Frequency of responses
FailureConditionLevel
Default Level: 3 âFailover or restart on critical SQL Server errorsâ
User configurable
Diagnostics always captured
27. Flexible Failover Policy FailureConditionLevels
5 â Failover/restart on any qualified
failure conditions
4 â Failover or restart on moderate
SQL Server errors
3 â Failover or restart on critical SQL
Server errors
2 â Failover or restart on server
unresponsive
1 â Failover or restart on server
down
0 â No Automatic Failover or restart
Query Processing errors
Resource errors
System errors
No response from
sp_server_diagnostics
Service is
down
29. Mission Critical High Availability Solution
Meets mission
critical high
availability SLA
Integrated
Flexible
Efficient
30. AlwaysOn Availability Groups
A new feature that enhances and combines database
mirroring and log shipping capabilities
â˘
â˘
Multi-database failover
Multiple secondaries
â˘
â˘
â˘
â˘
â˘
â˘
â˘
â˘
Total of 4 secondaries
2 synchronous secondaries
⢠1 automatic failover pair
Synchronous and
asynchronous
data movement
Built in compression and
encryption
Automatic and manual
failover
Flexible failover policy
Automatic Page Repair
Efficient
Integrated
Flexible
â˘
â˘
â˘
â˘
â˘
â˘
â˘
Application failover
using virtual name
Configuration Wizard
Dashboard
System Center
Integration
Rich diagnostic
infrastructure
File-stream
replication
Replication publisher
failover
Active Secondary
â˘
â˘
Readable
Secondary
â˘
Backup from
Secondary
â˘
Automation using
power-shell
33. New Topology Phase 2
A
A
A
A
Reports
Backups
Synchronous
Data Movement
Asynchcronous
Data
Movement
34. Additional Topology Examples
AlwaysOn provides the flexibility of different HA
configurations
A
A
A
A
A
A
A
Direct attached storage local, regional and geo secondaries
Synchronous
Data Movement
Asynchcronous
Data
Movement
Shared Storage, regional and geo secondaries
35. New Topology Benefits
⢠Better SLAs
⢠Multiple no data loss secondaries
⢠Better data loss protection for DR secondaries through
continuous replication
⢠Faster failover to DR secondaries through virtual name failover
⢠Easier deployment/management
â˘
â˘
â˘
â˘
â˘
â˘
Unified solution
Simple deployment
Unified dashboard
Rich diagnostics
Centralized management of client connection topology
Multi-DB failover
36. Windows Server Pre-Reqs
⢠KB 976097
⢠Supports SQL Server Failover Cluster Instances with AlwaysOn Availability
Groups
⢠KB 2494036
⢠Supports configuring optimal quorum with non-automatic failover targets
⢠All nodes should be in the same AD domain
⢠To create WFSC cluster user running creation must have:
â˘
â˘
â˘
â˘
Domain account
Administrator on all machines
Have Create Computer objects and Read All Properties rights in AD
Detailed Article: http://technet.microsoft.com/enus/library/cc731002(WS.10).aspx
37. Quorum Configuration
⢠Quorum: need majority of votes to operate and avoid split brain
⢠Two-Steps process:
1.
Select nodes to vote (KB 2494036)
⢠1 vote if nodeâs that host a replica that is currently:
â˘
â˘
Primary (if primary is an FCI include all possible owner nodes for that FCI)
An auto failover target if the primary is also configured for auto failover
⢠0 votes for rest of nodes
2.
Select the quorum type:
⢠Odd number of votes, use âNode Majorityâ
⢠Even number of votes, add a witness by either:
â˘
â˘
Adding an additional witness node and use âNode Majorityâ
Using âNode and File Share Majorityâ with a protected file share (blog with details)
⢠Re-evaluate and adjust quorum after manual failover outside automatic
target
41. Restrictions, cautions, and gotchas
Differential backups are not supported on secondary
Only Copy-only full backups are supported on secondary
The only distinction is the differential bitmap clearing
Advisable for backups to be stored centrally
43. What is Distributed Replay?
Multi-client scalability to drive higher throughput
Higher workload replay fidelity
Useful for stress testing production workload or performing
application compatibility testing before upgrades
44. Why an enhanced replay tool?
Use multiple low-cost clients (workstations) to handle large
workload traces within reasonable time
Address limitations of current SQL Trace based tools (Profiler,
Upgrade Assistant)
Provide enhanced features
Lay groundwork for future workload replay capabilities
45. Distributed Replay Data & Workflow
Batch Request
1 Preprocess
Batch Request
Batch Request
User
Controller
2 Replay
âŚ
SQL Server
Batch Request
Multiple Replay Clients
46. Distributed Replay Concepts
Connection 51
Connection 52
Trace Start
Connect
Time
Connect
Time
Login
Connect Time = delta time
between trace start and
login
Think Time = delta time
between two events on the
same connection
Think
Time
Login
1
2
3
Think
Time
4
5
Logout
Logout
47. Preprocess & Replay Steps
â˘
What Happens During Preprocess:
â˘
â˘
â˘
â˘
â˘
Sort the events in ascending order of EventSequence
Trim away events and columns not used for replay
Generate an intermediate file
Goal: preprocess the trace once, and intermediate file can
be replayed with different options
What Happens During Replay:
⢠User specified the replay options, including which clients
to use
⢠Shred the intermediate file into chunks in a load-balanced
fashion
⢠Dispatch the file chunks to the clients
⢠Two replay modes, stress and synchronization
â˘
â˘
Under stress mode, each client sends request independently
Under sync mode, client needs to coordinate with controller to
know when a specific event can be released (this is optimized
so it is not done for every single event)
49. Replay Options for Sequence Control
Synchronization
Mode
Submit order
Event submit
ordering across
SPIDs
Submit timing
Submit time
synchronization
When to use
High-fidelity replay
mode, such as
functional runs
Stress Mode
StressScaleGranularity =
SPID
Event submit ordering within
SPIDS
StressScaleGranularity =
Connection
Event submit ordering
within connections
ConnectTimeScale (0%â100%)
ThinkTimeScale (0%â100%)
UseConnectionPooling (Yes | No)
Use 100% connect time
scale and 100% think time
scale for performance runs.
Use SPID granularity and
reduce connect time scale
and think time scale for
moderate-stress runs.
Use Connection granularity
and reduce connect time
scale and think time scale
for high-stress runs.
50. Supported SQL Server versions
Input Trace File Version
Target SQL Server
SQL Server 2005
SQL Server 2008 / 2008 R2 / 2012
SQL Server 2008
SQL Server 2008 / 2008 R2 / 2012
SQL Server 2008 R2
SQL Server 2008 R2 / 2012
SQL Server 2012
SQL Server 2012
55. Default Schema for Groups
Default schema =
schema1
Group1
⢠Can now assign default schema to a group
⢠Eases Administration
⢠Avoids implicit schema creation
⢠Reduces chances of wrong schema used in queries
56. User-Defined Server Roles
⢠Server-level principal
⢠Administrator defined "server
group"
DBARole
⢠Collection of principals
⢠Holds permissions
⢠Compared to fixed roles
⢠Securable class
⢠Permission set can change
⢠Increase flexibility, manageability
and facilitate compliance
CONTROL
SERVER
ALTER ANY
LOGIN
57. Database Authentication
Available in Contained Databases
Allow authentication without Logins
SQL Users with passwords
Windows authentication without Login
Easier deployment for some applications
Tightly scoped security boundary
58. Database Auth â SQL Users
User=Alice; Pwd; IC=NormalDB
User=Alice; Pwd; IC=CDB
(Contained user Alice exists)
User=Alice; Pwd; IC=CDB
(Contained user Alice does not exist)
Login
Contained
User
Login
59. Database Auth â Windows Users
User=DomainAlice; IC=NormalDB
Login
User=DomainAlice; IC=CDB
Login
(Login Alice exists)
User=DomainAlice; IC=CDB
(Login Alice does not exist)
Contained
User
60. Crypto Changes
⢠CREATE CERTIFICATE FROM BYTES
⢠4K certificates supported for import
⢠SMK/DMK default to AES256
⢠Key backups encrypted with AES256
⢠SHA2 (256 and 512) support
⢠Password hashes use SHA512
⢠RC4 deprecated
62. Audit Supported on All SKUs
⢠Basic Audit on all SKUs
⢠Server Audit Specs only
⢠DB Audit Specs for Enterprise and
Datacenter
⢠No longer need SQLTrace
⢠Enjoy advantages of Audit
â˘
â˘
â˘
â˘
Performance
Multiple Audits and multiple targets
Persist state
Audit Resilience
SQL
Server
Express
63. Improved Resilience
⢠Before:
⢠Write failures may silently lose Audit records
⢠Use ON_FAILURE = SHUTDOWN
⢠Now:
⢠Automatically recover from most file or network errors
⢠Added âON_FAILURE = FAIL_OPERATIONâ
⢠Added âMAX_FILESâ option
SelectâŚ
Rollback
71. Scalability & Performance
Columnstore Indexes
Online Index operations
Partition Support Increased (15.000 instead of 1.000)
Filestream filegroups can contain multiple files
72. Programmability
Filetables
Statistical Semantic Search
Full-Text Search â GREEK
Support!!!!
New and Enhanced Spatial features
Metadata Discovery
Execute Statement
UTF-16 Support
Ad-hoc Query Paging Implementation
Sequence Objects
Throw statement
14 new functions
73. Ad-hoc Query Paging Implementation
⢠OFFSET
⢠ÎĎίΜξΚ Ďον ÎąĎÎšÎ¸ÎźĎ ĎĎν records ĎÎżĎ Î¸Îą ιγνοΡθοĎν ĎĎΚν
ΞξκΚνΎĎξΚ ĎÎż query νι ÎľĎΚĎĎĎÎĎξΚ ÎąĎÎżĎÎΝξĎΟι.
⢠FETCH
⢠ÎĎίΜξΚ Ďον ÎąĎÎšÎ¸ÎźĎ ĎĎν records ĎÎżĎ Î¸Îą ÎľĎΚĎĎĎÎąĎÎżĎν ΟξĎÎŹ
ÎąĎĎ Ďον ÎżĎΚĎÎźĎ ĎÎżĎ OFFSET
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department
ORDER BY DepartmentID
OFFSET 5 ROWS
FETCH NEXT 10 ROWS ONLY;
74. Support for UTF-16
⢠Introducing _SC collations
⢠Common Unicode characters occupy 16-bits
each (NCHAR / NVARCHAR)
⢠Rarer Unicode characters occupy 2 x 16-bits
each
⢠âSupplementary Charactersâ, âSurrogate Pairsâ
⢠Ancient scripts; Music Notation; Math Symbols etc.
75. Sequences
⢠New Database Object, similar to the IDENTITY property
⢠Separates number-generation from column and table
⢠ANSI standard compliant implementation
CREATE SEQUENCE MySchema.IdSequence
AS INT
START WITH 10000 INCREMENT BY 1;
GO
INSERT INTO Employees (EmployeeId, Name)
VALUES (NEXT VALUE FOR MySchema.IdSequence, 'Jane');
INSERT INTO Contractors (ContractorId, Name)
VALUES (NEXT VALUE FOR MySchema.IdSequence, 'John');
76. Metadata Discovery
â˘
Î ĎιΝΚĎĎ ĎĎĎĎÎżĎ ĎÎżĎ ĎÎźĎĎ Î¸Îą κιĎÎąĎγΡθξί κιΚ δξν ÎźÎżĎ ÎδΚνξ κιΚ ĎοΝΝΏ
USE AdventureWorks2008R2;
GO
SET FMTONLY ON;
GO
SELECT * FROM HumanResources.Employee;
GO
SET FMTONLY OFF;
GO
â˘
sp_describe_first_result_set
â˘
sp_describe_undeclared_parameters
â˘
sys.dm_exec_describe_first_result