Sunteți pe pagina 1din 18

U IVERSIDAD

N SEOR DE SIPN
Facultad de Ingeniera, Arquitectura y Urbanismo Escuela Profesional de Ingeniera de Sistemas

PROCEDIMIENTOS ALMACENADOS DE CAPTURA DE DATOS MODIFICADOS Y PROCEDIMIENTOS ALMACENADOS DEL AGENTE SQL SERVER

Estudiantes

: Aldana Manzanares, David B. Cubas Guevara Ruben A. Vilchez Silva Omar

Asignatura Profesor Ciclo Acadmico Aula Turno

: BASE DE DATOS AVANZADA : Ing. FRANKLIN Guerrero. : 2013 I : LAB_17 : Noche.

Pimentel, 01 de Mayo de 2013

INTRODUCCION
El presente informe veremos procedimientos almacenados de captura de datos modificados y procedimientos almacenados del agente sql server

PROCEDIMIENTOS ALMACENADOS DE CAPTURA DE DATOS MODIFICADOS

La captura de datos modificados hace que el registro histrico de la actividad del Lenguaje de manipulacin de datos (DML) que se produjo en las tablas habilitadas est disponible en un formato relacional apropiado. Los procedimientos almacenados siguientes se utilizan para configurar la captura de datos modificados, administrar los trabajos del Agente de captura de datos modificados y proporcionar los metadatos actuales para cambiar los consumidores de datos.

sys.sp_cdc_add_job (Transact-SQL) sys.sp_cdc_change_job (Transact-SQL) sys.sp_cdc_cleanup_change_table (Transact-SQL) sys.sp_cdc_disable_db (Transact-SQL) sys.sp_cdc_disable_table (Transact-SQL) sys.sp_cdc_drop_job (Transact-SQL) sys.sp_cdc_enable_db (Transact-SQL) sys.sp_cdc_enable_table (Transact-SQL)

sys.sp_cdc_generate_wrapper_function (Transact-SQL) sys.sp_cdc_get_captured_columns (Transact-SQL) sys.sp_cdc_get_ddl_history (Transact-SQL) sys.sp_cdc_help_change_data_capture (Transact-SQL) sys.sp_cdc_help_jobs (Transact-SQL) sys.sp_cdc_scan (Transact-SQL) sys.sp_cdc_start_job (Transact-SQL) sys.sp_cdc_stop_job (Transact-SQL)

sys.sp_cdc_add_job (Transact-SQL): Crea una limpieza de captura datos de cambios o un trabajo de captura en la base de datos actual. SINTAXIS:
sys.sp_cdc_add_job [ @job_type = ] 'job_type' [ , [ @start_job = ] start_job ] [ , [ @maxtrans = ] max_trans ] [ , [ @maxscans = ] max_scans ] [ , [ @continuous = ] continuous ] [ , [ @pollinginterval = ] polling_interval ] [ , [ @retention ] = retention ] [ , [ @threshold ] = 'delete_threshold' ]

EJEMPLO: Crear 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 explcitamente. El trabajo se crea utilizando los valores predeterminados.
USE AGRICOLA_; GO EXEC sys.sp_cdc_add_job @job_type = N'capture'; GO

sys.sp_cdc_change_job (Transact-SQL) Modifica la configuracin de un trabajo de captura o de limpieza de captura de datos de cambio en la base de datos actual. Para ver la configuracin actual de un trabajo, consulte la tabla dbo.cdc_jobs o utilice sp_cdc_help_jobs. SINTAXIS:
sys.sp_cdc_change_job [ [ @job_type = ] 'job_type' ] [ , [ @maxtrans = ] max_trans ] [ , [ @maxscans = ] max_scans ] [ , [ @continuous = ] continuous ] [ , [ @pollinginterval = ] polling_interval ] [ , [ @retention ] = retention ] [ @threshold = ] 'delete threshold'

EJEMPLO: El ejemplo siguiente actualiza los parmetros @job_type, @maxscans y @maxtrans de un trabajo de captura en la base de datos AGRICOLA_. El resto de parmetros vlidos para un trabajo captura, @continuous y @pollinginterval, se omiten; sus valores no se modifican.
USE AGRICOLA_; GO EXECUTE sys.sp_cdc_change_job @job_type = N'capture', @maxscans = 1000, @maxtrans = 15; GO

