Microsoft released SQL Azure more than two years ago - that's enough time for testing (I hope!). So, are you ready to move your data to the Cloud? If you’re considering a business (i.e. a production environment) in the Cloud, you need to think about methods for backing up your data, a backup plan for your data and, eventually, restoring with Red Gate Cloud Services. In this session, you’ll see the differences, functionality, restrictions, and opportunities in SQL Azure and On-Premise SQL Server 2008/2008 R2/2012. We’ll consider topics such as how to be prepared for backup and restore, and which parts of a cloud environment are most important: keys, triggers, indexes, prices, security, service level agreements, etc.
1. SQL Azure from Plan, to Backup, to Cloud
– Red Gate Cloud Services
Tobiasz Janusz Koprowski
SQL Server MVP, FORG+
2. ABOUT ME
Polish SQL Server User Group Leader
Microsoft Certified Trainer
MCP, MCSA, MLSS, MLSBS, MCTS, MCITP, MCT
SQL Server MVP three 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)
3. AGENDA
PART ONE: SQL Azure
Plan, Compability
PART TWO: Cloud Services
Backup and Restore,
Synchronize and Schedule
APPENDIX: additional links
5. 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
6. 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
7. 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.
8. 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
9. 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
))
10. 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
12. 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
13. 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.
14. 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
15. 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.
16. 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)
17. 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
18. 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)
19 |
19. PART ONE: SQL Database
FEDERATIONS
from 2009 through 2011 for today (history)
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
Vertical / per column
20. 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
23. 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
Backup and Restore for SQL Azure
Synchronize for storage
Scheduling + e-mail notification
24. 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 I think
25. PART TWO: Storage Backup
Backup between Azure Storage and Amazon
S3
Checksum or filename comparison
Copies only updated or added files
Deleted files are not removed currently
New features coming fast
Architected to support more storage systems
27. 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
28. 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
29. 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
31. NEXT SESSION
10:15 AM
Matija Lah
SQL Server and XML Query Level: Advanced
Michael Morris
Choosing the right Storage technology for SQL Server (Flash or rotating
or both? For OLTP or DW)
Chris Webb
DAXMD: SSAS Multidimensional meets DAX and Power View