1. 1
Migrando Aplicações para o SQL
Azure Database
Visão Geral
SQL Azure
Migração de Aplicações
Considerações sobre Data Access Tier
Migração de Databases
Movendo Dados e Schema para o SQL Databases
Transferindo grandes quantidades de dados para o SQL
Databases
2. 3
SQL Databases
• Pague o que usar
• Balanceamento de carga
flexível
• SLAs
• Presença mundial
• Facilidade de
provisionamento e
distribuição
• Alta disponibilidade e
tolerância a falhas
automático
• Sem necessidade de
gerenciamento do servidr
ou administração de VM
• Solução de banco de
dados na nuvem em um
modelo relacional
• Ampliação do
conhecimento através do
ecosistema existente
conhecido pelo
desenvolvedor
5. 6
Data Access APIs
APIs suportadas
ADO.Net .Net 3.5 SP1 and 4.0
ODBC - SNAC 10
Entity Framework .Net 3.5 SP1 and 4.0
SQL Server 2008 Driver for PHP v1.1
Connection String
ADO.Net - Encrypt=True and add @servername to
User ID
ODBC - Encrypt=yes and add @servername to Uid
Authentication Mode
SQL Auth
6. 7
Data Access APIs
Protocols
Authentication Mode
Supported Unsupported
TCP/IP over port 1433 Dynamic ports
Named pipes
Shared memory
Supported Unsupported
SQL Auth Windows Auth
7. 9
Security Management
Criando Logins
CREATE LOGIN [login] WITH PASSWORD='password‘
Criando usuários
CREATE USER user FROM LOGIN [login];
Gerenciamento de permissões
EXEC sp_addrolemember ‘dbmanager', 'user'; [securityadmin role]
EXEC sp_addrolemember ‘loginmanager', 'user'; [dbcreator]
8. 10
Gerenciamento do Firewall
Acesso via Portal
Programmatic Access
System Views e Stored Procedures
View: sys.firewall_rules
Stored Procedure: sp_set_firewall_rule
Stored Procedure: sp_delete_firewall_rule
9. 11
Collations
Default Collation
Set to SQL_LATIN1_GENERAL_CP1_CI_AS
Aplica-se a…
Metadata, TempDb and Default para dados
Nomes de objetos (tables, sprocs etc), variáveis do tipo String
e Colunas quando nenhum collation for especificado
Use o collation específico quando necessário
CREATE TABLE [dbo].[ErrorLog](
[ErrorLogID] [int] IDENTITY(1,1) NOT NULL,
[ErrorTime] [datetime] NOT NULL,
[UserName] [nvarchar(4000)] COLLATE Turkish_100_CI_AI NOT NULL,
[ErrorNumber] [int] NOT NULL,
[ErrorMessage] [nvarchar](4000) COLLATE Japanese_CI_AS NOT NULL,
CONSTRAINT [PK_ErrorLog_ErrorLogID] PRIMARY KEY CLUSTERED ([ErrorLogID] ASC)
)
declare @str nvarchar(128) COLLATE Greek_CS_AI
10. 12
Comparativo onPrem
Admin – Sem administração física
Existe uma base master
Não existem objetos de nível de servidor (sp_configure, endpoints, DBCC, DMVs de nível
de servidor and Views de Sistema…)
Paridade com SQL onPrem
Maioria das features disponíveis
Window Functions
Índices XML
SELECT INTO
Full Text
https://azure.microsoft.com/pt-br/documentation/articles/sql-database-v12-whats-
new/
Algumas funcionalidades Não Disponíveis
Diagramas de bancos de dados, Database Mail, Event Notification, EXECUTE AS, Agent, Jobs,
Filestream, Tabelas temporárias Globais, Service Broker etc.
https://azure.microsoft.com/pt-br/documentation/articles/sql-database-transact-sql-
information/
11. 14
Migrando Databases
Movendo Schema e/ou Dados
Opções Disponíveis
SQL Server
DB2
Oracle
MySQL
Access
Outros
SQL Server Migration Assistant – SSMA
https://blogs.msdn.microsoft.com/ssma/
12. 15
Do SQL Server para Azure
Ferramentas
SSMS > Generate Script Wizard
SSMS > Import / Export Wizard
Copy Database command
SSIS
SQL Server Upgrade Advisor
SQL Azure Migration Wizard (Codeplex)
16. 34
RecomendaçõesparatransferênciadedadosparaoSQL
Databases
Divida os dados em múltiplos pacotes
concorrentes
Adcione os índices não clusterizados DEPOIS
de carregar os dados.
Exemplo: Dois índices adicionais criados antes do
carregamento de dados aumenta o tamanho da
base em cerca de 50% e o tempo de carregamento
em cerca de 170%.
Code Far works with any type of code – i.e. Java, etc.. Does NOT have to be Azure or .NET
For MySQL - http://www.microsoft.com/downloads/en/details.aspx?FamilyID=69739c8c-ac82-41de-b9e6-8fa5ae2594d9&displaylang=en
For Access - http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5abe098d-c7e1-46c6-994a-09a2856eef0b&displaylang=en