SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
REL-413
AVANZADOS: Replicación

RUBÉN GARRIGÓS
Mentor –Área Motor Relacional
MCP – MCAD – MCSD – MCTS – MCT - MCITP
rgarrigos@solidq.com
Objetivos de la sesión
α Rápido vistazo a la replicación en SQL Server
α Razones para ir más allá: La milla extra
α Replicación transaccional
 β   Agente lector del log de transacciones
 β   Agente de distribución
α Replicación de mezcla
 β   Agente de mezcla
Replicación en SQL Server
Replicación en SQL Server
Definición
α Es un conjunto de tecnologías que nos permiten
    distribuir y sincronizar información entre bases de datos
α   Modelo de publicaciones
Replicación en SQL Server
Conceptos clave
α Artículo: Un artículo es un conjunto de datos, estructuras u
  operaciones que van a ser replicados
α Publicación: Es un contenedor de un conjunto de artículos
  a replicar que están lógicamente relacionados entre sí
α Suscripción: Entidad que indica que un suscriptor desea
  recibir los datos de una publicación, de que forma y con
  que frecuencia
Replicación en SQL Server
Tipologías
α Transaccional
 β   Unidireccional «no modificable»
 β   Actualizable inmediata
 β   Actualizable con cola
 β   Doble transaccional
 β   Peer to peer (SQL 2005+)
α Mezcla
α Instantánea

α Basándonos en nuestra experiencia:
 β   ~60% Transaccional unidireccional
 β   ~30% Mezcla
 β   ~5% P2P
 β   ~5% Instantánea, transaccionales actualizables, etc.
Escala de réplicas
                                                                    Mayor autonomía
                                                                    Mayor latencia

                                                               Mezcla
                                                      Instantánea



                       Transaccional unidireccional
               Transaccional bidireccional - P2P
               Transaccional actualizable


Transacciones distribuidas
Menor autonomía
Menor latencia
La milla extra
La milla extra
Razones para recorrerla
α Un mayor conocimiento nos llevará a tomar decisiones
  más acertadas.
α Una mala decisión en una fase inicial de un proyecto tiene
  un alto coste a posteriori
α Evitar utilizar un martillo cuando lo que tenemos es un
  tornillo (o viceversa)  Ojo con los “vendemotos”
α No debemos analizar la viabilidad tecnológica de nuestra
  elección sin tener en cuenta múltiples factores
 β   Políticas internas
 β   Mantenibilidad a largo plazo
 β   Fiabilidad
 β   Extensibilidad y flexibilidad ante cambios
 β   Escalabilidad considerando las previsiones a X años vista
 β   Seguridad
La milla extra
Aplicada a la replicación
α Conocer a bajo nivel el funcionamiento de los distintos
        tipos de replicación (o al menos el que implementemos)
    β    Lógica de funcionamiento de los agentes
    β    Procedimientos almacenados utilizados
    β    Permisos necesarios
    β    Flujo de datos y almacenes de metadatos
α SQL Profiler es nuestro amigo cuando la documentación
        se queda corta
    β    La implementación interna de los agentes  Debugger
α Cuando tenemos algún error, este conocimiento de bajo
        nivel es IRREMPLAZABLE para volver a levantar la réplica
        minimizando el impacto en el negocio.
α       La replicación debe considerarse como un factor
        transversal a nuestra base de datos
    β    Mantenimiento de base de datos
Replicación Transaccional
Replicación transaccional
Agentes
α   Agente de instantáneas (opcional)
α   Agente lector del log de transacciones
α   Agente de distribución
α   Agente de lectura de cola de replicación (obsoleto)
Replicación transaccional
Agente de instantánea
α Se utiliza para inicializar los subscriptores habitualmente
 β    Inicializaciones manuales
 β    Inicializaciones con backup
 β    Parámetro @sync_type del procedimiento sp_Addsubscription
α Genera un conjunto de ficheros que contendrán los
     artículos de la publicación
 β    Copiamos metadatos + datos (BCP)
α Se ejecuta normalmente en el distribuidor
 β    Puede ser invocado como un job, desde línea de comandos,
      mediante RMO, etc.
