Spec-Zone .ru
спецификации, руководства, описания, API
|
You can now query InnoDB
tables where the MySQL data directory is on read-only
media, by enabling the --innodb-read-only
configuration option at server startup.
To prepare an instance for read-only operation, make sure all the necessary information is flushed
to the data files before storing it on the read-only medium. Run the server with change buffering disabled (innodb_change_buffering=0
)
and do a slow shutdown.
To enable read-only mode for an entire MySQL instance, specify the following configuration options at server startup:
If the instance is on read-only media such as a DVD or CD, or the /var
directory is not writeable by all: --pid-file=
and path_on_writeable_media
--event-scheduler=disabled
This mode of operation is appropriate in situations such as:
Distributing a MySQL application, or a set of MySQL data, on a read-only storage medium such as a DVD or CD.
Multiple MySQL instances querying the same data directory simultaneously, typically in a data warehousing configuration. You might use this technique to avoid bottlenecks that can occur with a heavily loaded MySQL instance, or you might use different configuration options for the various instances to tune each one for particular kinds of queries.
Querying data that has been put into a read-only state for security or data integrity reasons, such as archived backup data.
This feature is mainly intended for flexibility in distribution and deployment, rather than raw performance based on the read-only aspect. See Section 14.2.4.2.3, "Optimizations for Read-Only Transactions" for ways to tune the performance of read-only queries, which do not require making the entire server read-only.
When the server is run in read-only mode through the --innodb-read-only
option, certain InnoDB
features
and components are reduced or turned off entirely:
No change buffering is done, in particular no
merges from the change buffer. To make sure the change buffer is empty when you prepare the instance for
read-only operation, disable change buffering (innodb_change_buffering=0
) and do a slow
shutdown first.
There is no crash recovery phase at startup. The instance must have performed a slow shutdown before being put into the read-only state.
Because the redo
log is not used in read-only operation, you can set innodb_log_file_size
to the smallest size possible (1 MB) before making
the instance read-only.
All background threads other than I/O read threads are turned off. As a consequence, a read-only instance cannot encounter any deadlocks.
Information about deadlocks, monitor output, and so on is not written to temporary
files. As a consequence, SHOW ENGINE
INNODB STATUS
does not produce any output.
If the MySQL server is started with --innodb-read-only
but the data directory is still on writeable media,
the root user can still perform DCL
operations such as GRANT
and REVOKE
.
Changes to configuration option settings that would normally change the the behavior of write operations, have no effect when the server is in read-only mode.
The MVCC processing to enforce isolation levels is turned off. All queries read the latest version of a record, because update and deletes are not possible.
The undo
log is not used. Disable any settings for the innodb_undo_tablespaces
and innodb_undo_directory
configuration options.