Administrar bases de datos

GDC Sandbox proporciona el servicio de base de datos para probar y administrar clústeres de bases de datos.

Crear base de datos

Para crear y administrar un clúster de base de datos, consulta Crea y administra un clúster de base de datos.

Motores de base de datos disponibles

GDC Sandbox solo admite PostgreSQL y AlloyDB.

Usa la consola de GDC o la CLI de Distributed Cloud para crear clústeres de bases de datos:

Console

  1. En el menú principal, elige Database Service.
  2. Haz clic en Create Database Cluster.
  3. En el diálogo Choose a database engine, elige un motor de base de datos.

  4. En el diálogo Configure your cluster , especifica el ID del clúster, la contraseña y la versión de la base de datos. Puedes habilitar las copias de seguridad y configurar el período de retención de las copias de seguridad.

  5. En el diálogo Configure your primary instance , especifica la CPU, la memoria y la capacidad de almacenamiento de la instancia principal del clúster de base de datos. Te recomendamos que elijas suficiente memoria para contener tu tabla más grande.

  6. Haz clic en Crear. La creación del clúster de base de datos puede tardar unos minutos. Verifica el estado del clúster en la página Cluster overview. El estado cambia de Creating a Ready cuando el clúster está listo.

gdcloud

  1. Antes de usar la CLI de Distributed Cloud, instálala e inicialízala. Luego, autentícate con tu organización.

  2. Ejecuta el siguiente comando para crear un clúster de base de datos:

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    Reemplaza las siguientes variables:

    • CLUSTER_NAME por el nombre del clúster nuevo.
    • DB_VERSION por la cadena de versión del clúster nuevo. Por ejemplo, POSTGRESQL_13 o ALLOYDBOMNI_15
    • ADMIN_PASSWORD por la contraseña de administrador del clúster nuevo.
  3. Para obtener más información sobre la configuración de los recursos de CPU, memoria y almacenamiento para el clúster de base de datos, la configuración de la copia de seguridad, la habilitación de la alta disponibilidad y otras opciones disponibles, ejecuta lo siguiente:

    gdcloud database clusters create --help
    

API

  1. Crea un archivo db-cluster-create.yaml con el siguiente contenido:

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    ---
    apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
    kind: DBCluster
    metadata:
      name: DBCLUSTER_NAME
      namespace: USER_PROJECT
    spec:
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DBCLUSTER_NAME
        version: "DB_VERSION"
        resources:
          memory: DB_MEMORY
          cpu: DB_CPU
          disks:
          - name: DataDisk
            size: DB_DATA_DISK
    

    Reemplaza las siguientes variables:

    • DBCLUSTER_NAME: el nombre del clúster de base de datos.
    • USER_PROJECT: el nombre del proyecto de usuario en el que se creará el clúster de base de datos.
    • BASE64_PASSWORD: la codificación base64 de la contraseña de administrador de la base de datos.
    • DBENGINE_NAME: el nombre del motor de base de datos. Es uno de alloydbomni o postgresql.
    • DB_VERSION: la versión del motor de base de datos.
    • DB_MEMORY: la cantidad de memoria asignada al clúster de base de datos, por ejemplo, 5Gi.
    • DB_CPU: la cantidad de CPU asignadas al clúster de base de datos, por ejemplo, 2.
    • DB_DATA_DISK: la cantidad de espacio asignado al clúster de base de datos, por ejemplo, 10 Gi.
  2. kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
    

Conéctate a la base de datos

De forma predeterminada, un clúster de base de datos solo permite la conexión desde el clúster de usuarios y el mismo proyecto.

Para habilitar las conexiones a todos los clústeres de base de datos de tu proyecto desde otro proyecto, consulta Habilita las conexiones entre proyectos.

Para conectarte a la base de datos desde direcciones IP fuera de tu organización de GDC Sandbox, sigue las instrucciones en Conéctate a un clúster de base de datos para habilitar las conexiones externas.

Puedes usar sshuttle para conectarte a tu base de datos con un cliente de base de datos local como psql:

  1. Navega a la sección Connectivity de la página Database Service del clúster de base de datos. Esta página incluye lo siguiente:

    • La contraseña de la cuenta de administrador (el nombre de usuario es dbsadmin)
    • El nombre de host y el número de puerto del extremo principal del clúster de base de datos
    • Un comando psql para conectarse al clúster (para clústeres de base de datos de PostgreSQL y AlloyDB Omni)
    • Un vínculo para descargar el certificado de la autoridad certificadora (AC) del clúster de base de datos
  2. Descarga el certificado de la AC desde la consola de GDC en la Connectivity sección de la Database Service página de tu clúster de base de datos.

  3. Configura tu cliente para usar el certificado de la AC y verificar la base de datos. Para los clientes psql, establece la variable de entorno PGSSLROOTCERT en la ruta de acceso del archivo de certificado y la variable de entorno PGSSLMODE en tu preferencia:

        export PGSSLROOTCERT=path/to/accounts_cert.pem
        export PGSSLMODE="verify-full"
    
  4. Inicia un túnel seguro. Si tienes una instancia en ejecución de sshuttle como se describe en Conéctate a tu instancia, finaliza ese proceso.

        sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \
        --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \
        10.200.0.0/16 --dns
    

    Reemplaza lo siguiente por los valores que te proporcionó el equipo de GDC Sandbox:

    • GDC_SANDBOX_INSTANCE_NAME: el nombre de tu instancia de GDC Sandbox.
    • PROJECT_NAME: el proyecto que contiene tu entorno de GDC Sandbox.
    • ZONE: la zona que contiene tu entorno de GDC Sandbox.
  5. Mientras el túnel está activo, ejecuta el comando con psql en una terminal diferente.

        PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

    Reemplaza las siguientes variables:

    • DB_PASSWORD: la contraseña de la IU de la consola.
    • DB_HOSTNAME: el nombre de host de la base de datos de la consola.
    • DB_PORT: el número de puerto de la base de datos de la consola.
    • DB_USERNAME: el nombre de usuario de la base de datos de la consola.