α Soporta Database Mirroring en el publicador
α Seguridad
 β    Db_owner de la base de datos publicada y de la de distribución
 β    Escritura en la carpeta de instantáneas
Replicación transaccional
Agente de instantánea
α Perfiles de agente
 β   Compartir parametrización entre instancias de un mismo tipo
 β   No todos los parámetros son configurables desde el perfil
α Parámetros interesantes
 β   BcpBatchSize
 β   MaxBcpThreads (1)
 β   DynamicFilterHostName
 β   DynamicFilterLogin
 β   OutputVerboseLevel
 β   HistoryVerboseLevel
 β   EncryptionLevel
Replicación transaccional
Agente de instantánea
α Una instantánea está
  compuesta de varios
  tipos de ficheros
α .BCP  Datos
α .SCH  Esquema
 β   Detecta dependencias
α .IDX  Índices
α .PRE  Scripts limpieza

α Destino:
 β   PATH
 β   UNC
 β   FTP
Replicación transaccional
Agente de instantánea
α Los ficheros BCP de la instantánea son ficheros BCP
     estándar por lo que podemos utilizarlos con otros fines
 β    Restaurar parte de los datos manualmente con BCP IN:
α > bcp tabla in fichero.bcp -dbasededatos -Sinstancia -T
Replicación transaccional
Agente lector del log de transacciones
α Se utiliza para extraer del log de transacciones los cambios
  marcados como pendientes de replicar
α Se ejecuta en el distribuidor
 β   Puede ser invocado como un job o desde línea de comandos
 β   Una única instancia por base de datos: 1 log  1 agente
 β   Soporta Database Mirroring en el publicador
α Seguridad
 β   Db_owner de la base de datos publicada y de la de distribución
Replicación transaccional
Agente lector del log de transacciones
α El flujo de trabajo de los agentes se obtiene con la ayuda
     de SQL Server Profiler:

1. Llama a sp_MSadd_LogReader_History para indicar que
     arrancamos el agente
2.   Obtiene datos para arrancar correctamente el agente para
     esta publicación específica (sp_MShelp_logreader_agentid )
3.   Obtiene los parámetros del perfil asociado
     (sp_MShelp_profile)
4.   Llama a sp_MSadd_logreader_history para indicar que
     estamos inicializados
5.   Obtenemos la última transacción donde nos quedamos
     leyendo del log (sp_MSget_last_transaction)
Replicación transaccional
Agente lector del log de transacciones
6. Leemos del log de transacciones (sp_replcmds)
7. Procesamos los registros insertándolos en la base de
    datos de distribución (sp_MSadd_repl_commands )
8. Marcamos la transacción como confirmada (sp_repldone)
9. Registramos los comandos entregados
    (sp_MSAdd_logreader_history): “N transactions with M
    commands were delivered”
10. Esperamos x segundos según la frecuencia configurada
11. GOTO 5 (sp_MSget_last_transaction)

Si ocurre algún error recuperable (timeout de conexión,
reinicio del publicador, etc.) la política de reintentos por
defecto del job del agente la resolverá  Monitorización
Replicación transaccional
Agente lector del log de transacciones
α Parámetros interesantes
 β   OutputVerboseLevel
 β   HistoryVerboseLevel
 β   PollingInterval (5)
 β   ReadBatchSize (500 transacciones)
 β   ReadBatchThreshold (0 comandos)
 β   Buffers (2)
 β   MaxCmdsInTran (0 o romper atomicidad)
Replicación transaccional
Agente de distribución
α Se utiliza para entregar las instantáneas iniciales y para
  aplicar los cambios pendientes de la base de datos de
  distribución al subscriptor
α Se ejecuta en el distribuidor/subscriptor (PUSH vs PULL)
 β   Puede ser invocado como un job o desde línea de comandos
 β   Una instancia por subscripción o compartido entre varias
α Seguridad
 β   Db_owner de la base de datos subscrita y de la de distribución
 β   Mienbro de la PAL (Publication Access List) correspondiente
 β   Permisos de lectura sobre la carpeta de instantáneas
Replicación transaccional
Agente de distribución

1. Indicamos que arrancamos el agente
     (sp_Msadd_distribution_history)
