Arquivos de dados do SQL Server no Microsoft AzureSQL Server data files in Microsoft Azure

Arquivos de dados no AzureData files on Azure

Arquivos de dados do SQL Server no Microsoft Azure permitem o suporte nativo para os arquivos de banco de dados do SQL Server armazenados como Blobs do Microsoft Azure.SQL Server Data Files in Microsoft Azure enables native support for SQL Server database files stored as Microsoft Azure Blobs. Ele permite que você crie um banco de dados do SQL Server executado localmente ou em uma máquina virtual no Microsoft Azure com um local de armazenamento dedicado a seus dados no Armazenamento de Blobs do Microsoft Azure.It allows you to create a database in SQL Server running in on-premises or in a virtual machine in Microsoft Azure with a dedicated storage location for your data in Microsoft Azure Blob Storage. Esse aprimoramento simplifica especialmente a movimentação de bancos de dados entre computadores usando operações de anexação e desanexação.This enhancement especially simplifies to move databases between machines by using detach and attach operations. Além disso, ele fornece um local de armazenamento alternativo para os arquivos de backup de banco de dados ao permitir que você restaure de ou para o Armazenamento do Microsoft Azure.In addition, it provides an alternative storage location for your database backup files by allowing you to restore from or to Microsoft Azure Storage. Em virtude disso, ele permite várias soluções híbridas ao fornecer vários benefícios para virtualização de dados, movimentação de dados, segurança e disponibilidade, baixo custo e facilidade de manutenção, o que proporciona alta disponibilidade e dimensionamento elástico.Therefore, it enables several hybrid solutions by providing several benefits for data virtualization, data movement, security and availability, and any easy low costs and maintenance for high-availability and elastic scaling.

Importante

O armazenamento de bancos de dados do sistema no armazenamento de blobs do Azure não é recomendado e não tem suporte.Storing system databases in Azure blob storage is not recommended and is not supported.

Este tópico apresenta os conceitos e as considerações que são essenciais para armazenar arquivos de dados do SQL Server no serviço de Armazenamento do Microsoft Azure.This topic introduces concepts and considerations that are central to storing SQL Server data files in Microsoft Azure Storage Service.

Para ter uma experiência prática sobre como usar esse novo recurso, consulte Tutorial: Usando o serviço de armazenamento de Blobs do Microsoft Azure com bancos de dados SQL Server 2016 .For a practical hands-on experience on how to use this new feature, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

