Partilhar via


BASE DE DADOS ALTER (Transact-SQL)

Modifica determinadas opções de configuração de um banco de dados.

Este artigo fornece a sintaxe, argumentos, observações, permissões e exemplos para qualquer produto SQL escolhido.

Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.

Selecione um produto

Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.

* SQL Server *  

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

 

Visão geral: SQL Server

No SQL Server, essa instrução modifica um banco de dados ou os arquivos e grupos de arquivos associados ao banco de dados. ALTER DATABASE adiciona ou remove arquivos e grupos de arquivos de um banco de dados, altera os atributos de um banco de dados ou seus arquivos e grupos de arquivos, altera o agrupamento do banco de dados e define as opções do banco de dados. Os instantâneos do banco de dados não podem ser modificados. Para modificar as opções de banco de dados associadas à replicação, use sp_replicationdboption.

Devido ao seu comprimento, a sintaxe ALTER DATABASE é separada em vários artigos.

Artigo Descrição
ALTER DATABASE O artigo atual fornece a sintaxe e informações relacionadas para alterar o nome e o agrupamento de um banco de dados.
Opções de arquivo e grupo de arquivos ALTER DATABASE Fornece a sintaxe e as informações relacionadas para adicionar e remover arquivos e grupos de arquivos de um banco de dados e para alterar os atributos dos arquivos e grupos de arquivos.
opções ALTER DATABASE SET Fornece a sintaxe e informações relacionadas para alterar os atributos de um banco de dados usando as opções SET de ALTER DATABASE.
de espelhamento de banco de dados ALTER DATABASE Fornece a sintaxe e as informações relacionadas para as opções SET de ALTER DATABASE relacionadas ao espelhamento de banco de dados.
ALTER DATABASE SET HADR Fornece a sintaxe e as informações relacionadas para as opções de grupos de disponibilidade Always On de ALTER DATABASE para configurar um banco de dados secundário em uma réplica secundária de um grupo de disponibilidade Always On.
Nível de compatibilidade ALTER DATABASE Fornece a sintaxe e as informações relacionadas para as opções SET do ALTER DATABASE relacionadas aos níveis de compatibilidade do banco de dados.
ALTERAR DE CONFIGURAÇÃO COM ESCOPO DO BANCO DE DADOS Fornece a sintaxe relacionada às configurações de escopo do banco de dados usadas para configurações individuais no nível do banco de dados, como otimização de consultas e comportamentos relacionados à execução de consultas.

Sintaxe

-- SQL Server Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>
  | SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<file_and_filegroup_options>::=
  <add_or_modify_files>::=
  <filespec>::=
  <add_or_modify_filegroups>::=
  <filegroup_updatability_option>::=

