This document provides an overview and summary of SQL Azure and cloud services from Red Gate. The document begins with an introduction to SQL Azure, including compatibility with different SQL Server versions, limitations, and security requirements. It then covers topics like database sizing, naming conventions, migration support, and using indexes. The document next discusses cloud services from Red Gate for backup, restore, and scheduling of SQL Azure databases. It concludes with some example links and a short demo. The overall summary discusses key capabilities and services for managing SQL Azure databases and backups in the cloud.
8. ABOUT ME
Polish SQL Server User Group Leader
Microsoft Certified Trainer (MCP, MCSA, MLSS, MLSBS, MCTS, MCITP)
SQL Server MVP (four years in a row)
Blogger, Influencer, Technical Writer
Last 8 years living in Data Center in Wrocław
Generally about 14 years in IT/banking area
Speaker at SQL Server Community Launch, Time for SharePoint,
CodeCamps, SharePoint Community Launch, CISSP Day, SQL in
the City, InfoTRAMS, SQL Bits, SQL Saturday, CareerCon,
Sharepoint & SQL Connection, IT Camp…
Deep Dives Co-Author:
High availability of SQL Server in the context
of Service Level Agreements (Chapter 18th)
9. AGENDA
PART ONE: SQL Azure
Plan, Compability
PART TWO: Cloud Services
Backup and Restore,
Synchronize and Schedule
APPENDIX: additional links
11. Short Introduction
• Windows Azure
Compute:
Virtualized compute environment based
on Windows Server
Storage:
Durable, scalable, & available storage
Management:
Automated, model-driven management of the service
• SQL Azure (cloud-based database)
Database:
Relational processing for structured/unstructured data
• App Fabric (.NET services)
Service Bus:
General purpose application bus
Access Control:
Rules-driven, claims-based access control
12. Security Requirements for Azure Platform
As a Service Provider Microsoft has an obligation to passing the several rules for security:
• ISO/IEC 27001:2005
• SAS 70 Type 1 and II
Also they passing (continuisly) several data securing audits:
• PCI DSS
• SOX compliance
• HIPAA compliance
And of course requirements for Data Centers:
• Physical security of the data centers (locks, cameras, biometric devices, card readers,
alarms)
• Firewalls, application gateways and IDS to protect the network
• Access Control Lists (ACLs) applied to virtual local area networks (VLANs) and
applications
• Authentication and authorization of persons or processes that request access to data
• Hardening of the servers and operating system instances
• Redundant internal and external DNS infrastructure with restricted write access
• Securing of virtual machine objects
• Securing of static and dynamic storage containers
13. PART ONE: SQL Azure
We want to work with SQL Azure (oops SQL Database)
Size does it matter?
Personal: 1GB, 5GB
Business: 10GB, 20 GB, 30 GB, 40 GB, 50 GB, 100 GB, 150 GB (3x50)
“Private”: less than 100 MB ($4.995 / month)
Version does it matter?
10.25 my first experience, but after July 2011 Service Release…
11.00 now > close to SQL Server 2012
Collation does it matter?
default collation: SQL_Latin1_General_CP1_CI_AS
table level collation
error msg 40544:
The database has reached its size quota. Partition or delete data,
drop indexes, or consult the documentation for possible resolutions.
14. PART ONE: SQL Database
Naming, Logins, Users
Admin, administrator, guest, root, sa
Data Migration Support
You can use:
SQL Server 2008 Integration Services (SSIS)
The bulk copy utility (BCP.exe)
System.Data.SqlClient.SqlBulkCopy class
Scripts that use INSERT statements to load data into the database
SQL Data Compare from Red Gate
You can't use:
The RESTORE statement.
Attaching a database to the SQL Database server.
No SQL Server Agent
No SQL Server jobs
No SQL Server Browser
No Cross Database queries
15. PART ONE: SQL Database
Indexes, of course indexes
You MUST use CLUSTERED INDEX with your (Azure) SQL Database.
Heap tables are not supportes, so You MUST create CLUSTERED INDEX before
INSERT will be executed
error msg 40054:
Tables without a clustered index are not supported in this version of
SQL Server. Create a clustered index and try again.
CREATE TABLE Source (Id int NOT NULL IDENTITY,
[Name] nvarchar(max),
CONSTRAINT [PK_Source] PRIMARY KEY CLUSTERED
(
[Id] ASC
))
16. PART ONE: SQL Database
Closed connections to the service… by the service
Because of multi-tenant :
Excessive resource usage
Connections that have been idle for 30 minutes or longer (Program
assuming your connection is going to fail)
Failover because of server failures
errors:
40197, 40501, 40544, 40549, 40550, 40551,
40552, 40553, and 40613
18. Sample of SQL Compability
In Scope for v1
Constants
Constraints
Cursors
Index management and rebuilding indexes
Local temporary tables
Reserved keywords
Stored procedures
Statistics management
Transactions
Triggers
Tables, joins, and table variables
Transact-SQL language elements such as
Create/drop databases
Create/alter/drop tables
Create/alter/drop users and logins
and so on.
User-defined functions
Views
Out of Scope for v1
Common Language Runtime (CLR)
Database file placement
Database mirroring
Distributed queries
Distributed transactions
Filegroup management
Global temporary tables
Spatial data and indexes
SQL Server configuration options
SQL Server Service Broker
System tables
Trace Flags
Physical server or catalog DDL and views
19. SQL Server 2005 {9.0} NON-Compability
Common Language Runtime (CLR) and CLR User-Defined Types
Database Mirroring
Service Broker
Table Partitioning
Typed XML and XML indexing is not supported. The XML data type is supported by
SQL Azure.
20. SQL Server 2008 {10.0} NON-Compability
Change Data Capture
Data Auditing
Data Compression
Extended Events
External Key Management / Extensible Key Management
FILESTREAM Data
Integrated Full-Text Search
Large User-Defined Aggregates (UDAs)
Large User-Defined Types (UDTs)
Performance Data Collection (Data Collector)
Policy-Based Management
Resource Governor
SQL Server Replication
Transparent Data Encryption
21. SQL Server 2008 R2 {10.50} NON-Compability
SQL Server Utility
SQL Server PowerShell Provider
Master Data Services
SQL Server Management Studio does not
support Windows Azure SQL Database in
versions prior to SQL Server 2008 R2
22. Connection Model
When writing applications for SQL Azure, you can use the following drivers and libraries:
.NET Framework Data Provider for SQL Server (System.Data.SqlClient) from the .NET
Framework 3.5 Service Pack 1.
SQL Server 2008 Native Client ODBC driver.
SQL Server 2008 Driver for PHP version 1.1.
SQL Azure supports tabular data stream (TDS) protocol client version 7.3 or later.
Earlier versions of TDS protocol are not supported.
Connecting to SQL Azure by using OLE DB is not supported.
Support for ASP.NET controls
Clients connect directly to a database
‒ Cannot hop across DBs (no USE)
23. Scenarios for V1
• Departmental Applications
‒ Simple application built by individual or department
‒ Need simple deployment, self-management, IT: “Empowerment and Governance”
• Web Applications
‒ Small business or startup that uses the cloud as their IT
‒ Simple deployment, self-management, scale on demand
• ISV
‒ ISV hosting software on behalf of customer
‒ Multi-tenant support for billing and isolation
• Data Hub (Shortly After V1)
‒ Sharing and aggregating of data across tiers and across enterprises
‒ Centralized place for data, high scale, sync with existing data sources
24. PART ONE: SQL Database
Point of Difference On-premise SQL Server Windows Azure SQL Database
Where you manage server-level security
The Security folder in SQL Server
Management Studio'sObject Explorer
The master database
Server-level security role for creating logins securityadmin fixed server role
loginmanager database role in the master
database
Commands for managing logins
CREATE LOGIN CREATE LOGIN
ALTER LOGIN ALTER LOGIN
DROP LOGIN DROP LOGIN
(There are some parameter limitations and you
must be connected to the master database)
View that shows all logins
sys.syslogins (sys.sql_logins for SQL Server
authentication logins)
sys.sql_logins
(You must be connected to
the master database)
Server-level role for creating databases dbcreator fixed database role
dbmanager database role in the master
database
Command for creating a database CREATE DATABASE
CREATE DATABASE
(There are some parameter limitations and you
must be connected to the master database)
Dropping databases DROP DATABASE
DROP DATABASE
If a user is in the dbmanager role, they have
permission to DROP any database, regardless
of which user originally created it.
View that lists all databases
sys.databases sys.databases
(view)
(You must be connected to
the master database)
25 |
25. PART ONE: SQL Database
FEDERATIONS
One or more tables within a database are split by row and portioned across multiple
databases (federation members) /sharding/
A federation is a collection of database partitions that are:
defined by a federation distribution scheme, known as the federation scheme.
federation scheme defines a federation distribution key,
(which determines the distribution of data to partitions within the federation)
federation distribution key must be an INT, BIGINT, UNIQUEIDENTIFIER, or VARBINARY
only one federation scheme and one federation distribution key for a federation.
Scale up and out
10K records > 1DB >> INSERT, INSERT > 10M records
10K records > 10K max / DB >> INSERT, INSERT >> 100DB each 10K
Partitioning:
Horizontal / per row
26. PART ONE: SQL Database
Logical model for federations
28. PART ONE: SQL Database
Adventure…
… of course Adventure Works 2012 for SQL Database
Adventure Works for SQL Server 2012
Release date: March 2012
Adventure Works for SQL Azure
Release date: April 2012
31. PART TWO: Cloud Services
What is Cloud Services from Red Gate?
Suite of tools to help managing cloud services
Came out of SQL Azure Backup
Launched in Feb 2012 – continually developing
Contain different, but integrated features
Set up SQL Azure backup/restore
Back up/Restore your Blob storage
Back up/Restore Azure table
Flexible scheduling
Receive automated emails after each job
Quickly review your job
Control how your SQL Azure backups are named
32. PART TWO: Backup and Restore
Backup to Azure Blob Storage or Amazon S3
Format is a .bacpac
Zip file containing xml schema and json data
Permissions needed for a transactional backup
dbmanager and dbo
( CREATE DATABASE x AS COPY OF y)
To export to bacpac file
dbo
34. Most Important Article (in my private opinion)
http://bit.ly/WIHlDL
Authors: Conor Cunningham, Tobias Ternström, Silvano Coriani, Ewan Fairweather
Contributing Author: Ralph Squillace
35. MSDN SQL Database District
Windows Azure SQL Database (formerly SQL Azure) | http://bit.ly/H0Wdfx
What's New in Windows Azure SQL Database (formerly SQL Azure)
Backward Compatibility in Windows Azure SQL Database
Known Issues in Windows Azure SQL Database
Introducing Windows Azure SQL Database
Tutorials
Feedback and Community Information
Windows Azure Platform Management Portal
Windows Azure SQL Database Concepts
Administration
Development
Guidelines and Limitations
Management REST API Reference
Transact-SQL Reference
Errors and Exceptions Reference
36. APPENDIX: additional links
Red Gate Cloud Ready Services
http://cloudservices.red-gate.com/
General Guidelines and Limitations (Windows Azure SQL Database)
http://bit.ly/11wB6cK
Adventure Works for SQL Database (formerly SQL Azure)
http://bit.ly/125s0W0
Federations: Building Scalable, Elastic, and Multi-tenant Database Solutions
http://bit.ly/ZxzjmQ | http://bit.ly/15GzIEE
Error Messages (Windows Azure SQL Database)
http://bit.ly/17tnQtE
Compare SQL Server with Windows Azure SQL Database
http://bit.ly/15RyB5u
38. NEXT SESSIONS
Start Time 12:00 PM
Azure & Big Data: Room 5
Stephan Pepersack
The Cloud OS - A holistic view on Microsoft Server Technologies
Business Intelligence: Room 3
Ruben Pertusa & Paco Gonzalez
Social Text, Sentiment and Tone Analysis
Database Administration: Room 1
Andreas Wolter
SQL Server under Attack - Angriffsszenarien
Database Development: Room 2
Dennis Traub
DDD und relationale Daten - Ein Widerspruch?
Openness: Room 4
Marcel Franke
Big Data - Hype or Reality?