2.   Comprobamos el estado de la suscripción
     (sp_MSSubscription_Status). Si está expirada, no podremos
     continuar.
3.   Obtenemos la información del suscriptor
     (sp_mshelp_subscriber_info)
4.   Obtenemos los datos del agente específico de este
     suscriptor (sp_mshelp_subscription_agentid)
5.   Indicamos que estamos listos para comenzar y conectamos
     al suscriptor (sp_Msadd_distribution_history)
6.   Comprobamos los permisos necesarios en el suscriptor
     (sp_MScheck_subscribe)
Replicación transaccional
Agente de distribución

7. Actualizamos el estado de la suscripción
   (Sp_MSinit_Subscription_agent)
8. Obtenemos la última transaccion replicada de
   MSreplication_subscriptions (xact_seqno) Todos los valores
   por encima de dicho valor, están pendientes de replicar.
9. Obtenemos las transacciones y comandos pendientes de
   MSReplication_transactions y MSreplication_commands y
   los aplicamos utilizando sp_MS_get_repl_commands.
10. Actualizamos MSreplication_subscriptions con la última
   transacción entregada
11. Registramos en el log dicha entrega con
   sp_MSDistribution_history y el mensaje “n transaction(S)
   with m command(s) were delivered”
12. GOTO 8
Replicación transaccional
Agente de distribución
α Parámetros interesantes
 β   BcpBatchSize
 β   MaxBcpThreads (2xCPU, 8 MAX)
 β   CommitBatchSize (100 transacciones)
 β   CommitBatchThreshold (1000 comandos)
 β   QueryTimeOut (1800)
 β   MaxDeliveredTransactions (0)
 β   TransactionPerHistory (100)
 β   Buffers (2)
 β   PollingInterval (5)
 β   SubscriptionStreams (1)
 β   SkipErrors
Un largo viaje transaccional
Replicación de Mezcla
Replicación de mezcla
Agente de mezcla
α Se utiliza para todo el proceso de mezcla
 β   Gestión de rangos, cambios de esquema, creación de generaciones…
 β   Proceso de mezclado con resolución de conflictos (fila, columna,…)
α Se ejecuta en el distribuidor o en el subscriptor
 β   Puede ser invocado como un job, desde línea de comandos, RMO,…
 β   1 instancia por subscripción
α Seguridad
 β   Db_owner de la base de datos subscrita y de la de distribución
 β   Tener un login asociado en la base de datos publicada
 β   Mienbro de la PAL (Publication Access List) correspondiente
 β   Permisos de lectura sobre la carpeta de instantáneas
α No se respeta el orden original de los cambios
 β   Puede ser necesario NFR en triggers, constraints, etc.
α Se pueden omitir cambios intermedios
Replicación de mezcla
Detección de cambios
α Añade un ROWGUID  Lineage
α Triggers
 β   MSmerge_ins_<GUID>
 β   MSmerge_upd_<GUID>
 β   MSmerge_del_<GUID
α Algunas tablas importantes
 β   MSmerge_contents  1 fila por inserción o modificación
 β   MSmerge_tombstone  1 fila por borrado
 β   MSmerge_genhistory  1 fila por generación de cambios
 β   Msmerge_conflict_table  tabla de conflictos del artículo
α Mantenimiento
 β   Fragmentación
 β   Tamaño  periodo de retención (14 días)
Replicación de mezcla
Agente de mezcla

El flujo completo es complejo y depende de muchos factores: el
filtrado de artículos, la política de resolución de conflictos, el
particionado  la réplica de mezcla tiene un consumo de CPU
apreciable  sincronizaciones puntuales con autonomía

1. Indicamos que arrancamos el agente
     (sp_MSadd_merge_history)
2.   Comprobamos que no está el mismo agente ya ejecutando
     (sp_MSensure_single_instance)
3.   Obtenemos información de la publicación
     (sp_Msgetreplicainfo)
4.   Obtenemos cambios de esquema pendientes
     (sp_Msenumschemachange)
Replicación de mezcla
Agente de mezcla

5. Cerramos la generación (sp_Msmakegeneration)
6. Obtenemos la enumeración de cambios
   (sp_Msenumchanges)
