Ejemplo de migración de datos particionados

En este ejemplo se muestra cómo migrar datos particionados de forma manual.

Atención: A partir de Optim™ High Performance Unload V5.1 puede realizar una migración automática de datos, que completa automáticamente todo el proceso descrito en este ejemplo.

La tabla TB_EMPLOYEE se almacena en el espacio de tabla TS_DATA1, y TS_DATA1 se encuentra en cuatro particiones de base de datos de la base de datos DB_PROD: 10, 20, 30 y 40. Para migrar la tabla TB_EMPLOYEE a la tabla TB_EMPLOYEE_NEW en el espacio de tablas TS_DATA2, que se encuentra en dos particiones de la base de datos DB_TARGET: 20 y 200, puede utilizar Optim High Performance Unload para calcular la distribución de filas según la nueva tabla.

Para volver a particionar los datos de la base de datos DB_PROD, puede utilizar el mandato siguiente. Los comentarios van precedidos por guiones (- -):
--control file to unload TB_EMPLOYEE table
GLOBAL CONNECT TO DB_PROD ;
UNLOAD TABLESPACE DB2 NO
SELECT * FROM TB_EMPLOYEE ;
TARGET TABLE (TB_EMPLOYEE_NEW IN DB_TARGET) HEADER FIRST
--unload to file employee
OUTFILE("/home/db2inst1/data/employee")
--specify DEL format
FORMAT DEL;
El proceso de este mandato da como resultado los dos archivos siguientes:
/home/db2inst1/data/employee.020 (containing the data for the new partition 20)
/home/db2inst1/data/employee.200 (containing the data for the new partition 200)
Ambos archivos contienen la correlación de las particiones de base de datos utilizadas cuando se emitió el mandato LOAD Db2® ; por ejemplo:
LOAD FROM /home/db2inst1/data/employee OF DEL
INSERT INTO TB_EMPLOYEE_NEW
PARTITIONED DB CONFIG MODE LOAD_ONLY ;
Cuando Optim High Performance Unload repartir datos (de cuatro particiones de base de datos a dos en este ejemplo) en una tabla con una clave de repartición diferente, la distribución de filas se vuelve a calcular en función de la nueva clave. Por ejemplo, para la tabla:
TB_EMPLOYEE_NEW
(COL1 CHAR(6), COL2 VARCHAR(12), COL3 SMALLINT, COL4 DATE)
con la clave de COL3 y asumiendo que las tablas existentes y de destino se encuentran en la misma base de datos, el archivo de control que permite volver a realizar el cálculo de la distribución de filas tendría el aspecto siguiente:
GLOBAL CONNECT TO DB_PROD ;
UNLOAD TABLESPACE DB2 NO
SELECT * FROM TB_EMPLOYEE ;
TARGET KEYS ((COL3) PARTS(20,200)) HEADER FIRST
OUTFILE("/home/db2inst1/data/employee")
FORMAT DEL;
El resultado consiste en dos archivos que puede cargar en la tabla TB_EMPLOYEE_NEW. Es esta forma, en lugar de TARGET TABLE, que se utilizaría si desea volver a particionar una tabla existente en lugar de moverla a un sistema distinto. Utilice el parámetro PARTS para especificar las particiones de la base de datos que utilizará la tabla; es decir, dos números de particiones de bases de datos que se encuentran en el grupo de nodos con el que tiene la intención de crear el espacio de tablas antes de descartar y volver a crear esta tabla.