sys.sp_cdc_add_job (Transact-SQL)
Se aplica a: SQL Server
Crea una limpieza de captura datos de cambios o un trabajo de captura en la base de datos actual.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sys.sp_cdc_add_job [ @job_type = ] N'job_type'
[ , [ @start_job = ] start_job ]
[ , [ @maxtrans = ] max_trans ]
[ , [ @maxscans = ] max_scans ]
[ , [ @continuous = ] continuous ]
[ , [ @pollinginterval = ] polling_interval ]
[ , [ @retention ] = retention ]
[ , [ @threshold ] = 'delete_threshold' ]
[ ; ]
Argumentos
[ @job_type = ] N'job_type'
Tipo de trabajo que se agrega. @job_type es nvarchar(20) y no puede ser NULL
. Las entradas válidas son capture
y cleanup
.
[ @start_job = ] start_job
Marca que indica si el trabajo se debe iniciar inmediatamente después de agregarlo. @start_job es bit con un valor predeterminado de 1
.
[ @maxtrans ] = max_trans
Número máximo de transacciones para procesar en cada ciclo de recorrido. @maxtrans es int con un valor predeterminado de 500
. Si se especifica, el valor debe ser un entero positivo.
@maxtrans solo es válido para los trabajos de captura.
[ @maxscans ] = max_scans
Número máximo de ciclos de recorrido que se ejecutarán para extraer todas las filas del registro. @maxscans es int con un valor predeterminado de 10
.
@max_scan solo es válido para los trabajos de captura.
[ @continuous ] = continuous
Indica si el trabajo de captura se va a ejecutar continuamente (1
) o ejecutarse solo una vez (0
). @continuous es bit con un valor predeterminado de 1
.
Cuando @continuous es
1
, el trabajo de sys.sp_cdc_scan examina el registro y procesa hasta (@maxtrans * @maxscans
) transacciones. A continuación, espera el número de segundos especificados en @pollinginterval antes de comenzar el siguiente examen de registro.Cuando @continuous es
0
, elsp_cdc_scan
trabajo se ejecuta hasta @maxscans exámenes del registro, procesando hasta @maxtrans transacción durante cada examen y, a continuación, se cierra.
@continuous solo es válido para los trabajos de captura.
[ @pollinginterval ] = polling_interval
Número de segundos entre los ciclos de recorrido del registro. @pollinginterval es bigint con un valor predeterminado de 5
.
@pollinginterval solo es válido para los trabajos de captura cuando @continuous está establecido 1
en . Si se especifica, el valor debe ser mayor o igual que 0
y menos de 24 horas (hasta 86399 segundos). Si se especifica un valor de 0
, no hay ninguna espera entre exámenes de registro.
[ @retention ] = retención
Número de minutos que las filas de datos de cambio se retendrán en tablas de cambio. @retention es bigint con un valor predeterminado de 4320
(72 horas). El valor máximo es 52494800
(100 años). Si se especifica, el valor debe ser un entero positivo.
@retention solo es válido para trabajos de limpieza.
[ @threshold = ] 'delete_threshold'
Número máximo de entradas correspondientes a operaciones de eliminación que se pueden eliminar mediante una única instrucción durante el proceso de limpieza. @threshold es bigint con un valor predeterminado de 5000
.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Conjunto de resultados
Ninguno.
Comentarios
Un trabajo de limpieza se crea utilizando los valores predeterminados cuando la primera tabla de la base de datos se habilita para la captura de datos de cambio. Un trabajo de cambio se crea usando los valores predeterminados cuando la primera tabla de la base de datos se habilita para la captura de datos de cambio y no existe ninguna publicación transaccional para la base de datos. Cuando existe una publicación transaccional, el lector del registro transaccional se usa para impulsar el mecanismo de captura y no se requiere ni se permite un trabajo de captura independiente.
Dado que los trabajos de captura y limpieza se crean de forma predeterminada, este procedimiento almacenado solo es necesario cuando un trabajo se ha eliminado y se ha vuelto a crear explícitamente.
El nombre del trabajo es cdc.<database_name>_cleanup
o cdc.<database_name>_capture
, donde <database_name>
es el nombre de la base de datos actual. Si ya existe un trabajo con el mismo nombre, el nombre se anexa con un punto (.
) seguido de un identificador único, por ejemplo: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52
.
Para ver la configuración actual de un trabajo de limpieza o captura, use sys.sp_cdc_help_jobs. Para cambiar la configuración de un trabajo, use sys.sp_cdc_change_job.
Permisos
Requiere pertenencia al rol fijo de base de datos db_owner.
Ejemplos
A Creación de un trabajo de captura
En este ejemplo se crea un trabajo de captura. Este ejemplo supone que el trabajo de limpieza existente se eliminó y se debe volver a crear explícitamente. El trabajo se crea utilizando los valores predeterminados.
USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Creación de un trabajo de limpieza
En el ejemplo siguiente se crea un trabajo de limpieza en la base de datos AdventureWorks2022. El parámetro @start_job se establece 0
en y @retention se establece en 5760 minutos (96 horas). Este ejemplo supone que el trabajo de limpieza existente se eliminó y se debe volver a crear explícitamente.
USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;