Spec-Zone.ru › MySQL 9.2

7.6.5 Плагин ddl_rewriter

  • 7.6.5.1 Установка или удаление ddl_rewriter
  • 7.6.5.2 Параметры плагина ddl_rewriter

MySQL 9.2 включает плагин ddl_rewriter, который изменяет CREATE TABLE инструкции, полученные сервером, перед их разбором и выполнением. Плагин удаляет ENCRYPTION, DATA DIRECTORY и INDEX DIRECTORY предложения, что может быть полезно при восстановлении таблиц из дампов SQL, созданных из баз данных, которые зашифрованы или хранят свои таблицы вне каталога данных. Например, плагин может позволить восстановить такие дампы в незашифрованном экземпляре или в среде, где пути за пределами каталога данных недоступны.

Перед использованием плагина ddl_rewriter, установите его согласно инструкциям, приведенным в разделе 7.6.5.1 «Установка или удаление ddl_rewriter».

ddl_rewriter анализирует SQL-запросы, полученные сервером перед разбором, переписывая их в соответствии со следующими условиями:

  • ddl_rewriter рассматривает только CREATE TABLE инструкции, и только если они являются независимыми инструкциями, которые находятся в начале строки ввода или в начале текста подготовленного запроса. ddl_rewriter не рассматривает CREATE TABLE инструкции внутри определений хранимых процедур. Инструкции могут занимать несколько строк.

  • В рамках инструкций, рассматриваемых для переписывания, экземпляры следующих предложений переписываются, и каждый экземпляр заменяется одним пробелом:

    • ENCRYPTION

    • DATA DIRECTORY (на уровнях таблиц и разделов)

    • INDEX DIRECTORY (на уровнях таблиц и разделов)

  • Переписывание не зависит от регистра.

Если ddl_rewriter переписывает инструкцию, он генерирует предупреждение:

mysql> CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data';
Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Note
   Code: 1105
Message: Query 'CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data''
         rewritten to 'CREATE TABLE t (i INT) ' by a query rewrite plugin
1 row in set (0.00 sec)

Если включен общий журнал запросов или двоичный журнал, сервер записывает в него инструкции в том виде, как они появляются после любой переписывания плагином ddl_rewriter.

При установке ddl_rewriter экспонирует инструмент Performance Schema memory/rewriter/ddl_rewriter для отслеживания использования памяти плагином. См. раздел 29.12.20.10 «Таблицы сводки памяти»

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/ddl-rewriter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API