sys.sp_cdc_cleanup_change_table (Transact-SQL) Quita las filas de la tabla de cambios en la base de datos actual basada en el valor low_water_mark especificado. Este procedimiento almacenado se proporciona a los usuarios que desean administrar directamente el proceso de limpieza de las tablas

de cambios. Sin embargo, se debe utilizar con precaucin, porque el procedimiento afecta a todos los consumidores de los datos en la tabla de cambios.

SINTAXIS:
sys.sp_cdc_cleanup_change_table [ @capture_instance = ] 'capture_instance', [ @low_water_mark = ] low_water_mark , [ @threshold = ]'delete threshold'

sys.sp_cdc_disable_table (Transact-SQL) Deshabilita la captura de datos modificados para la tabla de origen especificada y la instancia de captura en la base de datos actual. La captura de datos modificados slo est disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EJEMPLO: En el siguiente ejemplo se deshabilita la captura de datos modificados para la tabla HumanResources.Employee.
EXECUTE sys.sp_cdc_disable_table @source_schema = N'HumanResources', @source_name = N'Employee', @capture_instance = N'HumanResources_Employee';

sys.sp_cdc_drop_job (Transact-SQL) Quita un trabajo de captura o de limpieza de datos modificados para la base de datos actual desde msdb. EJEMPLO: En el siguiente ejemplo se quita el trabajo de limpieza para la base de datos de AdventureWorks.
GO EXEC sys.sp_cdc_drop_job @job_type = N'cleanup';

sys.sp_cdc_enable_db (Transact-SQL) Habilita la captura de datos modificados en la base de datos actual. Este procedimiento se debe ejecutar para una base de datos antes de que se puedan habilitar las tablas para la captura de datos modificados de esa base de datos. La captura de datos modificados registra las operaciones de insercin, actualizacin y eliminacin aplicadas a las tablas habilitadas, proporcionando los detalles de los cambios en un formato relacional de uso sencillo. Se captura, para las filas modificadas, la informacin relativa a las columnas y que reproduce la estructura de columnas de una tabla de origen sometida a seguimiento, junto con los metadatos necesarios para aplicar los cambios a un entorno de destino. La captura de datos modificados slo est disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EJEMPLO:
USE AGRICOLA_ GO EXEC sys.sp_cdc_enable_db GO

sys.sp_cdc_enable_table (Transact-SQL) Habilita la captura de datos modificados para la tabla de origen especificada en la base de datos actual. Cuando una tabla est habilitada para la captura de datos modificados, un registro de cada operacin del lenguaje de manipulacin de datos (DML) aplicada a la tabla se escribe en el registro de transacciones. El proceso de captura de datos modificados recupera esta informacin del registro y la escribe para cambiar las tablas a la que se accede mediante un conjunto de funciones. La captura de datos modificados slo est disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EJEMPLO: En el siguiente ejemplo se habilita la captura de datos modificados para la tabla HumanResources.Employee. Solo se especifican los parmetros necesarios.
GO EXECUTE sys.sp_cdc_enable_table @source_schema = N'HumanResources' , @source_name = N'Employee' , @role_name = N'cdc_Admin'; GO

sys.sp_cdc_generate_wrapper_function (Transact-SQL): Genera scripts para crear funciones de contenedor para las funciones de consulta de captura de datos modificados que estn disponibles en SQL Server. La API que se admite en los contenedores generados permite especificar el intervalo de la consulta como un intervalo de fecha y hora. Esto hace que la funcin sea idnea para su uso en muchas aplicaciones de almacenamiento de datos, incluidas las que se desarrollan con diseadores de paquetes de Integration Services que utilizan la tecnologa de captura de datos modificados para determinar la carga incremental. EJEMPLO: El ejemplo siguiente muestra cmo se puede utilizar sys.sp_cdc_generate_wrapper_function para crear contenedores para todas las funciones de captura de datos modificados.
DECLARE @wrapper_functions TABLE ( function_name sysname, create_script nvarchar(max)); INSERT INTO @wrapper_functions EXEC sys.sp_cdc_generate_wrapper_function; DECLARE @create_script nvarchar(max); DECLARE #hfunctions CURSOR LOCAL fast_forward FOR SELECT create_script FROM @wrapper_functions; OPEN #hfunctions; FETCH #hfunctions INTO @create_script; WHILE (@@fetch_status <> -1) BEGIN EXEC sp_executesql @create_script FETCH #hfunctions INTO @create_script END; CLOSE #hfunctions; DEALLOCATE #hfunctions;