<option_spec>::=
{
  | <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | <FILESTREAM_options>
  | <HADR_options>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

Argumentos

database_name

É o nome do banco de dados a ser modificado.

Observação

Esta opção não está disponível em um banco de dados contido.

ATUAL
Aplica-se a: SQL Server 2012 (11.x) e posterior.

Designa que a base de dados atual em uso deve ser alterada.

MODIFICAR NOME = new_database_name

Renomeia o banco de dados com o nome especificado como new_database_name.

COLLATE collation_name

Especifica o agrupamento para o banco de dados. collation_name pode ser um nome de agrupamento do Windows ou um nome de agrupamento SQL. Se não for especificado, o banco de dados receberá o agrupamento da instância do SQL Server.

Observação

O agrupamento não pode ser alterado após a criação do banco de dados no Banco de Dados SQL do Azure.

Ao criar bancos de dados com agrupamento diferente do padrão, os dados no banco de dados sempre respeitam o agrupamento especificado. Para o SQL Server, ao criar um banco de dados contido, as informações do catálogo interno são mantidas usando o agrupamento padrão do SQL Server, Latin1_General_100_CI_AS_WS_KS_SC.

Para obter mais informações sobre os nomes de agrupamento Windows e SQL, consulte COLLATE.

<delayed_durability_option> ::=

Aplica-se a: SQL Server 2014 (12.x) e posterior.

Para obter mais informações, consulte opções do ALTER DATABASE SET e Control Transaction Durability.

<file_and_filegroup_options>::=

Para obter mais informações, consulte ALTER DATABASE File and Filegroup Options.

Comentários

Para remover um banco de dados, use DROP DATABASE.

Para diminuir o tamanho de um banco de dados, use DBCC SHRINKDATABASE.

A instrução ALTER DATABASE deve ser executada no modo de confirmação automática (o modo de gerenciamento de transações padrão) e não é permitida em uma transação explícita ou implícita.

O estado de um arquivo de banco de dados (por exemplo, online ou offline) é mantido independentemente do estado do banco de dados. Para obter mais informações, consulte Estados do arquivo. O estado dos arquivos dentro de um grupo de arquivos determina a disponibilidade de todo o grupo de arquivos. Para que um grupo de arquivos esteja disponível, todos os arquivos dentro do grupo de arquivos devem estar online. Se um grupo de arquivos estiver offline, qualquer tentativa de acessar o grupo de arquivos por uma instrução SQL falhará com um erro. Quando você cria planos de consulta para instruções SELECT, o otimizador de consulta evita índices não clusterizados e exibições indexadas que residem em grupos de arquivos offline. Isso permite que essas declarações sejam bem-sucedidas. No entanto, se o grupo de arquivos offline contiver o heap ou o índice clusterizado da tabela de destino, as instruções SELECT falharão. Além disso, qualquer instrução INSERT, UPDATEou DELETE que modifique uma tabela com qualquer índice em um grupo de arquivos offline falhará.

Quando um banco de dados está no estado RESTORE, a maioria das instruções ALTER DATABASE falha. A exceção é definir opções de espelhamento de banco de dados. Um banco de dados pode estar no estado RESTAURANDO durante uma operação de restauração ativa ou quando uma operação de restauração de um banco de dados ou arquivo de log falha devido a um arquivo de backup corrompido.

O cache de plano para a instância do SQL Server é limpo definindo uma das seguintes opções.

  • COLISÃO
  • MODIFICAR O PADRÃO DO GRUPO DE ARQUIVOS
  • MODIFICAR READ_ONLY GRUPO DE ARQUIVOS
  • MODIFICAR READ_WRITE GRUPO DE ARQUIVOS
  • MODIFY_NAME
  • OFFLINE
  • ONLINE
  • PAGE_VERIFY
  • READ_ONLY
  • READ_WRITE

Limpar o cache do plano causa uma recompilação de todos os planos de execução subsequentes e pode causar uma diminuição súbita e temporária no desempenho da consulta. Para cada cachestore limpo no cache de plano, o log de erros do SQL Server contém a seguinte mensagem informativa: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Essa mensagem é registrada a cada cinco minutos, desde que o cache seja liberado dentro desse intervalo de tempo.

O cache de plano também é liberado nos seguintes cenários:

  • Um banco de dados tem a opção AUTO_CLOSE banco de dados definida como ON. Quando nenhuma conexão de usuário faz referência ou usa o banco de dados, a tarefa em segundo plano tenta fechar e desligar o banco de dados automaticamente.
  • Você executa várias consultas em um banco de dados que tem opções padrão. Em seguida, o banco de dados é descartado.
  • Um instantâneo de banco de dados para um banco de dados de origem é descartado.
  • Você recria com êxito o log de transações de um banco de dados.
  • Você restaura um backup de banco de dados.
  • Desanexar um banco de dados.

Alterar o agrupamento do banco de dados

Antes de aplicar um agrupamento diferente a um banco de dados, verifique se as seguintes condições estão em vigor:

  • Você é o único que atualmente usa o banco de dados.
  • Nenhum objeto vinculado ao esquema depende do agrupamento do banco de dados.

Se os seguintes objetos, que dependem do agrupamento de banco de dados, existirem no banco de dados, a instrução ALTER DATABASE database_name COLLATE falhará. O SQL Server retorna uma mensagem de erro para cada objeto que bloqueia a ação ALTER:

  • Funções definidas pelo usuário e exibições criadas com SCHEMABINDING
  • Colunas computadas
  • Restrições CHECK
  • Funções com valor de tabela que retornam tabelas com colunas de caracteres com agrupamentos herdados do agrupamento de banco de dados padrão

As informações de dependência para entidades não vinculadas ao esquema são atualizadas automaticamente quando o agrupamento do banco de dados é alterado.

Alterar o agrupamento de banco de dados não cria duplicatas entre quaisquer nomes de sistema para os objetos de banco de dados. Se nomes duplicados resultarem do agrupamento alterado, os namespaces a seguir podem causar a falha de uma alteração de agrupamento de banco de dados:

  • Nomes de objetos, como um procedimento, tabela, gatilho ou exibição
  • Nomes de esquema
  • Entidades como um grupo, função ou usuário
  • Nomes de tipo escalar, como sistemas e tipos definidos pelo usuário
  • Nomes de catálogo de texto completo
  • Nomes de colunas ou parâmetros dentro de um objeto
  • Nomes de índice dentro de uma tabela

Nomes duplicados resultantes do novo agrupamento fazem com que a ação de alteração falhe, e o SQL Server retorna uma mensagem de erro especificando o namespace onde a duplicata foi encontrada.

Ver informações da base de dados

Você pode usar exibições de catálogo, funções do sistema e procedimentos armazenados do sistema para retornar informações sobre bancos de dados, arquivos e grupos de arquivos.

Permissões

Requer permissão ALTER no banco de dados.

Exemplos

Um. Alterar o nome de um banco de dados

O exemplo a seguir altera o nome do banco de dados AdventureWorks2022 para Northwind.

USE master;
GO
ALTER DATABASE AdventureWorks2022
Modify Name = Northwind ;
GO

B. Alterar o agrupamento de um banco de dados

O exemplo a seguir cria um banco de dados chamado testdb com o agrupamento SQL_Latin1_General_CP1_CI_AS e, em seguida, altera o agrupamento do banco de dados testdb para COLLATE French_CI_AI.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO

* Banco de dados SQL *  

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

 

Visão geral: Banco de dados SQL

No Banco de Dados SQL do Azure, use esta instrução para modificar um banco de dados. Use esta instrução para alterar o nome de um banco de dados, alterar a edição e o objetivo de serviço do banco de dados, unir ou remover o banco de dados de ou para um pool elástico, definir opções de banco de dados, adicionar ou remover o banco de dados como secundário em uma relação de replicação geográfica e definir o nível de compatibilidade do banco de dados.

Devido ao seu comprimento, a sintaxe ALTER DATABASE é separada em vários artigos.

BASE DE DADOS ALTER
O artigo atual fornece a sintaxe e informações relacionadas para alterar o nome e outras configurações de um banco de dados.

ALTER DATABASE SET Options
Fornece a sintaxe e informações relacionadas para alterar os atributos de um banco de dados usando as opções SET de ALTER DATABASE.

Nível de compatibilidade ALTER DATABASE
Fornece a sintaxe e as informações relacionadas para as opções SET do ALTER DATABASE relacionadas aos níveis de compatibilidade do banco de dados.

Sintaxe

-- Azure SQL Database Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | MODIFY ( <edition_options> [, ... n] )
  | MODIFY BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
  | SET { <option_spec> [ ,... n ] WITH <termination>}
  | ADD SECONDARY ON SERVER <partner_server_name>
    [WITH ( <add-secondary-option>::=[, ... n] ) ]
  | REMOVE SECONDARY ON SERVER <partner_server_name>
  | FAILOVER
  | FORCE_FAILOVER_ALLOW_DATA_LOSS
}
[;]

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 250 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'}
  | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL (name = <elastic_pool_name>) }
       }
}

<add-secondary-option> ::=
   {
      ALLOW_CONNECTIONS = { ALL | NO }
     | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
     | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL ( name = <elastic_pool_name>) }
       | DATABASE_NAME = <target_database_name>
       | SECONDARY_TYPE = { GEO | NAMED }
       }
   }

<service-objective> ::={ 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'BC_DC_n'
      | 'BC_Gen5_n' 
      | 'BC_M_n' 
      | 'GP_DC_n'
      | 'GP_Fsv2_n' 
      | 'GP_Gen5_n' 
      | 'GP_S_Gen5_n' 
      | 'HS_DC_n'
      | 'HS_Gen5_n'
      | 'HS_S_Gen5_n'
      | 'HS_MOPRMS_n' 
      | 'HS_PRMS_n' 
      | { ELASTIC_POOL(name = <elastic_pool_name>) }
      }

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
  | <compatibility_level>
    { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}

Argumentos

database_name

É o nome do banco de dados a ser modificado.

ATUAL
Designa que a base de dados atual em uso deve ser alterada.

