Configuraicón de Entorno de Base de Datos
Tras una implementación inicial de clúster OceanBase Community Edition, se optimizó la configuración. Entorno actual: yhw_cluster
Acceso mediante OBProxy
obclient -h10.10.10.202 -P2883 -uroot@sys -p'ClaveEjemplo#!456' -Doceanbase -A
Concepto de Zonas de Disponibilidad
Zona lógica que agrupa servidores para mantener réplicas completas. Ejemplo: zone1 y zone2, cada una con dos nodos OBServer.
Consulta de Recursos de Almacenamiento
SELECT DIRECCION_IP, ZONA, ID_TENANT, ID_UNIDAD, CPU_MIN, CPU_MAX,
ROUND(TAM_MEMORIA/1073741824,1) AS MEMORIA_GB,
IOPS_MIN, IOPS_MAX, PESO_IOPS,
ROUND(TAM_DISCO_LOG/1073741824,1) AS LOG_GB,
ROUND(LOG_USADO/1073741824,1) AS LOG_USO_GB,
ROUND(DATOS_USADOS/1073741824,1) AS DATOS_USO_GB
FROM GV$UNIDADES_OB;
Arquitectura Multitenant
OceanBase utiliza un diseño de clúster único con múltiples tenants para aislamiento de recursos. Cada tenant opera como una instancia indepandiente con seguridad de datos integrada.
Tipos de Tenants
- Sistema: Gestiona el clúster y ciclos de vida de tenants
- Usuario: Proporciona funcionalidad completa de base de datos (modos MySQL/Oracle)
- Meta: Almacena datos privados del tenant de usuario (creación automática)
Gestión de Recursos
Se administran mediante tres componentes:
- Configuración de Unidad (Unit Config)
- Grupo de Recursos (Resource Pool)
- Unidad de Recurso (Unit)
Creación de Tenant
1. Definir Unidad de Recurso
CREATE RESOURCE UNIT unidad_ejemplo
MEMORY_SIZE '4G',
MAX_CPU 2,
LOG_DISK_SIZE '8G';
2. Crear Grupo de Recursos
CREATE RESOURCE POOL grupo_recursos
UNIT = unidad_ejemplo,
UNIT_NUM = 2,
ZONE_LIST = ('zone1', 'zone2');
3. Implementar Tenant
CREATE TENANT tenant_demo
PRIMARY_ZONE = 'zone1',
RESOURCE_POOL_LIST = ('grupo_recursos');
Implementación Práctica
Tenant test_a (CPU:1, RAM:2GB)
CREATE RESOURCE UNIT config_a MAX_CPU 1, MEMORY_SIZE '2G';
CREATE RESOURCE POOL pool_a UNIT 'config_a', UNIT_NUM 1, ZONE_LIST ('zone1','zone2');
CREATE TENANT test_a PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('pool_a');
Tenant test_b (CPU:2, RAM:4GB)
CREATE RESOURCE UNIT config_b MAX_CPU 2, MEMORY_SIZE '4G';
CREATE RESOURCE POOL pool_b UNIT 'config_b', UNIT_NUM 2, ZONE_LIST ('zone1','zone2');
CREATE TENANT test_b PRIMARY_ZONE='zone2', RESOURCE_POOL_LIST=('pool_b');
Monitoreo de Tenants
SELECT ZONA, DIRECCION_IP, ID_UNIDAD, NOMBRE_GRUPO, NOMBRE_TENANT,
MIN_CPU, MAX_CPU, ROUND(MEMORIA/1073741824,1) AS MEM_GB
FROM VISTA_UNIDADES;
Conexión a Tenants
Via OBProxy:
obclient -h10.10.10.202 -P2883 -uroot@test_a -p'ClaveDemo#!789'
obclient -h10.10.10.202 -P2883 -uroot@test_b -p'ClaveDemo#!789'