Este tema enumera los procedimientos almacenados disponibles para las instancias de ApsaraDB RDS for SQL Server que ejecutan SQL Server 2012 o versiones posteriores.
Uso
Los comandos de este tema están diseñados para SSMS y utilizan GO como separador de lotes de comandos. Si ejecuta comandos de procedimientos almacenados en DMS, no incluya la palabra clave GO. De lo contrario, se producirá un error.
Actualizar estadísticas de la base de datos
Comando T-SQL
sp_rds_update_db_stats
Descripción
Actualiza las estadísticas de la base de datos de manera flexible y eficiente. Permite configurar parámetros como la tasa de muestreo, el grado de paralelismo, el tiempo de espera y el umbral de modificación.
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)
Si solo especifica el parámetro @db_name o utiliza SQL Server 2008, el sistema ejecuta de forma predeterminada el procedimiento almacenado sp_updatestats. Para obtener más información, consulte la documentación oficial de Microsoft.
|
Parámetro |
Obligatorio |
Descripción |
|
@db_name |
Sí |
Especifica la base de datos cuyas estadísticas se van a actualizar. Ejemplo:
|
|
@sample_percent |
No |
Especifica el porcentaje de la tabla que se va a muestrear para las estadísticas. El tipo de dato es Si se omite, el sistema utiliza la tasa de muestreo predeterminada. Para obtener más información, consulte la documentación oficial de Microsoft. Ejemplo:
|
|
@max_dop |
No |
Especifica el grado máximo de paralelismo (DOP). El tipo de dato es
|
|
@timeout_seconds |
No |
Especifica el tiempo de espera para la actualización de estadísticas, en segundos (s). El valor predeterminado es
|
|
@modification_threshold |
No |
Especifica el umbral de modificación, como porcentaje, para actualizar las estadísticas. El tipo de dato es
|
Copiar una base de datos dentro de una instancia
Comando T-SQL
sp_rds_copy_database
Ediciones compatibles
Basic Edition y High-availability Edition
Descripción
Crea una copia de una base de datos dentro de la misma instancia.
El almacenamiento disponible en la instancia debe ser como mínimo 1.3 veces el tamaño de la base de datos de origen.
Esta operación no se puede utilizar en instancias de ApsaraDB MyBase for SQL Server.
Uso
USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
El primer parámetro es el nombre de la base de datos de origen.
El segundo parámetro es el nombre de la base de datos de destino.
Poner una base de datos en línea
Comando T-SQL
sp_rds_set_db_online
Ediciones compatibles
RDS Basic Edition y RDS High-availability Edition
Descripción
Después de establecer una base de datos en OFFLINE, no se puede usar la instrucción ALTER DATABASE para volver a ponerla en línea. Utilice este procedimiento almacenado en su lugar.
Uso
USE master
GO
EXEC sp_rds_set_db_online 'db'
GO
El nombre de la base de datos que se va a poner en línea.
Permisos globales de base de datos
Comando T-SQL
sp_rds_set_all_db_privileges
Ediciones de instancia compatibles
Basic Edition, High-availability Edition
Descripción
Otorga permisos a un usuario en todas las bases de datos de usuario o en varias de ellas.
Los permisos del usuario actual sobre las bases de datos de destino deben ser mayores o iguales que los permisos que se van a otorgar.
Uso
sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
El primer parámetro especifica el usuario que recibe los permisos.
El segundo parámetro especifica el rol de base de datos que se va a otorgar al usuario.
El tercer parámetro especifica una o más bases de datos de destino, separadas por comas. Este parámetro es opcional. Si se omite, se otorgan permisos en todas las bases de datos de usuario.
Eliminar una base de datos
Comando T-SQL
sp_rds_drop_database
Ediciones compatibles
High-availability Edition
Este procedimiento almacenado no es compatible con instancias de Basic Edition. Utilice el comando
DROP DATABASE dben su lugar.Ejecute este comando con una privileged account mientras está conectado a una base de datos distinta de la base de datos de destino. Asegúrese de que la cuenta tenga los permisos necesarios sobre la base de datos de destino. Para obtener más información, consulte Modify the permissions of an account.
Descripción
Elimina una base de datos de una instancia. Esta operación quita todos los objetos asociados. En las instancias de High-availability Edition, también elimina la réplica de la base de datos y finaliza todas las conexiones hacia ella.
Uso
USE master
GO
EXEC sp_rds_drop_database 'db'
GO
El parámetro especifica el nombre de la base de datos que se va a eliminar.
Configurar el seguimiento de cambios
Comando T-SQL
sp_rds_change_tracking
Series de instancia compatibles
High-availability Edition
Descripción
Habilita o deshabilita el seguimiento de cambios para una base de datos.
Uso
USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
El primer parámetro es el nombre de la base de datos.
-
El segundo parámetro especifica si se va a habilitar o deshabilitar el seguimiento de cambios. Valores válidos:
1: habilita el seguimiento de cambios.
0: deshabilita el seguimiento de cambios.
Habilitar la captura de datos modificados
Comando T-SQL
sp_rds_cdc_enable_db
Series de instancia compatibles
High-availability Edition y Cluster Edition
Descripción
Habilita la captura de datos modificados (CDC) para una base de datos.
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>'
Deshabilitar la captura de datos modificados
Comando T-SQL
sp_rds_cdc_disable_db
Series de instancia compatibles
High-availability Edition, Cluster Edition
Descripción
Deshabilita la captura de datos modificados (CDC) para una base de datos.
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 de la instancia RDS
Comando T-SQL
sp_rds_configure
Familias de instancias compatibles
Basic Edition y High-availability Edition
Descripción
Configure a continuación los parámetros de la instancia. En las instancias primarias y en espera, la configuración se sincroniza automáticamente. Para más detalles, consulte la documentación de Microsoft.
|
Parámetro |
Descripción |
Ejemplo |
|
fill factor (%) |
Especifica el porcentaje del factor de relleno para una página de índice. |
|
|
max worker threads |
Define el número máximo de subprocesos de trabajo que ejecutan consultas y procesan solicitudes en paralelo. |
|
|
cost threshold for parallelism |
Establece el umbral de costo para el paralelismo. |
|
|
max degree of parallelism |
Indica el grado máximo de paralelismo para una consulta. |
|
|
min server memory (MB) |
Determina la cantidad mínima de memoria, en megabytes (MB), que utiliza la instancia RDS. |
|
|
max server memory (MB) |
Fija la cantidad máxima de memoria, en megabytes (MB), que utiliza la instancia RDS. |
|
|
blocked process threshold (s) |
Configura el umbral, en segundos, para reportar procesos bloqueados. |
|
|
nested triggers |
Habilite o deshabilite los desencadenadores anidados. Valores válidos:
|
|
|
Ad Hoc Distributed Queries |
Permite habilitar o deshabilitar Ad Hoc Distributed Queries. Valores válidos:
|
|
|
clr enabled |
Controla si se permite ejecutar ensamblados de Common Language Runtime (CLR) creados por el usuario. Valores válidos:
|
|
|
default full-text language |
Asigna el idioma predeterminado para la búsqueda de texto completo. Algunos valores comunes son:
|
|
|
default language |
Define el idioma predeterminado de la instancia. Algunos valores comunes son:
|
|
|
max text repl size (B) |
Indica el tamaño máximo de los datos de texto, en bytes, durante un proceso de replicación. |
Establezca el tamaño máximo de replicación de texto en 100 MB:
|
|
optimize for ad hoc workloads |
Define si se habilita la optimización de la caché de planes para cargas de trabajo ad hoc. Valores válidos:
|
|
|
query governor cost limit |
Establece el límite superior del costo estimado para una consulta. Un valor de 0 deshabilita el regulador de consultas. |
|
|
recovery interval (min) |
Especifica el tiempo máximo, en minutos, que debe tomar la recuperación de una base de datos. |
|
|
remote login timeout (s) |
Configura el tiempo de espera, en segundos, para un intento de inicio de sesión remoto. |
|
|
remote query timeout (s) |
Define el tiempo de espera, en segundos, para una consulta remota. |
|
|
query wait (s) |
Indica el tiempo, en segundos, que una consulta espera recursos de memoria antes de agotar el tiempo de espera. |
|
|
min memory per query (KB) |
Asigna la cantidad mínima de memoria, en kilobytes (KB), que se reserva para ejecutar una consulta. |
|
|
in-doubt xact resolution |
Determina cómo resuelve el sistema las transacciones distribuidas dudosas. Valores válidos:
|
|
Uso
EXEC sp_rds_configure '<parameter>',<parameter value>
El primer parámetro indica qué parámetro de configuración de la instancia se va a establecer.
El segundo parámetro corresponde a su valor.
Agregar un servidor vinculado
Comando de T-SQL
sp_rds_add_linked_server
Instancias compatibles
Edición de la instancia: Cluster Edition y High-availability Edition. No hay compatibilidad con Basic Edition.
Tipo de instancia: de uso general y dedicada. No hay compatibilidad con las instancias shared.
Método de facturación: suscripción y pay-as-you-go. No hay compatibilidad con serverless instances.
Descripción
Este comando agrega un servidor vinculado a una instancia y admite transacciones distribuidas. Un servidor vinculado creado en la instancia principal se sincroniza automáticamente con la instancia secundaria. No es necesario volver a configurar el servidor vinculado después de un cambio entre la instancia principal y la secundaria. Sin embargo, las modificaciones en los servidores vinculados existentes de la instancia principal no se sincronizan con la instancia secundaria. Para obtener más información, consulte Automatic or manual primary/secondary switchover.
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 una marca de seguimiento
Comando de T-SQL
sp_rds_dbcc_trace
Ediciones compatibles
Basic Edition, High-availability Edition
Descripción
Este procedimiento almacenado establece una marca de seguimiento para una instancia de RDS. Actualmente solo admite un subconjunto de marcas de seguimiento. En las instancias principal y secundaria, la plataforma sincroniza esta configuración automáticamente.
Uso
EXEC sp_rds_dbcc_trace '1222',1/0
El primer parámetro es la marca de seguimiento.
-
El segundo parámetro indica si se debe habilitar o deshabilitar la marca de seguimiento. Valores válidos:
1: habilita la marca de seguimiento.
0: desactivada.
Cambiar el nombre de una base de datos
Comando de T-SQL
sp_rds_modify_db_name
Ediciones de instancia compatibles
Basic Edition, High-availability Edition y Cluster Edition
Descripción
Cambia el nombre de una base de datos. Asegúrese de que la cuenta de conexión tenga los permisos obligatorios permissions on the target database y de que la base de datos esté en el estado online state.
En las instancias de High-availability Edition o Cluster Edition, cambiar el nombre de una base de datos reconstruye automáticamente la relación entre la instancia principal y la secundaria. Este proceso incluye una copia de seguridad y una restauración. Si la base de datos es grande, asegúrese de que la instancia tenga suficiente almacenamiento disponible. De ser necesario, puede scale up la instancia.
Uso
USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
El primer parámetro es el nombre original de la base de datos.
El segundo parámetro es el nuevo nombre de la base de datos.
Otorgar roles de servidor
Comando de T-SQL
sp_rds_set_server_role
Ediciones compatibles
Basic Edition
Descripción
Otorga un rol de servidor a un inicio de sesión. Los roles disponibles son setupadmin y processadmin. Para crear cuentas con otros permisos o conocer más sobre los permisos de las cuentas, consulte Create an account with SA permissions y Account permissions.
Uso
EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
Especifica el nombre del inicio de sesión.
Especifica el nombre del rol. Los valores válidos son setupadmin y processadmin.
Preguntas frecuentes
P: ¿Por qué aparece el error Cannot use KILL to kill your own process. al ejecutar el comando EXEC sp_rds_drop_database 'dbtest'; con una cuenta estándar?
R: Ejecute el comando con una privileged account desde una ventana de comandos conectada a otra base de datos. Asegúrese de que la cuenta tenga los permisos necesarios en la base de datos de destino. Para obtener más información, consulte Modify account permissions.