MODIFICAR NOME = new_database_name

Renomeia o banco de dados com o nome especificado como new_database_name. O exemplo a seguir altera o nome de um banco de dados db1 para db2:

ALTER DATABASE db1
    MODIFY Name = db2 ;

MODIFICAR (EDIÇÃO = ['Básico' | 'Padrão' | «Premium» |» GeneralPurpose» | 'BusinessCritical' | 'Hiperescala'])

Altera a camada de serviço do banco de dados.

O exemplo a seguir altera a edição para Premium:

ALTER DATABASE current
    MODIFY (EDITION = 'Premium');

Importante

A alteração EDITION falhará se a propriedade MAXSIZE do banco de dados estiver definida como um valor fora do intervalo válido suportado por essa edição.

MODIFICAR BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | 'ZONA' | 'GEO']

Altera a redundância de armazenamento de backups de restauração point-in-time e backups de retenção de longo prazo (se configurados) do banco de dados. As alterações são aplicadas a todos os backups futuros feitos. Os backups existentes continuam a usar a configuração anterior.

Para impor a residência de dados ao criar um banco de dados usando T-SQL, use LOCAL ou ZONE como entrada para o parâmetro BACKUP_STORAGE_REDUNDANCY.

MODIFICAR (MAXSIZE = [100 MB | 500 MB | 1 | 1024...4096] GB)

Especifica o tamanho máximo do banco de dados. O tamanho máximo deve estar em conformidade com o conjunto válido de valores para a propriedade EDITION do banco de dados. Alterar o tamanho máximo do banco de dados pode fazer com que o banco de dados EDITION seja alterado.

Observação

O argumento MAXSIZE não se aplica a bancos de dados únicos na camada de serviço Hyperscale. Os bancos de dados de camada de serviço de hiperescala única crescem conforme necessário, até 128 TB. O serviço Banco de dados SQL adiciona armazenamento automaticamente - não é necessário definir um tamanho máximo.

modelo DTU

MAXSIZE Básico S0-S2 S3-S12 P1-P6 P11-P15
100 MB Sim Sim Sim Sim Sim
250 MB Sim Sim Sim Sim Sim
500 MB Sim Sim Sim Sim Sim
1 GB Sim Sim Sim Sim Sim
2 GB Sim (D) Sim Sim Sim Sim
5 GB N/A Sim Sim Sim Sim
10 GB N/A Sim Sim Sim Sim
20 GB N/A Sim Sim Sim Sim
30 GB N/A Sim Sim Sim Sim
40 GB N/A Sim Sim Sim Sim
50 GB N/A Sim Sim Sim Sim
100 GB N/A Sim Sim Sim Sim
150 GB N/A Sim Sim Sim Sim
200 GB N/A Sim Sim Sim Sim
250 GB N/A Sim (D) Sim (D) Sim Sim
300 GB N/A Sim Sim Sim Sim
400 GB N/A Sim Sim Sim Sim
500 GB N/A Sim Sim Sim (D) Sim
750 GB N/A Sim Sim Sim Sim
1024 GB N/A Sim Sim Sim Sim (D)
De 1024 GB até 4096 GB em incrementos de 256 GB 1 N/A N/A N/A N/A Sim

1 P11 e P15 permitem MAXSIZE até 4 TB com 1024 GB sendo o tamanho padrão. P11 e P15 podem usar até 4 TB de armazenamento incluído sem custo adicional. No nível Premium, MAXSIZE maior que 1 TB está atualmente disponível nas seguintes regiões: Leste dos EUA2, Oeste dos EUA, Gov dos EUA Virgínia, Europa Ocidental, Alemanha Central, Sudeste Asiático, Leste do Japão, Leste da Austrália, Canadá Central e Leste do Canadá. Para obter mais detalhes sobre as limitações de recursos para o modelo de DTU, consulte limites de recursos da DTU.

O valor MAXSIZE para o modelo DTU, se especificado, deve ser um valor válido mostrado na tabela anterior para a camada de serviço especificada.

Para limites como tamanho máximo de dados e tamanho de tempdb no modelo de compra vCore, consulte os artigos para limites de recursos para bancos de dados únicos ou limites de recursos para pools elásticos.

Se nenhum valor MAXSIZEfor definido ao usar o modelo vCore, o padrão será 32 GB. Para obter mais detalhes sobre limitações de recursos para o modelo vCore, consulte vCore resource limits.

As seguintes regras se aplicam aos argumentos MAXSIZE e EDITION:

  • Se EDITION for especificado, mas MAXSIZE não for especificado, o valor padrão para a edição será usado. Por exemplo, se o EDITION estiver definido como Standard e o MAXSIZE não for especificado, o MAXSIZE será automaticamente definido como 250 MB.
  • Se nem MAXSIZE nem EDITION forem especificados, EDITION será definido como Propósito Geral e MAXSIZE será definido como 32 GB.

MODIFY (SERVICE_OBJETIVE = <service-objective>)

Especifica o tamanho da computação e o objetivo do serviço.

SERVICE_OBJECTIVE

Especifica o tamanho da computação (também conhecido como objetivo de nível de serviço ou SLO).

  • Para o modelo de compra DTU: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15. Consulte os limites de recursos de para bancos de dados únicos de DTU ou limites de recursos de para pools elásticos de DTU para encontrar o número de DTU atribuído a cada tamanho de computação.
  • Para o modelo de compra vCore, escolha a camada e forneça o número de vCores de uma lista predefinida de valores, onde o número de vCores é n. Consulte os limites de recursos para bancos de dados únicos vCore ou limites de recursos para pools elásticos vCore.
    • Por exemplo:
    • GP_Gen5_8 para uso geral, computação provisionada, série padrão (Gen5), 8 vCores.
    • GP_S_Gen5_8 para uso geral, computação sem servidor, série padrão (Gen5), 8 vCores.
    • HS_Gen5_8 para Hyperscale, computação provisionada, série padrão (Gen5), 8 vCores.
    • HS_S_Gen5_8 para Hyperscale, computação sem servidor, série Standard (Gen5), 8 vCores.

Por exemplo, o exemplo a seguir altera o objetivo de serviço de um banco de dados de camada Premium no modelo de compra DTU para P6:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'P6');

Por exemplo, o exemplo a seguir altera o objetivo de serviço de um banco de dados de computação provisionado no modelo de compra vCore para GP_Gen5_8:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'GP_Gen5_8');

