Friday, March 28, 2014

Instalación WebScaleSQL intentó ... parte 1

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

Bueno, si usted no ha visto las noticias, sin embargo, a continuación, por todos los medios seguir este enlace y leer sobre WebScaleSQL . Muchas gracias al equipo de ingenieros de Facebook, Twitter y Google por su ardua labor en esta. Tengo curiosidad por ver cómo se desarrolla más en el futuro, una vez que consigo que funcione.

Esto es lo que encontré hasta ahora. Yo quería que esto es un blog de éxito, sino que será la primera parte hasta que lo ejecuta.

Pensé que volvería a poner un poco cómo instalar WebScaleSQL para aquellos que son nuevos en Github nada de esto. Se necesita la retroalimentación de la comunidad después de todo, por lo que la comunidad necesita para ser capaz de instalar y probar.

Para este ejemplo Tomé la imagen de Virtual Box Oracle Linux pre-construido. Tuve uno ya, pero está disponible aquí: http://www.oracle.com/technetwork/server-storage/linux/downloads/vm-for-hol-1896500.html.

Debería ser obvio que WebScaleSQL no está diseñado para utilizarse en un VirtualBox en la producción, pero esto es sólo una demo. Supuse que eso significaba que la gente no tiene excusa para probarlo ya que cualquiera puede descargar y utilizar esto con VirtualBox . Tuve que permitir que el disco adicional que viene con la imagen de modo que haya suficiente espacio. Para formatear, particionar y montar los discos todas se pueden hacer a través de la utilidad de disco. El producto terminado para mi ejemplo está abajo.