Por que usar arquivos de dados do SQL Server no Microsoft Azure?Why use SQL Server data files in Microsoft Azure?

  • Benefícios da migração fácil e rápida: esse recurso simplifica o processo de migração movendo um banco de dados de cada vez entre computadores locais, e também entre ambientes locais e de nuvem, sem nenhuma alteração do aplicativo.Easy and fast migration benefits: This feature simplifies the migration process by moving one database at a time between machines in on-premises as well as between on-premises and cloud environments without any application changes. Em virtude disso, ele oferece suporte a uma migração incremental, preservando sua infraestrutura existente local.Therefore, it supports an incremental migration while maintaining your existing on-premises infrastructure in place. Além disso, ter acesso a um armazenamento de dados centralizado simplifica a lógica do aplicativo quando um aplicativo precisa ser executado em vários locais em um ambiente local.In addition, having access to a centralized data storage simplifies the application logic when an application needs to run in multiple locations in an on-premises environment. Em alguns casos, pode ser necessário configurar rapidamente os centros de computação em locais dispersos geograficamente, que coletam dados de várias origens diferentes.In some cases, you may need to rapidly setup computer centers in geographically dispersed locations, which gather data from many different sources. Ao usar esse novo aprimoramento, em vez de mover dados de um local para outro, você poderá armazenar muitos bancos de dados como blobs do Microsoft Azure e, em seguida, executar scripts Transact-SQL para criar bancos de dados em computadores locais ou máquinas virtuais.By using this new enhancement, instead of moving data from one location to another, you can store many databases as Microsoft Azure blobs, and then run Transact-SQL scripts to create databases on the local machines or virtual machines.

  • Benefícios de custos e armazenamento ilimitado: este recurso permite ter armazenamento ilimitado fora do site no Microsoft Azure aproveitando os recursos de computação locais.Cost and limitless storage benefits: This feature enables you to have limitless off-site storage in Microsoft Azure while leveraging on-premises compute resources. Quando você usa o Microsoft Azure como um local de armazenamento, pode facilmente se concentrar na lógica do aplicativo sem a sobrecarga do gerenciamento de hardware.When you use Microsoft Azure as a storage location, you can easily focus on the application logic without the overhead of hardware management. Se você perder um nó de computação no local, poderá configurar um novo sem nenhuma movimentação de dados.If you lose a computation node on-premises, you can set up a new one without any data movement.

  • Benefícios de alta disponibilidade e recuperação de desastres: usar o recurso de arquivos de dados do SQL Server no Microsoft Azure pode simplificar as soluções de alta disponibilidade e recuperação de desastres.High availability and disaster recovery benefits: Using SQL Server Data Files in Microsoft Azure feature might simplify the high availability and disaster recovery solutions. Por exemplo, se uma máquina virtual no Microsoft Azure ou em uma instância do SQL Server falhar, você poderá recriar seus bancos de dados em uma nova instância do SQL Server apenas restabelecendo links para os Blobs do Microsoft Azure.For example, if a virtual machine in Microsoft Azure or an instance of SQL Server crashes, you can re-create your databases in a new SQL Server instance by just re-establishing links to Microsoft Azure Blobs.

  • Benefícios de segurança: esse novo aprimoramento permite que você separe uma instância de computação de uma instância de armazenamento.Security benefits: This new enhancement allows you to separate a compute instance from a storage instance. Você pode ter um banco de dados totalmente criptografado com a descriptografia ocorrendo apenas na instância de computação, mas não em uma instância de armazenamento.You can have a fully encrypted database with decryption only occurring on compute instance but not in a storage instance. Ou seja, com esse novo aprimoramento, você poderá criptografar todos os dados na nuvem pública usando certificados de TDE (Criptografia de Dados Transparente), que são separados fisicamente dos dados.In other words, using this new enhancement, you can encrypt all data in public cloud using Transparent Data Encryption (TDE) certificates, which are physically separated from the data. As chaves de TDE podem ser armazenadas no banco de dados mestre, que é armazenado localmente em seu computador local seguro fisicamente e com backup feito localmente.The TDE keys can be stored in the master database, which is stored locally in your physically secure on-premises computer and backed up locally. Você pode usar essas chaves locais para criptografar os dados, que residem no Armazenamento do Microsoft Azure.You can use these local keys to encrypt the data, which resides in Microsoft Azure Storage. Se suas credenciais de conta de armazenamento de nuvem forem roubadas, seus dados permanecerão seguros porque os certificados de TDE sempre residirão no local.If your cloud storage account credentials are stolen, your data still stays secure as the TDE certificates always reside in on-premises.

  • Backup de instantâneo: Este recurso permite usar os instantâneos do Azure para fornecer backups quase imediatos e restaurações mais rápidas para os arquivos de banco de dados armazenados usando o serviço de Armazenamento de Blobs do Azure.Snapshot backup: This feature enables you to use Azure snapshots to provide nearly instantaneous backups and quicker restores for database files stored using the Azure Blob storage service. Esse recurso permite que você simplifique as políticas de backup e restauração.This capability enables you to simplify your backup and restore policies. Para obter mais informações, consulte Backups de instantâneo de arquivo para arquivos de banco de dados no Azure.For more information, see File-Snapshot Backups for Database Files in Azure.

Conceitos e requisitosConcepts and Requirements

Conceitos de Armazenamento do AzureAzure Storage Concepts

Ao usar o recurso de arquivos de dados do SQL Server no Windows Azure, você precisará criar uma conta de armazenamento e um contêiner no Windows Azure.When using SQL Server Data Files in Windows Azure feature, you need to create a storage account and a container in Windows Azure. Em seguida, você precisará criar uma credencial do SQL Server, que inclui as informações sobre a política do contêiner, assim como uma assinatura de acesso compartilhado que é necessária para acessar o contêiner.Then, you need to create a SQL Server credential, which includes information on the policy of the container as well as a shared access signature that is necessary to access the container.