DATABASE_NAME

Apenas para a Hiperescala da Base de Dados SQL do Azure. O nome do banco de dados que será criado. Usado apenas por réplicas nomeadas do Banco de Dados SQL do Azure, quando SECONDARY_TYPE = NAMED. Para obter mais informações, consulte réplicas secundárias de hiperescala.

SECONDARY_TYPE

Apenas para a Hiperescala da Base de Dados SQL do Azure. GEO especifica uma réplica geográfica NAMED especifica uma réplica nomeada. O padrão é GEO. Para obter mais informações, consulte réplicas secundárias de hiperescala.

Para obter descrições de objetivos de serviço e mais informações sobre o tamanho, as edições e as combinações de objetivos de serviço, consulte Comparar modelos de compra baseados em vCore e DTU do Banco de Dados SQL do Azure, limites de recursos DTU e limites de recursos vCore. Foi suprimido o apoio aos objetivos do serviço PRS.

Quando SERVICE_OBJETIVE não é especificado, o banco de dados secundário é criado no mesmo nível de serviço que o banco de dados primário. Quando SERVICE_OBJETIVE é especificado, o banco de dados secundário é criado no nível especificado. O SERVICE_OBJETIVE especificado deve estar dentro da mesma edição que a fonte. Por exemplo, não é possível especificar S0 se a edição for premium.