[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/

El código para WebScaleSQL está disponible en Github . El archivo zip se puede descargar aquí . Elijo ver el código a través de los métodos del repositorio de código github. Si otras personas necesitan ayuda con las claves SSH ver la referencia Gitbhub página .

El paquete git no está disponible en Oracle Linux, pero eso se soluciona rápidamente si va a utilizar la versión 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

Una vez git y las teclas ssh están listos Puedes descargar:

[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.



Aceptar lo que sin embargo se decidió a obtener el código ... Nos permite ahora tratar de obtener instalado. Para que quede claro esto se debe nada nuevo, esto es una fuente básica de MySQL instalar, pero simplemente está usando el paquete WebScaleSQL. En esencia, sigue el mismo procedimiento que hice aquí antes.

Necesitaba un par de dependencias en este sistema limpia primero. Usted puede encontrar lo que necesita algunos así, todo depende de su sistema y el resultado del comando cmake continuación.


[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'
Aceptar lo que la siguiente fase (part 2) debe ser la siguiente vez que consigo el código de google para trabajar ...

Por cierto los denable_downloads deben descargar e instalar el gmock así pero también falla.

[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

Así que no está listo todavía .. pero yo pondremos en contacto con todos ustedes una vez que consigo que funcione. Tengo fe en que lo haré.

Instalación WebScaleSQL resuelto ... parte 2

Thursday, March 27, 2014

Percona NUBE HERRAMIENTAS

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

Así que me gusta mucho el hecho de que Percona es llegar y ofrecer soluciones para ayudar a analizar las preocupaciones o problemas con MySQL cloud.percona.com .

Es muy fácil de instalar. La forma más rápida es hacer que el repositorio YUM Percona instalado, tengo otro blog acerca de que si es necesario, por lo que tendrá la pt-agente instalado.

Esto se hace fácilmente, porque yo tenía un archivo my.cnf. Configurar para el usuario root, de lo contrario se tiene que configurar nombre de usuario y contraseña.

Acceda a cloud.percona.com primero y después ir a instalar el agente:

# 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
Tan simple como eso .. A continuación, sólo tiene que entrar de nuevo en el sitio web Percona https://cloud.percona.com para habilitar y ajustar cualquiera de sus configuraciones de agente por sistema.

Déle unos 15 minutos para recoger la primera cantidad de datos y entonces usted está todo listo para tener datos en la punta de los dedos. Usted sólo haga clic en el botón "Query Analytics" en la página web.

Dependiendo de su rama de MySQL obtendrá diferentes análisis, obviamente Percona preferiría utilizar Percona Servidor 5.5.34 o superior, con sus herramientas, pero funciona con todas MySQL.

Una vez que su agente lo envió datos a Percona, usted será capaz de mostrar gráficos en el Resumen de servidores por cada cargo de consulta, tiempo de consulta, tiempo de bloqueo, filas enviadas, registros examinados, longitud de la consulta, así como la información proporcionada a través del perfil de la consulta.

"Filesort, filesort en el disco, se unen completo, Análisis completo, éxitos de la cache, tablas temporales, tablas temporales en el disco están disponibles sólo para Percona Server. " - cloud.percona.com

Wednesday, March 26, 2014

MySQL y OS X instalar y quitar

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

Así que esto es en referencia a este error:
Sucede que correr a través de él, así que pensé ¿qué diablos probar hacia fuera con 5.7 también.
También tuve la oportunidad de reproducir este error con la versión más reciente DMR. (En el momento de esta prueba mysql-5.7.3-m13) que estaba usando la proporcionada DMG y el archivo tar.gz.

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

La DMG tiene un pequeño instalador y etc bonita, pero como se puede ver que no funcionaba.

Así que para probar la versión 5.5 tiene que quitar MySQL desde OS X

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

Yo sólo necesitaba esos pero este sitio tiene una lista de otras referencias, si lo necesita.

Tuve la oportunidad de confirmar que 5.5.36 Qué instalar y ejecutar. Por lo que son sólo de suerte por el momento si quieres una versión superior de MySQL.

Una nota .. Lea la pantalla de información o el archivo readme.txt. Proporciona información útil.

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)

Tuesday, March 11, 2014

Planificar el tiempo de inactividad de MySQL y de otras variables de estado para la crítica

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

Todos sabemos que, si bien MySQL es estable y puede funcionar durante mucho tiempo sin que se reinicie. De vez en cuando tenemos que reiniciar para que ajustar algunas variables o para actualizar sin embargo. Algunos podrían suponer que durante la noche es el mejor momento para hacer esto debido a que sus usuarios están dormidos. Sin embargo, a menudo la noche a la mañana también incluye copias de seguridad y otras secuencias de comandos crontab relacionados que podrían estar haciendo diferentes minería de datos y etc

Entonces, ¿cómo se puede obtener una guía sobre cuando se tiene la menor actividad en el servidor? Ahora cada aplicación y la base de datos son diferentes, por lo que deben tener en cuenta lo que la actividad relacionada se está ejecutando, en los distintos marcos temporales. Si usted comienza a registrar la variable de estado "Threads_connected" cada minuto de 5 a 10 minutos, de nuevo esto depende de la carga del sistema es una vez por hora podría estar bien, no tardará en reunir la cantidad de diferentes conexiones de MySQL a través de su tiempo conectado marco.

Esto se puede hacer una numerosa maneras. Ya se proporciona en muchas herramientas a nivel de empresa y se puede escribir scripts y etc, pero sólo para mantenerlo en MySQL. Voy a utilizar un evento y de rutina para este sencillo ejemplo.

Crear una tabla simple:

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;

Crear una rutina simple:

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 ;

Crear un evento simple:

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 ;

Ahora, pero la ejecución del ejemplo anterior, usted tendrá una tabla en la que se pueden seleccionar los valores de (probablemente poner en un gráfico o simplemente para su revisión) para que pueda ver cuando el menor número de conexiones existente en el servidor. Dependiendo de la aplicación y el tráfico que pueda mantener esta funcionando el tiempo suficiente para obtener una perspectiva válida y luego desactivar el evento.

select variable_value , time_recorded FROM threads_count;

Ahora usted puede tomar este curso un paso más allá, si usted no tiene las herramientas de la empresa, y mantener un registro de todas sus variables de estado para la revisión:

Tabla de valores:

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;

Rutina para recopilar valores:

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

Evento para ejecutar la rutina:

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 ;

Es posible que sólo quieren ciertos nombres de variables y valores para su revisión y se puede ajustar la consulta en la rutina en consecuencia. El tiempo de ejecución depende de sus necesidades, he usado una hora en este ejemplo.

Esto, por supuesto, va a generar una gran cantidad de información en el tiempo por lo que si podría ser necesaria una limpieza relevante de estas tablas con el tiempo. Todo depende de la frecuencia con que se conecte y revise la información proporcionada.

Mientras que usted verá un aumento constante de muchos de los valores debido a su crecimiento de los datos y el sistema de usar que también será capaz de identificar los picos de datos en los datos mientras que y correlacionar que a la aplicación y uso del sistema.

La empresa MySQL por ejemplo ya se graficará todos este tipo de información para usted, pero esta es una manera también puede hacerlo usted mismo con un poco de tiempo y la revisión de los datos.