2014年3月28日金曜日

WebScaleSQLのインストールが試み...パート1

Original post: http://anothermysqldba.blogspot.com/2014/03/webscalesql-installation-attempted-part.html

まだニュースを参照していない場合だけでなく、すべての手段によって、このリンクをたどるとについて読んWebScaleSQL これについての彼らのハードワークのためのFacebook、Twitterと​​Googleのエンジニアのチームに感謝します。 私はそれを動作させるかつて私は、これは将来的にはより多くの開発をどのように見て好奇心旺盛です。

ここで私はこれまでに遭遇したものです。 私は、これが成功したブログの記事になりたかった、私はそれが動作して得るまで代わりに、一部1になります。

私は、新しいあなたのそれらのためにWebScaleSQLをインストールする方法を少し我慢すると考えましたGitHubの本のいずれか。 それは結局、コミュニティからのフィードバックがかかるので、コミュニティはインストールし、それを試してみることができる必要がある。

この例では、私は事前に構築されたOracleのLinux仮想ボックス画像を取った。 私はすでに1を持っていたが、それはここから入手可能です: http://www.oracle.com/technetwork/server-storage/linux/downloads/vm-for-hol-1896500.html。

それがあることは明らかであるべきWebScaleSQLが上で使用するためのものではありませんVirtualBoxの製造においては、これは単なるデモです。 私はそれが人々は誰もがダウンロードしてこれを使用することができますので、それを試してみるための言い訳がないことを意味しているとVirtualBoxを 私はあなたが十分なスペースを持っているようにイメージが付属して追加のディスクを有効にする必要がありました。 、パーティションをフォーマットし、すべてのディスクユーティリティを介して行うことができるディスクをマウントするには。 私の例のための完成品は以下の通りです。

[root@oraclelinux6 oracle]# ls -al /media/
drwx------ 3 oracle oracle 4096 Mar 27 16:19 webscaledisk
drwx------ 3 oracle oracle 4096 Mar 27 16:21 workspace
[root@oraclelinux6 oracle]# chmod 777 /media/workspace/
[root@oraclelinux6 oracle]# chmod 777 /media/webscaledisk/

のコードWebScaleSQLが提供されていますGitHubの zipファイルをダウンロードすることができ、ここで 私はGitHubのコードリポジトリのメソッドを経由してコードをチェックアウトすることを選択した。 他の人がSSHキーのヘルプが必要な場合はGitbhubのリファレンスを参照してくださいページを

gitのパッケージには、OracleのLinux上では使用できませんが、あなたはGitHubのバージョンを使用する場合は、その素早く解決される。

[oracle@oraclelinux6 ~]$ sudo bash
[root@oraclelinux6 oracle]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@oraclelinux6 oracle]# wget http://git-core.googlecode.com/files/git-1.7.10.1.tar.gz
[root@oraclelinux6 oracle]# tar -xvzf git-1.7.10.1.tar.gz
[root@oraclelinux6 oracle]# cd git-1.7.10.1
[root@oraclelinux6 git-1.7.10.1]# make prefix=/usr/local all
[root@oraclelinux6 git-1.7.10.1]# make prefix=/usr/local install
[root@oraclelinux6 git-1.7.10.1]# exit
$ git --version
git version 1.7.10.1

Gitとしたら、SSH鍵が準備ができているあなたがダウンロードすることができます。

[oracle@oraclelinux6 ~]$ cd /media/workspace/
[oracle@oraclelinux6 workspace]$ git clone https://github.com/webscalesql/webscalesql-5.6.git
Cloning into 'webscalesql-5.6'...
remote: Counting objects: 28637, done.
remote: Compressing objects: 100% (10926/10926), done.
remote: Total 28637 (delta 17074), reused 28419 (delta 16936)
Receiving objects: 100% (28637/28637), 48.01 MiB | 796 KiB/s, done.
Resolving deltas: 100% (17074/17074), done.