MODIFICAR (SERVICE_OBJETIVE = ELASTIC_POOL (nome = <elastic_pool_name>)

Para adicionar um banco de dados existente a um pool elástico, defina o SERVICE_OBJETIVE do banco de dados como ELASTIC_POOL e forneça o nome do pool elástico. Você também pode usar essa opção para alterar o banco de dados para um pool elástico diferente dentro do mesmo servidor. Para obter mais informações, consulte os pools elásticos ajudam a gerenciar e dimensionar vários bancos de dados no Banco de Dados SQL do Azure. Para remover um banco de dados de um pool elástico, use ALTER DATABASE para definir o SERVICE_OBJETIVE como um único tamanho de computação de banco de dados (objetivo do serviço).

Observação

Os bancos de dados na camada de serviço Hyperscale não podem ser adicionados a um pool elástico.

ADICIONAR SECUNDÁRIO NO SERVIDOR <partner_server_name>

Cria um banco de dados secundário de replicação geográfica com o mesmo nome em um servidor parceiro, transformando o banco de dados local em um primário de replicação geográfica, e começa a replicar dados de forma assíncrona do primário para o novo secundário. Se já existir um banco de dados com o mesmo nome no secundário, o comando falhará. O comando é executado no banco de dados master no servidor que hospeda o banco de dados local que se torna o principal.

Importante

Por padrão, o banco de dados secundário é criado com a mesma redundância de armazenamento de backup do banco de dados primário ou de origem. Não há suporte para alterar a redundância do armazenamento de backup durante a criação do secundário via T-SQL.

COM ALLOW_CONNECTIONS { TODOS | NÃO }

Quando ALLOW_CONNECTIONS não é especificado, ele é definido como ALL por padrão. Se estiver definido como ALL, é um banco de dados somente leitura que permite que todos os logons com as permissões apropriadas se conectem.

ELASTIC_POOL (nome = <elastic_pool_name>)

Quando ELASTIC_POOL não é especificado, o banco de dados secundário não é criado em um pool elástico. Quando ELASTIC_POOL é especificado, o banco de dados secundário é criado no pool especificado.

Importante

O usuário que executa o comando ADD SECONDARY deve ser DBManager no servidor primário, ter db_owner associação no banco de dados local e DBManager no servidor secundário. O endereço IP do cliente deve ser adicionado à lista de permissões nas regras de firewall para os servidores primário e secundário. No caso de endereços IP de clientes diferentes, o mesmo endereço IP do cliente que foi adicionado no servidor primário também deve ser adicionado ao secundário. Esta é uma etapa necessária a ser feita antes de executar o comando ADD SECONDARY para iniciar a replicação geográfica.

REMOVER SECUNDÁRIO NO SERVIDOR <partner_server_name>

Remove o banco de dados secundário replicado geograficamente especificado no servidor especificado. O comando é executado no banco de dados master no servidor que hospeda o banco de dados primário.

Importante

O usuário que executa o comando REMOVE SECONDARY deve ser DBManager no servidor primário.

ATIVAÇÃO PÓS-FALHA

Promove o banco de dados secundário em parceria de replicação geográfica na qual o comando é executado para se tornar o primário e rebaixa o primário atual para se tornar o novo secundário. Como parte desse processo, o modo de replicação geográfica é temporariamente alternado do modo assíncrono para o modo síncrono. Durante o processo de failover:

  1. O primário deixa de receber novas transações.
  2. Todas as transações pendentes são transferidas para o secundário.
  3. O secundário torna-se o primário e inicia a replicação geográfica assíncrona com o antigo primário / o novo secundário.

Essa sequência garante que nenhuma perda de dados ocorra. O período durante o qual ambos os bancos de dados estão indisponíveis é da ordem de 0 a 25 segundos enquanto as funções são alternadas. A operação total não deve demorar mais do que cerca de um minuto. Se o banco de dados primário não estiver disponível quando esse comando for emitido, o comando falhará com uma mensagem de erro indicando que o banco de dados primário não está disponível. Se o processo de failover não for concluído e parecer preso, você poderá usar o comando force failover e aceitar a perda de dados - e, em seguida, se precisar recuperar os dados perdidos, chame devops (CSS) para recuperar os dados perdidos.

Importante

O usuário que executa o comando FAILOVER deve ser DBManager no servidor primário e no servidor secundário.

FORCE_FAILOVER_ALLOW_DATA_LOSS

Promove o banco de dados secundário em parceria de replicação geográfica na qual o comando é executado para se tornar o primário e rebaixa o primário atual para se tornar o novo secundário. Use este comando somente quando o primário atual não estiver mais disponível. Ele foi projetado apenas para recuperação de desastres, quando a restauração da disponibilidade é crítica e alguma perda de dados é aceitável.

Durante um failover forçado:

  1. O banco de dados secundário especificado torna-se imediatamente o banco de dados primário e começa a aceitar novas transações.
  2. Quando o primário original pode se reconectar com o novo primário, um backup incremental é feito no primário original e o primário original se torna um novo secundário.
  3. Para recuperar dados desse backup incremental no primário antigo, o usuário utiliza devops/CSS.
  4. Se houver secundários adicionais, eles serão automaticamente reconfigurados para se tornarem secundários do novo primário. Esse processo é assíncrono e pode haver um atraso até que esse processo seja concluído. Até que a reconfiguração esteja concluída, os secundários continuam a ser secundários do antigo primário.

Importante

O usuário que executa o comando FORCE_FAILOVER_ALLOW_DATA_LOSS deve pertencer à função dbmanager no servidor primário e no servidor secundário.

Comentários

Para remover um banco de dados, use DROP DATABASE. Para diminuir o tamanho de um banco de dados, use DBCC SHRINKDATABASE.

A instrução ALTER DATABASE deve ser executada no modo de confirmação automática (o modo de gerenciamento de transações padrão) e não é permitida em uma transação explícita ou implícita.

Limpar o cache do plano causa uma recompilação de todos os planos de execução subsequentes e pode causar uma diminuição súbita e temporária no desempenho da consulta. Para cada cachestore limpo no cache de plano, o log de erros do SQL Server contém a seguinte mensagem informativa: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Essa mensagem é registrada a cada cinco minutos, desde que o cache seja liberado dentro desse intervalo de tempo.

O cache de procedimento também é liberado no seguinte cenário: Você executa várias consultas em um banco de dados que tem opções padrão. Em seguida, o banco de dados é descartado.

Ver informações da base de dados

Você pode usar exibições de catálogo, funções do sistema e procedimentos armazenados do sistema para retornar informações sobre bancos de dados, arquivos e grupos de arquivos.

Permissões

Para alterar um banco de dados, um logon deve ser o logon de administrador do servidor (criado quando o servidor lógico do Banco de Dados SQL do Azure foi provisionado), o administrador do Microsoft Entra do servidor, um membro da função de banco de dados dbmanager em master, um membro da função de banco de dados db_owner no banco de dados atual ou dbo do banco de dados. Microsoft Entra ID é (anteriormente Azure Ative Directory).

Para dimensionar bancos de dados via T-SQL, ALTER DATABASE permissões são necessárias. Para dimensionar bancos de dados por meio do portal do Azure, PowerShell, CLI do Azure ou API REST, as permissões do RBAC do Azure são necessárias, especificamente as funções de Colaborador, Colaborador do Banco de Dados SQL ou RBAC do Azure de Colaborador do SQL Server. Para obter mais informações, visite funções internas do Azure.

Exemplos

Um. Verifique as opções de edição e altere-as

Define uma edição e um tamanho máximo para o banco de dados db1:

SELECT Edition = DATABASEPROPERTYEX('db1', 'EDITION'),
        ServiceObjective = DATABASEPROPERTYEX('db1', 'ServiceObjective'),
        MaxSizeInBytes =  DATABASEPROPERTYEX('db1', 'MaxSizeInBytes');

ALTER DATABASE [db1] MODIFY (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');

B. Mover um banco de dados para um pool elástico diferente

Move um banco de dados existente para um pool chamado pool1:

ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;

C. Adicionar um Geo-Replication secundário

Cria um banco de dados secundário legível db1 no servidor secondaryserver do db1 no servidor local.

ALTER DATABASE db1
ADD SECONDARY ON SERVER secondaryserver
WITH ( ALLOW_CONNECTIONS = ALL );

D. Remover um Geo-Replication secundário

Remove o banco de dados secundário db1 no servidor secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver;

E. Failover para um Geo-Replication secundário

Promove um banco de dados secundário db1 no servidor secondaryserver se tornar o novo banco de dados primário quando executado no servidor secondaryserver.

ALTER DATABASE db1 FAILOVER;

Observação

Para obter mais informações, consulte Diretrizes de recuperação de desastres - do Banco de Dados SQL do Azure e a lista de verificação de alta disponibilidade e recuperação de desastres do Banco de Dados SQL do .

F. Forçar failover para um Geo-Replication secundário com perda de dados

Força um banco de dados secundário db1 no servidor secondaryserver a se tornar o novo banco de dados primário quando executado no servidor secondaryserver, caso o servidor primário fique indisponível. Esta opção pode incorrer em perda de dados.

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS;

G. Atualizar um único banco de dados para a camada de serviço S0 (edição Standard, nível de desempenho 0)

Atualiza um único banco de dados para a edição Standard (camada de serviço) com um tamanho de computação (objetivo de serviço) de S0 e um tamanho máximo de 250 GB.

ALTER DATABASE [db1] MODIFY (EDITION = 'Standard', MAXSIZE = 250 GB, SERVICE_OBJECTIVE = 'S0');

H. Atualizar a redundância de armazenamento de backup de um banco de dados

Atualiza a redundância de armazenamento de backup de um banco de dados para região redundante. Todos os backups futuros desse banco de dados usam a nova configuração. Isso inclui backups de restauração point-in-time e backups de retenção de longo prazo (se configurados).

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE';

* Instância gerenciada SQL *  

Plataforma de análise
Sistema (PDW)

 

Visão geral: Instância gerenciada SQL do Azure

Na Instância Gerenciada SQL do Azure, use esta instrução para definir opções de banco de dados.

Devido ao seu comprimento, a sintaxe ALTER DATABASE é separada em vários artigos.

Artigo Descrição
ALTER DATABASE
O artigo atual fornece a sintaxe e as informações relacionadas para definir opções de arquivo e grupo de arquivos, para definir opções de banco de dados e para definir o nível de compatibilidade do banco de dados.
Opções de arquivo e grupo de arquivos ALTER DATABASE
Fornece a sintaxe e as informações relacionadas para adicionar e remover arquivos e grupos de arquivos de um banco de dados e para alterar os atributos dos arquivos e grupos de arquivos.
ALTER DATABASE SET Options
Fornece a sintaxe e informações relacionadas para alterar os atributos de um banco de dados usando as opções SET de ALTER DATABASE.
Nível de compatibilidade ALTER DATABASE
Fornece a sintaxe e as informações relacionadas para as opções SET do ALTER DATABASE relacionadas aos níveis de compatibilidade do banco de dados.

Sintaxe

-- Azure SQL Managed Instance syntax  
ALTER DATABASE { database_name | CURRENT }  
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ]  
}  
[;]

<file_and_filegroup_options>::=  
  <add_or_modify_files>::=  
  <filespec>::=
  <add_or_modify_filegroups>::=  
  <filegroup_updatability_option>::=  

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>  
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <temporal_history_retention>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}  

