Arquivo da categoria: MySQL 5.7

MySQL 5.6 – ISL Files

InnoDB introduced *.isl (InnoDB Symbolic Link) files in MySQL 5.6 to help users find the data files for tables created using the CREATE TABLE command. DOCUMENT DIRECTORY. Because they are not located in the same data directory as regular file-per-table tablespaces, InnoDB refers to them as remote tablespaces.

To store the remote path, we additionally added the InnoDB system tables SYS TABLESPACES and SYS DATAFILES. Since the system tablespace and system tables are recovered simultaneously with all of the distant tablespaces, that path is not accessible during the REDO portion of recovery.

These *.isl files serve the following purposes:

  • Permit file discovery prior to the release of DD metadata.
  • Provide a method for moving a tablespace file while the server is offline, and when the table is accessed the following time, update the DD metadata.

The Global Data Dictionary tables will take the place of the InnoDB SYS_* tables. From low-level InnoDB code, such as when opening a table, updating the data dictionary tables won’t be feasible anymore. From low-level operations, the SYS DATAFILES table that was first introduced in 5.6 was updated.

Future versions of InnoDB will be able to locate any tablespace file specified in the REDO log, enabling recovery to be completed without the need for *.isl files. However, in order to address the portability problem, redo log processing must reference the *.isl if the original file location is inaccessible.

For both use scenarios, a substitute for *.isl files will be offered. Only when the server starts up will the replacement mapping be consulted. As a result, when tables are opened during regular server operation, there won’t be any unexpected adjustments to the data dictionary.

Note that there has never been a mechanism to transfer files around with SQL other than through export/import or a table-rebuilding ALTER TABLE (online operation starting with MySQL 5.6).

So, don’t get them deleted.