Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. SQL Azure from Plan, to Backup, to Cloud – Red Gate Cloud Services Tobiasz Koprowski SQL Server MVP, FORG+
  2. 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. 3. AGENDA  PART ONE: SQL Azure Plan, Compatability  PART TWO: Cloud Services Backup and Restore, Synchronize and Schedule  APPENDIX: additional links
  4. 4. 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
  5. 5. 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
  6. 6. 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.
  7. 7. 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
  8. 8. 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 ))
  9. 9. 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
  10. 10. 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)
  11. 11. 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
  12. 12. 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
  13. 13. PART ONE: Azure SQL Database SHORT DEMO…
  14. 14. 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
  15. 15. 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
  16. 16. PART TWO: Backup Demo
  17. 17. 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
  18. 18. PART TWO: Storage Demo
  19. 19. PART TWO: Future…
  20. 20. Hardware Boundary Hardware Boundary Hardware Boundary Hardware Boundary Shared Environment BC D A A B B C CD D A
  21. 21. Sample of SQL Compatibility 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
  22. 22. Sample of SQL NON-Compatibility SQL Server 2005  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. SQL Server 2008  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  Sparse Columns  Spatial data with GEOGRAPHY and GEOMETRY data types  SQL Server Replication  Transparent Data Encryption
  23. 23. 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)
  24. 24. 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
  25. 25. 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
  26. 26. APPENDIX: additional links  Red Gate Cloud Ready Services  http://cloudservices.red-gate.com/  General Guidelines and Limitations (Windows Azure SQL Database)  http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx  Adventure Works for SQL Database (formerly SQL Azure)  http://msftdbprodsamples.codeplex.com/releases/view/37304  Federations: Building Scalable, Elastic, and Multi-tenant Database Solutions with Windows Azure SQL Database (en-US)  http://social.technet.microsoft.com/wiki/contents/articles/2281.federations-building-scalable- elastic-and-multi-tenant-database-solutions-with-windows-azure-sql-database-en-us.aspx  http://geekswithblogs.net/shaunxu/archive/2012/01/07/sql-azure-federation-ndash- introduction.aspx  Error Messages (Windows Azure SQL Database)  http://msdn.microsoft.com/en-us/library/windowsazure/ff394106.aspx
  27. 27. AFTER SESSION  MAIL: KoprowskiT@windowslive.com  MSG: KoprowskiT@windowslive.com  JABBER: KoprowskiT@alfa.incenti.net.pl  SKYPE: tjkoprowski  TWITTER/FACEBOOK/LINKEDIN: KoprowskiT BLOGS: ITPRO Anorak’s Vision: http://itblogs.pl/notbeautifulanymore/ [PL/EN] Volume Licensing Specialites: http://koprowskit.eu/licensing/ [PL] My MVP Blog: http://koprowskit.eu/geek/ [PL/EN/ES]
  28. 28. THANK YOU Q & A