Argumentos

database_name

É o nome do banco de dados a ser modificado.

ATUAL
Designa que a base de dados atual em uso deve ser alterada.

Comentários

  • Para remover um banco de dados, use DROP DATABASE.

  • Para diminuir o tamanho de um banco de dados, use DBCC SHRINKDATABASE.

  • A instrução ALTER DATABASE deve ser executada no modo de confirmação automática (o modo de gerenciamento de transações padrão) e não é permitida em uma transação explícita ou implícita.

  • O cache de plano para a Instância Gerenciada SQL do Azure é limpo definindo uma das seguintes opções.

    • COLISÃO

    • MODIFICAR O PADRÃO DO GRUPO DE ARQUIVOS

    • MODIFICAR READ_ONLY GRUPO DE ARQUIVOS

    • MODIFICAR READ_WRITE GRUPO DE ARQUIVOS

    • MODIFICAR NOME

      Limpar o cache do plano causa uma recompilação de todos os planos de execução subsequentes e pode causar uma diminuição súbita e temporária no desempenho da consulta. Para cada cachestore limpo no cache de plano, o log de erros do SQL Server contém a seguinte mensagem informativa: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Essa mensagem é registrada a cada cinco minutos, desde que o cache seja liberado dentro desse intervalo de tempo. O cache de plano também é liberado quando várias consultas são executadas em um banco de dados que tem opções padrão. Em seguida, o banco de dados é descartado.

  • Algumas instruções ALTER DATABASE exigem bloqueio exclusivo em um banco de dados para serem executadas. É por isso que eles podem falhar quando outro processo ativo está mantendo um bloqueio no banco de dados. Erro que é relatado em um caso como este é Msg 5061, Level 16, State 1, Line 38 com mensagem ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later. Normalmente, essa é uma falha transitória e, para resolvê-la, uma vez que todos os bloqueios no banco de dados são liberados, tente novamente a instrução ALTER DATABASE que falhou. A sys.dm_tran_locks de visualização do sistema contém informações sobre bloqueios ativos. Para verificar se há bloqueios compartilhados ou exclusivos em um banco de dados, use a seguinte consulta.

    SELECT
        resource_type, resource_database_id, request_mode, request_type, request_status, request_session_id 
    FROM 
        sys.dm_tran_locks
    WHERE
        resource_database_id = DB_ID('testdb');
    

Ver informações da base de dados

Você pode usar exibições de catálogo, funções do sistema e procedimentos armazenados do sistema para retornar informações sobre bancos de dados, arquivos e grupos de arquivos.

Permissões

Somente o logon principal no nível do servidor (criado pelo processo de provisionamento) ou os membros da função de banco de dados dbcreator podem alterar um banco de dados.

Importante

O proprietário do banco de dados não pode alterar o banco de dados, a menos que seja membro da função dbcreator.

Exemplos

Os exemplos a seguir mostram como definir o ajuste automático e como adicionar um arquivo a um banco de dados na Instância Gerenciada SQL do Azure.

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

ALTER DATABASE WideWorldImporters
  ADD FILE (NAME = 'data_17');

de instância gerenciada SQL

* Sinapse do Azure
Análise *
 

Plataforma de análise
Sistema (PDW)

 

Visão geral: Azure Synapse Analytics

No Azure Synapse, ALTER DATABASE modifica determinadas opções de configuração de um pool SQL dedicado.

Devido ao seu comprimento, a sintaxe ALTER DATABASE é separada em vários artigos.

opções ALTER DATABASE SET fornece a sintaxe e as informações relacionadas para alterar os atributos de um banco de dados usando as opções SET de ALTER DATABASE.

Sintaxe

ALTER DATABASE { database_name | CURRENT }
{
  MODIFY NAME = new_database_name
| MODIFY ( <edition_option> [, ... n] )
| SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<edition_option> ::=
      MAXSIZE = {
            250 | 500 | 750 | 1024 | 5120 | 10240 | 20480
          | 30720 | 40960 | 51200 | 61440 | 71680 | 81920
          | 92160 | 102400 | 153600 | 204800 | 245760
      } GB
      | SERVICE_OBJECTIVE = {
            'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500'
          | 'DW600' | 'DW1000' | 'DW1200' | 'DW1500' | 'DW2000'
          | 'DW3000' | 'DW6000' | 'DW500c' | 'DW1000c' | 'DW1500c'
          | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c' | 'DW6000c'
          | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
      }

Argumentos

database_name

Especifica o nome do banco de dados a ser modificado.

MODIFICAR NOME = new_database_name

Renomeia o banco de dados com o nome especificado como new_database_name.

A opção 'MODIFICAR NOME' tem algumas limitações de suporte no Azure Synapse:

  • Sem suporte com pools sem servidor do Azure Synapse
  • Sem suporte com pools SQL dedicados criados em seu espaço de trabalho do Azure Synapse
  • Com suporte com pools SQL dedicados (anteriormente SQL DW) criados por meio do portal do Azure, incluindo aqueles com um espaço de trabalho conectado

TAMANHO MÁXIMO

O padrão é 245.760 GB (240 TB).

Aplica-se a: otimizado para Compute Gen1

O tamanho máximo permitido para o banco de dados. O banco de dados não pode crescer além do MAXSIZE.

Aplica-se a: otimizado para Compute Gen2

O tamanho máximo permitido para dados rowstore no banco de dados. Os dados armazenados em tabelas de armazenamento de linhas, deltastore de um índice columnstore ou um índice não clusterizado em um índice columnstore clusterizado não podem crescer além de MAXSIZE. Os dados compactados no formato columnstore não têm um limite de tamanho e não são restringidos pelo MAXSIZE.

SERVICE_OBJECTIVE

Especifica o tamanho da computação (objetivo do serviço). Para obter mais informações sobre objetivos de serviço para o Azure Synapse, consulte Data Warehouse Units (DWUs).

Permissões

Requer estas permissões:

  • Login principal no nível do servidor (aquele criado pelo processo de provisionamento) ou
  • Membro da função de banco de dados dbmanager.

O proprietário do banco de dados não pode alterar o banco de dados, a menos que seja membro da função dbmanager.

Comentários

O banco de dados atual deve ser um banco de dados diferente daquele que você está alterando, portanto, o ALTER deve ser executado enquanto estiver conectado ao banco de dados master.

COMPATIBILITY_LEVEL no SQL Analytics é definido como 130 por padrão e não pode ser alterado. Para obter mais informações, consulte nível de compatibilidade ALTER DATABASE.

Observação

COMPATIBILITY_LEVEL se aplica apenas aos recursos provisionados (pools).

Limitações

Para executar ALTER DATABASE, o banco de dados deve estar online e não pode estar em um estado pausado.

A instrução ALTER DATABASE deve ser executada no modo de confirmação automática, que é o modo de gerenciamento de transações padrão. Isso é definido nas configurações de conexão.

A instrução ALTER DATABASE não pode fazer parte de uma transação definida pelo usuário.

Não é possível alterar o agrupamento do banco de dados.

Exemplos

Antes de executar esses exemplos, verifique se o banco de dados que você está alterando não é o banco de dados atual. O banco de dados atual deve ser um banco de dados diferente daquele que você está alterando, portanto, o ALTER deve ser executado enquanto estiver conectado ao banco de dados master.

Um. Alterar o nome do banco de dados

ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;

B. Alterar o tamanho máximo do banco de dados

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

C. Alterar o tamanho da computação (objetivo do serviço)

ALTER DATABASE dw1 MODIFY ( SERVICE_OBJECTIVE= 'DW1200' );

D. Alterar o tamanho máximo e o tamanho de computação (objetivo do serviço)

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB, SERVICE_OBJECTIVE= 'DW1200' );

