{"id":156891,"date":"2025-01-16T08:28:48","date_gmt":"2025-01-16T16:28:48","guid":{"rendered":"https:\/\/blog.everpuredata.com\/?p=156891"},"modified":"2025-02-16T01:00:27","modified_gmt":"2025-02-16T09:00:27","slug":"sql-server-distributed-availability-groups-and-kubernetes","status":"publish","type":"post","link":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/","title":{"rendered":"Grupos de disponibilidad distribuida de SQL Server y Kubernetes"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-medium-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<div class=\"wp-block-group has-border-color has-pure-orange-100-border-color has-primary-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:2px;border-top-left-radius:16px;border-top-right-radius:16px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;padding-top:30px;padding-right:30px;padding-bottom:30px;padding-left:30px\">\n<h3 class=\"wp-block-heading\" id=\"h-summary\">Resumen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This article shows how to seed a database from a SQL instance that is in a Windows availability group into a SQL instance running in a pod in a Kubernetes cluster using a distributed availability group.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group pdf-print-hide is-content-justification-right is-nowrap is-layout-flex wp-container-core-group-is-layout-f726d978 wp-block-group-is-layout-flex\"><div class=\"pdfprnt-buttons\"><a href=\"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/posts\/156891?print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\" ><img decoding=\"async\" src=\"https:\/\/blog.everpuredata.com\/wp-content\/plugins\/pdf-print-pro\/images\/pdf.png?1953174090\" alt=\"image_pdf\" title=\"Ver PDF\" \/><\/a><a href=\"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/posts\/156891?print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\" ><img decoding=\"async\" src=\"https:\/\/blog.everpuredata.com\/wp-content\/plugins\/pdf-print-pro\/images\/print.png?245231721\" alt=\"image_print\" title=\"Imprimir contenido\" \/><\/a><\/div>\n<\/div>\n\n\n\n<div id=\"CONTENT\" class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Este art\u00edculo sobre los grupos de disponibilidad distribuida de SQL Server apareci\u00f3 originalmente en <\/em>el <a href=\"https:\/\/dbafromthecold.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>blog de Andrew Pruski<\/em><\/a><em>. Se ha vuelto a publicar con el reconocimiento y el consentimiento del autor.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hace un tiempo, escrib\u00ed sobre c\u00f3mo usar un <a href=\"https:\/\/dbafromthecold.com\/2024\/07\/26\/sql-server-cross-platform-availability-groups-and-kubernetes\/\" target=\"_blank\" rel=\"noreferrer noopener\">grupo de disponibilidad multiplataforma (o sin cl\u00faster)<\/a> para sembrar una base de datos desde una instancia de Windows SQL en un pod en Kubernetes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estaba hablando con un compa\u00f1ero la semana pasada y me preguntaron: \u201c\u00bfY si la instancia de Windows existente ya est\u00e1 en un grupo de disponibilidad?\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es una pregunta bastante clara, ya que es bastante raro (seg\u00fan mi experiencia) ejecutar una instancia SQL independiente en producci\u00f3n&#8230; la mayor\u00eda de las instancias tienen alg\u00fan tipo de configuraci\u00f3n HA, ya sea una instancia de cl\u00faster de conmutaci\u00f3n por error o un grupo de disponibilidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las instancias de cl\u00faster de conmutaci\u00f3n por error funcionar\u00e1n con un grupo de disponibilidad sin cl\u00faster, pero es una historia diferente cuando se trata de grupos de disponibilidad existentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un nodo Linux no puede a\u00f1adirse a un grupo de disponibilidad de Windows existente (conf\u00ede en m\u00ed, he intentado durante m\u00e1s tiempo del que voy a admitir), as\u00ed que la \u00fanica manera de hacerlo es usar un <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/database-engine\/availability-groups\/windows\/configure-distributed-availability-groups?view=sql-server-ver16&amp;tabs=automatic%2Csql22\" target=\"_blank\" rel=\"noreferrer noopener\">grupo de disponibilidad distribuida<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1As\u00ed que vamos a pasar por el proceso!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este es el grupo de disponibilidad de Windows existente:\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfG3A13oYNJlUXsGM2CeQUUuxJXKSflYtBu6qg1blcSIL0Y31qUznBW7Ap0tXVF2A8QN8D6RLDFNXVcFWdFFvJeLRMCBIx90xE6eA_Y3buKL7OE29jsDetGHq4P3z-vFozaW6ReTw?key=Cllw4N2t9SVERAcoDnITi1xj\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Solo un AG est\u00e1ndar de dos nodos con una base de datos ya sincronizada en los nodos. Es esa base de datos que vamos a colocar en el pod que se ejecuta en el cl\u00faster de Kubernetes usando un grupo de disponibilidad distribuida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As\u00ed que aqu\u00ed est\u00e1 el cl\u00faster de Kubernetes:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>kubectl obtener nodos<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXff7LVm7D6CB4d-w4cU2TFAqqJV5nEnpl-IpKZJTIO4W_xU3cQR-yoE4QDWIEeUvpOpOLIZ7ffzJZTS8-eqv5Gd1JLHF4T_TCPNe4V2YzEcnYzSuwC0OxVKViwsqHCDkfzYX16Nag?key=Cllw4N2t9SVERAcoDnITi1xj\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Cuatro nodos, un nodo de plano de control y tres nodos de trabajador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De acuerdo, lo primero que hay que hacer es desplegar un <em>conjunto de estados<\/em> que ejecute un pod de SQL Server (usando un archivo llamado <em>sqlserver-statefulset.yaml<\/em>):\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>kubectl apply -f .\\sqlserver-statefulset.yaml<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed tiene el manifiesto del conjunto de estados de cuenta:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>apiVersion: aplicaciones\/v1tipo: StatefulSetmetadata: name: mssql-statefulsetspec: serviceName: r\u00e9plicas \"mssql\": 1 podManagementPolicy: Selector paralelo: matchLabels: nombre: plantilla mssql-pod: metadatos: etiquetas: nombre: Anotaciones de mssql-pod:stork.libopenstorage.org\/disableHyperconvergence: \"true\" spec: seguridadContexto: fsGroup: 10001 hostAlias: - ip: \"10.225.115.129\" nombres de host: - contenedores \"z-ap-sql-10\": - nombre: imagen del contenedor mssql: mcr.microsoft.com\/mssql\/server:2022-CU15-ubuntu-20.04ports: - containerPort: Nombre del 1433: mssql-port env: - nombre: MSSQL_PID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value: \"Desarrollador\" - nombre: ACCEPT_EULA\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value: \"Y\" - nombre: MSSQL_AGENT_ENABLED\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value: \"1\" - nombre: MSSQL_ENABLE_HADR\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value: \"1\" - nombre: MSSQL_SA_PASSWORD\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value: Volumen \"Testing1122\"Montajes: - nombre: sqlsystem mountPath: \/var\/opt\/mssql - nombre: sqldata mountPath: \/var\/opt\/sqlserver\/volumen de datosClaimTemplates: - metadatos: nombre: sqlsystem spec: accessModes: - ReadWriteRecursos de org.: solicitudes: almacenamiento: 1GistorageClassName: mssql-sc - metadatos: nombre: sqldata spec: accessModes: - ReadWriteOnce recursos: solicitudes: almacenamiento: 25GistorageClassName: mssql-sc<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al igual que en mi \u00faltima publicaci\u00f3n, esto est\u00e1 bastante arraigado. Sin l\u00edmites de recursos, tolerancias, etc. Tiene dos vol\u00famenes persistentes: uno para las bases de datos del sistema y otro para las bases de datos de usuario de una clase de almacenamiento ya configurada en el cl\u00faster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algo que hay que tener en cuenta:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1234 hostAlias:- ip: \"10.225.115.129\" nombres de host: - \"z-ap-sql-10\"<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed, se crea una entrada en el archivo de hosts del pod para el oyente del grupo de disponibilidad de Windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo siguiente que hay que hacer es desplegar dos servicios: uno para que podamos conectarnos a la instancia SQL (en el puerto 1433) y otro para el AG (puerto 5022):\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>kubectl apply -f .\\sqlserver-services.yaml<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed tiene el manifiesto de los servicios:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>12345678910111213141516171819202122232425 apiVersi\u00f3n: v1kind: Servicemetadata: nombre: mssql-servicespec: puertos: - nombre: mssql-puertos puerto: 1433 destinoPuerto: 1433 selector: nombre: mssql-pod tipo: LoadBalancer---apiVersi\u00f3n: v1tipo: Servicemetadata: nombre: mssql-ha-servicespec: puertos: - nombre: mssql-ha-ports puerto: 5022 destinoPuerto: 5022 selector: nombre: mssql-pod tipo: LoadBalancer<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nota<\/strong>: Podr\u00edamos usar un solo servicio con m\u00faltiples puertos configurados, pero los mantengo separados aqu\u00ed para tratar de mantener las cosas lo m\u00e1s claras posible.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a href=\"https:\/\/blog.everpuredata.com\/purely-technical\/using-t-sql-snapshot-backup-point-in-time-recovery\/\"><em>Uso de la copia de seguridad instant\u00e1nea T-SQL: Recuperaci\u00f3n en el momento<\/em><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compruebe que todo parece correcto:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>kubectl consigue todo<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXefdcaPNNNGsf1z_vwCxamw2L-eipbLfDA5LyCQhwYM4WAC8UpPWKAsLhhqgZAAwdfpYWRl0r0NaTaNWAlaAB_rTTJPK9i-cNhToJQAMVVyLH6iI7ZViKYqlgs5o6NriYSd40MGZQ?key=Cllw4N2t9SVERAcoDnITi1xj\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora, tenemos que crear la clave maestra, el inicio de sesi\u00f3n y el usuario en todos los casos:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>123 <strong>CREAR<\/strong> UNA ENCRIPCI\u00d3N <strong>CLAVE<\/strong> MAESTRA <strong>POR<\/strong> <strong>CONTRASE\u00d1A<\/strong> = '<c0m9l3xp>';<strong>CREE<\/strong> INICIO DE SESI\u00d3N [dbm_login] <strong>CON<\/strong> <strong>CONTRASE\u00d1A<\/strong> = '<c0m9l3xp>';<strong>CREAR<\/strong> USUARIO dbm_user <strong>PARA<\/strong> INICIAR SESI\u00d3N dbm_login;<\/c0m9l3xp><\/c0m9l3xp><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Luego, cree un certificado en la instancia SQL del pod:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code><strong>CREAR<\/strong> CERTIFICADO dbm_certificate <strong>CON<\/strong> ASUNTO = 'Mirroring_certificate', EXPIRY_DATE = '20301031'<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Haga una copia de seguridad de ese certificado:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>123456 CERTIFICADO DE RESERVA dbm_certificate<strong>PARA<\/strong> ARCHIVO = '\/var\/opt\/mssql\/data\/dbm_certificate.cer'<strong>CON<\/strong> <strong>LLAVE<\/strong> PRIVADA ( ARCHIVO = '\/var\/opt\/mssql\/data\/dbm_certificate.pvk',\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ENCRYPTION <strong>POR<\/strong> <strong>CONTRASE\u00d1A<\/strong> = '<c0m9l3xp>');<\/c0m9l3xp><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copie el certificado localmente:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>12 kubectl cp mssql-statefulset-0:var\/opt\/mssql\/data\/dbm_certificate.cer .\/dbm_certificate.cer -n prodkubectl cp mssql-statefulset-0:var\/opt\/mssql\/data\/dbm_certificate.pvk .\/dbm_certificate.pvk -n prod<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y luego copie los archivos en los cuadros de Windows:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1234 Copia-Art\u00edculo dbm_certificate.cer \\\\z-ap-sql-02\\E$\\SQLBackup1\\ -ForceCopy-Item dbm_certificate.pvk \\\\z-ap-sql-02\\E$\\SQLBackup1\\ -ForceCopy-Item dbm_certificate.cer \\\\z-ap-sql-03\\E$\\SQLBackup1\\ -ForceCopy-Item dbm_certificate.pvk \\\\z-ap-sql-03\\E$\\SQLBackup1\\ -Force<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que los archivos est\u00e1n en los cuadros de Windows, podemos crear el certificado en cada instancia de SQL de Windows:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1234567 <strong>CREAR<\/strong> dbm_certificate\u00a0\u00a0\u00a0\u00a0<strong>AUTORIZACI\u00d3N<\/strong> DE CERTIFICADO dbm_user\u00a0\u00a0\u00a0\u00a0<strong>A PARTIR<\/strong> DEL ARCHIVO = 'E:\\SQLBackup1\\dbm_certificate.cer'\u00a0\u00a0\u00a0\u00a0<strong>CON<\/strong> <strong>CLAVE<\/strong> PRIVADA (ARCHIVO = 'E:\\SQLBackup1\\dbm_certificate.pvk',\u00a0\u00a0\u00a0\u00a0DECRYPTION <strong>MEDIANTE<\/strong> <strong>CONTRASE\u00d1A<\/strong> = '')<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Bien, genial! Ahora tenemos que crear un punto de conexi\u00f3n replicado en la instancia SQL del pod:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>123456789101112 <strong>CREAR<\/strong> [Hadr_endpoint]ESTADO DE PUNTO FINAL = <strong>INICIADOCOMO<\/strong> TCP (\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_PORT = 5022,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_IP = TODO)<strong>PARA<\/strong> DATA_MIRRORING (FUNCI\u00d3N = TODO, AUTENTICACI\u00d3N = CERTIFICADO DE WINDOWS [dbm_certificate], CIFRADO = ALGORITMO REQUERIDO AES );<strong>ALTER<\/strong>AR [Hadr_endpoint] ESTADO DE PUNTO FINAL = INICIADO;<strong>CONCEDER<\/strong> <strong>CONEXI\u00d3N<\/strong> <strong>EN<\/strong> PUNTO FINAL::[Hadr_endpoint] <strong>A<\/strong> [dbm_login];<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ya hay terminales en las instancias de Windows, pero tenemos que actualizarlos para usar el certificado para la autenticaci\u00f3n:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>12345678910 <strong>ALTER<\/strong> ENDPOINT [Hadr_endpoint]STATE = STARTED<strong>AS<\/strong> TCP (\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_PORT = 5022,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_IP = ALL)<strong>FOR<\/strong> DATABASE_MIRRORING ( AUTENTICACI\u00d3N = CERTIFICADO DE WINDOWS [dbm_certificate], CIFRADO = ALGORITMO REQUERIDO AES );<strong>CONECTAR<\/strong> <strong><\/strong> <strong>EN PUNTO<\/strong> FINAL:[Hadr_endpoint] <strong>A<\/strong> [dbm_login];<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora podemos crear un grupo de disponibilidad sin cl\u00faster de un nodo en la instancia SQL del pod:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>12345678910111213 <strong>CREAR<\/strong> <strong>UN GRUPO<\/strong> DE [AG2]<strong>DISPONIBILIDADCON<\/strong> (CLUSTER_TYPE=NONE)\u00a0\u00a0\u00a0<strong>FOR<\/strong>REPLICA <strong>ON<\/strong>'mssql-statefulset-0' <strong>CON<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ENDPOINT_URL = 'TCP:\/\/mssql-statefulset-0.com:5022',\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FAILOVER_MODE = MANUAL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0,AVAILABILITY_MODE = SYNCHRONOUS_COMMIT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0,BACKUP_PRIORITY = 50\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0,SEEDING_MODE = AUTOMATIC\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0,SECONDARY_ROLE(ALLOW_CONNECTIONS = = <strong>NO<\/strong>) )<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No hay oyente aqu\u00ed; vamos a usar el <em>servicio mssql-ha-<\/em>service como punto final para el grupo de disponibilidad distribuida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien, as\u00ed que en el nodo principal del grupo de disponibilidad de Windows, podemos crear el grupo de disponibilidad distribuida:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1234567891011121314151617 <strong>CREAR<\/strong> <strong>UN GRUPO<\/strong> DE [DistributedAG]<strong>DISPONIBILIDADCON<\/strong> (DISTRIBUIDO) <strong>GRUPO<\/strong> DE DISPONIBILIDAD <strong>EN<\/strong>'AG1' <strong>CON<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_URL = 'tcp:\/\/Z-AP-SQL-10:5022', \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FAILOVER_MODE = MANUAL,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SEEDING_MODE = = AUTOM\u00c1TICO ), 'AG2' <strong>CON<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_URL = 'tcp:\/\/10.225.115.131:5022',\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FAILOVER_MODE = = MANUAL,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SEEDING_MODE = = AUTOM\u00c1TICO );<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos usar una entrada de archivo host para la URL en AG2 (lo hice en la publicaci\u00f3n anterior), pero aqu\u00ed solo usaremos la direcci\u00f3n IP del servicio mssql-ha-service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Muy bien, \u00a1casi ah\u00ed! Ahora tenemos que unirnos al grupo de disponibilidad en la instancia SQL del pod:\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>1234567891011121314151617 <strong>ALTER<\/strong> A DISPONIBILIDAD <strong>GRUPO<\/strong> [DistributedAG]\u00daNASE A DISPONIBILIDAD <strong>GRUPO<\/strong> <strong>ON<\/strong>'AG1' <strong>CON<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_URL = 'tcp:\/\/Z-AP-SQL-10:5022', \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FAILOVER_MODE = MANUAL,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SEEDING_MODE = = AUTOM\u00c1TICO ), 'AG2' <strong>CON<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTENER_URL = 'tcp:\/\/10.225.115.131:5022',\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FAILOVER_MODE = = MANUAL,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SEEDING_MODE = = AUTOM\u00c1TICO );<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Y eso deber\u00eda ser todo! Si ahora nos conectamos a la instancia SQL del pod, \u00a1la base de datos est\u00e1 ah\u00ed!<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeVnFQoHBmHIaElbeYgdM6o24JTaYgVUEX31J9OKs-nVXQkXJwRO2atp5tkDmgSsK93zA4fx8J7U8gur6M3SG1p2NQJdhNHybqd2B2euZB-weSxP0Ok-0oQF3n7L_2CKjdg5DVZSQ?key=Cllw4N2t9SVERAcoDnITi1xj\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Aqu\u00ed est\u00e1! Vale, una cosa que no he pasado aqu\u00ed es c\u00f3mo hacer que la b\u00fasqueda autom\u00e1tica funcione desde Windows a una instancia de SQL de Linux. He visto c\u00f3mo funciona en <a href=\"https:\/\/dbafromthecold.com\/2024\/07\/26\/sql-server-cross-platform-availability-groups-and-kubernetes\/\">mi publicaci\u00f3n anterior<\/a>, pero lo importante es que, siempre que los datos de la base de datos y los archivos de registro est\u00e9n ubicados bajo la ruta de datos y de registro predeterminada de la instancia de Windows SQL, se conectar\u00e1n autom\u00e1ticamente a las rutas de datos y de registro predeterminadas de la instancia de Linux SQL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As\u00ed que as\u00ed es como sembrar una base de datos desde una instancia SQL que est\u00e1 en un grupo de disponibilidad de Windows en una instancia SQL que se ejecuta en un pod en un cl\u00faster de Kubernetes usando un grupo de disponibilidad distribuida.<\/p>\n\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/pixel.welcomesoftware.com\/px.gif?key=YXJ0aWNsZT02ZDUyOGUzMmQ0MjMxMWVmYTI2YTBlY2JjZjE2MjQyMA==\" alt=\"\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:30%\">\n<div class=\"wp-block-group sticky-content has-mint-green-500-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-radius:20px;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px\">\n<h2 class=\"wp-block-heading has-text-align-center has-ash-gray-500-color has-text-color has-link-color wp-elements-1\" id=\"h-title\" style=\"font-size:px\">Stellar Storage<\/h2>\n\n\n\n<p class=\"has-text-align-center has-ash-gray-500-color has-text-color has-link-color wp-elements-2 wp-block-paragraph\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.208), 1rem);\">Boost performance for SQL Server with Pure Storage.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-f8bdad00 wp-block-buttons-is-layout-flex\" style=\"margin-top:1em;margin-bottom:1em\">\n<div class=\"wp-block-button is-style-outline button-sticky is-style-outline--2\"><a class=\"wp-block-button__link has-cloud-white-500-color has-basil-green-500-background-color has-text-color has-background has-link-color has-inter-font-family has-custom-font-size wp-element-button\" href=\"https:\/\/www.purestorage.com\/solutions\/databases-applications\/microsoft\/sql.html\" style=\"border-style:none;border-width:0px;border-radius:4px;padding-top:14px;padding-right:16px;padding-bottom:14px;padding-left:16px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.208), 16px);\" target=\"_blank\" rel=\"noreferrer noopener\">Explore Solutions<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, encontrar\u00e1 el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL que est\u00e1 en un grupo de disponibilidad de Windows.<\/p>\n","protected":false},"author":720,"featured_media":154199,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_ppma_block_editor_authors":""},"categories":[14633],"tags":[14570,15196,14381,14826,14643],"content-position":[14978,15817],"ppma_author":[14501],"class_list":["post-156891","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-purely-technical","tag-storage-administration-es","tag-database-es","tag-database","tag-kubernetes-es","tag-sql-server-es","content-position-featured-articles-kubernetes","content-position-featured-articles-kubernetes-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Grupos de disponibilidad distribuida de SQL Server y Kubernetes | Everpure Blog<\/title>\n<meta name=\"description\" content=\"Descubra el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL en un grupo de disponibilidad de Windows.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Grupos de disponibilidad distribuida de SQL Server y Kubernetes\" \/>\n<meta property=\"og:description\" content=\"Descubra el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL en un grupo de disponibilidad de Windows.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Everpure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/PureStorage\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-16T16:28:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-16T09:00:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/SQL-Server-Distributed-Availability-Groups.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2163\" \/>\n\t<meta property=\"og:image:height\" content=\"1414\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andrew Pruski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EverpureData\" \/>\n<meta name=\"twitter:site\" content=\"@EverpureData\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrew Pruski\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/\"},\"author\":{\"name\":\"Andrew Pruski\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#\\\/schema\\\/person\\\/f6076c4f279220f117b4a0c5216a989a\"},\"headline\":\"Grupos de disponibilidad distribuida de SQL Server y Kubernetes\",\"datePublished\":\"2025-01-16T16:28:48+00:00\",\"dateModified\":\"2025-02-16T09:00:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/\"},\"wordCount\":899,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/SQL-Server-Distributed-Availability-Groups.png\",\"keywords\":[\"Administraci\u00f3n del almacenamiento\",\"Database\",\"Databases\",\"Kubernetes\",\"SQL Server\"],\"articleSection\":[\"Purely Technical\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/\",\"name\":\"Grupos de disponibilidad distribuida de SQL Server y Kubernetes | Everpure Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/SQL-Server-Distributed-Availability-Groups.png\",\"datePublished\":\"2025-01-16T16:28:48+00:00\",\"dateModified\":\"2025-02-16T09:00:27+00:00\",\"description\":\"Descubra el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL en un grupo de disponibilidad de Windows.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/SQL-Server-Distributed-Availability-Groups.png\",\"contentUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/SQL-Server-Distributed-Availability-Groups.png\",\"width\":2163,\"height\":1414,\"caption\":\"SQL Server Distributed Availability Groups\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/purely-technical\\\/sql-server-distributed-availability-groups-and-kubernetes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Grupos de disponibilidad distribuida de SQL Server y Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/\",\"name\":\"Everpure Blog\",\"description\":\"Unleash the power of your data with an intelligent, unified storage and data management platform built for resilience and AI.\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#organization\",\"name\":\"Everpure\",\"alternateName\":\"Pure Storage\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Everpure-Logo-Ash-Gray.png\",\"contentUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Everpure-Logo-Ash-Gray.png\",\"width\":2000,\"height\":342,\"caption\":\"Everpure\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/PureStorage\\\/\",\"https:\\\/\\\/x.com\\\/EverpureData\",\"https:\\\/\\\/www.instagram.com\\\/purestorage\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/everpure-data\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@everpure-data\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Pure_Storage\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/#\\\/schema\\\/person\\\/f6076c4f279220f117b4a0c5216a989a\",\"name\":\"Andrew Pruski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/Andrew-Pruski.png6dfc675849dda73d4ddea62eabc1629a\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/Andrew-Pruski.png\",\"contentUrl\":\"https:\\\/\\\/blog.everpuredata.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/Andrew-Pruski.png\",\"caption\":\"Andrew Pruski\"},\"description\":\"Andrew is a seasoned SQL Server DBA with over 15 years of hands-on experience. Currently, he serves as a Principal Field Solutions Architect at Everpure.\",\"url\":\"https:\\\/\\\/blog.everpuredata.com\\\/es\\\/author\\\/andrew-pruski\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Grupos de disponibilidad distribuida de SQL Server y Kubernetes | Everpure Blog","description":"Descubra el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL en un grupo de disponibilidad de Windows.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/","og_locale":"es_ES","og_type":"article","og_title":"Grupos de disponibilidad distribuida de SQL Server y Kubernetes","og_description":"Descubra el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL en un grupo de disponibilidad de Windows.","og_url":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/","og_site_name":"Everpure Blog","article_publisher":"https:\/\/www.facebook.com\/PureStorage\/","article_published_time":"2025-01-16T16:28:48+00:00","article_modified_time":"2025-02-16T09:00:27+00:00","og_image":[{"width":2163,"height":1414,"url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/SQL-Server-Distributed-Availability-Groups.png","type":"image\/png"}],"author":"Andrew Pruski","twitter_card":"summary_large_image","twitter_creator":"@EverpureData","twitter_site":"@EverpureData","twitter_misc":{"Escrito por":"Andrew Pruski"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#article","isPartOf":{"@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/"},"author":{"name":"Andrew Pruski","@id":"https:\/\/blog.everpuredata.com\/es\/#\/schema\/person\/f6076c4f279220f117b4a0c5216a989a"},"headline":"Grupos de disponibilidad distribuida de SQL Server y Kubernetes","datePublished":"2025-01-16T16:28:48+00:00","dateModified":"2025-02-16T09:00:27+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/"},"wordCount":899,"publisher":{"@id":"https:\/\/blog.everpuredata.com\/es\/#organization"},"image":{"@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/SQL-Server-Distributed-Availability-Groups.png","keywords":["Administraci\u00f3n del almacenamiento","Database","Databases","Kubernetes","SQL Server"],"articleSection":["Purely Technical"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/","url":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/","name":"Grupos de disponibilidad distribuida de SQL Server y Kubernetes | Everpure Blog","isPartOf":{"@id":"https:\/\/blog.everpuredata.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/SQL-Server-Distributed-Availability-Groups.png","datePublished":"2025-01-16T16:28:48+00:00","dateModified":"2025-02-16T09:00:27+00:00","description":"Descubra el proceso para usar un grupo de disponibilidad distribuida para sembrar una base de datos a partir de una instancia SQL en un grupo de disponibilidad de Windows.","breadcrumb":{"@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#primaryimage","url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/SQL-Server-Distributed-Availability-Groups.png","contentUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/SQL-Server-Distributed-Availability-Groups.png","width":2163,"height":1414,"caption":"SQL Server Distributed Availability Groups"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.everpuredata.com\/es\/purely-technical\/sql-server-distributed-availability-groups-and-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.everpuredata.com\/es\/"},{"@type":"ListItem","position":2,"name":"Grupos de disponibilidad distribuida de SQL Server y Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/blog.everpuredata.com\/es\/#website","url":"https:\/\/blog.everpuredata.com\/es\/","name":"Everpure Blog","description":"Unleash the power of your data with an intelligent, unified storage and data management platform built for resilience and AI.","publisher":{"@id":"https:\/\/blog.everpuredata.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.everpuredata.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blog.everpuredata.com\/es\/#organization","name":"Everpure","alternateName":"Pure Storage","url":"https:\/\/blog.everpuredata.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blog.everpuredata.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2026\/08\/Everpure-Logo-Ash-Gray.png","contentUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2026\/08\/Everpure-Logo-Ash-Gray.png","width":2000,"height":342,"caption":"Everpure"},"image":{"@id":"https:\/\/blog.everpuredata.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/PureStorage\/","https:\/\/x.com\/EverpureData","https:\/\/www.instagram.com\/purestorage\/","https:\/\/www.linkedin.com\/company\/everpure-data\/","https:\/\/www.youtube.com\/@everpure-data","https:\/\/en.wikipedia.org\/wiki\/Pure_Storage"]},{"@type":"Person","@id":"https:\/\/blog.everpuredata.com\/es\/#\/schema\/person\/f6076c4f279220f117b4a0c5216a989a","name":"Andrew Pruski","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/Andrew-Pruski.png6dfc675849dda73d4ddea62eabc1629a","url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/Andrew-Pruski.png","contentUrl":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/Andrew-Pruski.png","caption":"Andrew Pruski"},"description":"Andrew is a seasoned SQL Server DBA with over 15 years of hands-on experience. Currently, he serves as a Principal Field Solutions Architect at Everpure.","url":"https:\/\/blog.everpuredata.com\/es\/author\/andrew-pruski\/"}]}},"authors":[{"term_id":14501,"user_id":720,"is_guest":0,"slug":"andrew-pruski","display_name":"Andrew Pruski","avatar_url":{"url":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/Andrew-Pruski.png","url2x":"https:\/\/blog.everpuredata.com\/wp-content\/uploads\/2025\/01\/Andrew-Pruski.png"},"avatar_alt":"","avatar_decorative":"","author_category":"","first_name":"Andrew","last_name":"Pruski","user_url":"","job_title":"","description":"Andrew is a seasoned SQL Server DBA with over 15 years of hands-on experience. Currently, he serves as a Principal Field Solutions Architect at Pure Storage."}],"_links":{"self":[{"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/posts\/156891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/users\/720"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/comments?post=156891"}],"version-history":[{"count":0,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/posts\/156891\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/media\/154199"}],"wp:attachment":[{"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/media?parent=156891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/categories?post=156891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/tags?post=156891"},{"taxonomy":"content-position","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/content-position?post=156891"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.everpuredata.com\/es\/wp-json\/wp\/v2\/ppma_author?post=156891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}