Friday, March 28, 2014

WebScaleSQL安裝嘗試...第1部分

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

好吧,如果你還沒有看到這個消息還沒有,然後通過各種手段請點擊此鏈接,並閱讀有關WebScaleSQL 非常感謝工程師來自Facebook,Twitter和谷歌為他們在這個努力工作的團隊。 我很好奇,想看看這是如何發展多日後,一旦我得到它的工作。

以下是我遇到過這麼遠。 我想這是一個成功的博客文章,而是將第一部分,直到我得到它運行。

我想我會放了一點點如何安裝WebScaleSQL對你們這些新來的Github上的任何現象。 它需要來自社區的反饋畢竟,因此社會需要能夠安裝和嘗試。

在這個例子中我選擇了預建的Oracle Linux虛擬盒圖像。 我有一個了,但是它可以在這裡找到: 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.



行,所以無論你決定讓代碼...讓我們現在嘗試把它安裝。 需要明確的是,這是應該沒有什麼新的,這是一個基本的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'
行,所以下一階段(part 2)應該是下面的,一旦我得到了谷歌代碼工作...

順便說一句的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部分 

 

 

Thursday, March 27, 2014

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分鐘,以收集數據的第一個量,然後你都設置在你的指尖有數據。 您將只需點擊網站上提供的“查詢Analytics(分析)”按鈕。

這取決於你的MySQL分支,你會得到不同的分析,很明顯的Percona寧願你使用的Percona服務器34年5月5日或更高版本,他們的工具,但它適用於所有的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為好。
我還能夠重現此錯誤與最新的巨幕版。 (在本次測試的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

德馬吉有一個可愛的小安裝程序等,但你可以看到它沒有工作。

所以測試5.5版本,您必須從OS X的MySQL的刪除

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

我只是需要這些,但這個網站有其他引用的列表,如果你需要它。

我可以證實,36年5月5日就安裝和運行。 所以,你只是不走運的時刻,如果你想要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)

Wednesday, March 12, 2014

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的企業,例如已經將圖中所有此類信息對你,但是這是一種方式,你也可以做自己的數據一點時間和審查。