7. Aplicamos los cambios generando el comando DML tras
   aplicar la resolución de conflictos (sp_Msgetmetadata)
8. Marcamos las últimas generaciones enviadas y recibidas
   (sp_Mssetlastsentgen, sp_Mssetlastrecgen)
9. Indicamos por donde nos quedamos sincronizando
   (sp_Msmergeupdatelastsyncinfo)
10.Indicamos que hemos acabado de sincronizar: «Merge
   completed after processing N data change(s) (N insert(s), N
   update(s), N delete(s), N conflict(s)).»
   (sp_MSadd_merge_history)
Replicación de mezcla
Agente de mezcla
α Parámetros interesantes
 β   DestThreads (4)
 β   SrcThreads (3)
 β   ParallelUploadDownload
 β   (Download/Upload)GenerationsPerBatch
 β   (Download/Upload)ReadChangesPerBatch
 β   (Download/Upload)WriteChangesPerBatch
 β   MaxDownloadChanges
 β   MaxUploadChanges
 β   MakeGenerationInterval
 β   PollingInterval (60)
 β   StartQueueTimeout
Mezclando datos
Si quieres disfrutar de las mejores sesiones de
nuestros mentores de España y Latino América,
             ésta es tu oportunidad.

      http://summit.solidq.com/madrid/

Más contenido relacionado

Similar a SQL11: Replicación

Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
Traducción bc360
Traducción bc360Traducción bc360
Traducción bc360yanirapm
 
02 troubleshooting essentials sql server profiler - sql pass peru
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peruGuillermo Taylor
 
Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012dbLearner
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Personalización Data Collectors
Personalización Data CollectorsPersonalización Data Collectors
Personalización Data CollectorsSolidQ
 
37 supervisión del sistema
37  supervisión del sistema37  supervisión del sistema
37 supervisión del sistemaAprende Viendo
 
Pandora FMS: Plugin Enterprise de Exchange
Pandora FMS: Plugin Enterprise de ExchangePandora FMS: Plugin Enterprise de Exchange
Pandora FMS: Plugin Enterprise de ExchangePandora FMS
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassJulián Castiblanco
 

Similar a SQL11: Replicación (20)

Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Traducción bc360
Traducción bc360Traducción bc360
Traducción bc360
 
Traducción bc360
Traducción bc360Traducción bc360
Traducción bc360
 
Traducción bc360
Traducción bc360Traducción bc360
Traducción bc360
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Replicación con sql server
Replicación con sql serverReplicación con sql server
Replicación con sql server
 
Replicacion sql server
Replicacion sql serverReplicacion sql server
Replicacion sql server
 
02 troubleshooting essentials sql server profiler - sql pass peru
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peru
 
Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012Alta Disponibilidad con SQL Server 2012
Alta Disponibilidad con SQL Server 2012
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Personalización Data Collectors
Personalización Data CollectorsPersonalización Data Collectors
Personalización Data Collectors
 
37 supervisión del sistema
37  supervisión del sistema37  supervisión del sistema
37 supervisión del sistema
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Replicación de Bases de Datos con SQL Server 2008
Replicación de Bases de Datos con SQL Server 2008Replicación de Bases de Datos con SQL Server 2008
Replicación de Bases de Datos con SQL Server 2008
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
 
Capa de Sesion Presentacion y Aplicacion..
Capa de Sesion Presentacion y Aplicacion..Capa de Sesion Presentacion y Aplicacion..
Capa de Sesion Presentacion y Aplicacion..
 
Pandora FMS: Plugin Enterprise de Exchange
Pandora FMS: Plugin Enterprise de ExchangePandora FMS: Plugin Enterprise de Exchange
Pandora FMS: Plugin Enterprise de Exchange
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL Pass
 

Más de SolidQ

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BISolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 

Más de SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Analizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BIAnalizando tus Redes Sociales con Power BI
Analizando tus Redes Sociales con Power BI
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 

Último

Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxIII SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxMaritza438836
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Concurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptxConcurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptxkeithgiancarloroquef
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 

Último (20)

Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxIII SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Concurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptxConcurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 