sys.sp_cdc_get_captured_columns (Transact-SQL) Devuelve la informacin de los metadatos de captura de datos del cambio para las columnas de origen de las que la instancia captura especificada ha realizado un seguimiento. La captura de datos modificados slo est disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EJEMPLO: El siguiente ejemplo devuelve informacin acerca de las columnas capturadas en la instancia de captura HumanResources_Employee.

GO EXECUTE sys.sp_cdc_get_captured_columns @capture_instance = N'HumanResources_Employee'; GO

dgsys.sp_cdc_get_ddl_history (Transact-SQL) Devuelve el historial del lenguaje de definicin de datos (DDL, Data Definition Language) asociado con la instancia de captura especificada desde que se habilit la captura de datos de cambios para dicha instancia de captura. La captura de datos de cambios slo est disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EJEMPLO: En el ejemplo siguiente se agrega una columna a la tabla de origen HumanResources. Employee y luego se ejecuta el procedimiento almacenado sys.sp_cdc_get_ddl

_history para informar sobre los cambios del DDL que se aplican a la tabla de origen asociada con la instancia de captura HumanResources_Employee.
ALTER TABLE HumanResources.Employee ADD Test_Column int NULL; GO -- Pause 10 seconds to allow the event to be logged. WAITFOR DELAY '00:00:10'; GO EXECUTE sys.sp_cdc_get_ddl_history @capture_instance = 'HumanResources_Employee'; GO

sys.sp_cdc_help_change_data_capture (Transact-SQL) Devuelve la configuracin de captura de datos del cambio para cada tabla habilitada para la captura de datos del cambio en la base de datos actual. Se pueden devolver hasta dos filas para cada tabla de origen, una fila para cada instancia de captura. La captura de datos del cambio slo est disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008. EJEMPLO: El siguiente ejemplo devuelve la configuracin de captura de datos del cambio para la tabla HumanResources.Employee.
EXECUTE sys.sp_cdc_help_change_data_capture @source_schema = N'HumanResources', @source_name = N'Employee'; GO

sys.sp_cdc_help_jobs (Transact-SQL) Crea informe que incluyen informacin sobre todos los trabajos de captura o de limpieza de captura de datos de cambio en la base de datos actual. EJEMPLO: Este ejemplo devuelve informacin acerca de los trabajos de captura y limpieza definidos para la base de datos AdventureWorks. GO
EXEC sys.sp_cdc_help_jobs; GO

sys.sp_cdc_scan (Transact-SQL) Ejecuta la operacin de recorrido del registro de captura de datos modificados. SINTASIS:
sys.sp_cdc_scan [ [ @maxtrans = ] max_trans ] [ , [ @maxscans = ] max_scans ] [ , [ @continuous = ] continuous ] [ , [ @pollinginterval = ] polling_interval ] go

sys.sp_cdc_start_job (Transact-SQL) Inicia una limpieza de captura datos modificados o un trabajo de captura de la base de datos actual. EJEMPLO: En el siguiente ejemplo se inicia el trabajo de captura para la base de datos de AdventureWorks. No es necesario especificar un valor para job_typeporque el tipo de trabajo predeterminado es capture
GO EXEC sys.sp_cdc_start_job; GO

sys.sp_cdc_stop_job (Transact-SQL) Detiene una limpieza de captura datos modificados o un trabajo de captura de la base de datos actual. EJEMPLO: En el siguiente ejemplo se detiene el trabajo de limpieza de la base de datos AdventureWorks.
GO EXEC sys.sp_cdc_stop_job @job_type = N'cleanup'; GO

PROCEDIMIENTOS ALMACENADOS DEL AGENTE SQL SERVER