[OK]しかし、コードを取得することを決めた...私たちは、今ではインストールされて取得してみてましょう。 明確にするために、これは、これは基本的なMySQLのソースをインストール新しいものではないはずされているが、それだけでWebScaleSQLパッケージを使用しています。 私が行ったようにそれは基本的に同じ手順に従いますここの前に。

私が最初にこのクリーンなシステムには、いくつかの依存関係を必要としていました。 あなたはあなたにもいくつかを必要とするかもしれません、それはすべてあなたのシステムと、以下のCMakeのコマンドの結果に依存している。


[root@oraclelinux6 workspace]# yum -y install ncurses-devel readline-devel cmake gcc gcc-c++ bison-devel bison
[root@oraclelinux6 workspace]# wget http://googlemock.googlecode.com/files/gmock-1.6.0.zip
[root@oraclelinux6 workspace]# unzip gmock-1.6.0.zip
[root@oraclelinux6 workspace]# cd gmock-1.6.0
[root@oraclelinux6 gmock-1.6.0]# ./configure
[root@oraclelinux6 gmock-1.6.0]# make
[root@oraclelinux6 gmock-1.6.0]# make check
....
=====================================================
1 of 4 tests failed
Please report to googletestframework@googlegroups.com
=====================================================
make[2]: Leaving directory `/media/workspace/gmock-1.6.0/gtest'
make[1]: Leaving directory `/media/workspace/gmock-1.6.0/gtest'
[OK]をので、次の段階(part 2) 、私はGoogleのコードを動作させるため、一度、次のあるべき...

ところでdenable_downloadsはダウンロードしてインストールgmockをだけでなく、それはまた失敗する必要があります。

[root@oraclelinux6 workspace]# groupadd mysql
[root@oraclelinux6 workspace]# useradd -r -g mysql mysql
[root@oraclelinux6 workspace]# ln -s /media/workspace/webscalesql-5.6/ /usr/local/mysql
[root@oraclelinux6 workspace]# chown -R mysql:mysql webscalesql-5.6/
[root@oraclelinux6 workspace]# cd webscalesql-5.6/
[root@oraclelinux6 webscalesql-5.6]# cmake -DENABLE_DOWNLOADS=1 .
make
make install
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

そうではない準備だけでまだ..しかし、私はそれを動作かつて私はあなたのすべてに戻ってきます。 私は意志の信仰を持っている。

WebScaleSQLインストールで解決...パート2

2014年3月27日木曜日

Perconaクラウドツール

Original post: http://anothermysqldba.blogspot.com/2014/03/percona-cloud-tools.html

だから私は本当にPerconaは手を差し伸べるとしてMySQLの懸念や問題を分析するためのソリューションを提供しているという事実のようなcloud.percona.com

これは、インストールが非常に簡単です。 最速の方法は、私が持っている、Percona YUMレポがインストールされていることです別のブログ 、必要に応じてそのことについては、だから、PT-エージェントがインストールされています。

私はそうしないと、ユーザー名とパスワード情報を設定する必要が、rootユーザー用に設定。my.cnfファイルを持っていたので、これは簡単に行われていた。

にログインcloud.percona.comまず移動してエージェントをインストールする。

# pt-agent --install
Step 1 of 12: Verify the user is root: OK
Step 2 of 12: Check Perl module dependencies: OK
Step 3 of 12: Check for crontab: OK
Step 4 of 12: Verify pt-agent is not installed: OK
Step 5 of 12: Verify the API key:
Enter your API key: <API KEY HERE provided on the percona website>
Step 5 of 12: Verify the API key: OK
Step 6 of 12: Connect to MySQL: OK
Step 7 of 12: Check if MySQL is a slave: NO
Step 8 of 12: Create a MySQL user for the agent: OK
Step 9 of 12: Initialize /etc/percona/agent/my.cnf: OK
Step 10 of 12: Initialize /root/.pt-agent.conf: OK
Step 11 of 12: Create the agent: OK
Step 12 of 12: Run the agent: pt-agent has daemonized and is running as PID 16333:

--lib /var/lib/pt-agent
--log /var/log/pt-agent.log
--pid /var/run/pt-agent.pid

These values can change if a different configuration is received.
OK
INSTALLATION COMPLETE
そのような単純な..それからちょうどPerconaのウェブサイトに再度ログインhttps://cloud.percona.comシステムあたりのエージェントの設定を有効にして調整します。

データの最初の量を収集するために、それを約15分を与え、その後、すべてのあなたの指先でデータに設定されている。 あなただけのウェブサイト上で提供される「クエリ分析」ボタンをクリックします。

のMySQLブランチによっては、別の分析を取得し、明らかにPerconaは彼らのツールを使用してPerconaサーバー5.5.34以降を使用することを好むだろうが、それはすべてのMySQLで動作します。

あなたのエージェントいったん戻っPerconaにデータを送信された、クエリのプロファイルを介して提供クエリーカウントあたりのサーバーの概要のグラフ、照会時間、ロック時間、送信された行、調べ行、クエリの長​​さだけでなく、情報を表示することができます。

「ファイルソートはファイルソートがディスクにフル参加フルスキャンクエリキャッシュのヒット一時テーブルディスク上の一時テーブルのみ使用できますPerconaサーバー。 " - cloud.percona.com

MySQLとOS Xのインストールと削除

Original post: http://anothermysqldba.blogspot.com/2014/03/mysql-and-os-x-install-and-remove.html

だから、これはこのバグを参考​​にされています:
私はそれ全体を実行してしまったので、私は一体、同様に5.7でそれをテストするものを考え出した。
私はまた、最新のDMRバージョンでこのエラーを再現することができました。 (このテストのmysql-5.7.3-M13の時に)私が提供DMGとtar.gzファイルを使用していた。

dyld: Symbol not found: _strnlen
Referenced from: /usr/local/mysql/bin/my_print_defaults
Expected in: /usr/lib/libSystem.B.dylib

DMGは、ちょっといいインストーラとなどを持っていますが、ご覧のように、それはうまくいきませんでした。

ですから、OS XからMySQLを削除する必要が5.5バージョンをテストする

