32
SQL Azure from Plan, to Backup, to Cloud – Red Gate Cloud Services Tobiasz Janusz Koprowski SQL Server MVP, FORG+

KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

SQL Azure from Plan, to Backup, to Cloud

– Red Gate Cloud Services

Tobiasz Janusz Koprowski

SQL Server MVP, FORG+

Page 2: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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)

Page 3: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

AGENDA

PART ONE: SQL Azure

Plan, Compability

PART TWO: Cloud Services

Backup and Restore,

Synchronize and Schedule

APPENDIX: additional links

Page 4: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

PART ONE: SQL Azure Database

Page 5: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 6: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 7: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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.

Page 8: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 9: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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 ))

Page 10: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 11: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

Hardware Boundary

Hardware Boundary

Hardware Boundary

Hardware Boundary

Shared Environment

B C

D

A A

B

B

C

C D

D

A

Page 12: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 13: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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.

Page 14: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 15: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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.

Page 16: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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)

Page 17: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 18: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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 |

Page 19: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 20: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 21: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

PART ONE: Azure SQL Database

SHORT DEMO…

Page 22: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

PART TWO: Cloud Services

Page 23: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 24: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 25: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 26: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

APPENDIX: links & demos

Page 27: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 28: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 29: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 30: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

AFTER SESSION

CONTACT:

MAIL: [email protected]

MSG: [email protected]

KYPE: tjkoprowski

TWITTER/FACEBOOK/LINKEDIN: KoprowskiT

BLOGS:

ITPRO Anorak’s Vision: http://itblogs.pl/notbeautifulanymore/

Volume Licensing Specialites: http://koprowskit.eu/licensing/

My MVP Blog: http://koprowskit.eu/geek/

Page 31: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

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

Page 32: KoprowskiT_SQLSat229_Dublin_SQLAzure-fromPlantoBackuptoCloud

THANK YOU

Q & A