Очистка данных InnoDB
Обратите внимание, что большая часть кода очистки журнала заднего хода и резервных копий была удалена в MariaDB 10.5.2. См. MDEV-15528 и MDEV-21870.
Иногда требуется, чтобы при удалении данных они действительно были удалены. Это может быть необходимо при хранении личных данных пользователей или других конфиденциальных данных. Обычно, когда строка удаляется, пространство помечается как свободное на странице. В конечном итоге оно может быть перезаписано, но нет гарантии, когда это произойдет. Копия удаленных строк также может присутствовать в файлах журнала.
MariaDB 10.1.3 добавила поддержку очистки данных InnoDB. Фоновые потоки периодически сканируют табличные пространства и журналы и удаляют все данные, которые должны быть удалены. Количество фоновых потоков для сканирования табличных пространств устанавливается параметром innodb-encryption-threads. Очистка журнала происходит в отдельном потоке.
Для настройки очистки можно использовать следующие переменные:
| innodb-background-scrub-data-check-interval | Секунды | Проверять в этом интервале, нужно ли очищать табличные пространства. Устаревший и игнорируется начиная с MariaDB 10.5.2. |
| innodb-background-scrub-data-compressed | Булево | Включить очистку сжатых данных фоновыми потоками. Устаревший и игнорируется начиная с MariaDB 10.5.2. |
| innodb-background-scrub-data-interval | Секунды | Очищать пространства, которые были очищены в последний раз более чем за это количество секунд. Устаревший и игнорируется начиная с MariaDB 10.5.2. |
| innodb-background-scrub-data-uncompressed | Булево | Включить очистку несжатых данных фоновыми потоками. Устаревший и игнорируется начиная с MariaDB 10.5.2. |
| innodb-immediate-scrub-data-uncompressed | Булево | Включить очистку несжатых данных |
| innodb-scrub-log | Булево | Включить очистку журнала заднего хода. Устаревший и игнорируется начиная с MariaDB 10.5.2. |
| innodb-scrub-log-speed | Байт/сек | Скорость очистки журнала заднего хода в байтах/сек. Устаревший и игнорируется начиная с MariaDB 10.5.2. |
Очистка журнала заднего хода не работала должным образом и была устаревшей и игнорируемой в MariaDB 10.5.2 (MDEV-21870). Если старое содержимое журнала должно храниться в секрете, то включение innodb_encrypt_log или установка меньшего значения innodb_log_file_size может помочь.
Таблица Information Schema INNODB_TABLESPACES_SCRUBBING содержит информацию об очистке.
Благодарность
- Очистка была передана проекту MariaDB компанией Google.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/innodb-data-scrubbing/