No Microsoft Azure, uma conta de armazenamento do Azure representa o nível mais alto do namespace para acesso aos Blobs.In Microsoft Azure, an Azure storage account represents the highest level of the namespace for accessing Blobs. Uma conta de armazenamento pode conter um número ilimitado de contêineres, contanto que o seu tamanho total esteja abaixo dos limites de armazenamento.A storage account can contain an unlimited number of containers, as long as their total size is below the storage limits. Para obter as informações mais recentes sobre os limites de armazenamento, consulte Assinatura e limites de serviço, cotas e restrições do Azure.For the latest information on storage limits, see Azure Subscription and Service Limits, Quotas, and Constraints. Um contêiner fornece um agrupamento de um conjunto de Blobs.A container provides a grouping of a set of Blobs. Todos os blobs devem estar em um contêiner.All Blobs must be in a container. Uma conta pode conter um número ilimitado de contêineres.An account can contain an unlimited number of containers. Da mesma maneira, um contêiner também pode armazenar um número ilimitado de blobs.Similarly, a container can store an unlimited number of Blobs as well. Há dois tipos de blobs que podem ser armazenados no Armazenamento do Azure: blobs de blocos e de páginas.There are two types of blobs that can be stored in Azure Storage: block and page blobs. Esse novo recurso usa blobs de página, que são mais eficientes quando os intervalos de bytes em um arquivo, são alterados com frequência.This new feature uses Page blobs, which are more efficient when ranges of bytes in a file are modified frequently. Você pode acessar blobs usando o seguinte formato de URL: http://storageaccount.blob.core.windows.net/<container>/<blob>.You can access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob>.

Considerações sobre cobrança do AzureAzure billing considerations

Estimar o custo do uso dos Serviços do Azure é uma questão importante do processo de tomada de decisão e planejamento.Estimating the cost of using Azure Services is an important matter in the decision making and planning process. Ao armazenar arquivos de dados do SQL Server no Armazenamento do Azure, você precisa pagar os custos associados ao armazenamento e às transações.When storing SQL Server data files in Azure Storage, you need to pay costs associated with storage and transactions. Além disso, a implementação do recurso Arquivos de Dados do SQL Server no Armazenamento do Azure exige uma renovação da concessão de Blob em intervalos de 45 a 60 segundos implicitamente.In addition, the implementation of SQL Server Data Files in Azure Storage feature requires a renewal of Blob lease every 45 to 60 seconds implicitly. Isso também resulta em custo de transações por arquivo de banco de dados, como arquivos .mdf e .ldf.This also results in transaction costs per database file, such as .mdf or .ldf. Use as informações na página Preços do Azure para ajudar a estimar os custos mensais associados ao uso do Armazenamento do Azure e das Máquinas Virtuais do Azure.Use the information on the Azure Pricing page to help estimate the monthly costs associated with the use of Azure Storage and Azure Virtual Machines.

Conceitos do SQL ServerSQL Server concepts

Ao usar esse novo aprimoramento, você deverá fazer o seguinte:When using this new enhancement, you are required to do the followings:

  • Criar uma política em um contêiner e gerar uma chave SAS (assinatura de acesso compartilhado).You must create a policy on a container and also generate a shared access signature (SAS) key.

  • Para cada contêiner usado por um arquivo de dados ou de log, você deve criar uma Credencial do SQL Server cujo nome corresponda ao caminho do contêiner.For each container used by a data or a log file, you must create a SQL Server Credential whose name matches the container path.

  • É necessário armazenar as informações relacionadas ao contêiner do Armazenamento do Azure, seu nome de política associado e a chave SAS no repositório de credenciais do SQL Server.You must store the information regarding Azure Storage container, its associated policy name, and SAS key in the SQL Server credential store.

    O exemplo a seguir supõe que um contêiner de Armazenamento do Azure tenha sido criado e uma política tenha sido criada com direitos de leitura, gravação, lista.The following example assumes that an Azure storage container has been created, and a policy has been created with read, write, list, rights. Criar uma política em um contêiner gera uma chave de SAS que pode ser mantida não criptografada na memória e usada pelo SQL Server para acessar os arquivos de blob no contêiner.Creating a policy on a container generates a SAS key which is safe to keep unencrypted in memory and needed by SQL Server to access the blob files in the container. No trecho de código a seguir, substitua '<your SAS key>' por uma entrada semelhante à seguinte: 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'.In the following code snippet, replace '<your SAS key>' with an entry similar to the following: 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'. Para saber mais, confira Gerenciar o acesso aos recursos de Armazenamento do Azure.For more information, see Manage Access to Azure Storage Resources

