MySQL Configuration Requirements
To take advantage of ZFS snapshots, all MySQL data and logs must reside on ZFS volumes. The following are some of the possible configurations
- All MySQL data is on a single ZFS Volume
- Specific database directories are on different volumes
- For databases containing InnoDB-based tables, the snapshot can only be used if the database directory, the InnoDB data files and the InnoDB logs are all on ZFS volumes.
- The InnoDB shared data files are on a separate ZFS volume
- The InnoDB logs are on a separate ZFS volume
The ZFS volumes are mounted on ZRM server using NFS. ZRM user "mysql" should have permissions to read and write to the volumes.
Pre-conditions for Using ZFS Snapshots
- The MySQL backup user must be granted sudo privileges to execute ZFS commands on the MySQL server. Add a line similar to the following example to /etc/sudoers on the MySQL server:
mysql ZRMserver.mycompany.com Server>=NOPASSWD:/bin/df,NOPASSWD:/sbin/zfs
- where ZRMserver.mycompany.com is the fully-qualified domain name for the ZRM server. Note that if ZFS commands are installed in non-standard locations, the above example would not work without editing it to reflect the different paths.
- All MySQL database files (data, log, indexes) must be stored in ZFS volumes to ensure consistency.
- If any of the files are not on ZFS volumes, a raw backup using mysqlhotcopy, or a logical backup using mysqldump will be taken based on the storage engines of the tables in each of the databases.
Refer to the Solaris ZFS documentation for details on ZFS administration.