sqlsaturday#290_kiev_windowsazuredatabaseforbeginners

40
#sqlsatMoscow Windows Azure SQL Database Tips and Tricks for Beginners Tobiasz Janusz Koprowski SQL Server MVP, FORG+

Upload: tobiasz-koprowski

Post on 26-Dec-2014

170 views

Category:

Education


1 download

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 (and not only). 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.

TRANSCRIPT

Page 1: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Windows Azure SQL Database

Tips and Tricks for Beginners

Tobiasz Janusz Koprowski

SQL Server MVP, FORG+

Page 2: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Спонсоры

Page 3: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Sponsors

Page 4: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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

About14 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, SQL Rally, SQL Relay…

Deep Dives Co-Author:

High availability of SQL Server in the context

of Service Level Agreements (Chapter 18th)

Technical reviewer:

Exploring MDX for SQL Server 2012

@KoprowskiT

Page 5: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

AGENDA

PART ONE: SQL Azure

Introduction

Security and errors

Compability

Scenarios

PART TWO: Demo

Easy create

Easy manage

PART THREE: Cloud Services

Backup and Restore,

Synchronize and Schedule

PART THREE:

additional links

Q&A

Page 6: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

PART ONE: SQL Azure Database

Page 7: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 8: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 9: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Windows Azure DataCenters

Some datacenters have servers grouped inside containers - each containing 1800-2500 servers.

North America

North-central US - Chicago, IL

South-central US - San Antonio, TX

West US - California

East US - Virginia

Asia

East Asia - Hong Kong, China

South East Asia - Singapore

Europe

North Europe - Dublin, Ireland

West Europe - Amsterdam, Netherlands

Japan

Japan East, the Tokyo area

Japan West, the Kansai area

Oceania (announced, coming soon)

Sydney, New South Wales

Melbourne, Victoria

Page 10: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 11: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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

No SQL Server jobs

No SQL Server Browser

No Cross Database queries

Page 12: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 13: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 14: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Hardware Boundary

Hardware Boundary

Hardware Boundary

Hardware Boundary

Shared Environment

BC

D

A A

B

B

C

CD

D

A

Page 15: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 16: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 17: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 18: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 19: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Connection Model

When writing applications for Windows Azure SQL Database, 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 or later.

• Entity Framework from the .NET Framework 3.5 Service Pack 1 or later.

• SQL Server 2008 R2 Native Client ODBC driver. SQL Server 2008 Native Client ODBC

driver is also supported, but has less functionality.

• SQL Server 2008 Driver for PHP version 1.1 or later.

• An updated version of SQL Server JDBC Driver 3.0 that supports SQL Database.

Windows Azure SQL Database supports tabular data stream (TDS) protocol client

version 7.3 or later. Earlier versions of TDS protocol are not supported.

Connecting to Windows Azure SQL Database by using OLE DB or ADO is not supported

Support for ASP.NET controls

Clients connect directly to a database

Page 20: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Security Model

Uses regular SQL security model

Authenticate logins, map to users and roles

Authorize users and roles to SQL objects

Support for standard SQL Auth logins

Username + password

Future AD Federation, WLID – Windows Live ID, etc as alternate authentication

protocols

[admin, administrator, guest, root, sa]

Security model is 100% compatible with on-premise SQL

Page 21: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 22: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

PART ONE: SQL Database

Point of Difference On-premise SQL Server Windows Azure SQL Database

Where you manage server-level securityThe Security folder in SQL Server

Management Studio'sObject ExplorerThe master database

Server-level security role for creating logins securityadmin fixed server roleloginmanager 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 loginssys.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 roledbmanager 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)

22 |

Page 23: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 24: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

PART TWO: WASD Demo

Page 25: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

PART TWO: Cloud Services

Page 26: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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

Page 27: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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

Page 28: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

PART TWO: Backup Demo

Page 29: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 30: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

PART TWO: Storage Demo

Page 31: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

PART TWO: Future…

Page 32: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

APPENDIX: links & demos

Page 33: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 34: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

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 35: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

APPENDIX: additional links

Red Gate Cloud Ready Services

http://cloudservices.red-gate.com/

Windows Azure DataCenter Video

http://www.youtube.com/watch?v=JJ44hEr5DFE

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 36: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

APPENDIX: additional links

SQL Database Migration Wizard v3.9.14.1 & v4.0.17.1

Project Description

SQL Database Migration Wizard (SQLAzureMW) is designed to help you migrate your SQL

Server 2005/2008/2012 databases to Azure SQL Database.

Requirements

SQLAzureMW v3x and tools requires SQL Server 2008 R2 SP1 bits to run.

SQLAzureMW v4x and tools requires SQL Server 2012 bits to run.

AzureMWBatchBackup:

This is used to create a backup of a database schema and data. The data is downloaded via

BCP. The TSQL output from SQLAzureMWBatchBackup can be used by SQLAzureMW or

SQLAzureMWBatchUpload.

SQLAzureMWBatchUpload:

Takes the output from SQLAzureMW or SQLAzureMWBatchBackup and runs it against the

target Azure SQL Database (or SQL Server) server.

Page 37: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Page 38: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

AFTER SESSION

CONTACT:

MAIL: [email protected]

MSG: [email protected]

TWITTER/FACEBOOK/LINKEDIN: KoprowskiT

SLIDES FROM SESSION:

SQLSat Page: http://www.sqlsaturday.com/290/schedule.aspx

SlideShare Profile: http://www.slideshare.net/Anorak

BLOGS:

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

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

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

Page 39: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Sponsors

Page 40: SQLSaturday#290_Kiev_WindowsAzureDatabaseForBeginners

#sqlsatMoscow

Дуже дякую!

Q & A