Upload
antonios-chatzipavlis
View
373
Download
1
Embed Size (px)
Citation preview
SQL Server 2012 39th Autoexec Event 27/4/2012, Athens
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
Connect with me
@antoniosch [email protected]
“ blog”
sqlschoolgr .wordpress.com http://sqlschool.gr
History Lesson
Installation & Configuration
Editions
Principal Editions Enterprise Edition
Standard Edition
Business Intelligence Edition
Specialized Editions Web Edition
Breadth Edition Developer Edition
Express Edition
Core-Based Licensing
1 CPU ( 2 Cores) -> Minimum (4 cores/CPU)
1 CPU (4 Cores) -> 4 cores/CPU
1 CPU (6 Cores) -> 6 cores/CPU
1 CPU (8 Cores) -> 8 cores/CPU
2 CPU (2 Cores) -> Minimum (4 cores/CPU) X 2 = 8 cores
2 CPU (4 Cores) -> (4 cores/CPU) X 2 = 8 cores
2 CPU (6 Cores) -> (6 cores/CPU) X 2 = 12 cores
2 CPU (8 Cores) -> (8 cores/CPU) X 2 = 16 cores
Installation Requirements
Hardware
1 GB RAM
2.0 GHz CPU
2,5 GB on HD
Software IE 7
Windows PowerShell 2.0
.NET Framework 4.0
.NET Framework 3.5 SP1 on Vista & Server 2008
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.
New “Product Update” dialog
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
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.
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)
SQL Service Startup Parameters
Availability
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)
AlwaysOn Solution
Shared Storage
Instance Level HA
Protection
Non-Shared Storage
Database Level HA
Protection
Active Secondaries
Availability Groups Failover Cluster Instances
Failover Clustering over Stretched V-LAN SQL Server 2008 R2 and below
V-LAN
SAN Replication
IP: 10.10.10.10
subnet
1
subnet
2
Network Name: SqlClus
Local Site Remote Site
Multi-subnet Clustering
subnet
2 subnet
1
SAN Replication
IP1: 10.168.0.10 IP2: 192.168.0.10
Corpnet
OR
Network Name: SqlClus
Local Site Remote Site
Configure New IP Address when AddNode
Multi-Subnet Cluster Properties
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
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
Current Algorithm: Dirty Pages
Buffer Pool
1, 100
…
10, 111
…
20, 108
…
30, 112
…
40, 110
40
10
0
30
10
1
40
10
2
30
10
3
20
10
4
30
10
5
40
10
6
40
10
7
20
10
8
10
10
9
40
11
0
10
11
1
30
11
2
Log Order
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
Algorithm
Indirect Checkpoint: Dirty Pages
Buffer Pool
1, 100
…
10, 111
…
20, 108
…
30, 112
…
40, 110
40
10
0
30
10
1
40
10
2
30
10
3
20
10
4
30
10
5
40
10
6
40
10
7
20
10
8
10
10
9
40
11
0
10
11
1
30
11
2
Log Order
1. New structure links dirtied buffers in the order they are first
dirtied.
2. 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.
3. MinRecLSN can advance independently of checkpoint
Algorithm
40, 100 30, 101 20, 104 10, 109
Dirtied buffers
with “first
dirtied LSN”
…
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
Flexible Failover Policy - FailureConditionLevels
0 – No Automatic Failover or restart
Service is
down
1 – Failover or restart on server
down
No response from
sp_server_diagnostics
2 – Failover or restart on server
unresponsive
System errors 3 – Failover or restart on critical SQL
Server errors
Resource errors 4 – Failover or restart on moderate
SQL Server errors
Query Processing errors 5 – Failover/restart on any qualified
failure conditions
AlwaysOn A deep dive into Availability Groups
Mission Critical High Availability Solution
Meets mission
critical high
availability SLA Integrated Efficient Flexible
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
• Application failover
using virtual name
• Configuration Wizard
• Dashboard
• System Center
Integration
• Rich diagnostic
infrastructure
• File-stream
replication
• Replication publisher
failover
Flexible Integrated Efficient
• Active Secondary
• Readable
Secondary
• Backup from
Secondary
• Automation using
power-shell
Starting Topology
Log Shipping
Database Mirroring
New Topology Phase 1
A
A
A
New Topology Phase 2
A
A
A
A
Reports
Backups
Synchronous
Data Movement
Asynchcronous
Data
Movement
Additional Topology Examples AlwaysOn provides the flexibility of different HA configurations
Synchronous
Data Movement
Asynchcronous
Data
Movement
Shared Storage, regional and geo secondaries
A
A
A
A
A
Direct attached storage local, regional and geo secondaries
A A
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
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/en-us/library/cc731002(WS.10).aspx
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
Active Secondary Offloading Backup
Database Mirroring Backups
SQL 2008 Database Mirroring
R/W workload
Primary Secondary
Failed
Backups Backups
Enabling Backup On Secondary R/W workload
Primary
Backups
Secondary
Backups
Secondary
Backups
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
Distributed Replay
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
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
Distributed Replay Data & Workflow
… Controller
Multiple Replay Clients
SQL Server
Preprocess
Replay
Batch Request
Batch Request
Batch Request
Batch Request
User
1
2
Distributed Replay Concepts
Connect Time = delta time between trace start and login
Think Time = delta time between two events on the same connection
2
4
Login
3
5
1
Connection 51 Connection 52
Login
Logout
Logout
Connect
Time
Connect
Time
Trace Start
Think
Time
Think
Time
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)
Preprocess Options • IncSystemSession: Whether system session events are filtered out
• MaxIdleTime: cap max idle time between events
Replay Options for Sequence Control
Synchronization
Mode
Stress Mode
StressScaleGranularity =
SPID
StressScaleGranularity =
Connection
Submit order Event submit
ordering across
SPIDs
Event submit ordering within
SPIDS
Event submit ordering
within connections
Submit timing Submit time
synchronization
ConnectTimeScale (0%–100%)
ThinkTimeScale (0%–100%)
UseConnectionPooling (Yes | No)
When to use High-fidelity replay
mode, such as
functional runs
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.
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
Performance & Scalability
Security Enhancements
SQL Server 2008 Security Recap Customer challenges Security feature
Protect data-at-rest Transparent Data Encryption
Data/Key separation Extensible Key Managements
Use strong authentication Kerberos authentication enhancements
Monitor all activity SQL Server Audit
Detect non-compliant
configurations
Policy-Based Management
Change Data Capture
Industry Certification Common Criteria Certification (EAL4+)
PR
OTEC
T
DA
TA
EN
SU
RE
CO
MP
LIA
NC
E
CO
NTR
OL
AC
CESS
The SQL Server 2008 Security Story
Default Schema for Groups
• Can now assign default schema to a group
• Eases Administration
• Avoids implicit schema creation
• Reduces chances of wrong schema used in queries
Group1
Default schema =
schema1
User-Defined Server Roles • Server-level principal
• Administrator defined "server
group"
• 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
DBARole
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
Database Auth – SQL Users
User=Alice; Pwd; IC=NormalDB Login
User=Alice; Pwd; IC=CDB Contained
User
User=Alice; Pwd; IC=CDB Login
(Contained user Alice exists)
(Contained user Alice does not exist)
Database Auth – Windows Users
User=Domain\Alice; IC=NormalDB Login
User=Domain\Alice; IC=CDB Login
User=Domain\Alice; IC=CDB Contained
User
(Login Alice exists)
(Login Alice does not exist)
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
Audit Enhancements
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
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
T-SQL Stack Information
Audit Log
hr.viewsalary hr.payroll
exec hr.viewsalary select salary from hr.payroll
User-Defined Audit Event
• sp_audit_write( )
exec sp_audit_write
1234,
1,
N‘Hello World’
@user_defined_event_id
@succeeded
@user_defined_info
Audit Log
Record Filtering CREATE SERVER AUDIT audit_name
TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG |
SECURITY_LOG }
[ WITH ( <audit_options> [ , ...n ] ) ]
[ FILTER = <predicate_expression> ]
}
…
<predicate_expression> ::=
{
[ NOT ] <predicate_factor> | {( <predicate_expression> ) }
[ { AND | OR } [ NOT ] { <predicate_factor> | (
<predicate_expression> ) } ]
[ ,...n ]
}
• Tightly constrain info written to Audit log
● Audit record generated but not written
• Leverages Xevent filtering
Management Enchancments
Backup - Restore
Backup Timeline
Page Restore Window
Server Related DMVs
sys.dm_server_services
sys.dm_server_registry
sys.dm_server_memory_dumps
Other Enhacements
Scalability & Performance
Columnstore Indexes
Online Index operations
Partition Support Increased (15.000 instead of 1.000)
Filestream filegroups can contain multiple files
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
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;
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.
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');
Metadata Discovery • Ο παλιός τρόπος που όμως θα καταργηθεί και δεν μου έδινε και πολλά
• sp_describe_first_result_set
• sp_describe_undeclared_parameters
• sys.dm_exec_describe_first_result
USE AdventureWorks2008R2;
GO
SET FMTONLY ON;
GO
SELECT * FROM HumanResources.Employee;
GO
SET FMTONLY OFF;
GO
SSDT
SQL Server Data Tools
Έχει και άλλα…
Αντέχουμε;;;;;;;;;;;;;;;;;;;;;;
Looking ahead
Σας ευχαριστώ
ROCKING WITH KNOWLEDGE IN SQL SERVER