de instância gerenciada SQL

* Análise
Sistema de plataforma (PDW) *
 

 

Visão geral: Analytics Platform System

No Analytics Platform System (PDW), ALTER DATABASE modifica as opções de tamanho máximo do banco de dados para tabelas replicadas, tabelas distribuídas e o log de transações. Use esta instrução para gerenciar alocações de espaço em disco para um banco de dados à medida que ele cresce ou diminui de tamanho. Este artigo também descreve a sintaxe relacionada à configuração de opções de banco de dados no Analytics Platform System (PDW).

Sintaxe

-- Analytics Platform System
ALTER DATABASE database_name
    SET ( <set_database_options> | <db_encryption_option> )
[;]

<set_database_options> ::=
{
    AUTOGROW = { ON | OFF }
    | REPLICATED_SIZE = size [GB]
    | DISTRIBUTED_SIZE = size [GB]
    | LOG_SIZE = size [GB]
    | SET AUTO_CREATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF }

Argumentos

database_name

O nome do banco de dados a ser modificado. Para exibir uma lista de bancos de dados no dispositivo, use sys.databases.

AUTOGROW = { LIGADO | DESLIGADO }

Atualiza a opção AUTOGROW. Quando o AUTOGROW está ATIVADO, o Analytics Platform System (PDW) aumenta automaticamente o espaço alocado para tabelas replicadas, tabelas distribuídas e o log de transações, conforme necessário para acomodar o crescimento dos requisitos de armazenamento. Quando o AUTOGROW está desativado, o Analytics Platform System (PDW) retorna um erro se tabelas replicadas, tabelas distribuídas ou o log de transações exceder a configuração de tamanho máximo.

REPLICATED_SIZE = tamanho [GB]

Especifica o novo máximo de gigabytes por nó de computação para armazenar todas as tabelas replicadas no banco de dados que está sendo alterado. Se você estiver planejando espaço de armazenamento do dispositivo, precisará multiplicar REPLICATED_SIZE pelo número de nós de computação no dispositivo.

DISTRIBUTED_SIZE = tamanho [GB]

Especifica o novo máximo de gigabytes por banco de dados para armazenar todas as tabelas distribuídas no banco de dados que está sendo alterado. O tamanho é distribuído por todos os nós de computação no dispositivo.

LOG_SIZE = tamanho [GB]

Especifica o novo máximo de gigabytes por banco de dados para armazenar todos os logs de transações no banco de dados que está sendo alterado. O tamanho é distribuído por todos os nós de computação no dispositivo.

ENCRIPTAÇÃO { ON | DESLIGADO }

Define o banco de dados como criptografado (ON) ou não criptografado (OFF). A criptografia só pode ser configurada para o Analytics Platform System (PDW) quando sp_pdw_database_encryption tiver sido definido como 1. Uma chave de criptografia de banco de dados deve ser criada antes que a criptografia de dados transparente possa ser configurada. Para obter mais informações sobre criptografia de banco de dados, consulte Transparent data encryption (TDE).

SET AUTO_CREATE_STATISTICS { ON | DESLIGADO }

Quando a opção de criação automática de estatísticas, AUTO_CREATE_STATISTICS, está ATIVADA, o Otimizador de Consulta cria estatísticas em colunas individuais no predicado de consulta, conforme necessário, para melhorar as estimativas de cardinalidade para o plano de consulta. Essas estatísticas de coluna única são criadas em colunas que ainda não têm um histograma em um objeto de estatística existente.

O padrão é ON para novos bancos de dados criados após a atualização para AU7. O padrão é OFF para bancos de dados criados antes da atualização.

Para obter mais informações sobre estatísticas, consulte Statistics

SET AUTO_UPDATE_STATISTICS { ON | DESLIGADO }

Quando a opção de atualização automática de estatísticas, AUTO_UPDATE_STATISTICS, está ATIVADA, o otimizador de consulta determina quando as estatísticas podem estar desatualizadas e, em seguida, atualiza-as quando são usadas por uma consulta. As estatísticas ficam desatualizadas depois que as operações de inserção, atualização, exclusão ou mesclagem alteram a distribuição de dados na tabela ou exibição indexada. O otimizador de consulta determina quando as estatísticas podem estar desatualizadas contando o número de modificações de dados desde a última atualização de estatísticas e comparando o número de modificações com um limite. O limite é baseado no número de linhas na tabela ou no modo de exibição indexado.

O padrão é ON para novos bancos de dados criados após a atualização para AU7. O padrão é OFF para bancos de dados criados antes da atualização.

Para obter mais informações sobre estatísticas, consulte Statistics.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | DESLIGADO }

A opção de atualização de estatísticas assíncronas, AUTO_UPDATE_STATISTICS_ASYNC, determina se o Otimizador de Consultas usa atualizações de estatísticas síncronas ou assíncronas. A opção AUTO_UPDATE_STATISTICS_ASYNC aplica-se a objetos de estatísticas criados para índices, colunas únicas em predicados de consulta e estatísticas criadas com a instrução CREATE STATISTICS.

