Introdução
Esta seção descreve como usar as API GaussDB(DWS) para gerenciar clusters. O procedimento dos clusters de gerenciamento é o seguinte:
- Chame a API em Autenticação para obter o token do usuário, que será colocado no cabeçalho da solicitação para autenticação em uma solicitação subsequente.
- Chame a API em Autenticação para obter os tipos de nó suportados.
- Chame a API em Criação de um cluster para criar um cluster.
- Chame a API em Consulta da lista de clusters para obter as informações do cluster.
- Chame a API em Consulta de detalhes do cluster para ver os detalhes do cluster.
- Chame a API em Criação de um snapshot para criar um snapshot.
- Chame a API em Consulta da lista de snapshot para verificar se o snapshot foi criado com êxito.
- Chame a API em Restauração de um cluster para restaurar um cluster usando seu snapshot.
- Chame a API em Exclusão de um snapshot manual para excluir um snapshot indesejado.
- Chame a API em Exclusão de um cluster para excluir um cluster concluído ou indesejado.
Pré-requisitos
- Você criou uma VPC, uma sub-rede e um grupo de segurança e obteve seus ID. Para mais detalhes, consulte Criação de uma VPC.
- Você obteve o endpoint do IAM e endpoint do GaussDB(DWS)
- Você obteve o project ID. Para mais detalhes, consulte Obtenção de um ID do projeto.
Gerenciamento de um cluster
Os valores a seguir são exemplos (substitua-os com base na situação real).
- Endpoint do IAM: iam_endpoint
- Ponto final do GaussDB(DWS): dws_endpoint
- ID da VPC: 219ab8a0-1272-4049-a383-8ad0b770fa11
- ID da sub-rede: d23ef2e9-8b90-49b3-bc4a-fd7d6bea6bec
- ID do grupo de segurança: 12e3c23a-8710-4b75-95e4-5c8d7f68ef3c
- ID do projeto: 9bc552e6-19af-4326-800d-281a92984636
Execute as seguintes operações para gerenciar o cluster.
- Antes de chamar outras API, chame a API em Autenticação para obter o token e defina-o como uma variável de ambiente.
curl -H "Content-type:application/json" https://{iam_endpoint}/v3/auth/tokens -X POST -d '{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "testname", "domain": { "name": "testname" }, "password": "Passw0rd" } } }, "scope": { "project": { "name": "ap-southeast-1" } } } }' -v -k
- Obtenha o valor de X-Subject-Token do cabeçalho da resposta da seguinte forma. X-Subject-Token indica o token.
X-Subject-Token:MIidkgYJKoZIhvcNAQcCoIidgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...
- Execute o seguinte comando para definir o token como uma variável de ambiente:
export Token={X-Subject-Token}
X-Subject-Token é o token obtido na etapa anterior.export Token=MIidkgYJKoZIhvcNAQcCoIidgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...
- Obtenha o valor de X-Subject-Token do cabeçalho da resposta da seguinte forma. X-Subject-Token indica o token.
- Chame a API em Consulta dos tipos de nó suportados para obter os tipos de nó suportados.
curl -X GET -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/node_types -v -k
A resposta da solicitação é a seguinte:
status CODE 200 { "node_types": [ { "spec_name": "dws.d2.xlarge", "id": "ebe532d6-665f-40e6-a4d4-3c51545b6a67", "detail": [ { "type": "vCPU", "value": "4" }, { "value": "1675", "type": "LOCAL_DISK", "unit": "GB" }, { "type": "mem", "value": "32", "unit": "GB" } ] }, { "spec_name": "dws.m1.xlarge.ultrahigh", "id": "ebe532d6-665f-40e6-a4d4-3c51545b4f71", "detail": [ { "type": "vCPU", "value": "4" }, { "value": "512", "type": "SSD", "unit": "GB" }, { "type": "mem", "value": "32", "unit": "GB" } ] } ] }
- Chame a API em Criação de um cluster para criar um cluster.
Os exemplos para configurar o cluster são os seguintes:
- Nome do cluster: dws-demo
- Nome de usuário do administrador: dbadmin
- Senha do administrador: Dws2017demo!
- Porto: 8000
- Tipo de nó: dws.d1.xlarge
- Número de nós: 3
- IP elástico (EIP): auto_assign
curl -X POST -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" -d '{ "node_type": "dws.d1.xlarge", "number_of_node": 3, "subnet_id": "d23ef2e9-8b90-49b3-bc4a-fd7d6bea6bec", "security_group_id": "12e3c23a-8710-4b75-95e4-5c8d7f68ef3c", "vpc_id": "219ab8a0-1272-4049-a383-8ad0b770fa11", "port": 8000, "name": "dws-demo", "user_name": "dbadmin", "user_pwd": "Dws2017demo!", "public_ip": { "public_bind_type": "auto_assign" } }' https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/clusters -v -k
Se o código de status 200 for retornado, a solicitação para criar um cluster será enviada com êxito.
- Chame a API em Consulta da lista de clusters para obter as informações do cluster.
curl -X GET -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/clusters -k –v
A resposta da solicitação é a seguinte:
{ "clusters": [ { "id": "7ba031f6-81f4-4670-ad20-c490b91877e5", "status": "AVAILABLE", "sub_status": "NORMAL", "task_status": null, "action_progress": null, "node_type": "dws.d1.xlarge", "subnet_id": "d23ef2e9-8b90-49b3-bc4a-fd7d6bea6bec", "security_group_id": "12e3c23a-8710-4b75-95e4-5c8d7f68ef3c", "number_of_node": 3, "availability_zone": "ap-southeast-1", "port": 8000, "name": "dws-demo", "version": "1.1.0", "vpc_id": "219ab8a0-1272-4049-a383-8ad0b770fa11", "user_name": "dbadmin", "public_ip": { "public_bind_type": "auto_assign", "eip_id": "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574" }, "public_endpoints": [ { "public_connect_info": "dws-demo.ap-southeast-1.myhuaweicloud.com", "jdbc_url": "jdbc:postgresql://dws-demo.ap-southeast-1.myhuaweicloud.com/<YOUR_DATABASE_name>" } ], "endpoints": [ { "connect_info": "dws-demo.ap-southeast-1.myhuaweicloud.com", "jdbc_url": "jdbc:postgresql://dws-demo.ap-southeast-1.myhuaweicloud.com/<YOUR_DATABASE_name>" }, ] , "updated": "2018-01-15T12:50:06", "created": "2018-01-15T12:50:06", "recent_event": 1 } ] }
- Se status for CREATING, o cluster está sendo criado. Se status for AVAILABLE, o cluster é criado com êxito.
- O UUID do cluster dws-demo é 7ba031f6-81f4-4670-ad20-c490b91877e5. Registre o UUID para uso posterior.
- Chame a API em Consulta de detalhes do cluster para ver os detalhes do cluster.
curl -X GET -H "Content-type:application/json" -H "X-Auth-Token:$Token" https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/clusters/7ba031f6-81f4-4670-ad20-c490b91877e5 -k -v
A resposta da solicitação é a seguinte:
{ "cluster": { "id": "7ba031f6-81f4-4670-ad20-c490b91877e5", "status": "AVAILABLE", "name": "dws-demo", "updated": "2018-01-15T12:50:06", "created": "2018-01-15T12:50:06", "user_name": "dbadmin", "sub_status": "NORMAL", "task_status": null, "action_progress": null, "node_type": "dws.d1.xlarge", "node_type_id": "5ddb1071-c5d7-40e0-a874-8a032e81a697", "subnet_id": "d23ef2e9-8b90-49b3-bc4a-fd7d6bea6bec", "security_group_id": "12e3c23a-8710-4b75-95e4-5c8d7f68ef3c", "number_of_node": 3, "availability_zone": "ap-southeast-1", "port": 8000, "vpc_id": "219ab8a0-1272-4049-a383-8ad0b770fa11", "public_ip": { "public_bind_type": "auto_assign", "eip_id": "85b20d7e-9eb7-4b2a-98f3-3c8843ea3574" }, "public_endpoints": [ { "public_connect_info": "dws-demo.ap-southeast-1.myhuaweicloud.com", "jdbc_url": "jdbc:postgresql://dws-demo.ap-southeast-1.myhuaweicloud.com/<YOUR_DATABASE_name>" } ], "endpoints": [ { "connect_info": "dws-demo.ap-southeast-1.myhuaweicloud.com", "jdbc_url": "jdbc:postgresql://dws-demo.ap-southeast-1.myhuaweicloud.com/<YOUR_DATABASE_name>" }, { "connect_info": "192.168.0.12:8000", "jdbc_url": "jdbc:postgresql://192.168.0.12:8000/<YOUR_DATABASE_name>" } ], "version": "1.1.0", "maintain_window": { "day": "Wed", "start_time": "22:00", "end_time": "02:00" }, "recent_event": 1, "tags": null, "parameter_group": { "id": "157e9cc4-64a8-11e8-adc0-fa7ae01bbebc", "name": "Default-Parameter-Group-dws ", "status": "In-Sync" } } }
public_endpoints e endpoints podem ser consultados a partir da resposta. Depois que o cluster for criado com êxito, você poderá usar public_endpoints ou endpoints para acessar o cluster de uma origem externa.
- Chame a API em Criação de um snapshot para criar um snapshot.
Criar snapshot snapshot snapshotForDemoCluster para cluster dws-demo.
curl -X POST -H "Content-type:application/json" -H "X-Auth-Token:$Token" -d '{ "snapshot": { "name": "snapshotForDemoCluster", "cluster_id": "7ba031f6-81f4-4670-ad20-c490b91877e5", "description": "Snapshot description" } }' https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/snapshots -k -v
A resposta da solicitação é a seguinte:
{ "snapshot": { "id": "2a4d0f86-67cd-408a-8b66-017454fb7793" } }
Se o código de status 200 for retornado, a solicitação para criar um instantâneo será enviada com êxito. id de registro para que o ID possa ser usado quando você consulta os detalhes do snapshot mais tarde.
- Chame a API em Consulta da lista de snapshot para verificar se o snapshot foi criado com êxito.
curl -X GET -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/snapshots/2a4d0f86-67cd-408a-8b66-017454fb7793 -k -v
Se o status do snapshot na resposta for AVAILABLE, o snapshot será criado com êxito. Se o status do snapshot for CREATING, o snapshot está sendo criado.
{ "snapshot": { "id": "2a4d0f86-67cd-408a-8b66-017454fb7793", "name": "snapshotForDemoCluster", "description": "Snapshot description", "started": "2018-01-18T13:59:23Z", "finished": "2018-01-18T13:01:40Z", "size": 500, "status": "AVAILABLE", "type": "MANUAL", "cluster_id": "4f87d3c4-9e33-482f-b962-e23b30d1a18c" } }
- Chame a API em Restauração de um cluster para restaurar um cluster usando seu snapshot.
Restaure snapshot snapshotForDemoCluster para o novo cluster dws-restore.
curl -X POST -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" -d '{ "restore": { "name": "dws-restore" } }' https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/snapshots/2a4d0f86-67cd-408a-8b66-017454fb7793/actions -v -k
Se o código de status 200 for retornado, o cluster será restaurado com êxito. Você pode verificar o status de restauração do cluster executando operações em Consulta de detalhes do snapshot.
- Chame a API em Exclusão de um snapshot manual para excluir um snapshot indesejado.
curl -X DELETE -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/snapshots/2a4d0f86-67cd-408a-8b66-017454fb7793 -v -k
Se o código de status 202 for retornado, o instantâneo será excluído com êxito.
- Chame a API em Exclusão de um cluster para excluir um cluster indesejado.
curl -X DELETE -H 'Content-type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" -d '{ "keep_last_manual_snapshot":0 }' https://{dws_endpoint}/v1.0/9bc552e6-19af-4326-800d-281a92984636/clusters/7ba031f6-81f4-4670-ad20-c490b91877e5 -v -k
Se o código de status 202 for retornado, o cluster será excluído com êxito.