Detención de la réplica para una lista de tablas

Puede detener la réplica para una lista de tablas. Las tablas se identifican mediante el nombre del conjunto de réplicas, el nombre del grupo de consistencia y el nombre de suscripción.

Antes de empezar

Esta tarea debe ejecutarse en el host de clúster para el origen de réplica. Asegúrese de recopilar la siguiente información antes de ejecutar la llamada de API:
  • La señal de autorización básica del origen en el host del clúster.1
  • El nombre de host de la base de datos de origen de réplica.
  • Número de puerto externo de la base de datos de origen de réplica.2
  • El nombre del conjunto de réplicas (rsName).3
  • El nombre del grupo de consistencia (cgName).
  • El nombre de suscripción (subName).4
Necesita esta información para ejecutar las llamadas de API REST de réplica necesarias.
1 Es necesario crear una señal de autorización básica para ejecutar una solicitud cURL . Para crear la señal, ejecute este mandato:
echo “<source_db_username>:<source_db_password>” | base64
2 Puede recuperar el número de puerto externo de la base de datos de origen de réplica ejecutando este mandato:
oc get svc | grep <db2_instance_id> | grep db2u-engn-svc | grep 50001 | sed 's/.*50001://' | sed 's/\/TCP.*//')
3 Puede encontrar el nombre del conjunto de réplicas (rsName) y el nombre del grupo de consistencia (cgName) ejecutando este mandato:
curl --insecure -X GET --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' 
'https://<source_hostname>:<source_rest_port>/dr/v1/replicationset'
4 Puede encontrar el nombre de suscripción (subName) ejecutando este mandato:
curl --insecure -X GET --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' 'https://<source_hostname>:<source_rest_port>/dr/v1/<replication_set_name>/<consistency_group_name>'

Acerca de esta tarea

Esta llamada de API desencadena una tarea para detener la réplica para una lista de tablas. Una vez completada esta llamada de API, los cambios del origen no se replican en el destino.

Procedimiento

  1. Ejecute la API REST de duplicación Q utilizando el mandato siguiente:
    curl --insecure -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' -d '{ "tableSubList": [ "<subscription_name>" ]  }' 'https://<source_hostname>:<source_rest_port>/dr/v1/replicationset/<replication_set_name>/<consistency_group_name>/stop-tablesubs'

    Esta llamada de API devuelve un número de trabajo (id).

    {
      "id": <job_number>,
      "url": "https://<source_hostname>:<source_rest_external_port>/dr/v1/target/progress/<job_number>"
    }
    
  2. Incluya el número de trabajo en el mandato siguiente para comprobar el progreso de la llamada de API de detención de réplica:
    curl --insecure -X GET --header 'Accept: application/json' --header 'Authorization: Basic <your_authorization_token>' 
    'https://<source_hostname>:<source_rest_port>/dr/v1/replicationset/progress/<job_number>'

Resultados

La detención de la réplica para una lista de tablas se completa cuando se devuelve un mensaje de respuesta que contiene "executionState": "COMPLETED", "overallJobResult": "PASS" . Hasta que se devuelvan estos valores, examine el código de error, el mensaje y la resolución en la respuesta.

La siguiente tabla enumera los posibles códigos de estado HTTP y los mensajes de respuesta para la llamada a la API de detener la replicación para una lista de tablas. También incluye código de ejemplo para mostrar la sintaxis de respuesta.

Código de estado de HTTP Razón Modelo de respuesta
200 Se han insertado mandatos CAPSTOP para detener la suscripción de tabla. La solicitud del usuario devuelve un trabajo (id) y URL como inicio de la llamada a la API (valor de muestra):
{
  "id": 16,
  "url": "https://dr-source1.ibm.com:31023/dr/v1/replicationset/progress/16"
}
4xx Error de solicitud de cliente La solicitud de usuario no se ha cumplido debido a una sintaxis de solicitud mal formada u otros problemas de cliente:
{
  "errorCode": "string",
  "errorMessage": "string",
  "errorResolution": "string"
}
5xx Error de servidor La solicitud de usuario parecía válida, pero no se ha cumplido debido a un problema con el servidor:
{
  "errorCode": "string",
  "errorMessage": "string",
  "errorResolution": "string"
}

Ejemplo

El ejemplo siguiente muestra la sintaxis del mandato para detener una réplica para una lista de tablas para el conjunto de réplicas RS_MPP_2. Consulte el Paso 1.
curl --insecure -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic ZHNhZG06aFRjT3dTTjR1RFo0N1Ew'  -d '{ "tableSubList": [ "RSMPP20001_DSADM_T6C", "RSMPP20001_DSADM_T7C" ]  }' 'https://dr-source1.ibm.com:31023/dr/v1/replicationset/RS_MPP_2/RSMPP20001/stop-tablesubs'
El ejemplo siguiente muestra la sintaxis del mandato para comprobar el estado de la detención de réplica para una lista de tablas utilizando el número de trabajo generado, 16, para supervisar el estado. Consulte el Paso 2.
curl --insecure -X GET --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic ZHNhZG06aFRjT3dTTjR1RFo0N1Ew' 'https://dr-source1.ibm.com:31023/dr/v1/replicationset/progress/16'

Qué hacer a continuación

Comprobación del estado general de salud