rm -rf /usr/local/mysql*
rm -rf /Library/StartupItems/MySQLCOM
rm -Rf /private/var/db/receipts/*mysql*

私はちょうどそれらを必要としていますが、このサイトではあなたがそれを必要とする場合、他の参考文献のリストがあります。

私は5.5.36をインストールして実行しないことを確認することができました。 あなたは、MySQLの上位バージョンが欲しいのであれば、あなたは、ちょっと残念でした。

一つのノート..情報画面またはreadme.txtファイルをお読みください。 これは、有用な情報を提供します。

mysql> select @@hostname;
+----------------------+
| @@hostname |
+----------------------+
| MacBook-Pro-15.local |
+----------------------+
1 row in set (0.01 sec)

mysql> select VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.5.36 |
+-----------+
1 row in set (0.00 sec)

2014年3月12日水曜日

レビューのためにMySQLのダウンタイムやその他のステータス変数の計画

Original post: http://anothermysqldba.blogspot.com/2014/03/planning-mysql-downtime-and-other.html

我々は、すべての中にMySQLが安定しており、再起動することなく、非常に長い時間実行できることを知っている。 時々、我々はいくつかの変数を調整したりもアップグレードのためにそれを再起動する必要があります。 いくつかは彼らのユーザが眠っているので、一晩これを実行するのに最適な時期であることを前提としてい可能性があります。 しかし、多くの場合、一晩もバックアップと異なるデータマイニング等を行うことができ、他のcrontab関連のスクリプトが含まれてい

それでは、どのようにして、サーバー上で最も活動があるときに指針を得ることができますか? 今、各アプリケーションとデータベースが異なるため、異なる時間枠の間に、実行されている元関連活動に考慮するための要件は。 あ なたが "THREADS_CONNECTED「ステータス変数に5から10分毎分を記録するために開始した場合は、再度、これはあなたのシステムが時間は大丈夫 かもしれませんしたら、すぐにあなたのログインにわたって異なるMySQL接続の量を収集し、時間でロードされた方法によって異なりますフレーム。

これは、多数の方法で行うことができる。 それは、すでに多くの企業レベルのツールで提供され、あなたはスクリプトやなどを書くことができますが、ちょうどMySQLでそれを維持する。 私はこの単純な例のイベントやルーチンを使用します。

簡単な表を作成します。

CREATE TABLE `threads_count` (
`threads_count_id` int(11) NOT NULL AUTO_INCREMENT,
`variable_value` varchar(255) DEFAULT NULL,
`time_recorded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`threads_count_id`)
) ENGINE=InnoDB;

簡単なルーチンを作成します。

delimiter //
CREATE PROCEDURE threads_tally()
BEGIN
INSERT INTO threads_count SELECT NULL , VARIABLE_VALUE , NOW() FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME IN ('Threads_connected');
END//
delimiter ;

単純なイベントを作成します。

SET GLOBAL event_scheduler = ON;
CREATE EVENT `threads_tally`
ON SCHEDULE EVERY 5 MINUTE
DISABLE ON SLAVE
COMMENT 'keeps a count of Threads_connected'
DO
CALL threads_tally();
DELIMITER ;

今が、上記の例を実装するには、あなたが(おそらくグラフに置くか、または単にレビューのため)から値を選択することができ、テーブルを持つことになりますので、接続数が最も少ないが、サーバー上に存在していたとき、あなたが見ることができます。 アプリケーションやトラフィックに応じて、十分な長さの有効な視点を得るし、イベントを無効にするには実行している、これを維持することができます。

select variable_value , time_recorded FROM threads_count;

今、あなたはもちろん、企業のツールを持っていない場合は、さらに一歩これを取るし、レビューのために自分のステータス変数をすべてのログを保存することができます。

値については、表:

CREATE TABLE `status_review` (
`status_review_id` int(11) NOT NULL AUTO_INCREMENT,
`variable_name` varchar(255) DEFAULT NULL,
`variable_value` varchar(255) DEFAULT NULL,
`time_recorded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`status_review_id`)
) ENGINE=InnoDB;

値を収集するためのルーチン:

delimiter //
CREATE PROCEDURE status_reviews()
BEGIN
INSERT INTO status_review SELECT NULL , VARIABLE_NAME, VARIABLE_VALUE , NOW() FROM information_schema.GLOBAL_STATUS;
END//
delimiter ;

日常的に実行するイベント:

SET GLOBAL event_scheduler = ON;
CREATE EVENT `status_reviews`
ON SCHEDULE EVERY 1 HOUR
DISABLE ON SLAVE
COMMENT 'keeps a eye on status values'
DO
CALL status_reviews();
DELIMITER ;

あなただけのレビューのために、特定の変数名と値をお勧めしますし、それに応じてルーチンの中でクエリを調整することができます。 実行時間がニーズに依存している、私は、この例では時間を使った。

このコースのそれは時間をかけてこれらのテーブルのうち、関連するいくつかのクリーニングが必要な場合がありますので、もし時間をかけて多くの情報を生成しようとして。 それはすべてあなたがログインして提供された情報を確認する頻度に依存します。

あなたが使用しているため、データの増加、システムの値の多くの着実な増加が表示されている間も、データ内のデータのスパイクを特定し、アプリケーションやシステムの使用にそれを関連付けることができるようになります。

例えばMySQLの企業は、すでにあなたのためにこの種の情報のすべてをグラフ化しますが、これはあなたにも、データの少しの時間と見直しとそれを自分で行うことができる方法です。