SQL Server admite los siguientes procedimientos almacenados del sistema utilizados por el Agente SQL Server para administrar las actividades programadas y controladas por eventos. sp_add_alert (Transact-SQL) Crea una alerta. EJEMPLO: El ejemplo siguiente muestra cmo agregar una alerta (Test Alert) que ejecute el trabajo Back up the AdventureWorks2012 Database al activarse.
USE msdb ; GO EXEC dbo.sp_add_alert @name = N'Test Alert', @message_id = 55001, @severity = 0, @notification_message = N'Error 55001 has occurred. The database will be backed up...', @job_name = N'Back up the AdventureWorks2012 Database' ; GO

sp_add_category (Transact-SQL) Agrega al servidor la categora de trabajo, alerta u operador especificada. EJEMPLO: En el ejemplo siguiente se crea una categora de trabajos locales denominada AdminJobs.
USE msdb ; GO EXEC dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'AdminJobs' ; GO

sp_add_job (Transact-SQL) Agrega un nuevo trabajo ejecutado por el servicio SQLServerAgent. EJEMPLO: En este ejemplo se agrega un nuevo trabajo denominado NightlyBackups.
USE msdb ; GO EXEC dbo.sp_add_job @job_name = N'NightlyBackups' ; GO

sp_add_jobschedule (Transact-SQL) Crea una programacin para un trabajo. SINTAXIS:


sp_add_jobschedule [ @job_id = ] job_id, | [ @job_name = ] 'job_name', [ @name = ] 'name' [ , [ @enabled = ] enabled_flag ] [ , [ @freq_type = ] frequency_type ] [ , [ @freq_interval = ] frequency_interval ] [ , [ @freq_subday_type = ] frequency_subday_type ] [ , [ @freq_subday_interval = ] frequency_subday_interval ] [ , [ @freq_relative_interval = ] frequency_relative_interval ] [ , [ @freq_recurrence_factor = ] frequency_recurrence_factor ] [ , [ @active_start_date = ] active_start_date ] [ , [ @active_end_date = ] active_end_date ] [ , [ @active_start_time = ] active_start_time ] [ , [ @active_end_time = ] active_end_time ] [ , [ @schedule_id = ] schedule_id OUTPUT ]

sp_add_jobserver (Transact-SQL) Destina el trabajo indicado al servidor especificado. EJEMPLO: En el ejemplo siguiente se asigna el trabajo NightlyBackups para su ejecucin en el servidor local.
USE msdb ; GO EXEC dbo.sp_add_jobserver @job_name = N'NightlyBackups' ; GO

sp_add_jobstep (Transact-SQL) Agrega un paso (operacin) a un trabajo. EJEMPLO: En este ejemplo se crea un paso de trabajo que cambia el acceso a la base de datos de modo que sea de solo lectura para la base de datos Sales. Adems, en este ejemplo se especifican 5 reintentos, cada uno de los cuales se produce tras una espera de 5 minutos.
USE msdb; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Set database to read only', @subsystem = N'TSQL', @command = N'ALTER DATABASE SALES SET READ_ONLY', @retry_attempts = 5, @retry_interval = 5 ; GO

sp_add_notification (Transact-SQL) Establece una notificacin para una alerta. EJEMPLO: En el ejemplo siguiente se agrega una notificacin de correo electrnico para la alerta especificada (Test Alert).
USE msdb ; GO EXEC dbo.sp_add_notification @alert_name = N'Test Alert', @operator_name = N'Franois Ajenstat', @notification_method = 1 ; GO

sp_add_operator (Transact-SQL) Crea un operador (destinatario de la notificacin) para utilizarlo con las alertas y los trabajos.

EJEMPLO: En este ejemplo se configura la informacin del operador para danwi. El operador est habilitado. El Agente SQL Server enva notificaciones por buscapersonas de lunes a viernes, de 8 a.m. a 5 p.m.

USE msdb ; GO EXEC dbo.sp_add_operator @name = N'Dan Wilson', @enabled = 1, @email_address = N'danwi', @pager_address = N'5551290AW@pager.Adventure-Works.com', @weekday_pager_start_time = 080000, @weekday_pager_end_time = 170000, @pager_days = 62 ; GO

sp_add_schedule (Transact-SQL) Crea una programacin que puede ser utilizada por un nmero indeterminado de trabajos.

