Este tópico lista os procedimentos armazenados disponíveis para instâncias do ApsaraDB RDS for SQL Server com o SQL Server 2012 ou posterior.
Uso
Os comandos neste tópico são para o SSMS e usam GO como separador de comandos em lote. Ao executar comandos de procedimentos armazenados no DMS, não inclua a palavra-chave GO. Caso contrário, ocorrerá um erro.
Atualizar estatísticas do banco de dados
Comando T-SQL
sp_rds_update_db_stats
Descrição
Atualiza as estatísticas do banco de dados de forma flexível e eficiente, permitindo a configuração de parâmetros como taxa de amostragem, grau de paralelismo, tempo limite e limiar de modificação.
Uso
-- This is a comprehensive example that includes multiple parameters.
-- Update database statistics for the test_db database. Set the sampling rate to 50%, the degree of parallelism to 4, the timeout to 7,200 seconds, and the modification threshold to 3.
EXEC sp_rds_update_db_stats
@db_name = 'test_db', -- Database name (required)
@sample_percent = 50, -- Sampling rate (optional)
@max_dop = 4, -- Degree of parallelism (optional, not supported in SQL Server 2012 and earlier)
@timeout_seconds = 7200, -- Timeout in seconds (optional)
@modification_threshold = 3; -- Modification threshold (optional)
Ao especificar apenas o parâmetro @db_name ou ao usar o SQL Server 2008, o sistema executa o procedimento armazenado sp_updatestats por padrão. Para obter mais informações, consulte a documentação oficial da Microsoft.
|
Parâmetro |
Obrigatório |
Descrição |
|
@db_name |
Sim |
Especifica o banco de dados cujas estatísticas serão atualizadas. Exemplo:
|
|
@sample_percent |
Não |
Especifica a porcentagem da tabela a ser amostrada para as estatísticas. O tipo de dado é Se omitido, o sistema usará a taxa de amostragem padrão. Para obter mais informações, consulte a documentação oficial da Microsoft. Exemplo:
|
|
@max_dop |
Não |
Especifica o grau de paralelismo (DOP). O tipo de dado é
|
|
@timeout_seconds |
Não |
Especifica o tempo limite para a atualização de estatísticas, em segundos (s). O valor padrão é
|
|
@modification_threshold |
Não |
Especifica o limiar de modificação como uma porcentagem para atualizar as estatísticas. O tipo de dado é
|
Copiar um banco de dados dentro de uma instância
Comando T-SQL
sp_rds_copy_database
Edições suportadas
Basic Edition e High-availability Edition
Descrição
Cria uma cópia de um banco de dados dentro da mesma instância.
O espaço de armazenamento disponível na instância deve ser de, no mínimo, 1,3 vezes o tamanho do banco de dados de origem.
Não é possível usar esta operação em instâncias do ApsaraDB MyBase for SQL Server.
Uso
USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
Primeiro parâmetro: o nome do banco de dados de origem.
Segundo parâmetro: o nome do banco de dados de destino.
Colocar um banco de dados online
Comando T-SQL
sp_rds_set_db_online
Edições suportadas
RDS Basic Edition e RDS High-availability Edition
Descrição
Após definir um banco de dados como OFFLINE, não é possível usar a instrução ALTER DATABASE para colocá-lo online novamente. Em vez disso, use este procedimento armazenado.
Uso
USE master
GO
EXEC sp_rds_set_db_online 'db'
GO
Nome do banco de dados a ser colocado online.
Permissões globais de banco de dados
Comando T-SQL
sp_rds_set_all_db_privileges
Edições de instância suportadas
Basic Edition, High-availability Edition
Descrição
Concede permissões a um usuário em todos ou em vários bancos de dados de usuário.
As permissões do usuário atual nos bancos de dados de destino devem ser maiores ou iguais às permissões a serem concedidas.
Uso
sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
Primeiro parâmetro: o usuário que receberá as permissões.
Segundo parâmetro: a função de banco de dados a ser concedida ao usuário.
Terceiro parâmetro: um ou mais bancos de dados de destino, separados por vírgulas. Este parâmetro é opcional. Omiti-lo concede permissões em todos os bancos de dados de usuário.
Excluir um banco de dados
Comando T-SQL
sp_rds_drop_database
Edições suportadas
High-availability Edition
Este procedimento armazenado não é compatível com instâncias da Basic Edition. Em vez disso, use o comando
DROP DATABASE db.Execute este comando usando uma conta privilegiada enquanto estiver conectado a um banco de dados diferente do banco de dados de destino. Certifique-se de que a conta tenha as permissões necessárias no banco de dados de destino. Para obter mais informações, consulte Modificar as permissões de uma conta.
Descrição
Exclui um banco de dados de uma instância, removendo todos os objetos associados. Para instâncias da High-availability Edition, esta operação também remove o espelhamento do banco de dados e encerra todas as conexões com ele.
Uso
USE master
GO
EXEC sp_rds_drop_database 'db'
GO
O parâmetro especifica o nome do banco de dados a ser excluído.
Configurar o controle de alterações
Comando T-SQL
sp_rds_change_tracking
Séries de instância suportadas
High-availability Edition
Descrição
Ativa ou desativa o controle de alterações para um banco de dados.
Uso
USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
Primeiro parâmetro: o nome do banco de dados.
-
Segundo parâmetro: especifica se deve ativar ou desativar o controle de alterações. Valores válidos:
1: Ativa o controle de alterações.
0: Desativa o controle de alterações.
Ativar o change data capture
Comando T-SQL
sp_rds_cdc_enable_db
Séries de instância suportadas
High-availability Edition e Cluster Edition
Descrição
Ativa o change data capture (CDC) para um banco de dados.
Uso
USE db
GO
-- Enable CDC for a database.
EXEC sp_rds_cdc_enable_db
GO
-- Enable CDC for a table.
EXEC sys.sp_cdc_enable_table
@source_schema = '<schema name>',
@source_name = '<table name>',
@role_name = '<CDC role name>'
Desativar o change data capture
Comando T-SQL
sp_rds_cdc_disable_db
Séries de instância suportadas
High-availability Edition, Cluster Edition
Descrição
Desativa o change data capture (CDC) para um banco de dados.
Uso
USE db
GO
-- Disable change data capture (CDC) at the database level.
EXEC sp_rds_cdc_disable_db
GO
-- Disable CDC for a specific table.
EXEC sys.sp_cdc_disable_table
@source_schema = '<schema_name>',
@source_name = '<table_name>',
@capture_instance = '<capture_instance_name>'
-- Get the capture instance name for a specific table.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<schema_name>'
AND source_name = '<table_name>'
Parâmetros da instância RDS
Comando T-SQL
sp_rds_configure
Famílias de instância suportadas
Basic Edition e High-availability Edition
Descrição
Configure os seguintes parâmetros da instância. Em instâncias primárias e secundárias, as configurações são sincronizadas automaticamente. Para obter mais detalhes, consulte a documentação da Microsoft.
|
Parâmetro |
Descrição |
Exemplo |
|
fill factor (%) |
Especifica a porcentagem do fator de preenchimento para uma página de índice. |
|
|
max worker threads |
Especifica o número máximo de threads de trabalho para executar consultas e processar solicitações em paralelo. |
|
|
cost threshold for parallelism |
Especifica o limiar de custo para paralelismo. |
|
|
max degree of parallelism |
Especifica o grau máximo de paralelismo para uma consulta. |
|
|
min server memory (MB) |
Especifica a quantidade mínima de memória, em megabytes (MB), usada pela instância RDS. |
|
|
max server memory (MB) |
Especifica a quantidade máxima de memória, em megabytes (MB), usada pela instância RDS. |
|
|
blocked process threshold (s) |
Especifica o limiar, em segundos, para relatar processos bloqueados. |
|
|
nested triggers |
Ativa ou desativa gatilhos aninhados. Valores válidos:
|
|
|
Ad Hoc Distributed Queries |
Ativa ou desativa Ad Hoc Distributed Queries. Valores válidos:
|
|
|
clr enabled |
Ativa ou desativa a execução de assemblies CLR (Common Language Runtime) criados pelo usuário. Valores válidos:
|
|
|
default full-text language |
Especifica o idioma padrão para pesquisa de texto completo. Os valores comuns incluem:
|
|
|
default language |
Especifica o idioma padrão para a instância. Os valores comuns incluem:
|
|
|
max text repl size (B) |
Especifica o tamanho máximo de dados de texto, em bytes, em um processo de replicação. |
Defina o tamanho máximo de replicação de texto como 100 MB:
|
|
optimize for ad hoc workloads |
Especifica se a otimização de cache de plano para cargas de trabalho ad hoc deve ser ativada. Valores válidos:
|
|
|
query governor cost limit |
Especifica o limite superior do custo estimado para uma consulta. Um valor de 0 desativa o query governor. |
|
|
recovery interval (min) |
Especifica o tempo máximo, em minutos, para a recuperação de um banco de dados. |
|
|
remote login timeout (s) |
Especifica o tempo limite, em segundos, para uma tentativa de login remoto. |
|
|
remote query timeout (s) |
Especifica o tempo limite, em segundos, para uma consulta remota. |
|
|
query wait (s) |
Especifica o tempo, em segundos, que uma consulta aguarda por recursos de memória antes de atingir o tempo limite. |
|
|
min memory per query (KB) |
Especifica a quantidade mínima de memória, em kilobytes (KB), alocada para a execução de uma consulta. |
|
|
in-doubt xact resolution |
Especifica como o sistema resolve transações distribuídas em dúvida. Valores válidos:
|
|
Uso
EXEC sp_rds_configure '<parameter>',<parameter value>
Primeiro parâmetro: o parâmetro de configuração da instância a ser definido.
Segundo parâmetro: o valor do parâmetro.
Adicionar um servidor vinculado
Comando T-SQL
sp_rds_add_linked_server
Instâncias suportadas
Edição da instância: Cluster Edition e High-availability Edition. A Basic Edition não é suportada.
Tipo de instância: uso geral e dedicada. Instâncias shared não são suportadas.
Método de faturamento: assinatura e pagamento conforme o uso. serverless instances não são suportados.
Descrição
Este comando adiciona um servidor vinculado a uma instância e oferece suporte a transações distribuídas. Um servidor vinculado criado na instância primária é sincronizado automaticamente com a instância secundária. Não é necessário reconfigurar o servidor vinculado após um failover primário/secundário. No entanto, as modificações nos servidores vinculados existentes na instância primária não são sincronizadas com a instância secundária. Para obter mais informações, consulte Failover primário/secundário automático ou manual.
Uso
DECLARE
@linked_server_name sysname = N'yangzhao_slb', --The name of the linked server.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --The IP address and port number of the destination SQL Server instance. Format: IP,Port
@user_name sysname = N'ay15' , --The username for the destination SQL Server instance.
@password nvarchar(128) = N'******', --The password for the destination user.
@source_user_name sysname = N'test', --The username on the source instance.
@source_password nvarchar(128) = N'******', --The password for the source user.
--Server options for the linked server in XML format. This example sets permissions for data access, rpc, and rpc out.
@link_server_options xml
= N'
<rds_linked_server>
<config option="data access">true</config>
<config option="rpc">true</config>
<config option="rpc out">true</config>
</rds_linked_server>
'
EXEC sp_rds_add_linked_server
@linked_server_name,
@data_source,
@user_name,
@password,
@source_user_name,
@source_password,
@link_server_options
Configurar um trace flag
Comando T-SQL
sp_rds_dbcc_trace
Edições suportadas
Basic Edition, High-availability Edition
Descrição
Este procedimento armazenado define um trace flag para uma instância RDS. Atualmente, oferece suporte apenas a um subconjunto de trace flags. Para instâncias primárias e secundárias, a plataforma sincroniza essa configuração automaticamente.
Uso
EXEC sp_rds_dbcc_trace '1222',1/0
Primeiro parâmetro: o trace flag.
-
Segundo parâmetro: especifica se deve ativar ou desativar o trace flag. Valores válidos:
1: Ativa o trace flag.
0: Desativado.
Renomear um banco de dados
Comando T-SQL
sp_rds_modify_db_name
Edições de instância suportadas
Basic Edition, High-availability Edition e Cluster Edition
Descrição
Renomeia um banco de dados. Certifique-se de que a conta de conexão tenha as permissões no banco de dados de destino necessárias e que o banco de dados esteja no estado online.
Para instâncias da High-availability Edition ou Cluster Edition, renomear um banco de dados reconstrói automaticamente a relação primária/secundária. Esse processo inclui backup e restauração. Se o banco de dados for grande, certifique-se de que a instância tenha armazenamento disponível suficiente. Você pode aumentar a escala da instância, se necessário.
Uso
USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
Primeiro parâmetro: o nome original do banco de dados.
Segundo parâmetro: o novo nome do banco de dados.
Conceder funções de servidor
Comando T-SQL
sp_rds_set_server_role
Edições suportadas
Basic Edition
Descrição
Concede uma função de servidor a um login. As funções disponíveis são setupadmin e processadmin. Para criar contas com outras permissões ou para saber mais sobre as permissões de conta, consulte Criar uma conta com permissões SA e Permissões da conta.
Uso
EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
Nome do login.
Nome da função. Os valores válidos são setupadmin e processadmin.
Perguntas frequentes
P: Por que recebo o erro Cannot use KILL to kill your own process. ao executar o comando EXEC sp_rds_drop_database 'dbtest'; com uma conta padrão?
R: Execute o comando usando uma conta privilegiada a partir de uma janela de comando conectada a um banco de dados diferente. Certifique-se de que a conta tenha as permissões necessárias no banco de dados de destino. Para obter mais informações, consulte Modificar permissões da conta.