SQL11: Replicación

  • 1. REL-413 AVANZADOS: Replicación RUBÉN GARRIGÓS Mentor –Área Motor Relacional MCP – MCAD – MCSD – MCTS – MCT - MCITP rgarrigos@solidq.com
  • 2. Objetivos de la sesión α Rápido vistazo a la replicación en SQL Server α Razones para ir más allá: La milla extra α Replicación transaccional β Agente lector del log de transacciones β Agente de distribución α Replicación de mezcla β Agente de mezcla
  • 4. Replicación en SQL Server Definición α Es un conjunto de tecnologías que nos permiten distribuir y sincronizar información entre bases de datos α Modelo de publicaciones
  • 5. Replicación en SQL Server Conceptos clave α Artículo: Un artículo es un conjunto de datos, estructuras u operaciones que van a ser replicados α Publicación: Es un contenedor de un conjunto de artículos a replicar que están lógicamente relacionados entre sí α Suscripción: Entidad que indica que un suscriptor desea recibir los datos de una publicación, de que forma y con que frecuencia
  • 6. Replicación en SQL Server Tipologías α Transaccional β Unidireccional «no modificable» β Actualizable inmediata β Actualizable con cola β Doble transaccional β Peer to peer (SQL 2005+) α Mezcla α Instantánea α Basándonos en nuestra experiencia: β ~60% Transaccional unidireccional β ~30% Mezcla β ~5% P2P β ~5% Instantánea, transaccionales actualizables, etc.
  • 7. Escala de réplicas Mayor autonomía Mayor latencia Mezcla Instantánea Transaccional unidireccional Transaccional bidireccional - P2P Transaccional actualizable Transacciones distribuidas Menor autonomía Menor latencia
  • 9. La milla extra Razones para recorrerla α Un mayor conocimiento nos llevará a tomar decisiones más acertadas. α Una mala decisión en una fase inicial de un proyecto tiene un alto coste a posteriori α Evitar utilizar un martillo cuando lo que tenemos es un tornillo (o viceversa)  Ojo con los “vendemotos” α No debemos analizar la viabilidad tecnológica de nuestra elección sin tener en cuenta múltiples factores β Políticas internas β Mantenibilidad a largo plazo β Fiabilidad β Extensibilidad y flexibilidad ante cambios β Escalabilidad considerando las previsiones a X años vista β Seguridad
  • 10. La milla extra Aplicada a la replicación α Conocer a bajo nivel el funcionamiento de los distintos tipos de replicación (o al menos el que implementemos) β Lógica de funcionamiento de los agentes β Procedimientos almacenados utilizados β Permisos necesarios β Flujo de datos y almacenes de metadatos α SQL Profiler es nuestro amigo cuando la documentación se queda corta β La implementación interna de los agentes  Debugger α Cuando tenemos algún error, este conocimiento de bajo nivel es IRREMPLAZABLE para volver a levantar la réplica minimizando el impacto en el negocio. α La replicación debe considerarse como un factor transversal a nuestra base de datos β Mantenimiento de base de datos
  • 12. Replicación transaccional Agentes α Agente de instantáneas (opcional) α Agente lector del log de transacciones α Agente de distribución α Agente de lectura de cola de replicación (obsoleto)
  • 13. Replicación transaccional Agente de instantánea α Se utiliza para inicializar los subscriptores habitualmente β Inicializaciones manuales β Inicializaciones con backup β Parámetro @sync_type del procedimiento sp_Addsubscription α Genera un conjunto de ficheros que contendrán los artículos de la publicación β Copiamos metadatos + datos (BCP) α Se ejecuta normalmente en el distribuidor β Puede ser invocado como un job, desde línea de comandos, mediante RMO, etc. α Soporta Database Mirroring en el publicador α Seguridad β Db_owner de la base de datos publicada y de la de distribución β Escritura en la carpeta de instantáneas
  • 14. Replicación transaccional Agente de instantánea α Perfiles de agente β Compartir parametrización entre instancias de un mismo tipo β No todos los parámetros son configurables desde el perfil α Parámetros interesantes β BcpBatchSize β MaxBcpThreads (1) β DynamicFilterHostName β DynamicFilterLogin β OutputVerboseLevel β HistoryVerboseLevel β EncryptionLevel
  • 15. Replicación transaccional Agente de instantánea α Una instantánea está compuesta de varios tipos de ficheros α .BCP  Datos α .SCH  Esquema β Detecta dependencias α .IDX  Índices α .PRE  Scripts limpieza α Destino: β PATH β UNC β FTP
  • 16. Replicación transaccional Agente de instantánea α Los ficheros BCP de la instantánea son ficheros BCP estándar por lo que podemos utilizarlos con otros fines β Restaurar parte de los datos manualmente con BCP IN: α > bcp tabla in fichero.bcp -dbasededatos -Sinstancia -T
  • 17. Replicación transaccional Agente lector del log de transacciones α Se utiliza para extraer del log de transacciones los cambios marcados como pendientes de replicar α Se ejecuta en el distribuidor β Puede ser invocado como un job o desde línea de comandos β Una única instancia por base de datos: 1 log  1 agente β Soporta Database Mirroring en el publicador α Seguridad β Db_owner de la base de datos publicada y de la de distribución
  • 18. Replicación transaccional Agente lector del log de transacciones α El flujo de trabajo de los agentes se obtiene con la ayuda de SQL Server Profiler: 1. Llama a sp_MSadd_LogReader_History para indicar que arrancamos el agente 2. Obtiene datos para arrancar correctamente el agente para esta publicación específica (sp_MShelp_logreader_agentid ) 3. Obtiene los parámetros del perfil asociado (sp_MShelp_profile) 4. Llama a sp_MSadd_logreader_history para indicar que estamos inicializados 5. Obtenemos la última transacción donde nos quedamos leyendo del log (sp_MSget_last_transaction)
  • 19. Replicación transaccional Agente lector del log de transacciones 6. Leemos del log de transacciones (sp_replcmds) 7. Procesamos los registros insertándolos en la base de datos de distribución (sp_MSadd_repl_commands ) 8. Marcamos la transacción como confirmada (sp_repldone) 9. Registramos los comandos entregados (sp_MSAdd_logreader_history): “N transactions with M commands were delivered” 10. Esperamos x segundos según la frecuencia configurada 11. GOTO 5 (sp_MSget_last_transaction) Si ocurre algún error recuperable (timeout de conexión, reinicio del publicador, etc.) la política de reintentos por defecto del job del agente la resolverá  Monitorización
  • 20. Replicación transaccional Agente lector del log de transacciones α Parámetros interesantes β OutputVerboseLevel β HistoryVerboseLevel β PollingInterval (5) β ReadBatchSize (500 transacciones) β ReadBatchThreshold (0 comandos) β Buffers (2) β MaxCmdsInTran (0 o romper atomicidad)
  • 21. Replicación transaccional Agente de distribución α Se utiliza para entregar las instantáneas iniciales y para aplicar los cambios pendientes de la base de datos de distribución al subscriptor α Se ejecuta en el distribuidor/subscriptor (PUSH vs PULL) β Puede ser invocado como un job o desde línea de comandos β Una instancia por subscripción o compartido entre varias α Seguridad β Db_owner de la base de datos subscrita y de la de distribución β Mienbro de la PAL (Publication Access List) correspondiente β Permisos de lectura sobre la carpeta de instantáneas
  • 22. Replicación transaccional Agente de distribución 1. Indicamos que arrancamos el agente (sp_Msadd_distribution_history) 2. Comprobamos el estado de la suscripción (sp_MSSubscription_Status). Si está expirada, no podremos continuar. 3. Obtenemos la información del suscriptor (sp_mshelp_subscriber_info) 4. Obtenemos los datos del agente específico de este suscriptor (sp_mshelp_subscription_agentid) 5. Indicamos que estamos listos para comenzar y conectamos al suscriptor (sp_Msadd_distribution_history) 6. Comprobamos los permisos necesarios en el suscriptor (sp_MScheck_subscribe)
  • 23. Replicación transaccional Agente de distribución 7. Actualizamos el estado de la suscripción (Sp_MSinit_Subscription_agent) 8. Obtenemos la última transaccion replicada de MSreplication_subscriptions (xact_seqno) Todos los valores por encima de dicho valor, están pendientes de replicar. 9. Obtenemos las transacciones y comandos pendientes de MSReplication_transactions y MSreplication_commands y los aplicamos utilizando sp_MS_get_repl_commands. 10. Actualizamos MSreplication_subscriptions con la última transacción entregada 11. Registramos en el log dicha entrega con sp_MSDistribution_history y el mensaje “n transaction(S) with m command(s) were delivered” 12. GOTO 8
  • 24. Replicación transaccional Agente de distribución α Parámetros interesantes β BcpBatchSize β MaxBcpThreads (2xCPU, 8 MAX) β CommitBatchSize (100 transacciones) β CommitBatchThreshold (1000 comandos) β QueryTimeOut (1800) β MaxDeliveredTransactions (0) β TransactionPerHistory (100) β Buffers (2) β PollingInterval (5) β SubscriptionStreams (1) β SkipErrors
  • 25. Un largo viaje transaccional
  • 27. Replicación de mezcla Agente de mezcla α Se utiliza para todo el proceso de mezcla β Gestión de rangos, cambios de esquema, creación de generaciones… β Proceso de mezclado con resolución de conflictos (fila, columna,…) α Se ejecuta en el distribuidor o en el subscriptor β Puede ser invocado como un job, desde línea de comandos, RMO,… β 1 instancia por subscripción α Seguridad β Db_owner de la base de datos subscrita y de la de distribución β Tener un login asociado en la base de datos publicada β Mienbro de la PAL (Publication Access List) correspondiente β Permisos de lectura sobre la carpeta de instantáneas α No se respeta el orden original de los cambios β Puede ser necesario NFR en triggers, constraints, etc. α Se pueden omitir cambios intermedios
  • 28. Replicación de mezcla Detección de cambios α Añade un ROWGUID  Lineage α Triggers β MSmerge_ins_<GUID> β MSmerge_upd_<GUID> β MSmerge_del_<GUID α Algunas tablas importantes β MSmerge_contents  1 fila por inserción o modificación β MSmerge_tombstone  1 fila por borrado β MSmerge_genhistory  1 fila por generación de cambios β Msmerge_conflict_table  tabla de conflictos del artículo α Mantenimiento β Fragmentación β Tamaño  periodo de retención (14 días)
  • 29. Replicación de mezcla Agente de mezcla El flujo completo es complejo y depende de muchos factores: el filtrado de artículos, la política de resolución de conflictos, el particionado  la réplica de mezcla tiene un consumo de CPU apreciable  sincronizaciones puntuales con autonomía 1. Indicamos que arrancamos el agente (sp_MSadd_merge_history) 2. Comprobamos que no está el mismo agente ya ejecutando (sp_MSensure_single_instance) 3. Obtenemos información de la publicación (sp_Msgetreplicainfo) 4. Obtenemos cambios de esquema pendientes (sp_Msenumschemachange)
  • 30. Replicación de mezcla Agente de mezcla 5. Cerramos la generación (sp_Msmakegeneration) 6. Obtenemos la enumeración de cambios (sp_Msenumchanges) 7. Aplicamos los cambios generando el comando DML tras aplicar la resolución de conflictos (sp_Msgetmetadata) 8. Marcamos las últimas generaciones enviadas y recibidas (sp_Mssetlastsentgen, sp_Mssetlastrecgen) 9. Indicamos por donde nos quedamos sincronizando (sp_Msmergeupdatelastsyncinfo) 10.Indicamos que hemos acabado de sincronizar: «Merge completed after processing N data change(s) (N insert(s), N update(s), N delete(s), N conflict(s)).» (sp_MSadd_merge_history)
  • 31. Replicación de mezcla Agente de mezcla α Parámetros interesantes β DestThreads (4) β SrcThreads (3) β ParallelUploadDownload β (Download/Upload)GenerationsPerBatch β (Download/Upload)ReadChangesPerBatch β (Download/Upload)WriteChangesPerBatch β MaxDownloadChanges β MaxUploadChanges β MakeGenerationInterval β PollingInterval (60) β StartQueueTimeout
  • 33. Si quieres disfrutar de las mejores sesiones de nuestros mentores de España y Latino América, ésta es tu oportunidad. http://summit.solidq.com/madrid/