EJEMPLO: En el siguiente ejemplo se crea una programacin llamada RunOnce. La programacin se ejecuta una vez a las 23:30 el da en que se ha creado la programacin.
USE msdb ; GO EXEC dbo.sp_add_schedule @schedule_name = N'RunOnce', @freq_type = 1, @active_start_time = 233000 ; GO

sp_add_targetservergroup (Transact-SQL) Agrega el grupo de servidores especificado. EJEMPLO: En el ejemplo siguiente se crea el grupo de servidores de destino denominado Servers Processing Customer Orders.
USE msdb ; GO EXEC dbo.sp_add_targetservergroup 'Servers Processing Customer Orders' ; GO

sp_add_targetsvrgrp_member (Transact-SQL) Agrega el servidor de destino especificado al grupo de servidores de destino especificado.

EJEMPLO: En el ejemplo siguiente se agrega el grupo Servers Maintaining Customer Information y se agrega el servidor LONDON1 a ese grupo.
USE msdb ; GO EXEC dbo.sp_add_targetsvrgrp_member @group_name = N'Servers Maintaining Customer Information', @server_name = N'LONDON1' ; GO

sp_apply_job_to_targets (Transact-SQL) Aplica un trabajo a uno o ms servidores de destino, o a los servidores de destino que pertenecen a uno o ms grupos de servidores de destino.

EJEMPLO: En el ejemplo siguiente se aplica el trabajo Backup Customer Information, creado anteriormente, a todos los servidores de destino del grupo Servers Maintaining Customer Information.
USE msdb ; GO EXEC dbo.sp_apply_job_to_targets @job_name = N'Backup Customer Information', @target_server_groups = N'Servers Maintaining Customer Information', @operation = N'APPLY' ; GO

sp_attach_schedule (Transact-SQL) Configura una programacin para un trabajo.

EJEMPLO: En el siguiente ejemplo se crea una programacin llamada NightlyJobs. Los trabajos que usan esta programacin se ejecutan a diario cuando la hora del servidor es 01:00. En el ejemplo se asocia la programacin a los trabajos BackupDatabase y RunReports.

USE msdb ; GO EXEC sp_add_schedule @schedule_name = N'NightlyJobs' , @freq_type = 4, @freq_interval = 1, @active_start_time = 010000 ; GO EXEC sp_attach_schedule @job_name = N'BackupDatabase', @schedule_name = N'NightlyJobs' ; GO EXEC sp_attach_schedule @job_name = N'RunReports', @schedule_name = N'NightlyJobs' ; GO

sp_cycle_agent_errorlog (Transact-SQL) Cierra el archivo de registro de errores actual del Agente SQL Server y contina el ciclo de nmeros de extensin de registro de errores del Agente SQL Server como ocurre al reiniciar el servidor. El nuevo registro de errores del Agente SQL Server contiene una lnea que indica que se ha creado el registro nuevo. EJEMPLO: En el siguiente ejemplo se realiza el ciclo del registro de errores del Agente SQL Server.
USE msdb ; GO EXEC dbo.sp_cycle_agent_errorlog ; GO

sp_delete_alert (Transact-SQL) Quita una alerta.

EJEMPLO: En el siguiente ejemplo se quita una alerta denominada Test Alert.


USE msdb ; GO EXEC dbo.sp_delete_alert @name = N'Test Alert' ; GO

sp_delete_category (Transact-SQL) Quita del servidor actual la categora especificada de trabajos, alertas u operadores. EJEMPLO: En el ejemplo siguiente se elimina la categora de trabajo denominada AdminJobs.
USE msdb ; GO EXEC dbo.sp_delete_category @name = N'AdminJobs', @class = N'JOB' ; GO

CONCLUSIONES RECOMENDACIONES

BIBLIOGRAFIA

http://msdn.microsoft.com/es-pe/library/cc645937.aspx http://msdn.microsoft.com/es-pe/library/bb500244(v=sql.100).aspx http://msdn.microsoft.com/es-pe/library/bb510748(v=sql.100).aspx http://msdn.microsoft.com/es-pe/library/bb510626(v=sql.100).aspx http://msdn.microsoft.com/es-pe/library/ms177563(v=sql.100).aspx

S-ar putea să vă placă și