Original post: http://anothermysqldba.blogspot.com/2013/05/checking-out-mariadb-1002.html
ç§ã¯MariaDB 10.0.2ソースパッケージをダウンãƒãƒ¼ãƒ‰ã—ã€ã‚«ã‚¹ã‚¿ãƒ インストールをã—ã¾ã—ãŸã€‚ç§ãŒåŽŸå› ã§ã“れをã—ãŸä»¥å‰ã®è¨˜äº‹ç§ã¯ã™ã§ã«2マスターを構築ã—ã¦ã„ãŸã‚¤ãƒ³ãƒ 今回ã¯å††å½¢ã®è¤‡è£½ã‚’削除ã—ã€ã“ã®mariadbインストールã«ãれらを指摘ã—ãŸã€‚ ç§ã¯ãƒãƒ¼ãƒˆ3310今回使用。 å‰ã®ãƒã‚¹ãƒˆã‹ã‚‰åŒã˜ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã®è¨å®šä¾‹ã§ã¯ã€ã¡ã‚‡ã†ã©ä»Šmariadb-10.0.2ã®ãƒ•ォルダã«å…¥ã‚Œã¦ã€ã“ã“ã§é©ç”¨ã•れる。 ç§ã¯ã‚ãªãŸãŒãれをã—ãŸã„ã ã‘ã®å ´åˆã«ã¯ã€ã“ã®è¨˜äº‹ã®ä¸‹éƒ¨ã«ã‚ã‚‹ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’è¿½åŠ ã—ã¾ã—ãŸã€‚
ç§ã¯ä¸»ã«ä»¥ä¸‹ã®æœ€æ–°MariaDBã®æ©Ÿèƒ½ã‚’ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã—ãŸã‹ã£ãŸã®ã§ã€ç§ã¯ã“れをã—ãŸç†ç”±ãŒã‚ã£ãŸï¼š
マルãƒã‚½ãƒ¼ã‚¹Â·ãƒ¬ãƒ—リケーション
ã‚ãªãŸãŒèµ·å‹•ã™ã‚‹ã‚µãƒ¼ãƒã”ã¨ã«è¨å®šãŒç•°ãªã‚‹ã‚µãƒ¼ãƒIDã‚’æŒã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚
ã“ã“ã§ä½•を期待ã™ã‚‹ã¹ãã§ã¯ã‚りã¾ã›ã‚“ã®ã§ã€ã¾ã å§‹ã¾ã£ãŸã°ã‹ã‚Š
ã ã‹ã‚‰ã€ãƒžã‚¹ã‚¿ãƒ¼ã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰æƒ…å ±ã‚’åŽé›†ã™ã‚‹
今Mariadb 10.0.2スレーブを更新
OK今ç§ã¯ç¬¬äºŒã®ãƒžã‚¹ã‚¿ãƒ¼ã‚’è¿½åŠ ã—ã¦ã¿ã¾ã—ょã†
次ã«ã€ã‚ãªãŸã¯ä¸¡æ–¹ã®è¨å®šãŒè¨å®šã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ãŸã‚ã«çŠ¶æ…‹ã‚’ç¢ºèªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ãれを起動ã™ã‚‹ãŸã‚ã«[OK]を時間
ã ã‹ã‚‰ç§ãŸã¡ã¯ã„ãã¤ã‹ã®çжæ³ã‚’テストã—ã¦ã¿ã¾ã—ょã†ã€‚
Perconaマスター経由
MariaDBスレーブ
Oracleã®MySQLã®ãƒžã‚¹ã‚¿ãƒ¼ã‚’経由ã—ã¦
MariaDBスレーブ
作å“ãã®OKï¼
EXPLAIN SHOW
ã“れã¯ã‚€ã—ã‚ã€ãれãŒå®Ÿè¡Œã•れã¦ã„るクエリをã‚ャッãƒã™ã‚‹ã¾ã£ã™ã進むãŒã€ã„ã„ã§ã™ã€‚
サイドノート:
カサンドラストレージエンジン
ç§ã¯ã“ã®ã“ã¨ã«ã¤ã„ã¦å¥½å¥‡å¿ƒã¨ãれãŒã©ã®ã‚ˆã†ã«memcacheã®çµŒç”±NoSQLã®ã¨InnoDBã®ã‚½ãƒªãƒ¥ãƒ¼ã‚·ãƒ§ãƒ³ã«é–¢ã™ã‚‹ã€‚
ç§ã¯ã“ã“ã§ãã®ä¸Šã®ãƒã‚¹ãƒˆã‚’æŒã£ã¦ã„る:http://anothermysqldba.blogspot.com/2013/04/nosql-php-memcache-innodb-mysql.htmlã‚’
ç§ã¯è‡ªåˆ†ã®ç’°å¢ƒã«ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—カサンドラセットã¨ã—ã¦ã“ã‚Œã«æˆ»ã£ã¦ãã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ç§ã¯ç†±å¿ƒã§ã™ãŒå¥½å¥‡å¿ƒæ—ºç››ã§ã¯ãªã„ã§ã™ã€‚
ユーザフィードãƒãƒƒã‚¯ãƒ—ラグ
ドã‚ュメンテーション㮠"クイックスタート" [mysqldãŒ]ã®ä¸‹ã®my.cnfファイルã«è¿½åŠ ã™ã‚‹ã¨è¨€ã†
ã“れã¯éžå¸¸ã«ç°¡å˜ã«åƒã„ã¦ã€ç§ã¯ã€ "クイックスタート"ã®å‘½ä»¤ã‚’削除ã—ãŸå¾Œã®ã‚ˆã†ã«ã€ã“ã®ã‚ˆã†ã«æœŸå¾…ã—ã¦ã„ã¾ã™ã€‚
エラーãƒã‚°ã‚’介ã—ã¦ã€ã‚ãªãŸã‚‚ãれãŒå‹•作を確èªã§ãã¾ã™ã€‚
[注æ„]フィードãƒãƒƒã‚¯ãƒ—ラグ: 'http://mariadb.org/feedback_plugin/post'ã«ãƒ¬ãƒãƒ¼ãƒˆãŒé€ä¿¡ã•れã¾ã—ãŸ
[注æ„]フィードãƒãƒƒã‚¯ãƒ—ラグイン:サーãƒã¯ã€ 'OK'ç”ãˆ
全体ã®ç§ã®ç¾åœ¨ã®ãŠæ°—ã«å…¥ã‚Šã®æ©Ÿèƒ½æ‹¡å¼µã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚
PlanetMySQL Voting: Vote UP / Vote DOWN
ç§ã¯MariaDB 10.0.2ソースパッケージをダウンãƒãƒ¼ãƒ‰ã—ã€ã‚«ã‚¹ã‚¿ãƒ インストールをã—ã¾ã—ãŸã€‚ç§ãŒåŽŸå› ã§ã“れをã—ãŸä»¥å‰ã®è¨˜äº‹ç§ã¯ã™ã§ã«2マスターを構築ã—ã¦ã„ãŸã‚¤ãƒ³ãƒ 今回ã¯å††å½¢ã®è¤‡è£½ã‚’削除ã—ã€ã“ã®mariadbインストールã«ãれらを指摘ã—ãŸã€‚ ç§ã¯ãƒãƒ¼ãƒˆ3310今回使用。 å‰ã®ãƒã‚¹ãƒˆã‹ã‚‰åŒã˜ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã®è¨å®šä¾‹ã§ã¯ã€ã¡ã‚‡ã†ã©ä»Šmariadb-10.0.2ã®ãƒ•ォルダã«å…¥ã‚Œã¦ã€ã“ã“ã§é©ç”¨ã•れる。 ç§ã¯ã‚ãªãŸãŒãれをã—ãŸã„ã ã‘ã®å ´åˆã«ã¯ã€ã“ã®è¨˜äº‹ã®ä¸‹éƒ¨ã«ã‚ã‚‹ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’è¿½åŠ ã—ã¾ã—ãŸã€‚
ç§ã¯ä¸»ã«ä»¥ä¸‹ã®æœ€æ–°MariaDBã®æ©Ÿèƒ½ã‚’ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã—ãŸã‹ã£ãŸã®ã§ã€ç§ã¯ã“れをã—ãŸç†ç”±ãŒã‚ã£ãŸï¼š
マルãƒã‚½ãƒ¼ã‚¹Â·ãƒ¬ãƒ—リケーション
ã‚ãªãŸãŒèµ·å‹•ã™ã‚‹ã‚µãƒ¼ãƒã”ã¨ã«è¨å®šãŒç•°ãªã‚‹ã‚µãƒ¼ãƒIDã‚’æŒã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚
ã“ã“ã§ä½•を期待ã™ã‚‹ã¹ãã§ã¯ã‚りã¾ã›ã‚“ã®ã§ã€ã¾ã å§‹ã¾ã£ãŸã°ã‹ã‚Š
> select @@default_master_connection;
+-----------------------------+
| @@default_master_connection |
+-----------------------------+
| |
+-----------------------------+
ã ã‹ã‚‰ã€ãƒžã‚¹ã‚¿ãƒ¼ã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰æƒ…å ±ã‚’åŽé›†ã™ã‚‹
> show master status\G
*************************** 1. row ***************************
File: percona_mysql-bin.000005
Position: 107
今Mariadb 10.0.2スレーブを更新
SET @@default_master_connection='percona';
CHANGE MASTER 'percona' TO MASTER_HOST = '127.0.0.1',
MASTER_USER = 'root',
MASTER_PASSWORD = '',
MASTER_PORT = 3307 ,
MASTER_LOG_FILE = 'percona_mysql-bin.000005',
MASTER_LOG_POS = 107
> select @@default_master_connection;
+-----------------------------+
| @@default_master_connection |
+-----------------------------+
| percona |
+-----------------------------+
OK今ç§ã¯ç¬¬äºŒã®ãƒžã‚¹ã‚¿ãƒ¼ã‚’è¿½åŠ ã—ã¦ã¿ã¾ã—ょã†
SET @@default_master_connection='oracle';
CHANGE MASTER 'oracle' TO MASTER_HOST = '127.0.0.1',
MASTER_USER = 'root',
MASTER_PASSWORD = '',
MASTER_PORT = 3309 ,
MASTER_LOG_FILE = 'oracle_mysql-bin.000009',
MASTER_LOG_POS = 5453
次ã«ã€ã‚ãªãŸã¯ä¸¡æ–¹ã®è¨å®šãŒè¨å®šã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ãŸã‚ã«çŠ¶æ…‹ã‚’ç¢ºèªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
>SHOW ALL SLAVES STATUS\G
*************************** 1. row ***************************
Connection_name: oracle
Slave_SQL_State:
Slave_IO_State:
Master_Host: 127.0.0.1
Master_User: root
Master_Port: 3309
Connect_Retry: 60
Master_Log_File: oracle_mysql-bin.000009
Read_Master_Log_Pos: 5453
Relay_Log_File: relay-bin-oracle.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: oracle_mysql-bin.000009
Slave_IO_Running: No
Slave_SQL_Running: No
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 5453
Relay_Log_Space: 248
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: 0
Retried_transactions: 0
Max_relay_log_size: 1073741824
Executed_log_entries: 0
Slave_received_heartbeats: 0
Slave_heartbeat_period: 1800.000
Gtid_Pos:
*************************** 2. row ***************************
Connection_name: percona
Slave_SQL_State:
Slave_IO_State:
Master_Host: 127.0.0.1
Master_User: root
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: percona_mysql-bin.000005
Read_Master_Log_Pos: 107
Relay_Log_File: relay-bin-percona.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: percona_mysql-bin.000005
Slave_IO_Running: No
Slave_SQL_Running: No
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107
Relay_Log_Space: 248
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: 0
Retried_transactions: 0
Max_relay_log_size: 1073741824
Executed_log_entries: 0
Slave_received_heartbeats: 0
Slave_heartbeat_period: 1800.000
Gtid_Pos:
ãれを起動ã™ã‚‹ãŸã‚ã«[OK]を時間
> START ALL SLAVES;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
root@localhost [(none)]> show warnings;
+-------+------+-------------------------+
| Level | Code | Message |
+-------+------+-------------------------+
| Note | 1937 | SLAVE 'percona' started |
| Note | 1937 | SLAVE 'oracle' started |
+-------+------+-------------------------+
Relay_Master_Log_File: percona_mysql-bin.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Relay_Master_Log_File: oracle_mysql-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
ã ã‹ã‚‰ç§ãŸã¡ã¯ã„ãã¤ã‹ã®çжæ³ã‚’テストã—ã¦ã¿ã¾ã—ょã†ã€‚
Perconaマスター経由
use test;
CREATE TABLE `multi_test` (
`time_recorded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB;
MariaDBスレーブ
> show tables;
+----------------+
| Tables_in_test |
+----------------+
| multi_test |
+----------------+
Oracleã®MySQLã®ãƒžã‚¹ã‚¿ãƒ¼ã‚’経由ã—ã¦
use test;
CREATE TABLE `multi_test2` (
`time_recorded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB;
MariaDBスレーブ
> show tables;
+----------------+
| Tables_in_test |
+----------------+
| multi_test |
| multi_test2 |
+----------------+
作å“ãã®OKï¼
EXPLAIN SHOW
ã“れã¯ã‚€ã—ã‚ã€ãれãŒå®Ÿè¡Œã•れã¦ã„るクエリをã‚ャッãƒã™ã‚‹ã¾ã£ã™ã進むãŒã€ã„ã„ã§ã™ã€‚
> show explain for 17;
+------+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | sbtest | range | PRIMARY | PRIMARY | 4 | NULL | 99 | Using where |
+------+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
1 row in set, 1 warning (0.00 sec)
root@localhost [test]> show warnings;
+-------+------+----------------------------------------------------------+
| Level | Code | Message |
+-------+------+----------------------------------------------------------+
| Note | 1003 | SELECT SUM(K) from sbtest where id between 4997 and 5096 |
+-------+------+----------------------------------------------------------+
サイドノート:
カサンドラストレージエンジン
ç§ã¯ã“ã®ã“ã¨ã«ã¤ã„ã¦å¥½å¥‡å¿ƒã¨ãれãŒã©ã®ã‚ˆã†ã«memcacheã®çµŒç”±NoSQLã®ã¨InnoDBã®ã‚½ãƒªãƒ¥ãƒ¼ã‚·ãƒ§ãƒ³ã«é–¢ã™ã‚‹ã€‚
ç§ã¯ã“ã“ã§ãã®ä¸Šã®ãƒã‚¹ãƒˆã‚’æŒã£ã¦ã„る:http://anothermysqldba.blogspot.com/2013/04/nosql-php-memcache-innodb-mysql.htmlã‚’
ç§ã¯è‡ªåˆ†ã®ç’°å¢ƒã«ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—カサンドラセットã¨ã—ã¦ã“ã‚Œã«æˆ»ã£ã¦ãã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ç§ã¯ç†±å¿ƒã§ã™ãŒå¥½å¥‡å¿ƒæ—ºç››ã§ã¯ãªã„ã§ã™ã€‚
ユーザフィードãƒãƒƒã‚¯ãƒ—ラグ
ドã‚ュメンテーション㮠"クイックスタート" [mysqldãŒ]ã®ä¸‹ã®my.cnfファイルã«è¿½åŠ ã™ã‚‹ã¨è¨€ã†
[mysqld]
feedback=ON
port = 3310
socket = /tmp/mariadb-10.0.2.sock
130513 17:45:10 InnoDB: 10.0.2-MariaDB started; log sequence number 20183690
130513 17:45:10 [ERROR] /usr/local/mariadb-10.0.2/bin/mysqld: unknown variable 'feedback=ON'
ã“れã¯éžå¸¸ã«ç°¡å˜ã«åƒã„ã¦ã€ç§ã¯ã€ "クイックスタート"ã®å‘½ä»¤ã‚’削除ã—ãŸå¾Œã®ã‚ˆã†ã«ã€ã“ã®ã‚ˆã†ã«æœŸå¾…ã—ã¦ã„ã¾ã™ã€‚
> INSTALL PLUGIN feedback SONAME 'feedback.so';
> SELECT plugin_status FROM information_schema.plugins WHERE plugin_name = 'feedback';
+---------------+
| plugin_status |
+---------------+
| ACTIVE |
+---------------+
エラーãƒã‚°ã‚’介ã—ã¦ã€ã‚ãªãŸã‚‚ãれãŒå‹•作を確èªã§ãã¾ã™ã€‚
[注æ„]フィードãƒãƒƒã‚¯ãƒ—ラグ: 'http://mariadb.org/feedback_plugin/post'ã«ãƒ¬ãƒãƒ¼ãƒˆãŒé€ä¿¡ã•れã¾ã—ãŸ
[注æ„]フィードãƒãƒƒã‚¯ãƒ—ラグイン:サーãƒã¯ã€ 'OK'ç”ãˆ
全体ã®ç§ã®ç¾åœ¨ã®ãŠæ°—ã«å…¥ã‚Šã®æ©Ÿèƒ½æ‹¡å¼µã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚
基本的ãªã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯ã“れã§ã‚ã£ãŸ :
# Preconfiguration setup
shell> groupadd mariadb
shell> useradd -r -g mariadb mariadb
# Beginning of source-build specific instructions
shell> tar zxvf MariaDB-VERSION.tar.gz
shell> cd MariaDB-VERSION
shell> cmake .
shell> make
shell> make install DESTDIR="/usr/local/mariadb-10.0.2-tmp"
# End of source-build specific instructions
Build files have been written to: /usr/local/src/MySQL/MariaDB/10.0.2/mariadb-10.0.2
I do not like the results
-- Installing: /usr/local/mariadb-10.0.2-tmp/usr/local/mysql/
If DESTDIR is should install into that location not start with user under that location. This is a MySQL original issue as it does this with all versions of MySQL.
# Fix the odd/bug setup
shell> cd /usr/local/mariadb-10.0.2-tmp
shell> mv usr/local/mysql/ ../mariadb-10.0.2 ;
shell> cd ../; # rm -Rf mariadb-10.0.2-tmp
# Postinstallation setup
shell> cd /usr/local/mariadb-10.0.2
shell> chown -R mariadb .
shell> chgrp -R mariadb .
# Next command is optional
shell> cp support-files/my-small.cnf /etc/mariadb-10.0.2.cnf
shell> vi /etc/mariadb-10.0.2.cnf
port = 3310
socket = /tmp/mariadb-10.0.2.sock
shell> scripts/mysql_install_db --defaults-file=/etc/mariadb-10.0.2.cnf --basedir=/usr/local/mariadb-10.0.2 --skip-name-resolve --datadir=/var/lib/mariadb-10.0.2 --user=mariadb
shell> chown -R mariadb /var/lib/mariadb-10.0.2/*
shell> # bin/mysqld_safe --defaults-file=/etc/mariadb-10.0.2.cnf --user=mariadb --datadir=/var/lib/mariadb-10.0.2/ --port=3310 &
shell> # ./bin/mysql --port=3310 --socket=/tmp/mariadb-10.0.2.sock
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.2-MariaDB Source distribution
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
PlanetMySQL Voting: Vote UP / Vote DOWN