PolarDB for MySQL ofrece la función Fast Import. Esta función le permite consultar todos los datos de las bases de datos y tablas de una tarea de restauración tras esperar entre 5 y 10 minutos aproximadamente, sin importar el tamaño de los datos por restaurar. Solo necesita enviar la tarea de restauración de bases de datos y tablas; no es necesario esperar a que finalice para consultar la información.
Descripción general del escenario
La función Fast Import es compatible con new database and table restoration process. Las operaciones de consulta se pueden ejecutar al mismo tiempo que la tarea de restauración.
La función Fast Import acelera los dos escenarios siguientes:
Cuando se eliminan datos o tablas por accidente y no se logra determinar el momento exacto, las tareas de restauración tradicionales tardan mucho en terminar. Con la función Fast Import, usted consulta y verifica los datos rápidamente, sin esperar a que concluya la tarea de restauración.
Si se elimina una cantidad pequeña de datos por accidente pero la tabla es grande, la función Fast Import le permite usar
INSERT ... SELECT .... De esta forma, extrae con rapidez los datos necesarios de las tablas de la tarea de restauración y los inserta en la tabla donde ocurrió la eliminación accidental, lo que mejora la eficiencia operativa.
Requisitos de versión
La versión del motor de base de datos aplicable es MySQL 8.0.1, y la versión secundaria debe ser 8.0.1.1.49 o posterior. Para confirmar la versión de su clúster, consulte querying the version number.
Precauciones
Esta función se encuentra actualmente en fase de lanzamiento canary. Para utilizarla, siga las indicaciones de Contact us para unirse a la lista de permisos y habilitarla.
Solo se admite la configuración file-per-table (configuración predeterminada) para tablas sin compresión ni cifrado. Los datos se pueden consultar mientras se ejecutan las tareas de restauración.
-
Cuando la tarea de restauración incluye menos de 1000 tablas, el sistema habilita automáticamente la función
Fast Import. Esto le permite consultar todos los datos durante el proceso de restauración.NotaSi la cantidad de tareas de restauración supera las 1000, el sistema no habilita la función
Fast Import. El flujo de gestión de tareas determina de forma automática si habilita la funciónFast Importsegún la tarea que usted envíe. Las operaciones de consulta solo se admiten en nodos de lectura y escritura (RW) y en nodos de solo lectura (RO). Si existen nodos de solo lectura (RO) de almacenamiento por columnas, utilice HINT syntax para enrutar las consultas de manera obligatoria hacia nodos de lectura y escritura (RW) o nodos de solo lectura (RO) de almacenamiento por filas. De lo contrario, es posible que no se devuelvan datos.
Cuando los recursos del
buffer poolson suficientes, acceder a tablas en estado de restauración ofrece una eficiencia similar a la de las tablas normales. Sin embargo, en escenarios donde el clúster tiene cargas de trabajo altas, la eficiencia de acceso a las tablas en restauración se limita para reducir el impacto en las operaciones comerciales normales.Antes de que termine la tarea de restauración, las tablas de destino solo se pueden consultar en modo de solo lectura.
Instrucciones de uso
Envío de una tarea de restauración de bases de datos y tablas
Después de enviar una tarea de restauración de bases de datos y tablas, acceda a la página de detalles de la tarea mediante el enlace ubicado en la esquina superior derecha de la página.
Una tarea de restauración de bases de datos y tablas consta de 6 pasos:
Inicializar la tarea
Restauración completa en el nodo temporal
Restauración incremental en el nodo temporal (según sea necesario)
Preprocesamiento de la restauración de bases de datos y tablas
Restauración de bases de datos y tablas
Finalizar la tarea y liberar recursos
En la página de detalles de la tarea, consulte el progreso en tiempo real. Una vez completado el paso 4, compruebe que la tarea de restauración creó las bases de datos o tablas de destino. Para ello, ejecute comandos como show databases o show tables. En este punto, ya puede consultar todos los datos de las bases de datos o tablas de destino.
Acceso rápido de solo lectura
Consulte la tabla information_schema.fast_import_tablespaces para obtener información sobre todas las tablas que admiten acceso rápido de solo lectura en la tarea de restauración actual.
Las tablas que se están importando permiten el acceso rápido de solo lectura, aunque sus nombres específicos no aparecen en los resultados de la siguiente consulta. Ejecute el comando SHOW PROCESSLIST para ver los comandos SQL que contienen dbms_rman.import y así obtener los nombres de las tablas que se están restaurando.
SELECT * FROM information_schema.fast_import_tablespaces;
-
Las tablas en estado de restauración se pueden consultar en modo de solo lectura con todos sus datos.
| 106 | root | 127.0.0.1:49055 | NULL | Sleep | 13 | | NULL | | 146 | xxx | xxx | NULL | Sleep | 43 | | NULL | | 366 | xxx | xxx | NULL | Polar Log Dump | 0 | Reading log from innodb | NULL | | 368 | xxx | xxx | NULL | Polar Log Ack | 0 | Receiving from client | NULL | | 788 | xxx | xxx | NULL | Sleep | 295 | | NULL | | xxx | xxx | xxx | NULL | Query | 332 | altering table | /* rds internal mark */ call dbms_rman.import('test', 'sbtest1_bk03211652' | | 216448 | xxx | xxx | information_schema | Sleep | 7 | | NULL | | 216915 | xxx | xxx | NULL | Sleep | 0 | | NULL | | 216916 | xxx | xxx | NULL | Sleep | 0 | | NULL | | 536879884 | xxx | | test | Query | 0 | starting | show processlist | 31 rows in set (0.00 sec) mysql> show tables; +----------------------+ | Tables_in_test | +----------------------+ | sbtest1 | | sbtest1_bk03211652 | | sbtest2 | | sbtest2_bk03211652 | +----------------------+ 4 rows in set (0.00 sec) mysql> select count(*) from sbtest1; +-----------+ | count(*) | +-----------+ | 100000000 | +-----------+ 1 row in set (4.64 sec) mysql> select count(*) from sbtest1_bk03211652; +-----------+ | count(*) | +-----------+ | 100000000 | +-----------+ 1 row in set (48.21 sec) -
Otras tablas con acceso rápido habilitado también se pueden consultar en modo de solo lectura con todos sus datos.
mysql> select * from information_schema.fast_import_tablespaces; +----------------+-------------------------+------------------------------------------------------------------+ | LOCAL_SPACE_ID | SPACE_NAME | REMOTE_DATA_PATH | +----------------+-------------------------+------------------------------------------------------------------+ | 18 | test/sbtest2_bk03211652 | xxx/test/sbtest2_bk03211652.ibd | +----------------+-------------------------+------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> show tables; +------------------------+ | Tables_in_test | +------------------------+ | sbtest1 | | sbtest1_bk03211652 | | sbtest2 | | sbtest2_bk03211652 | +------------------------+ 4 rows in set (0.00 sec) mysql> select count(*) from sbtest2_bk03211652; +----------+ | count(*) | +----------+ | 1000 | +----------+ 1 row in set (0.00 sec) mysql> select count(*) from sbtest2; +----------+ | count(*) | +----------+ | 1000 | +----------+ 1 row in set (0.00 sec) mysql> select count(*) from sbtest1; +-----------+ | count(*) | +-----------+ | 100000000 | +-----------+ 1 row in set (19.39 sec) mysql> select count(*) from sbtest1_bk03211652; +-----------+ | count(*) | +-----------+ | 100000000 | +-----------+ 1 row in set (4.39 sec) mysql> show processlist;