Tungsten Replicator: MariaDB MySQL Master/Slave Replication setup with HyperDB plugin for WordPress
Meanwhile, got a bit tired of the lengthy command lines to check status quickly, so started putting together a quick script to grab master and slave status at same time. Needs more work but will do for now.
[root@centos6 wpzip]# mysqladmin create wp321 |
Updated script for some more error and status checking
When you issue an offline command to both Tungsten Replicator master and slaves.
[root@centos6 wp]# ls -alh /var/lib/{mysql/wp321,mysql2/wp321} /var/lib/mysql2/wp321: total 620K drwx------. 2 mysql mysql 4.0K Sep 20 15:15 . drwxr-xr-x. 11 mysql mysql 4.0K Sep 20 15:09 .. -rw-rw----. 1 mysql mysql 65 Sep 20 15:09 db.opt -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_commentmeta.frm -rw-rw----. 1 mysql mysql 0 Sep 20 15:15 wp_commentmeta.MYD -rw-rw----. 1 mysql mysql 4.0K Sep 20 15:15 wp_commentmeta.MYI -rw-rw----. 1 mysql mysql 14K Sep 20 15:15 wp_comments.frm -rw-rw----. 1 mysql mysql 232 Sep 20 15:15 wp_comments.MYD -rw-rw----. 1 mysql mysql 7.0K Sep 20 15:15 wp_comments.MYI -rw-rw----. 1 mysql mysql 13K Sep 20 15:15 wp_links.frm -rw-rw----. 1 mysql mysql 540 Sep 20 15:15 wp_links.MYD -rw-rw----. 1 mysql mysql 3.0K Sep 20 15:15 wp_links.MYI -rw-rw----. 1 mysql mysql 8.6K Sep 20 15:15 wp_options.frm -rw-rw----. 1 mysql mysql 333K Sep 20 15:15 wp_options.MYD -rw-rw----. 1 mysql mysql 14K Sep 20 15:15 wp_options.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_postmeta.frm -rw-rw----. 1 mysql mysql 52 Sep 20 15:15 wp_postmeta.MYD -rw-rw----. 1 mysql mysql 10K Sep 20 15:15 wp_postmeta.MYI -rw-rw----. 1 mysql mysql 14K Sep 20 15:15 wp_posts.frm -rw-rw----. 1 mysql mysql 1.5K Sep 20 15:15 wp_posts.MYD -rw-rw----. 1 mysql mysql 11K Sep 20 15:15 wp_posts.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_term_relationships.frm -rw-rw----. 1 mysql mysql 168 Sep 20 15:15 wp_term_relationships.MYD -rw-rw----. 1 mysql mysql 3.0K Sep 20 15:15 wp_term_relationships.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_terms.frm -rw-rw----. 1 mysql mysql 72 Sep 20 15:15 wp_terms.MYD -rw-rw----. 1 mysql mysql 11K Sep 20 15:15 wp_terms.MYI -rw-rw----. 1 mysql mysql 8.6K Sep 20 15:15 wp_term_taxonomy.frm -rw-rw----. 1 mysql mysql 84 Sep 20 15:15 wp_term_taxonomy.MYD -rw-rw----. 1 mysql mysql 4.0K Sep 20 15:15 wp_term_taxonomy.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_usermeta.frm -rw-rw----. 1 mysql mysql 700 Sep 20 15:15 wp_usermeta.MYD -rw-rw----. 1 mysql mysql 10K Sep 20 15:15 wp_usermeta.MYI -rw-rw----. 1 mysql mysql 8.8K Sep 20 15:15 wp_users.frm -rw-rw----. 1 mysql mysql 96 Sep 20 15:15 wp_users.MYD -rw-rw----. 1 mysql mysql 4.0K Sep 20 15:15 wp_users.MYI /var/lib/mysql/wp321: total 620K drwx------. 2 mysql mysql 4.0K Sep 20 15:15 . drwxr-xr-x. 12 mysql mysql 4.0K Sep 20 15:15 .. -rw-rw----. 1 mysql mysql 65 Sep 20 15:09 db.opt -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_commentmeta.frm -rw-rw----. 1 mysql mysql 0 Sep 20 15:15 wp_commentmeta.MYD -rw-rw----. 1 mysql mysql 4.0K Sep 20 15:15 wp_commentmeta.MYI -rw-rw----. 1 mysql mysql 14K Sep 20 15:15 wp_comments.frm -rw-rw----. 1 mysql mysql 232 Sep 20 15:15 wp_comments.MYD -rw-rw----. 1 mysql mysql 7.0K Sep 20 15:15 wp_comments.MYI -rw-rw----. 1 mysql mysql 13K Sep 20 15:15 wp_links.frm -rw-rw----. 1 mysql mysql 540 Sep 20 15:15 wp_links.MYD -rw-rw----. 1 mysql mysql 3.0K Sep 20 15:15 wp_links.MYI -rw-rw----. 1 mysql mysql 8.6K Sep 20 15:15 wp_options.frm -rw-rw----. 1 mysql mysql 333K Sep 20 15:15 wp_options.MYD -rw-rw----. 1 mysql mysql 14K Sep 20 15:15 wp_options.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_postmeta.frm -rw-rw----. 1 mysql mysql 52 Sep 20 15:15 wp_postmeta.MYD -rw-rw----. 1 mysql mysql 10K Sep 20 15:15 wp_postmeta.MYI -rw-rw----. 1 mysql mysql 14K Sep 20 15:15 wp_posts.frm -rw-rw----. 1 mysql mysql 1.5K Sep 20 15:15 wp_posts.MYD -rw-rw----. 1 mysql mysql 11K Sep 20 15:15 wp_posts.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_term_relationships.frm -rw-rw----. 1 mysql mysql 168 Sep 20 15:15 wp_term_relationships.MYD -rw-rw----. 1 mysql mysql 3.0K Sep 20 15:15 wp_term_relationships.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_terms.frm -rw-rw----. 1 mysql mysql 72 Sep 20 15:15 wp_terms.MYD -rw-rw----. 1 mysql mysql 11K Sep 20 15:15 wp_terms.MYI -rw-rw----. 1 mysql mysql 8.6K Sep 20 15:15 wp_term_taxonomy.frm -rw-rw----. 1 mysql mysql 84 Sep 20 15:15 wp_term_taxonomy.MYD -rw-rw----. 1 mysql mysql 4.0K Sep 20 15:15 wp_term_taxonomy.MYI -rw-rw----. 1 mysql mysql 8.5K Sep 20 15:15 wp_usermeta.frm -rw-rw----. 1 mysql mysql 700 Sep 20 15:15 wp_usermeta.MYD -rw-rw----. 1 mysql mysql 10K Sep 20 15:15 wp_usermeta.MYI -rw-rw----. 1 mysql mysql 8.8K Sep 20 15:15 wp_users.frm -rw-rw----. 1 mysql mysql 96 Sep 20 15:15 wp_users.MYD -rw-rw----. 1 mysql mysql 4.0K Sep 20 15:15 wp_users.MYI |
When MySQL master server is offline or down.
[tungsten@centos6 root]$ trepctl -service rep1 status Processing status command... NAME VALUE ---- ----- appliedLastEventId : mysql-bin.000025:0000000003508342;209 appliedLastSeqno : 4259 appliedLatency : 0.457 clusterName : default currentEventId : mysql-bin.000025:0000000003508342 currentTimeMillis : 1316495761179 dataServerHost : 192.168.56.101 extensions : host : null latestEpochNumber : 3413 masterConnectUri : thl://192.168.56.102 masterListenUri : thl://192.168.56.101:2112/ maximumStoredSeqNo : 4259 minimumStoredSeqNo : 0 offlineRequests : NONE pendingError : NONE pendingErrorCode : NONE pendingErrorEventId : NONE pendingErrorSeqno : -1 pendingExceptionMessage: NONE resourcePrecedence : 99 rmiPort : -1 role : master seqnoType : java.lang.Long serviceName : rep1 serviceType : local simpleServiceName : rep1 siteName : default sourceId : 192.168.56.101 state : ONLINE timeInStateSeconds : 6935.154 uptimeSeconds : 6938.703 Finished status command... [tungsten@centos6 root]$ bash /opt/tungsten2/tungsten/tungsten-replicator/bin/trepctl -port 10500 -service rep1 status Processing status command... NAME VALUE ---- ----- appliedLastEventId : mysql-bin.000025:0000000003508342;209 appliedLastSeqno : 4259 appliedLatency : 1.043 clusterName : default currentEventId : NONE currentTimeMillis : 1316495765285 dataServerHost : 127.0.0.1 extensions : host : null latestEpochNumber : 3413 masterConnectUri : thl://192.168.56.101:2112/ masterListenUri : thl://127.0.0.1:22000/ maximumStoredSeqNo : 4259 minimumStoredSeqNo : 0 offlineRequests : NONE pendingError : NONE pendingErrorCode : NONE pendingErrorEventId : NONE pendingErrorSeqno : -1 pendingExceptionMessage: NONE resourcePrecedence : 99 rmiPort : -1 role : slave seqnoType : java.lang.Long serviceName : rep1 serviceType : local simpleServiceName : rep1 siteName : default sourceId : 127.0.0.1 state : ONLINE timeInStateSeconds : 6936.587 uptimeSeconds : 6938.285 Finished status command... |
Tungsten Replicator status script
Current final result of the custom Tungsten Replicator status script.
/** Sample Configuration 1: Using the Default Server **/ /** NOTE: THIS IS ACTIVE BY DEFAULT. COMMENT IT OUT. **/ /** * This is the most basic way to add a server to HyperDB using only the * required parameters: host, user, password, name. * This adds the DB defined in wp-config.php as a read/write server for * the 'global' dataset. (Every table is in 'global' by default.) */ $wpdb->add_database(array( 'host' => DB_HOST, // If port is other than 3306, use host:port. 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, )); /** * This adds the same server again, only this time it is configured as a slave. * The last three parameters are set to the defaults but are shown for clarity. */ $wpdb->add_database(array( 'host' => DB_HOST, // If port is other than 3306, use host:port. 'user' => DB_USER, 'password' => DB_PASSWORD, 'name' => DB_NAME, 'write' => 0, 'read' => 1, 'dataset' => 'global', 'timeout' => 0.2, )); |