Perguntas técnicas frequentes do SQL Azure (pt-BR)
Autores originais: Abi Iyer, Dinakar Nethi
Resumo
O Banco de Dados do SQL Azure é um serviço de banco de dados relacional baseado em nuvem da Microsoft. O SQL Azure oferece a funcionalidade de banco de dados relacional como um serviço utilitário. As soluções de banco de dados baseadas em nuvem, como o SQL Azure, podem oferecer muitos benefícios, inclusive provisionamento rápido, escalabilidade de baixo custo, alta disponibilidade e custos gerais de gerenciamento reduzidos. Este documento aborda algumas das perguntas mais frequentes feitas pelos nossos clientes.
Sumário:
- Pré-venda
- Conectividade
- Recursos com e sem suporte
- Migração e backup/restauração de banco de dados
- Tamanho do banco de dados
- Cobrança e métricas
- Gerenciando assinaturas
- Atualizações de serviços
- Outros
Pré-venda
P: Como a Microsoft diferencia o SQL Azure do SQL Server?
Embora o SQL Server e o SQL Azure às vezes lidem com sobreposições de cargas de trabalho de aplicativos, um é um servidor de banco de dados tradicional com um modelo de licenciamento de software, enquanto o outro é um banco de dados em nuvem como um serviço em execução em data centers globais da Microsoft, disponível em modelos de planos de pagamento proporcional ao uso ou por taxa de consignação. Ambas as ofertas proporcionam a flexibilidade de escolher a plataforma e o modelo de negócio que sejam mais adequados às suas necessidades de tecnologia.
O SQL Server é um servidor de banco de dados de classe empresarial que oferece armazenamento de dados relacional “expansível” e contempla um amplo conjunto de cenários e tipos de aplicativos locais. O SQL Server não é uma oferta de serviço e não se baseia no modelo de consumo de pagamento proporcional ao uso. O programa é licenciado por servidor ou por processador e abrange uma extensa classe de hardware de servidor. Ele é executado no hardware do seu data center ou no data center que os seus provedores hospedam.
O SQL Azure é um serviço de banco de dados altamente disponível e de “expansão” distribuída que é hospedado pela Microsoft na nuvem. Ele permite provisionamento e implantação fáceis de recursos de bancos de dados relacionais como um serviço. Os desenvolvedores ou administradores não precisam instalar, configurar, corrigir ou gerenciar nenhum software. Alta disponibilidade, backup e recuperação, distribuição geográfica e recuperação de desastre são recursos internos.
Além das diferenças em expansão vertical (scale up) e horizontal (scale out), também existem diferenças importantes no modelo de operações. Como o SQL Azure abstrai o gerenciamento do hardware e do sistema operacional, você pode se concentrar na criação de soluções em vez de adquirir, gerenciar, corrigir e licenciar hardware, máquinas virtuais, sistemas operacionais e softwares da plataforma de aplicativos. Com um servidor de banco de dados dedicado (instalado localmente como um servidor tradicional, hospedado em uma VM ou hospedado por um provedor de serviços terceirizado), os desenvolvedores e profissionais de TI ainda são responsáveis por instalar, configurar, atualizar e corrigir softwares de sistema operacional e banco de dados. Além disso, os usuários de servidores de banco de dados precisam planejar suas próprias soluções de alta disponibilidade, expansão horizontal e recuperação de desastre, aumentando com isso o custo total de administração.
O SQL Azure foi desenvolvido e otimizado para aplicativos que precisam de alto dimensionamento e alta disponibilidade a um custo mais baixo do que as arquiteturas de expansão vertical tradicionais. Para essa finalidade, o SQL Azure proporciona uma solução de alta disponibilidade expansível em hardware padrão e oferece recursos de banco de dados como um serviço.
P: Qual é o método de expansão do SQL Azure? Existe alguma limitação quanto ao tamanho dos dados que podem ser armazenados no SQL Azure?
O SQL Azure é otimizado para aplicativos que precisam de alto dimensionamento e alta disponibilidade a um custo mais baixo do que as arquiteturas de expansão vertical tradicionais. Para essa finalidade, o SQL Azure proporciona uma solução de alta disponibilidade e altamente escalonável em hardware padrão. Para obter o máximo dos benefícios dessa plataforma, existe um movimento natural em direção a soluções de expansão horizontal com o uso de partições menores, em vez do modelo de expansão vertical tradicional em um único servidor.
O SQL Azure oferece suporte a conjuntos de dados que atingem tamanhos em terabytes. Bancos de dados individuais do SQL Azure podem atingir o tamanho de 50 GB. Os conjuntos de dados com mais de 50 GB podem ser particionados em vários bancos de dados do Azure com o uso de abordagens padrão do setor. Por exemplo, um fornecedor independente de software como um serviço pode facilmente provisionar a cada cliente seu próprio banco de dados, ou um revendedor pode particionar dados de vendas em bancos de dados baseados em regiões.
Também é importante observar que o limite de 50 GB por banco de dados não inclui cópias adicionais de dados que são mantidos automaticamente para maior disponibilidade, o log de transações ou tabelas em nível de sistema.
P: O que realmente significa quando dizemos que a “Web Edition inclui BD de até 5 GB/mês” ou a “Business Edition inclui BD de até 50 GB/mês”?
Você pode provisionar vários bancos de dados no SQL Azure para um ou mais aplicativos. Os bancos de dados podem ser Web ou Business Edition. Um único banco de dados Web Edition pode oferecer suporte a até 5 GB. 1 GB e 5 GB são os incrementos de cobrança. Um único banco de dados Business Edition oferecerá suporte a até 50 GB. A Business Edition usa incrementos de cobrança de 10 GB (10 GB, 20 GB, 30 GB, 40 GB, 50 GB).
Você é cobrado com base no tamanho máximo do banco de dados em um dia acumulado até o próximo incremento de cobrança.
Exemplo:
Suponha que você tenha um banco de dados Web Edition com MAXSIZE=5GB. Se o tamanho do banco de dados for 800 MB, o custo diário do banco de dados será a taxa de 1 GB da Web Edition. Se, no dia seguinte, o tamanho do banco de dados aumentar para 3 GB, o custo diário será baseado no próximo incremento de cobrança da Web Edition, que é de 5 GB para esse dia. Se, no outro dia, após a exclusão de alguns dados, o tamanho cair para 900 MB, o custo diário será baseado novamente em 1 GB.
O mesmo exemplo se aplica a um banco de dados Business Edition. Suponha que você tenha um banco de dados Business Edition com MAXSIZE=50GB. Se o tamanho total do banco de dados for 8 GB, o custo diário do banco de dados será a taxa de 10 GB. Se, no dia seguinte, o tamanho do banco de dados aumentar para 25 GB, o custo diário será baseado no próximo incremento de cobrança da Business Edition, que é de 30 GB, e assim por diante.
O custo diário é a taxa mensal desse incremento de cobrança dividida pelo número médio de dias do mês.
P: Qual é a diferença do SQL Azure quando eu trabalho com um provedor de hospedagem local usando o SQL Server 2008/SPLA?
Com um banco de dados hospedado dedicado, os desenvolvedores e profissionais de TI ainda são responsáveis por instalar, configurar, atualizar e corrigir softwares de sistema operacional e banco de dados. Além disso, os usuários de soluções de banco de dados hospedadas precisam planejar suas próprias soluções de alta disponibilidade, expansão horizontal e recuperação de desastre, aumentando com isso o custo total de administração.
O SQL Azure é um serviço de banco de dados altamente disponível, escalonável e distribuído que é hospedado pela Microsoft na nuvem. O SQL Azure facilita o provisionamento e a implantação de bancos de dados relacionais como um serviço. Os desenvolvedores não precisam instalar, configurar, corrigir ou gerenciar nenhum software. Alta disponibilidade, backup e recuperação, distribuição geográfica e recuperação de desastre são recursos internos.
P: Como os preços do SQL Azure se comparam aos preços do SQL Server?
Como se tratam de produtos diferentes – um é um servidor de banco de dados e o outro é um serviço em nuvem – os dois produtos não podem ser comparados diretamente com base no preço. O SQL Server é adquirido por meio de uma licença de software. Por outro lado, o SQL Azure é um serviço em nuvem cujos preços refletem custos associados a hardware de servidor, software, largura de banda da rede, armazenamento e gerenciamento do hardware em que o SQL Azure é executado. Cada oferta foi concebida para proporcionar a você a flexibilidade de escolher a plataforma e o modelo de negócio que sejam mais adequados às suas necessidades.
P: Se eu desenvolver meu aplicativo na plataforma SQL Azure, poderei movê-lo para um servidor local ou hospedado?
Muitos aplicativos que utilizam o SQL Azure podem ser facilmente migrados para um SQL Server local ou hospedado. Embora alguns aplicativos possam precisar de uma rearquitetura para serem executados no SQL Server, o SQL Azure oferece suporte ao mesmo modelo relacional baseado em T-SQL sobre TDS que o SQL Server; portanto, os aplicativos em pacotes LOB e personalizados existentes podem ser normalmente migrados com alterações mínimas na solução.
P: Eu posso ganhar créditos para minha licença existente do SQL Server no SQL Azure?
Não. Atualmente não permitimos a mobilidade de licença do SQL Server.
P: O SQL Azure é realmente a próxima versão do SQL Server após o SQL Server 2008 R2?
Não. O SQL Azure é um banco de dados em nuvem fornecido como um serviço, e é separado do SQL Server. O SQL Azure é um serviço de plataforma expansível que oferece banco de dados relacional sob demanda como um serviço. Embora os produtos SQL Azure e SQL Server tenham diferentes agendas de desenvolvimento, estão em caminhos de código paralelos e compartilham ativamente novos recursos e inovações.
P: A nova plataforma Windows Azure significa que os clientes moverão todos os seus aplicativos existentes e futuros para nuvem?
A Microsoft oferece a você a flexibilidade de usar tecnologia local, tecnologia em nuvem ou ambas como parte de sua estratégia S+S (software mais serviços). Os clientes têm expressado um forte interesse em ter a flexibilidade de escolher opções de implantação de acordo com suas necessidades nos negócios. A Microsoft continuará a investir pesado, sempre inovando e fornecendo novas versões dos softwares Windows Server, Windows Azure, SQL Server, SQL Azure e System Center para garantir que você tenha os benefícios das tecnologias de computação em nuvem, independentemente de seus aplicativos serem executados em seus próprios data centers, no data center de um parceiro Microsoft Hosting ou em nosso ambiente de nuvem pública.
P: Qual é o valor do serviço Sincronização de Dados SQL Azure?
A Sincronização de Dados SQL Azure oferece a gerenciabilidade de movimentação de dados entre bancos de dados SQL Azure e SQL Server por meio da sincronização de dados bidirecional. Usando a Sincronização de Dados SQL Azure, as organizações podem aproveitar a eficiência do SQL Azure e do Microsoft Sync Framework para criar hubs de dados de negócios na nuvem, permitindo que as informações sejam facilmente compartilhadas com vários data centers do SQL Azure, usuários móveis, parceiros de negócios, escritórios remotos e fontes de dados empresariais, tudo sem deixar de aproveitar as vantagens dos novos serviços na nuvem. Essa combinação proporciona uma ponte, permitindo que aplicativos locais e remotos trabalhem em conjunto. Você poderá se inscrever para o CTP (Customer Technical Preview) da Sincronização de Dados SQL Azure na página SQL Azure Community Technical Previews.
Use a Sincronização de Dados SQL Azure para:
Estender bancos de dados do SQL Azure existentes a um ou mais data centers espalhados pelo mundo para fornecer acesso a dados disponíveis geograficamente.
Vincular dados do SQL Server existentes ao SQL Azure, permitindo que novos aplicativos sejam criados no Windows Azure sem o abandono de aplicativos locais existentes.
Colocar aplicativos baseados no Windows Azure e no SQL Azure offline para oferecer uma experiência de modo em cache “semelhante ao Outlook”.
Estender dados locais a escritórios remotos, lojas e funcionários móveis por meio da nuvem.
P: Quando uma versão com suporte do serviço Sincronização de Dados SQL Azure será lançada?
Atualmente, o serviço Sincronização de Dados SQL Azure está disponível como um CTP; ouviremos os comentários dos clientes durante essa prévia pública para que possamos determinar o que é necessário fazer para garantir o fornecimento do melhor valor aos nossos clientes. Portanto, a data do lançamento dependerá da complexidade das alterações necessárias para atender aos comentários dos clientes.
P: Os clientes precisam pagar pelo serviço de Sincronização de Dados?
Atualmente não há encargos pelo serviço de Sincronização de Dados; entretanto, você ainda acumulará encargos de transferência de dados pela movimentação de dados para dentro e fora do seu banco de dados do SQL Azure. Para obter mais detalhes sobre preços, visite: http://www.microsoft.com/windowsazure/pricing/.
Conectividade
P: Como faço para me conectar ao SQL Azure?
A versão do SSMS (SQL Server Management Studio) lançada com o SQL Server 2008 R2 tem total suporte para o SQL Azure em termos de conectividade. Se você estiver usando uma versão anterior do SSMS, verá a mensagem a seguir ao inserir o nome do servidor e as credenciais de usuário na janela Conexão, que aparece quando você abre o Management Studio pela primeira vez.
Para resolver esse erro, execute as seguintes etapas:
1. Clique em OK no erro Conectar ao Servidor e, em seguida, cancele a janela de conexão.
2. Clique no ícone “Nova Consulta”.
3. Na caixa de diálogo Conectar ao Servidor exibida, insira suas credenciais de conexão.
Observação: o logon deverá ser no formato: nome_usuário**@servername**
Se precisar se conectar a um banco de dados específico, clique no botão “Opções” e digite o nome do banco de dados na caixa “Conectar ao banco de dados”.
Observação: não há suporte para USE <Banco de dados>. Se precisar se conectar a outro banco de dados depois de fazer logon, clique com o botão direito do mouse e clique em “Alterar Conexão”.
P: Como posso verificar o status atual da integridade da Plataforma Windows Azure?
Você poderá verificar o Painel de Serviços para ver a região do seu banco de dados do SQL Azure em http://www.microsoft.com/windowsazure/support/status/servicedashboard.aspx. Você também poderá assinar os RSS feeds correspondentes.
P: Não consigo me conectar ao SQL Azure. Como posso solucionar esse problema?
Consulte o Guia de solução de problemas de conectividade do SQL Azure (a página pode estar em inglês) para obter informações sobre a solução de problemas de conectividade comuns.
P: Onde encontro exemplos de cadeias de conexão para o SQL Azure?
Quando você provisiona o seu servidor, o portal do SQL Azure fornece cadeias de conexão que podem ser usadas no seu aplicativo. Abaixo estão as cadeias de conexão ADO.NET e ODBC de formato genérico:
ADO.NET
Server=tcp:<nome_do_servidor_sql_azure>.database.windows.net;
Database=<nome_do_banco_de_dados>; User ID=user@<nome_do_servidor_sql_azure>;
Password=password;Trusted_Connection=False;
ODBC
Driver={SQL Server Native Client 10.0};Server=tcp:<nome_do_servidor_sql_azure>
.database.windows.net;Database=<nome_do_banco_de_dados>;
Uid=user@<nome_do_servidor_sql_azure>;Pwd=password;Encrypt=yes;
P: Como faço backup dos meus dados armazenados no SQL Azure? Como posso recuperar dados corrompidos ou perdidos?
Em geral, é uma prática recomendada fazer um backup para recuperar dados lógicos perdidos ou corrompidos (por exemplo, a exclusão acidental de dados por aplicativos do usuário). O SQL Azure periodicamente executa backups e verificações de consistência para a recuperação de uma falha de hardware, entretanto, essa é uma operação interna que oferece suporte à integridade geral do serviço e não é exposta aos usuários do SQL Azure. No entanto, você poderá usar o BCP (utilitário de cópia em massa) ou o SSIS (SQL Server Integration Services) para copiar seus dados em um banco de dados local do SQL Server em um momento determinado. Também é possível usar o recurso de Cópia de Banco de Dados para criar uma cópia do seu banco de dados na mesma sub-região que pode ser usada como um backup no caso de um erro do usuário.
P: Existem laboratórios práticos ou demonstrações disponíveis para mover dados entre o SQL Server local e o SQL Azure?
O Kit de treinamento do Windows Azure (a página pode estar em inglês) fornece exemplos, demonstrações e apresentações sobre o SQL Azure, incluindo a migração de banco de dados.
P: Como faço para configurar o firewall do SQL Azure?
O firewall do SQL Azure impede o acesso a um servidor do SQL Azure, a menos que você tenha autorizado especificamente um endereço IP. Os endereços IP dos computadores que precisam de acesso devem ser adicionados às configurações do firewall para que possam se conectar ao servidor do SQL Azure. Isso pode ser feito por meio da guia Configurações de Firewall da página Administração de Servidor no portal do SQL Azure. Há também uma caixa de seleção “Allow Microsoft Services access to this server”. A seleção dessa caixa permitirá conexões de seus aplicativos hospedados no Windows Azure.
Para obter mais informações sobre como configurar o firewall, consulte as instruções sobre como configurar o firewall do SQL Azure (a página pode estar em inglês).
P: Como posso conceder meu acesso de função Web ao SQL Azure?
Marque a opção “Permitir acesso de Serviços Microsoft a este servidor” na guia Configurações de Firewall da página Administração de Servidor no portal.
Para obter mais informações sobre como configurar o firewall, consulte as instruções sobre como configurar o firewall do SQL Azure (a página pode estar em inglês).
P: Os meus dados ficam protegidos na nuvem?
O SQL Azure força a criptografia SSL em todas as conexões de clientes a qualquer momento; entretanto, se o seu aplicativo cliente não validar os certificados após a conexão, sua conexão poderá se tornar suscetível a ataques "intermediários".
Para obter informações sobre a criptografia de conexões, consulte as diretrizes e limitações de segurança (a página pode estar em inglês).
Recursos com e sem suporte
P: Há suporte para Servidor Vinculado no SQL Azure? Posso habilitar o Servidor Vinculado entre o servidor do SQL Server local e o servidor do SQL Azure ou entre duas instâncias de servidores do SQL Azure?
Não, atualmente não há suporte para Servidor Vinculado no SQL Azure. Portanto, você não poderá habilitar o servidor vinculado entre a solução local e o SQL Azure nem dentro da nuvem.
P: Qual é o nível de isolamento padrão com suporte no SQL Azure?
RCSI (isolamento de instantâneo de leitura confirmada).
P: Há suporte para controle de alterações no SQL Azure?
O controle de alterações não está disponível no momento no SQL Azure.
P: Há suporte para tipos de dados espaciais no SQL Azure?
O suporte para tipos de dados espaciais foi adicionado no SU3 (junho de 2010).
P: Há suporte para cópia em massa no SQL Azure?
Sim, o BCP (utilitário de cópia em massa) e o SqlBulkCopyAPI têm suporte no SQL Azure. Não há suporte para o comando TSQL BULK INSERT.
P: Se eu incluir DROP Database dentro de um loop IF...Else, recebo um erro informando que não há suporte para DROP Database mesmo quando estou conectado ao banco de dados mestre?
Essa é uma limitação no SQL Azure. A DDL (linguagem de definição de dados) do logon deve ser a única instrução em um lote, e não pode estar em um loop dentro de uma instrução IF.. ELSE. Consulte as diretrizes e limitações (a página pode estar em inglês).
Na execução das instruções CREATE``ALTER
/DROP LOGIN
e CREATE
/DROP DATABASE
em um aplicativo ADO.NET, o uso de comandos parametrizados não é permitido. Cada uma dessas instruções deve ser a única em um lote SQL.
P: Há suporte para o SQL Agent no SQL Azure?
Atualmente não há suporte para o SQL Agent no SQL Azure.
P: Há suporte para o SQL Profiler no SQL Azure?
Atualmente não há suporte para o SQL Profiler no SQL Azure. Entretanto, determinadas DMVs (exibições de gerenciamento dinâmico) estão habilitadas para ajudar a diagnosticar problemas de desempenho. Uma lista detalhada de compatibilidade de DMVs é abordada em http://msdn.microsoft.com/en-us/library/ee336238.aspx#dmv
P: Há suporte para Service Broker no SQL Azure?
Atualmente não há suporte para Service Broker no SQL Azure.
P: Há suporte para replicação no SQL Azure? Posso replicar meus dados do SQL local para o SQL Azure?
Atualmente não há suporte para replicação no SQL Azure. Algumas opções estão disponíveis conforme descrito abaixo:
Use [[articles:SQL Azure Data Sync|SQL Azure Data Sync]] para sincronizar seus dados entre o SQL Server local e o SQL Azure, bem como entre dois ou mais servidores do SQL Azure.
Você também poderá usar o SSIS (SQL Server Integration Services), o SSMS (SQL Server Management Studio) ou o BCP (utilitário de cópia em massa) para mover seus dados entre o SQL local e o SQL Azure.
O SQL Azure Migration Wizard também oferece a capacidade de mover dados entre o SQL Server local e o SQL Azure, ou entre duas instâncias do SQL Azure.
P: Há suporte para Entity Framework com o SQL Azure?
Sim. Há suporte para Entity Framework com o SQL Azure. Consulte Como conectar-se ao SQL Azure usando o ADO.NET Entity Framework (a página pode estar em inglês) para obter mais informações.
P: Há suporte para o Reporting Services, o Analysis Services ou o SSIS na solução em nuvem?
O SQL Azure Reporting foi anunciado na conferência PDC 2010, e será lançado como um CTP. Para obter mais informações, consulte a Introdução ao SQL Azure Reporting (a página pode estar em inglês). Você poderá participar do CTP inscrevendo-se na página SQL Azure Community Technical Previews.
O SQL 2008 R2 (Reporting Services, Analysis Services e SSIS) também tem suporte, é otimizado para o SQL Azure e pode acessar o SQL Azure como uma fonte de dados de seus projetos locais de Business Intelligence.
P: O SQL Azure oferece suporte ao mecanismo de particionamento automático para que eu possa particionar meus dados em vários bancos de dados com facilidade?
Atualmente não há suporte para o particionamento automático de bancos de dados do SQL Azure. Os usuários devem cuidar do particionamento de seus dados em suas lógicas de aplicativo. Consulte [[Sharding with SQL Azure]] para obter mais informações.
A Federação no SQL Azure foi anunciada, mas ainda não está disponível. Esse recurso fornecerá reparticionamento e redistribuição fáceis de dados com um mecanismo de roteamento de conexão robusto.
P: O log de erros do SQL Server está disponível no SQL Azure?
Não, o log de erros do SQL Server não está disponível no SQL Azure.
P: Há suporte para IPV6?
Não, atualmente o IPV6 não está disponível. O suporte para IPV6 será incluído se for observado um aumento de demanda.
P: Há suporte para a conexão ao SQL Azure a partir do Excel?
A versão Office 2010 do Excel pode usar o SQL Azure como uma fonte de dados. Consulte as instruções para conectar o Microsoft Excel ao banco de dados do SQL Azure (a página pode estar em inglês) para obter mais informações.
P: Há suporte para o driver JDBC com o SQL Azure?
Sim, mas é necessária uma atualização específica do driver JDBC 3.0 do SQL Server. Para obter mais informações, consulte http://support.microsoft.com/kb/2504052.
P: Há provedores de estado de sessão com suporte no SQL Azure?
Não há suporte para provedores de estado de sessão no SQL Azure. Para obter mais informações, examine os scripts ASP.NET atualizados para uso com o Microsoft SQL Azure (a página pode estar em inglês).
P: Tenho dois bancos de dados no mesmo servidor. Há suporte para a junção de tabelas dos bancos de dados no mesmo servidor?
Não há suporte para a junção de tabelas de dois bancos de dados. Um servidor do SQL Azure é um agrupamento lógico de bancos de dados. Os bancos de dados no mesmo servidor são distribuídos pelos nós do ambiente. Você poderá gravar uma consulta do tipo fan-out em uma lógica de aplicativo para conseguir a mesma funcionalidade.
P: O SQL Azure oferece suporte ao recurso de Auditoria?
Não está incluído um recurso de auditoria na versão atual do SQL Azure.
P: Como a coluna RowGUID não tem suporte no SQL Azure, qual é a alternativa recomendada aos clientes?
A alternativa é usar uniqueidentifier como o tipo de coluna e, em seguida, usar NEWID() para gerar guids em tempo de inserção.
CREATE TABLE MyTest ( MyID UNIQUEIDENTIFIER DEFAULT NEWID() PRIMARY KEY,
Name VARCHAR(10)) INSERT INTO MyTest (name) VALUES ('string1')
INSERT INTO MyTest VALUES (newid(), 'string2')
P: Qual é o fuso horário usado para servidores do SQL Azure?
Independentemente do local do data center escolhido, seu servidor do SQL Azure é configurado para o fuso horário UTC. A versão atual do SQL Azure não oferece suporte à alteração do fuso horário.
P: Existe um limite para o número de conexões feitas a um banco de dados ou servidor do SQL Azure?
Não há nenhum limite máximo para o número de conexões que podem ser estabelecidas com um banco de dados ou servidor. Entretanto, recomendamos o pool de conexões para evitar o custo inicial do estabelecimento da conexão (pesquisa, handshake SSL, processo de logon, etc.) e usar sua conexão diretamente.
P: Qual é a política de senha para a conta Administrador de Serviços no SQL Azure?
A senha deve conter pelo menos 8 caracteres de comprimento e um número, uma letra e um símbolo. A senha não pode conter três caracteres consecutivos no nome de usuário.
P: Posso criar mais de uma conta de administrador para o SQL Azure semelhante ao Windows Azure?
A versão atual do SQL Azure oferece suporte a apenas uma conta de Administrador e uma conta de Administrador de Serviços. Não há suporte ainda para o recurso de coadministrador no SQL Azure; portanto, o coadministrador verá uma lista de assinatura vazia no portal do SQL Azure. O suporte ao recurso de coadministrador será adicionado em breve.
P: Posso me conectar ao SQL Azure sem abrir a porta 1433?
Você poderá usar o gerenciador de banco de dados do SQL Azure para se conectar ao SQL Azure e gerenciá-lo sem abrir a porta 1433. Ele foi projetado especificamente para desenvolvedores da Web e outros profissionais de tecnologia que buscam uma solução simples para rapidamente desenvolver, implantar e gerenciar seus aplicativos orientados a dados na nuvem.
Migração e backup/restauração de banco de dados
P: Quais são os métodos com suporte para a movimentação de dados entre o SQL Server local e o SQL Azure?
Há várias maneiras de migrar dados entre o SQL Server local e o SQL Azure.
O SSIS (SQL Server Integration Services) pode ser usado com gerenciadores de conexão ADO.NET com paralelismo habilitado para melhor desempenho. Você também poderá gerar o script dos seus dados dependendo do tamanho e das necessidades.
Uma ferramenta de script sem suporte, o SQL Azure Migration Wizard, desenvolvido pela comunidade também está disponível no Codeplex.
BCP (utilitário de cópia em massa): você poderá usar o BCP para migrar seus dados do SQL Server local para o SQL Azure, ou vice-versa.
Poderá usar também o Assistente para Gerar Scripts com o SQL Server Management Studio 2008 R2 para gerar o script do seu banco de dados.
No SQL Server 2008 R2 ou posterior, o Assistente de Importação e Exportação oferece suporte para Bancos de Dados do SQL Azure usando o provedor .Net para SQL Server. Consulte o artigo sobre a exportação de dados do SQL Azure usando o Assistente de Importação e Exportação (a página pode estar em inglês) para obter mais informações.
Além disso, revise a demonstração sobre migração de dados do servidor local para o SQL Azure incluída no Kit de treinamento do Windows Azure (a página pode estar em inglês).
P: Como posso gerar um script compatível com o SQL Azure usando o SQL Server Management Studio?
A versão do SSMS (SQL Server Management Studio) incluída no SQL Server 2008 R2 oferece suporte para o SQL Azure. A Express Edition do SSMS pode ser baixada de Microsoft SQL Server 2008 R2 RTM - Management Studio Express. Para gerar um script compatível com o SQL Azure usando o SSMS, execute estas etapas:
1. No SSMS, selecione o banco de dados, clique com o botão direito do mouse e selecione Tarefas e, em seguida, Gerar Scripts.
2. Em Definir Opções de Script, clique em Avançado e defina Script para tipo de mecanismo de banco de dados como Banco de Dados do SQL Azure
3. Em “Definir Opções de Script”, clique em Avançado e defina “Script para tipo de mecanismo de banco de dados” como Banco de Dados do SQL Azure
P: Como posso migrar um banco de dados MySQL para o SQL Azure?
O Kit de ferramentas do SQL Server Migration Assistant 2008 para MySQL v1.0 ajudará você a migrar seus bancos de dados do MySQL para o SQL Azure. Essa ferramenta reduz expressivamente o esforço, o custo e o risco da migração do MySQL para o SQL Server 2008 e o SQL Azure. O SSMA 2008 para MySQL v1.0 CTP1 fornece uma avaliação dos esforços de migração, além de automatizar a migração de esquemas e dados.
P: O SQL Azure é compatível com versões anteriores? Posso migrar meus bancos de dados do SQL Server 2000 ou do SQL Server 2005 para o SQL Azure?
O SQL Azure não é executado em modo de compatibilidade com versões anteriores. O SQL Azure foi desenvolvido na base de código do SQL Server 2008. Portanto, nenhum dos recursos preteridos do SQL Server 2000 e do SQL Server 2005 funcionará no SQL Azure. Você poderá usar o Supervisor de Atualização do SQL Server 2008 para testar a compatibilidade do seu banco de dados antes de migrar para o SQL Azure. É possível usar o SQL Azure Migration Wizard para verificar a compatibilidade entre o SQL Server 2008 e o SQL Azure. Essa ferramenta também pode analisar rastreamentos do SQL Profiler para verificar a compatibilidade das instruções T-SQL geradas pelo aplicativo.
P: E quanto ao backup de dados armazenados no SQL Azure? Como os clientes podem recuperar dados corrompidos ou perdidos?
Em geral, é recomendável que os clientes façam backups para recuperar dados lógicos perdidos ou corrompidos (por exemplo, a exclusão acidental de dados por aplicativos do usuário). Periodicamente, o serviço também executa backups e verificações de consistência para a recuperação de uma falha de hardware, mas isso está disponível somente internamente ao serviço. Entretanto, os clientes poderão usar o BCP (utilitário de cópia em massa) ou o SSIS (SQL Server Integration Services) para copiar dados para um banco de dados do SQL Server local em qualquer momento determinado.
P: Existem laboratórios práticos ou demonstrações disponíveis para mover dados entre o SQL Server local e o SQL Azure?
O Kit de treinamento do Windows Azure (a página pode estar em inglês) fornece exemplos, demonstrações e apresentações sobre o SQL Azure, incluindo a migração de banco de dados.
Tamanho do banco de dados
P: Qual é o limite do número de bancos de dados que podem ser criados no SQL Azure?
Há um limite flexível de 150 bancos de dados por servidor. Para remover esse limite, os clientes podem ligar para o Suporte Técnico do Azure e passar por um processo de verificação de crédito.
P: Existe um limite no tamanho máximo de banco de dados que tenha suporte nas ofertas?
São oferecidas duas edições – Web Edition e Business Edition. Os tamanhos máximos de banco de dados permitidos no momento para a Web Edition e a Business Edition são, respectivamente, 5 GB e 50 GB. Esse limite será aumentado futuramente. Fique atento às novidades divulgadas no Blog da Equipe do SQL Azure
P: Qual é o comportamento do sistema quando o tamanho do banco de dados é atingido?
Os clientes verão um código de erro 40544 quando for atingido o tamanho máximo da edição provisionada. A seguir está o comportamento esperado:
- Todas as operações de inserção/atualização/criação/alteração e adição serão restritas e quaisquer tentativas de adicionar mais dados resultarão no encerramento da sessão
- As leituras continuarão a funcionar
- As operações de exclusão/remoção/truncamento e outras funcionarão, para que você possa reduzir o tamanho do seu banco de dados removendo tabelas e/ou índices, excluindo dados ou truncando tabelas
- Para que novos dados sejam inseridos, poderá haver um atraso de até 15 minutos depois que o espaço tiver sido liberado.
Há mais informações disponíveis nas diretrizes e limitações (a página pode estar em inglês).
P: Como faço para encontrar o tamanho real do meu banco de dados, para que possa saber o espaço que resta e me planejar de acordo? Existe um modo programático de encontrar o tamanho do meu banco de dados?
O tamanho é calculado com a contagem do número de páginas do banco de dados que contêm tabelas, índice e objetos. Isso é semelhante a calcular o tamanho de um banco de dados no SQL Server padrão – não o espaço em disco consumido pela instância, mas apenas o espaço consumido por cada banco de dados. Alguns fatores não afetam o tamanho:
- Os logs são excluídos do cálculo de tamanho
- O banco de dados mestre é excluído do cálculo de tamanho
- Todos os outros bancos de dados do sistema e catálogos do servidor são excluídos dos cálculos
- Todas as réplicas de banco de dados são excluídas dos cálculos (somente uma das três réplicas do banco de dados do cliente é contada)
Não existe um modo programático de encontrar essa informação em nossa oferta atual. Estamos trabalhando para adicionar esse recurso em breve. O portal do SQL Azure mostrará os números reais de uso.
Você também poderá usar a seguinte DMV (exibição de gerenciamento dinâmico) para obter um tamanho aproximado do banco de dados usado:
SELECT SUM(reservered_page_count)*8.0/1024 as ‘SizeInMB’ FROM
sys.dm_db_partition_stats
P: O tamanho do banco de dados inclui logs?
Não, o tamanho do banco de dados inclui somente dados, índices e objetos. Para obter mais informações, consulte Contas e cobrança no SQL Azure (a página pode estar em inglês).
Cobrança e métricas
P: Vocês poderiam explicar o modelo de cobrança pro rata?
O modelo de cobrança do SQL Azure é muito simples. Ele se baseia no número total de bancos de dados, e suas edições, e nos encargos de largura de banda durante o período. Quando você cria um banco de dados (de cada tipo), a medição é iniciada. Quando você remove o banco de dados, a medição é interrompida. Se o banco de dados existir durante o mês inteiro, você será cobrado o valor de US$ 9,99 por um banco de dados Web Edition e US$ 99,99 por um Enterprise Edition. Se houver bancos de dados que existiram por apenas alguns dias, cobraremos pela “diária do banco de dados”. Para um banco de dados Web Edition, isso custa cerca de US$ 0,30.
Os detalhes de uso da largura de banda estão disponíveis pela DMV sys.bandwidth_usage, e os detalhes de uso do banco de dados estão disponíveis na DMV sys.database_usage. Você encontra mais informações sobre o modelo de preços na página sobre preços do SQL Azure (a página pode estar em inglês).
P: Onde posso encontrar algumas métricas para meu serviço do SQL Azure?
Algumas métricas são armazenadas no banco de dados mestre. Foram adicionadas novas exibições, como sys.bandwidth_usage e sys.database_usage, que mostram o número, o tipo e o tamanho dos bancos de dados, e o uso da largura de banda para cada um deles.
P: Eu sou cobrado pelo banco de dados mestre?
Não há nenhum encargo pelo banco de dados mestre.
Gerenciando assinaturas
P: Quando cancelo minha assinatura do Azure, o banco de dados do SQL Azure é imediatamente excluído? Como o SQL Azure lida com os dados que foram marcados para exclusão?
Quando você solicita o cancelamento da assinatura do Azure, basicamente está cancelando a assinatura de todos os serviços do Azure. No SQL Azure, em particular, a assinatura será alterada do estado Ativo para o Desabilitado. Seus bancos de dados do SQL Azure não serão excluídos imediatamente; há um período de retenção de 90 dias, no qual você poderá optar por reabilitar a assinatura no Azure ou simplesmente exportar seus bancos de dados do SQL Azure. Após o período de cortesia de 90 dias, a assinatura entra no estado Desprovisionado e os bancos de dados do SQL Azure são excluídos permanentemente.
P: Qual é a política de privacidade e retenção de dados do SQL Azure quando cancelo minha assinatura?
O SQL Azure exclui os bancos de dados do SQL Azure 90 dias depois que você cancela sua assinatura.
P: É possível cancelar apenas o SQL Azure ou qualquer outro serviço do Azure em vez de todos os serviços?
O cancelamento afetará todos os 3 serviços do Azure disponíveis: Windows Azure, SQL Azure e AppFabric. Entretanto, como os serviços são do tipo “pague pelo que você usa”, se você desejar manter a assinatura mas não ser cobrado pelo SQL Azure, poderá simplesmente excluir seus bancos de dados e servidores, e não será cobrado pelo SQL Azure.
P: Como posso migrar meu banco de dados de uma assinatura para outra?
Você pode usar a instrução T-SQL CREATE DATABASE .... AS COPY OF ..., o Assistente para Gerar Scripts na versão SQL Sever 2008 R2 do SSMS (SQL Server Management Studio), o SSIS (SQL Server Integration Services) ou o BCP (utilitário de cópia em massa) para migrar bancos de dados de uma assinatura para outra. Como um servidor do SQL Azure é um servidor lógico e o nome do servidor é gerado automaticamente, suas cadeias de conexão de cliente precisam ser atualizadas. Se as suas assinaturas estiverem localizadas na mesma sub-região, você poderá contatar o suporte técnico para mover seu servidor e seus bancos de dados de uma assinatura para outra. A versão atual do SQL Azure oferece suporte a um único servidor por assinatura.
P: Como posso trocar assinaturas ou mover uma assinatura para outro Live ID?
Use o Assistente para Gerar Scripts na versão SQL Sever 2008 R2 do SSMS (SQL Server Management Studio), o SSIS (SQL Server Integration Services) ou o BCP (utilitário de cópia em massa) para migrar bancos de dados de uma assinatura para outra. É necessário configurar manualmente o Firewall do SQL Azure no novo servidor. Como o servidor do SQL Azure é um servidor lógico e o nome do servidor é gerado automaticamente, suas cadeias de conexão de cliente precisam ser atualizadas. Estamos trabalhando em uma ferramenta que estará disponível em breve para ajudar a mover assinaturas de uma conta para outra.
P: Como faço para criar mais servidores do SQL Azure?
Um servidor do SQL Azure é apenas um agrupamento lógico dos seus bancos de dados. O SQL Azure fornece um servidor por assinatura. Entretanto, você poderá criar muitas assinaturas com uma conta comum da plataforma Azure. Isso permitirá que você crie quantos servidores forem necessários.
Atualizações de serviços
P: Quando são distribuídas atualizações de serviços, todos usam a versão mais recente?
Sim, as atualizações de serviços são distribuídas para todos os clientes; portanto, todos estarão usando a versão mais recente.
P: Qual é o procedimento de distribuição de patches de sistema operacional e atualizações de serviços?
Patches e atualizações de serviços são distribuídos em todos os computadores do ambiente SQL Azure. Realizamos testes e avaliações para ter certeza de que nossas atualizações são compatíveis com versões anteriores.
Outros
P: Quais são as condições nas quais minha carga de trabalho pode ser restrita?
Em geral as condições de restrição podem ser categorizadas da seguinte forma:
- Você atinge a cota de tamanho do banco de dados – toda a atividade de atualização/inserção/criação/adição será restrita até o tamanho do banco de dados ser reduzido.
- Condição de carga transitória de curto prazo -- o erro indicaria que o cliente precisa repetir a operação.
Para obter mais informações sobre como solucionar os erros de conexão, consulte o artigo sobre gerenciamento de conexão no SQL Azure (a página pode estar em inglês) no TechNet Wiki. Esse artigo lista os motivos de perdas de conexão e fornece diretrizes e práticas recomendadas de codificação sobre como gerenciar o ciclo de vida de conexão no SQL Azure. Além disso, leia o tópico sobre a solução de problemas do SQL Azure (a página pode estar em inglês) na Biblioteca MSDN.
P: De que forma o SQL Azure será desenvolvido para oferecer suporte a conjuntos de dados maiores?
O SQL Azure oferece a plataforma para que os clientes possam se expandir a um potencial ilimitado. Os clientes podem particionar os dados no nível de aplicativo. No futuro, aumentaremos o tamanho de banco de dados permitido. O suporte ao particionamento da plataforma será adicionado no futuro.
P: Onde posso encontrar estudos de caso referentes ao SQL Azure?
Estudos de caso que incluem o SQL Azure estão disponíveis na página de estudos de caso do Windows Azure (a página pode estar em inglês).