CREATE CREDENTIAL [https://testdb.blob.core.windows.net/data]  
WITH IDENTITY='SHARED ACCESS SIGNATURE',  
SECRET = '<your SAS key>'  

CREATE DATABASE testdb   
ON  
( NAME = testdb_dat,  
    FILENAME = 'https://testdb.blob.core.windows.net/data/TestData.mdf' )  
 LOG ON  
( NAME = testdb_log,  
    FILENAME =  'https://testdb.blob.core.windows.net/data/TestLog.ldf')  

Observação importante: se houver alguma referência ativa aos arquivos de dados em um contêiner, as tentativas de excluir as credenciais correspondentes do SQL Server apresentarão falha.Important note: If there are any active references to data files in a container, attempts to delete the corresponding SQL Server credential fails.

SegurançaSecurity

Veja abaixo os requisitos e as considerações sobre segurança ao armazenar os Arquivos de Dados do SQL Server no Armazenamento do Azure.The following are security considerations and requirements when storing SQL Server Data Files in Azure Storage.

  • Ao criar um contêiner para o serviço de armazenamento de Blobs do Azure, recomendamos que você defina o acesso como privado.When creating a container for the Azure Blob storage service, we recommend that you set the access to private. Quando você define o acesso como privado, o contêiner e os dados de blob podem ser lidos somente pelo proprietário da conta do Azure.When you set the access to private, container and blob data can be read by the Azure account owner only.

  • Ao armazenar arquivos de banco de dados do SQL Server no Armazenamento do Azure, você precisará usar uma assinatura de acesso compartilhado, um URI que concede direitos de acesso restrito a contêineres, blobs, filas e tabelas.When storing SQL Server database files in Azure Storage, you need to use a shared access signature, a URI that grants restricted access rights to containers, blobs, queues, and tables. Ao usar uma assinatura de acesso compartilhado, você poderá habilitar o SQL Server a acessar recursos em sua conta de armazenamento sem compartilhar a chave de conta de armazenamento do Azure.By using a shared access signature, you can enable SQL Server to access resources in your storage account without sharing your Azure storage account key.

  • Além disso, recomendamos que você continue a implementar as práticas tradicionais de segurança locais para seus bancos de dados.In addition, we recommend that you continue implementing the traditional on-premises security practices for your databases.

Pré-requisitos para instalaçãoInstallation prerequisites

Veja abaixo os pré-requisitos de instalação ao armazenar Arquivos de Dados do SQL Server no Azure.The followings are installation prerequisites when storing SQL Server Data Files in Azure.

  • SQL Server local: SQL Server 2016 e posteriores incluem esse recurso.SQL Server on-premises: SQL Server 2016 and later include this feature. Para saber como baixar a versão mais recente do SQL Server, consulte SQL Server.To learn how to download the latest version of SQL Server, see SQL Server.

  • SQL Server em execução em uma máquina virtual do Azure: se você estiver instalando o SQL Server em uma Máquina Virtual do Azure, instale o SQL Server 2016 ou atualize a instância existente.SQL Server running in an Azure virtual machine: If you are installing SQL Server on an Azure Virtual Machine, install SQL Server 2016, or update your existing instance. Da mesma forma, você também pode criar uma nova máquina virtual no Azure usando a imagem da plataforma do SQL Server 2016.Similarly, you can also create a new virtual machine in Azure using SQL Server 2016 platform image.

Limitações Limitations

  • Na versão atual desse recurso, não há suporte para armazenamento de dados do Fluxo de arquivos no Armazenamento do Azure.In the current release of this feature, storing FileStream data in Azure Storage is not supported. Você pode armazenar dados do Fluxo de arquivos em um banco de dados local integrado do armazenamento do Azure, mas não pode mover dados do Fluxo de arquivos entre computadores que usam o Armazenamento do Azure.You can store Filestream data in an Azure storage integrated local database but you cannot move Filestream data between machines using Azure Storage. Para os dados do FileStream , recomendamos que você continue usando as técnicas tradicionais para mover os arquivos (.mdf, .ldf) associados ao Filestream entre computadores diferentes.For FileStream data, we recommend that you continue using the traditional techniques to move the files (.mdf, .ldf) associated with Filestream between different machines.

  • Atualmente, essa nova melhoria não dá suporte a mais de uma instância do SQL Server que acessa os mesmos arquivos de banco de dados no Armazenamento do Azure ao mesmo tempo.Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Azure Storage at the same time. Se o Servidor A estiver online com um arquivo de banco de dados ativo e o Servidor B for iniciado por acidente, e também tiver um banco de dados que aponta para o mesmo arquivo de dados, o segundo servidor não iniciará o banco de dados com um código de erro 5120 Não é possível abrir o arquivo físico "%.*ls". Erro no sistema operacional %d: "%ls".If ServerA is online with an active database file and if ServerB is accidently started, and it also has a database which points to the same data file, the second server will fail to start the database with an error code 5120 Unable to open the physical file "%.*ls". Operating system error %d: "%ls".

  • Apenas arquivos .mdf, .ldf e .ndf podem ser armazenados no Armazenamento do Azure usando o recurso Arquivos de Dados do SQL Server no Azure.Only .mdf, .ldf, and .ndf files can be stored in Azure Storage by using the SQL Server Data Files in Azure feature.

  • Ao usar o recurso Arquivos de Dados do SQL Server no Azure, não haverá suporte para a replicação geográfica em sua conta de armazenamento.When using the SQL Server Data Files in Azure feature, geo-replication for your storage account is not supported. Se uma conta de armazenamento for replicada geograficamente e um failover geográfico acontecer, poderá haver corrupção de banco de dados.If a storage account is geo-replicated and a geo-failover happened, database corruption could occur.

  • Para limitações de capacidade, consulte Introdução ao armazenamento de Blobs.For capacity limitations, see Introduction to Blob storage.

  • Não é possível armazenar dados OLTP in-memory no Blob do Azure usando o recurso Arquivos de Dados do SQL Server no Armazenamento do Azure.It is not possible to store In-Memory OLTP data in Azure Blob using the SQL Server Data Files in Azure Storage feature. Isso ocorre porque o OLTP in-memory tem uma dependência do Fluxo de arquivos e, na versão atual desse recurso, não há suporte para armazenamento de dados do Fluxo de arquivos no Armazenamento do Azure.This is because In-Memory OLTP has a dependency on FileStream and, in the current release of this feature, storing FileStream data in Azure Storage is not supported.

  • Ao usar o recurso Arquivos de Dados do SQL Server no Azure, o SQL Server executa todas as comparações de URL ou de caminho de arquivo usando o Agrupamento definido no banco de dados mestre .When using SQL Server Data Files in Azure feature, SQL Server performs all URL or file path comparisons using the Collation set in the master database.

  • Os grupos de disponibilidade AlwaysOn têm suporte contanto que você não adicione novos arquivos de banco de dados ao banco de dados primário.Always On availability groups are supported as long as you do not add new database files to the primary database. Se uma operação de banco de dados exigir que um novo arquivo seja criado no banco de dados primário, primeiro desabilite os grupos de disponibilidade AlwaysOn no nó secundário.If a database operation requires a new file to be created in the primary database, first disable Always On availability groups in the secondary node. Em seguida, execute a operação de banco de dados no banco de dados primário e faça o backup do banco de dados no nó primário.Then, perform the database operation on the primary database and backup the database in the primary node. Em seguida, restaure o banco de dados para o nó secundário e habilite os grupos de disponibilidade AlwaysOn no nó secundário.Next, restore the database to the secondary node, and enable Always On availability groups in the secondary node. Observe que não há suporte para as instâncias de cluster de failover AlwaysOn ao usar o recurso Arquivos de dados do SQL Server no Azure.Note that Always On failover cluster instances is not supported when using the SQL Server data files in Azure feature.

  • Durante a operação normal, o SQL Server usa concessões temporárias para reservar os blobs para armazenamento com uma renovação de cada concessão de blob a cada 45 a 60 segundos.During normal operation, SQL Server uses temporary leases to reserve Blobs for storage with a renewal of each Blob lease every 45 to 60 seconds. Se um servidor falhar e outra instância do SQL Server configurada para usar os mesmos blobs tiver sido iniciada, a nova instância aguardará até 60 segundos pela concessão existente expirar no blob.If a server crashes and another instance of SQL Server configured to use the same blobs is started, the new instance will wait up to 60 seconds for the existing lease on the Blob to expire. Se você quiser anexar o banco de dados a outra instância e não puder aguardar a concessão expirar dentro de 60 segundos, interrompa explicitamente a concessão no blob para evitar falhas em operações de anexação.If you want to attach the database to another instance and you cannot wait for the lease to expire within 60 seconds, you can explicitly break the lease on the Blob to avoid any failures in attach operations.

Suporte a ferramentas e referência de programaçãoTools and programming reference support

Esta seção descreve as ferramentas e as bibliotecas de referência de programação que podem ser usadas ao armazenar arquivos de dados do SQL Server no Armazenamento do Azure.This section describes which tools and programming reference libraries can be used when storing SQL Server data files in Azure Storage.

Suporte ao PowerShellPowerShell support

Use cmdlets do PowerShell para armazenar arquivos de dados do SQL Server no serviço de Armazenamento de Blobs do Azure, fazendo referência a um caminho de URL do Armazenamento de Blobs, em vez de um caminho do arquivo.Use PowerShell cmdlets to store SQL Server data files in Azure Blob Storage service by referencing a Blob Storage URL path instead of a file path. Acessar blobs usando o formato de URL a seguir: http://storageaccount.blob.core.windows.net/<container>/<blob>.Access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob> .

Suporte ao objeto SQL Server e aos contadores de desempenhoSQL Server object and performance counters support

A partir do SQL Server 2014, um novo objeto SQL Server foi adicionado para ser usado com o recurso Arquivos de Dados do SQL Server no Armazenamento do Azure.Starting with SQL Server 2014, a new SQL Server object has been added to be used with SQL Server Data Files in Azure Storage feature. O novo objeto SQL Server é chamado de SQL Server, HTTP_STORAGE_OBJECT e pode ser usado pelo Monitor do Sistema para monitorar a atividade ao executar o SQL Server com o Armazenamento do Microsoft Azure.The new SQL Server object is called as SQL Server, HTTP_STORAGE_OBJECT and it can be used by System Monitor to monitor activity when running SQL Server with Windows Azure Storage.

Suporte ao SQL Server Management StudioSQL Server Management Studio support

O SQL Server Management Studio permite usar esse recurso por meio de várias janelas da caixa de diálogo.SQL Server Management Studio allows you to use this feature via several dialog windows. Por exemplo, você pode digitar o caminho da URL do contêiner de armazenamento, como > https://teststorageaccnt.blob.core.windows.net/testcontainer/:For example, you can type the URL path of the storage container, such as > https://teststorageaccnt.blob.core.windows.net/testcontainer/ :

como um Caminho em várias janelas de diálogo, como Novo Banco de Dados, Anexar Banco de Dadose Restaurar Banco de Dados.as a Path in several dialog windows, such as New Database, Attach Database, and Restore Database. Para obter mais informações, consulte Tutorial: Usando o serviço de armazenamento de Blobs do Microsoft Azure com bancos de dados SQL Server 2016.For more information, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

Suporte ao SMO (SQL Server Management Objects)SQL Server Management Objects (SMO) support

Ao usar o recurso Arquivos de Dados do SQL Server no Azure, há suporte para o SMO (SQL Server Management Objects).When using the SQL Server Data Files in Azure feature, all SQL Server Management Objects (SMO) are supported. Se um objeto SMO exigir um caminho de arquivo, use o formato de URL do BLOB em vez do caminho de um arquivo local, como https://teststorageaccnt.blob.core.windows.net/testcontainer/.If an SMO object requires a file path, use the BLOB URL format instead of a local file path, such as https://teststorageaccnt.blob.core.windows.net/testcontainer/. Para obter mais informações sobre SQL SMO (Server Management Objects), consulte Guia de Programação do SQL SMO (SQL Server Management Objects) nos Manuais Online do SQL Server.For more information about SQL Server Management Objects (SMO), see SQL Server Management Objects (SMO) Programming Guide in SQL Server Books Online.

Suporte a Transact-SQLTransact-SQL support

Esse novo recurso introduziu a seguinte alteração na área de superfície do Transact-SQL:This new feature has introduced the following change in the Transact-SQL surface area:

  • Uma nova coluna int , credential_id, na exibição do sistema sys.master_files .A new int column, credential_id, in the sys.master_files system view. A coluna credential_id é usada para habilitar arquivos de dados habilitados para o Armazenamento do Azure para a referência cruzada a sys.credentials das credenciais criadas para eles.The credential_id column is used to enable Azure Storage enabled data files to be cross-referenced back to sys.credentials for the credentials created for them. Você pode usá-la para solucionar problemas, como, por exemplo, uma credencial que não pode ser excluída quando há um arquivo de banco de dados que a utiliza.You can use it for troubleshooting, such as a credential cannot be deleted when there is a database file which uses it.

Solução de problemas de Arquivos de Dados do SQL Server no Microsoft Azure Troubleshooting for SQL Server Data Files in Microsoft Azure

Para evitar erros devido a recursos sem suporte ou limitações, primeiro analise Limitations.To avoid errors due to unsupported features or limitations, first review Limitations.

Veja abaixo a lista de erros que você pode obter ao usar o recurso Arquivos de Dados do SQL Server no Armazenamento do Azure.The list of errors that you might get when using the SQL Server Data Files in Azure Storage feature are as follows.

Erros de autenticaçãoAuthentication errors

  • Não é possível remover a credencial “%.\ls”, pois ela é usada por um arquivo de banco de dados ativo.* Cannot drop the credential '%.\ls' because it is used by an active database file.*
    Resolução: você poderá ver este erro ao tentar remover uma credencial que ainda está sendo usada por um arquivo de banco de dados ativo no Armazenamento do Azure.Resolution: You may see this error when you try to drop a credential that is still being used by an active database file in Azure Storage. Para descartar a credencial, primeiro exclua o blob associado que contém esse arquivo de banco de dados.To drop the credential, first you must delete the associated blob that has this database file. Para excluir um blob que tem uma concessão ativa, primeiro você deve interromper a concessão.To delete a blob that has an active lease, you must first break the lease.

  • A assinatura de acesso compartilhado não foi criada no contêiner corretamente. Shared Access Signature has not been created on the container correctly.
    Resolução: verifique se você criou uma assinatura de acesso compartilhado no contêiner corretamente.Resolution: Make sure that you have created a Shared Access Signature on the container correctly. Examine as instruções fornecidas na Lição 2 no Tutorial: Usando o serviço de armazenamento de Blobs do Microsoft Azure com bancos de dados SQL Server 2016 .Review the instructions given in Lesson 2 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

  • A credencial do SQL Server não foi criada corretamente. SQL Server credential has not been not created correctly.
    Resolução: verifique se você usou "Assinatura de Acesso Compartilhado" para o campo Identidade e se criou um segredo corretamente.Resolution: Make sure that you have used 'Shared Access Signature' for the Identity field and created a secret correctly. Examine as instruções fornecidas na Lição 3 no Tutorial: Usando o serviço de armazenamento de Blobs do Microsoft Azure com bancos de dados SQL Server 2016.Review the instructions given in Lesson 3 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

    Erros de blob de concessão:Lease blob errors:

  • Erro ao tentar iniciar o SQL Server depois da falha de outra instância usando os mesmos arquivos de blob.Error when trying to start SQL Server after another instance using the same blob files has crashed. Resolução: durante a operação normal, o SQL Server usa concessões temporárias para reservar os blobs para armazenamento com uma renovação de cada concessão de blob a cada 45 a 60 segundos.Resolution: During normal operation, SQL Server uses temporary leases to reserve Blobs for storage with a renewal of each Blob lease every 45 to 60 seconds. Se um servidor falhar e outra instância do SQL Server configurada para usar os mesmos blobs tiver sido iniciada, a nova instância aguardará até 60 segundos pela concessão existente expirar no blob.If a server crashes and another instance of SQL Server configured to use the same blobs is started, the new instance will wait up to 60 seconds for the existing lease on the Blob to expire. Se você quiser anexar o banco de dados a outra instância e não puder aguardar a concessão expirar dentro de 60 segundos, interrompa explicitamente a concessão no blob para evitar falhas em operações de anexação.If you want to attach the database to another instance and you cannot wait for the lease to expire within 60 seconds, you can explicitly break the lease on the Blob to avoid any failures in attach operations.

    Erros de banco de dadosDatabase errors

  1. Erros ao criar um banco de dados Errors when creating a database
    Resolução: examine as instruções fornecidas na Lição 4 no Tutorial: Usando o serviço de armazenamento de Blobs do Microsoft Azure com bancos de dados SQL Server 2016.Resolution: Review the instructions given in Lesson 4 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  2. Erros ao executar a instrução Alter Errors when running the Alter statement
    Resolução: execute a instrução Alter Database mudar quando o banco de dados estiver online.Resolution: Make sure to execute the Alter Database statement when the database is online. Ao copiar os arquivos de dados no Armazenamento do Azure, sempre crie um blob de páginas, não um blob de blocos.When copying the data files to Azure Storage, always create a page blob not a block blob. Caso contrário, ALTER Database falhará.Otherwise, ALTER Database will fail. Examine as instruções fornecidas na Lição 7 no Tutorial: Usando o serviço de armazenamento de Blobs do Microsoft Azure com bancos de dados SQL Server 2016.Review the instructions given in Lesson 7 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  3. Código de erro 5120 Não é possível abrir o arquivo físico “%.\ls”. Erro no sistema operacional %d: “%ls”* Error code 5120 Unable to open the physical file "%.\ls". Operating system error %d: "%ls"*
    Resolução: atualmente, essa nova melhoria não dá suporte a mais de uma instância do SQL Server que acessa os mesmos arquivos de banco de dados no Armazenamento do Azure ao mesmo tempo.Resolution: Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Azure Storage at the same time. Se o Servidor A estiver online com um arquivo de banco de dados ativo e o Servidor B for iniciado por acidente, e também tiver um banco de dados que aponta para o mesmo arquivo de dados, o segundo servidor não iniciará o banco de dados com um código de erro 5120 Não é possível abrir o arquivo físico "%.\ls". Erro no sistema operacional %d: "%ls".If ServerA is online with an active database file and if ServerB is accidently started, and it also has a database which points to the same data file, the second server will fail to start the database with an error *code 5120 Unable to open the physical file "%.\ls". Operating system error %d: "%ls"*.

    Para resolver esse problema, primeiro determine se você precisa que o ServerA acesse o arquivo de banco de dados no Armazenamento do Azure.To resolve this issue, first determine if you need ServerA to access the database file in Azure Storage or not. Se não precisar, basta remover as conexões entre o ServerA e os arquivos de banco de dados no Armazenamento do Azure.If not, simply remove any connection between ServerA and the database files in Azure Storage. Para fazer isso, siga estas etapas:To do this, follow these steps:

    1. Defina o caminho do arquivo do Servidor A para uma pasta local usando a instrução ALTER Database.Set the file path of Server A to a local folder by using the ALTER Database statement.

    2. Defina o banco de dados como offline no Servidor A.Set the database offline in Server A.

    3. Em seguida, copie os arquivos de banco de dados do Armazenamento do Azure para a pasta local no Servidor A. Isso garante que o ServerA ainda terá uma cópia do banco de dados localmente.Then, copy database files from Azure Storage to the local folder in Server A. This ensures that ServerA still has a copy of the database locally.

    4. Defina o banco de dados como online.Set the database online.

Próximas etapasNext steps

Criar um banco de dadosCreate a database