O padrão é ON para novos bancos de dados criados após a atualização para AU7. O padrão é OFF para bancos de dados criados antes da atualização.

Para obter mais informações sobre estatísticas, consulte Statistics.

Permissões

Requer a permissão ALTER no banco de dados.

Mensagens de erro

Se as estatísticas automáticas estiverem desativadas e você tentar alterar as configurações de estatísticas, o PDW gerará o erro This option isn't supported in PDW. O administrador do sistema pode ativar as estatísticas automáticas ativando a opção de recurso AutoStatsEnabled.

Comentários

Os valores de REPLICATED_SIZE, DISTRIBUTED_SIZEe LOG_SIZE podem ser maiores, iguais ou menores que os valores atuais do banco de dados.

Limitações

As operações de crescimento e redução são aproximadas. Os tamanhos reais resultantes podem variar dos parâmetros de tamanho.

O Analytics Platform System (PDW) não executa a instrução ALTER DATABASE como uma operação atômica. Se a instrução for abortada durante a execução, as alterações que já ocorreram permanecerão.

As configurações de estatísticas só funcionam se o administrador tiver ativado as estatísticas automáticas. Se você for um administrador, use a opção de recurso AutoStatsEnabled para habilitar ou desabilitar estatísticas automáticas.

Comportamento de bloqueio

Usa um bloqueio compartilhado no objeto DATABASE. Não é possível alterar um banco de dados que está em uso por outro usuário para leitura ou gravação. Isso inclui sessões que emitiram uma instrução USE no banco de dados.

Desempenho

A redução de um banco de dados pode levar uma grande quantidade de tempo e recursos do sistema, dependendo do tamanho dos dados reais dentro do banco de dados e da quantidade de fragmentação no disco. Por exemplo, reduzir um banco de dados pode levar várias horas ou mais.

Determinar o progresso da criptografia

Use a seguinte consulta para determinar o progresso da criptografia de dados transparente do banco de dados como uma porcentagem:

WITH
database_dek AS (
    SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id,
        dek.encryption_state, dek.percent_complete,
        dek.key_algorithm, dek.key_length, dek.encryptor_thumbprint,
        type
    FROM sys.dm_pdw_nodes_database_encryption_keys AS dek
    INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map
        ON dek.database_id = node_db_map.database_id
        AND dek.pdw_node_id = node_db_map.pdw_node_id
    LEFT JOIN sys.pdw_database_mappings AS db_map
        ON node_db_map .physical_name = db_map.physical_name
    INNER JOIN sys.dm_pdw_nodes nodes
        ON nodes.pdw_node_id = dek.pdw_node_id
    WHERE dek.encryptor_thumbprint <> 0x
),
dek_percent_complete AS (
    SELECT database_dek.database_id, AVG(database_dek.percent_complete) AS percent_complete
    FROM database_dek
    WHERE type = 'COMPUTE'
    GROUP BY database_dek.database_id
)
SELECT DB_NAME( database_dek.database_id ) AS name,
    database_dek.database_id,
    ISNULL(
       (SELECT TOP 1 dek_encryption_state.encryption_state
        FROM database_dek AS dek_encryption_state
        WHERE dek_encryption_state.database_id = database_dek.database_id
        ORDER BY (CASE encryption_state
            WHEN 3 THEN -1
            ELSE encryption_state
            END) DESC), 0)
        AS encryption_state,
dek_percent_complete.percent_complete,
database_dek.key_algorithm, database_dek.key_length, database_dek.encryptor_thumbprint
FROM database_dek
INNER JOIN dek_percent_complete
    ON dek_percent_complete.database_id = database_dek.database_id
WHERE type = 'CONTROL';

Para obter um exemplo abrangente que demonstre todas as etapas na implementação da TDE, consulte Transparent data encryption (TDE).

Exemplos: Analytics Platform System (PDW)

Um. Alterar a configuração AUTOGROW

Defina AUTOGROW como ON para CustomerSalesde banco de dados .

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Alterar o armazenamento máximo para tabelas replicadas

O exemplo a seguir define o limite de armazenamento da tabela replicada como 1 GB para o banco de dados CustomerSales. Este é o limite de armazenamento por nó de computação.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Alterar o armazenamento máximo para tabelas distribuídas

O exemplo a seguir define o limite de armazenamento de tabela distribuída como 1000 GB (um terabyte) para o banco de dados CustomerSales. Este é o limite de armazenamento combinado em todo o dispositivo para todos os nós de computação, não o limite de armazenamento por nó de computação.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Alterar o armazenamento máximo para o log de transações

O exemplo a seguir atualiza o banco de dados CustomerSales para ter um tamanho máximo de log de transações do SQL Server de 10 GB para o dispositivo.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Verifique os valores das estatísticas atuais

A consulta a seguir retorna os valores de estatísticas atuais para todos os bancos de dados. O valor 1 significa que o recurso está ativado, e um 0 significa que o recurso está desativado.

SELECT NAME,
    is_auto_create_stats_on,
    is_auto_update_stats_on,
    is_auto_update_stats_async_on
FROM sys.databases;

F. Habilitar a criação e atualização automáticas de estatísticas para um banco de dados

Use a instrução a seguir para habilitar a criação e atualização automática e assíncrona de estatísticas para o banco de dados, CustomerSales. Isso cria e atualiza estatísticas de coluna única conforme necessário para criar planos de consulta de alta qualidade.

ALTER DATABASE CustomerSales
    SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
    SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
    SET AUTO_UPDATE_STATISTICS_ASYNC ON;

Visão geral: Microsoft Fabric

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

Microsoft Fabric

No Microsoft Fabric Warehouse, essa instrução modifica um depósito.

Devido ao seu comprimento, a sintaxe ALTER DATABASE é separada em vários artigos.

Artigo Descrição
ALTER DATABASE O artigo atual fornece a sintaxe e informações relacionadas para alterar o nome e o agrupamento de um banco de dados.
opções ALTER DATABASE SET Fornece a sintaxe e informações relacionadas para alterar os atributos de um banco de dados usando as opções SET de ALTER DATABASE.

Comentários

Atualmente, pausar a publicação de logs Delta Lake e desabilitar o comportamento V-Order em um depósito são os únicos usos para ALTER DATABASE ... SET no Microsoft Fabric. Consulte opções ALTER DATABASE SET.