Skip to content
logo
Percona Server for MySQL
Percona MyRocks installation guide
Initializing search
    percona/psmysql-docs
    percona/psmysql-docs
    • Home
      • The Percona XtraDB storage engine
      • List of features available in Percona Server for MySQL releases
      • Percona Server for MySQL feature comparison
      • Changed in Percona Server 8.0
      • Understand version numbers
      • Install Percona Server for MySQL
        • Install using APT repository
        • Files in DEB package
        • Build APT packages
        • Install from downloaded DEB packages
        • Apt pinning
        • Run Percona Server for MySQL
        • Uninstall
        • Install using a RPM repository
        • Files in RPM package
        • Install from downloaded RPM packages
        • Run Percona Server for MySQL
        • Uninstall
        • Install with binary tarballs
        • Binary tarballs available
        • Install Percona Server for MySQL from a source tarball
        • Compile Percona Server for MySQL 8.0 from source
      • Post-installation
      • Percona Server for MySQL in-place upgrading guide: from 5.7 to 8.0
      • Upgrade using the Percona repositories
      • Upgrade from systems that use the MyRocks or TokuDB storage engine and partitioned tables
      • Upgrade using Standalone Packages
      • Downgrade Percona Server for MySQL
      • Running Percona Server for MySQL in a Docker Container
      • Docker environment variables
      • Improved InnoDB I/O scalability
      • Adaptive network buffers
      • Multiple page asynchronous I/O requests
      • Thread pool
      • XtraDB performance improvements for I/O-bound highly-concurrent workloads
      • Prefix index queries optimization
      • Limit the estimation of records in a Query
      • Jemalloc memory allocation profiling
      • The ProcFS plugin
      • Binary logs and replication improvements
      • Compressed columns with dictionaries
      • Extended SELECT INTO OUTFILE/DUMPFILE
      • Extended SET VAR optimizer hint
      • Improved MEMORY storage engine
      • Suppress warning messages
      • Limiting the disk space used by binary log files
      • Support for PROXY protocol
      • SEQUENCE_TABLE(n) function
      • Slow query log rotation and expiration
      • Trigger updates
      • Extended mysqlbinlog
      • Extended mysqldump
      • InnoDB full-text search improvements
      • Too many connections warning
      • Handle corrupted tables
      • Percona Toolkit UDFs
      • Kill idle transactions
      • XtraDB changed page tracking
      • Enforcing storage engine
      • Expanded fast index creation
      • Backup locks
      • Audit log plugin
      • Start transaction with consistent snapshot
      • Extended SHOW GRANTS
      • Utility user
      • Working with SELinux
      • Working with AppArmor
      • PAM authentication plugin
      • Server variables
      • SSL improvements
      • Data masking
        • Using LDAP authentication plugins
        • LDAP authentication plugin system variables
        • Data at Rest Encryption
        • Use the keyring component or keyring plugin
          • Using the Key Management Interoperability Protocol (KMIP)
          • Use the Amazon Key Management Service (AWS KMS)
          • FIDO authentication plugin
        • Encryption functions
        • Encrypt File-Per-Table Tablespace
        • Encrypt schema or general tablespace
        • Encrypt system tablespace
        • Encrypt temporary files
        • Encrypt Binary Log Files and Relay Log Files
        • Encrypting the Redo Log data
        • Encrypt the undo tablespace
        • Rotate the master key
        • Advanced encryption key rotation
        • Encrypt doublewrite buffers
        • Verify the encryption for tables, tablespaces, and schemas
      • User statistics
      • Slow query log
      • Extended show engine InnoDB status
      • Show storage engines
      • Process list
      • Misc. INFORMATION_SCHEMA tables
      • Thread based profiling
      • InnoDB page fragmentation counters
      • Stacktrace
      • Libcoredumper
      • Manage group replication flow control
      • Group replication system variables
      • Percona MyRocks introduction
      • Percona MyRocks installation guide
        • Install Percona MyRocks
          • Enable MyRocks with ps-admin
          • Install MyRocks plugins
        • Remove Percona MyRocks
          • Uninstall MyRocks plugins
      • Updated supported features
      • MyRocks limitations
      • Differences between Percona MyRocks and Facebook MyRocks
      • MyRocks Information Schema tables
      • MyRocks server variables
      • MyRocks status variables
      • Gap locks detection
      • Data loading
      • Installing and configuring Percona Server for MySQL with ZenFS support
      • TokuDB introduction
      • TokuDB installation
      • Use TokuDB
      • Fast updates with TokuDB
      • TokuDB files and file types
      • TokuDB file management
      • TokuDB background ANALYZE TABLE
      • TokuDB variables
      • TokuDB status variables
      • TokuDB fractal tree indexing
      • TokuDB troubleshooting
      • TokuDB Performance Schema integration
      • Frequently asked questions
      • Migrate and removing the TokuDB storage engine
      • Percona TokuBackup
      • Release notes index
      • Percona Server for MySQL 8.0.32-24 (2023-03-20)
      • Percona Server for MySQL 8.0.31-23 (2023-02-09)
      • Percona Server for MySQL 8.0.30-22 Update (2022-11-21)
      • Percona Server for MySQL 8.0.30-22 (2022-11-21)
      • Percona Server for MySQL 8.0.29-21 (2022-08-08)
      • Percona Server for MySQL 8.0.28-20 (2022-06-20)
      • Percona Server for MySQL 8.0.28-19 (2022-05-12)
      • Percona Server for MySQL 8.0.27-18 (2022-03-02)
      • Percona Server for MySQL 8.0.26-17 (2022-01-26)
      • Percona Server for MySQL 8.0.26-16 (2021-10-20)
      • Percona Server for MySQL 8.0.25-15 (2021-07-13)
      • Percona Server for MySQL 8.0.23-14 (2021-05-12)
      • Percona Server for MySQL 8.0.22-13 (2020-12-14)
      • Percona Server for MySQL 8.0.21-12 (2020-10-13)
      • Percona Server for MySQL 8.0.20-11 (2020-07-21)
      • Percona Server for MySQL 8.0.19-10 (2020-03-23)
      • Percona Server for MySQL 8.0.18-9
      • Percona Server for MySQL 8.0.17-8
      • Percona Server for MySQL 8.0.16-7
      • Percona Server for MySQL 8.0.15-6
      • Percona Server for MySQL 8.0.15-5
      • Percona Server for MySQL 8.0.14
      • Percona Server for MySQL 8.0.13-4
      • Percona Server for MySQL 8.0.13-3
      • Percona Server for MySQL 8.0.12-2rc1
      • List of variables introduced in Percona Server for MySQL 8.0
      • Development of Percona Server for MySQL
      • Trademark policy
      • Index of INFORMATION_SCHEMA tables
      • Frequently asked questions
      • Copyright and licensing information
      • Glossary

    • Install Percona MyRocks
      • Enable MyRocks with ps-admin
      • Install MyRocks plugins
    • Remove Percona MyRocks
      • Uninstall MyRocks plugins

    Percona MyRocks installation guide¶

    Percona MyRocks is distributed as a separate package that can be enabled as a plugin for Percona Server for MySQL 8.0 and later versions.

    Note

    File formats across different MyRocks variants may not be compatible. Percona Server for MySQL supports only Percona MyRocks. Migrating from one variant to another requires a logical data dump and reload.

    • Installing Percona MyRocks

    • Removing Percona MyRocks

    Install Percona MyRocks¶

    It is recommended to install Percona software from official repositories:

    1. Configure Percona repositories as described in Percona Software Repositories Documentation.

    2. Install Percona MyRocks using the corresponding package manager:

      • For Debian or Ubuntu:
      $ sudo apt install percona-server-rocksdb
      

      Note

      Review the Installing and configuring Percona Server for MySQL with ZenFS support document for the Installation and the Configuration information.

      • For RHEL or CentOS:
      $ sudo yum install percona-server-rocksdb
      

    After installation, you should see the following output:

    Expected output
    * This release of |Percona Server| is distributed with RocksDB storage engine.
    * Run the following script to enable the RocksDB storage engine in Percona Server:
    
    $ ps-admin --enable-rocksdb -u <mysql_admin_user> -p[mysql_admin_pass] [-S <socket>] [-h <host> -P <port>]
    

    Enable MyRocks with ps-admin¶

    Run the ps-admin script as system root user or with sudo and provide the MySQL root user credentials to properly enable the RocksDB (MyRocks) storage engine:

    $ sudo ps-admin --enable-rocksdb -u root -pPassw0rd
    
    Expected output
    Checking if RocksDB plugin is available for installation ...
    INFO: ha_rocksdb.so library for RocksDB found at /usr/lib64/mysql/plugin/ha_rocksdb.so.
    
    Checking RocksDB engine plugin status...
    INFO: RocksDB engine plugin is not installed.
    
    Installing RocksDB engine...
    INFO: Successfully installed RocksDB engine plugin.
    

    Note

    When you use the ps-admin script to enable Percona MyRocks, it performs the following:

    • Disables Transparent huge pages

    • Installs and enables the RocksDB plugin

    If the script returns no errors, Percona MyRocks should be successfully enabled on the server. You can verify it as follows:

    mysql> SHOW ENGINES;
    
    Expected output
    +---------+---------+----------------------------------------------------------------------------+--------------+------+------------+
    | Engine  | Support | Comment                                                                    | Transactions | XA   | Savepoints |
    +---------+---------+----------------------------------------------------------------------------+--------------+------+------------+
    | ROCKSDB | YES     | RocksDB storage engine                                                     | YES          | YES  | YES        |
    ...
    | InnoDB  | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
    +---------+---------+----------------------------------------------------------------------------+--------------+------+------------+
    10 rows in set (0.00 sec)
    

    Note that the RocksDB engine is not set to be default, new tables will still be created using the InnoDB (XtraDB) storage engine. To make RocksDB storage engine default, set default-storage-engine=rocksdb in the [mysqld] section of my.cnf and restart Percona Server for MySQL.

    Alternatively, you can add ENGINE=RocksDB after the CREATE TABLE statement for every table that you create.

    Install MyRocks plugins¶

    You can install MyRocks manually with a series of INSTALL PLUGIN statements. You must have the INSERT privilege for the mysql.plugin system table.

    The following statements install MyRocks:

    INSTALL PLUGIN ROCKSDB SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_CFSTATS SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_DBSTATS SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_PERF_CONTEXT SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_PERF_CONTEXT_GLOBAL SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_CF_OPTIONS SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_GLOBAL_INFO SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_COMPACTION_HISTORY SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_COMPACTION_STATS SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_ACTIVE_COMPACTION_STATS SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_DDL SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_INDEX_FILE_MAP SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_LOCKS SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_TRX SONAME 'ha_rocksdb.so';
    INSTALL PLUGIN ROCKSDB_DEADLOCK SONAME 'ha_rocksdb.so';
    

    Remove Percona MyRocks¶

    It will not be possible to access tables created using the RocksDB engine with another storage engine after you remove Percona MyRocks. If you need this data, alter the tables to another storage engine. For example, to alter the City table to InnoDB, run the following:

    mysql> ALTER TABLE City ENGINE=InnoDB;
    

    To disable and uninstall the RocksDB engine plugins, use the ps-admin script as follows:

    $ sudo ps-admin --disable-rocksdb -u root -pPassw0rd
    
    Expected output
    Checking RocksDB engine plugin status...
    INFO: RocksDB engine plugin is installed.
    
    Uninstalling RocksDB engine plugin...
    INFO: Successfully uninstalled RocksDB engine plugin.
    

    After the engine plugins have been uninstalled, remove the Percona MyRocks package:

    • For Debian or Ubuntu:

      $ sudo apt remove percona-server-rocksdb-8.0
      
    • For RHEL or CentOS:

      $ sudo yum remove percona-server-rocksdb-80.x86_64
      

    Finally, remove all the MyRocks Server Variables from the configuration file (my.cnf) and restart Percona Server for MySQL.

    Uninstall MyRocks plugins¶

    You can uninstall the plugins for MyRocks. You must have the DELETE privilege for the mysql.plugin system table.

    The following statements remove the MyRocks plugins:

    UNINSTALL PLUGIN ROCKSDB;
    UNINSTALL PLUGIN ROCKSDB_CFSTATS;
    UNINSTALL PLUGIN ROCKSDB_DBSTATS;
    UNINSTALL PLUGIN ROCKSDB_PERF_CONTEXT;
    UNINSTALL PLUGIN ROCKSDB_PERF_CONTEXT_GLOBAL;
    UNINSTALL PLUGIN ROCKSDB_CF_OPTIONS;
    UNINSTALL PLUGIN ROCKSDB_GLOBAL_INFO;
    UNINSTALL PLUGIN ROCKSDB_COMPACTION_HISTORY;
    UNINSTALL PLUGIN ROCKSDB_COMPACTION_STATS;
    UNINSTALL PLUGIN ROCKSDB_ACTIVE_COMPACTION_STATS;
    UNINSTALL PLUGIN ROCKSDB_DDL;
    UNINSTALL PLUGIN ROCKSDB_INDEX_FILE_MAP;
    UNINSTALL PLUGIN ROCKSDB_LOCKS;
    UNINSTALL PLUGIN ROCKSDB_TRX;
    UNINSTALL PLUGIN ROCKSDB_DEADLOCK;
    

    Contact us

    For free technical help, visit the Percona Community Forum.

    To report bugs or submit feature requests, open a JIRA ticket.

    For paid support and managed or consulting services , contact Percona Sales.


    Last update: 2023-01-12
    Percona LLC and/or its affiliates, © 2023
    Made with Material for MkDocs

    Cookie consent

    We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.