You are here

Feed aggregator

MySQL und MariaDB Schulung 2015/2016

FromDual.de - Fri, 2015-10-23 11:22
MySQL und MariaDB für Fortgeschrittene vom 23. bis 27. November 2015 in Berlin

Da unsere MySQL/MariaDB Schulung Anfangs Dezember in Berlin bereits ausgebucht ist, haben wir einen weiteren Termin für den 23. bis 27. November 2015 festgelegt.

Wenn Sie also sich oder ihr Team für 2016 in MySQL fit machen wollen, bietet sich Ihnen hiermit eine ideale Gelegenheit.

Folgenden Kursinhalt bieten wir an: MySQL für Fortgeschrittene

Anmelden können Sie sich wie üblich direkt bei der Heinlein Akademie.

Neue MySQL und MariaDB Schulungstermine 2016

Das MySQL und MariaDB Schulungsprogramm für 2016 steht weitgehend fest: MySQL und MariaDB Schulungsprogramm.

Sichern Sie sich also bereits jetzt Ihren Platz für das aktuelle Know-how bei unseren beiden Schulungspartnern in Essen und Berlin.

Neue Kurse: SQL und MySQL für Einsteiger 2016

Auf vielfachen Wunsch bieten wir 2016 neue auch eine Schulung für SQL-Einsteiger und MySQL- und MariaDB-Einsteiger an. Diese Kurse werden in Köln stattfinden. Die Termine werden demnächst bekannt gegeben. Wenn Sie sich bei uns melden, werden wir Sie persönlich informieren.

Taxonomy upgrade extras: mysqlmariadbtrainingschulungeinsteigerfortgeschritteneprofis

MySQL und MariaDB Schulung 2015/2016

FromDual.de - Fri, 2015-10-23 11:22
MySQL und MariaDB für Fortgeschrittene vom 23. bis 27. November 2015 in Berlin

Da unsere MySQL/MariaDB Schulung Anfangs Dezember in Berlin bereits ausgebucht ist, haben wir einen weiteren Termin für den 23. bis 27. November 2015 festgelegt.

Wenn Sie also sich oder ihr Team für 2016 in MySQL fit machen wollen, bietet sich Ihnen hiermit eine ideale Gelegenheit.

Folgenden Kursinhalt bieten wir an: MySQL für Fortgeschrittene

Anmelden können Sie sich wie üblich direkt bei der Heinlein Akademie.

Neue MySQL und MariaDB Schulungstermine 2016

Das MySQL und MariaDB Schulungsprogramm für 2016 steht weitgehend fest: MySQL und MariaDB Schulungsprogramm.

Sichern Sie sich also bereits jetzt Ihren Platz für das aktuelle Know-how bei unseren beiden Schulungspartnern in Essen und Berlin.

Neue Kurse: SQL und MySQL für Einsteiger 2016

Auf vielfachen Wunsch bieten wir 2016 neue auch eine Schulung für SQL-Einsteiger und MySQL- und MariaDB-Einsteiger an. Diese Kurse werden in Köln stattfinden. Die Termine werden demnächst bekannt gegeben. Wenn Sie sich bei uns melden, werden wir Sie persönlich informieren.

Taxonomy upgrade extras: mysqlmariadbtrainingschulungeinsteigerfortgeschritteneprofis

Migration of SQLite to MySQL

Cédric Bruderer - Mon, 2015-10-19 09:38

In my first Blog ever, I am going to cover the migration of a SQLite-Database to MySQL. The Tool used is MySQL-Workbench, which you can Download from the MySQL website. In this particular case, it is about the upgrade of mocenter 0.2 to 0.3.

In the Workbench on the right side, you have the button “Database Migration”. Once you click on it, the introduction to the migration wizard will show up.

Setting up source and target

On the bottom of the screen there is a button called “Start Migration”. Click it to get to the source selection.

On the first drop down menu choose “SQLite”. The menu will now change and give you the possibility to load a file. After you did this you can test the connection with the button on the bottom left, or go to the bottom right and click next.

You get a new menu, where you can choose your target of the database. You can use a stored connection or a new one. If you have no idea which connection type to use, TCP/IP usually works fine. Here I recommend you to test the connection, so you see if you can reach target. Then click next.

If the schema fetch does not return any error, you get to the schema selection.

There you have to select a target schema, before you can click next and go to fetch the source. Once you have done that too, click next once more.

Object selection

Now the database is ready to copy.

If you want to remove some of the tables from the migration, you can do this under “Show Selection”.

In case you see some warnings, you can ignore them.

Now click next and make sure there are no errors or failures, until you can select how to create the target database.

If you want to, you can create the SQL file to import the database structure somewhere else. I am just going to put it onto my server.

Clicking next after this step will create the database on the server. If you chose to create the SQL file, it would be created now as well.

Click next, when the creation is done, and you should get something, that looks like this picture. If you select a line, you will be shown the command that was executed.

This was the structure. Now to the data:

To transfer your data from the SQLite directly into the MySQL-Database, you can make an online copy. If you want to, or have to, do it from the command line you could also make a bash file.

If you click the option “Truncate target tables”, all the tables that already exist will be cleared of any data, so be careful using that checkbox.

Once complete, you should get report that looks somewhat like this.

------------------------------------------------------------------------------------ MySQL Workbench Migration Wizard Report Date: Sun Oct 18 17:36:53 2015 Source: SQLite 1.0.0 Target: MySQL 5.6.24 ------------------------------------------------------------------------------------ I. Migration 1. Summary Number of migrated schemas: 1 1. mocenter Source Schema: mocenter - Tables: 10 - Triggers: 0 - Views: 0 - Stored Procedures: 0 - Functions: 0 2. Migration Issues - versions warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - PRIMARY warning Truncated key column length for column from 0 to 255 - nodes warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - name_ui warning Truncated key column length for column from 0 to 255 - clusters warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - cluster_name warning Truncated key column length for column from 0 to 255 - vips warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - ip_address warning Truncated key column length for column from 0 to 255 - servers warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - server_name warning Truncated key column length for column from 0 to 255 - users warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - login_name warning Truncated key column length for column from 0 to 255 - moc_identifier warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - PRIMARY warning Truncated key column length for column from 0 to 255 - checks warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL.warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - PRIMARY warning Truncated key column length for column from 0 to 255 - name_dc warning Truncated key column length for column from 0 to 255 - jobs warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. 3. Object Creation Issues 4. Migration Details 4.1. Table mocenter.versions (versions) Columns: - version LONGTEXT - mr_version INT NULL - timestamp INT NULL Foreign Keys: Indices: - PRIMARY (version(255)) 4.2. Table mocenter.licenses (licenses) Columns: - license LONGTEXT NULL Foreign Keys: Indices: 4.3. Table mocenter.nodes (nodes) Columns: - node_id INT - name LONGTEXT NULL - last_change_ts INT NULL - status LONGTEXT NULL - node_type LONGTEXT NULL - hostname LONGTEXT NULL - basedir LONGTEXT NULL - datadir LONGTEXT NULL - my_cnf LONGTEXT NULL - port INT NULL - database_user LONGTEXT NULL - database_user_password LONGTEXT NULL - error_log LONGTEXT NULL - pid_file LONGTEXT NULL - read_only INT NULL - server_id INT NULL - role_id INT NULL - cluster_id INT NULL - master_id INT NULL Foreign Keys: Indices: - PRIMARY (node_id) - name_ui (name(255)) 4.4. Table mocenter.clusters (clusters) Columns: - cluster_id INT - name LONGTEXT NULL - last_change_ts INT NULL - type INT NULL Foreign Keys: Indices: - PRIMARY (cluster_id) - cluster_name (name(255)) 4.5. Table mocenter.vips (vips) Columns: - vip_id INT - ip_address LONGTEXT NULL - name LONGTEXT NULL - ipaddr_type INT NULL - interface LONGTEXT NULL - alias INT NULL - primary_id INT NULL - failover_id INT NULL - location_id INT NULL - cluster_id INT NULL - last_change_ts INT NULL - fo_sync_only INT NULL - fo_wait_sync INT NULL Foreign Keys: Indices: - PRIMARY (vip_id) - ip_address (ip_address(255)) 4.6. Table mocenter.servers (servers) Columns: - server_id INT - name LONGTEXT NULL - default_ip LONGTEXT NULL - os_user LONGTEXT NULL - cluster_id INT NULL - last_change_ts INT NULL - myenv_basedir LONGTEXT NULL Foreign Keys: Indices: - PRIMARY (server_id) - server_name (name(255)) 4.7. Table mocenter.users (users) Columns: - user_id INT - login_name LONGTEXT NULL - password_hash LONGTEXT NULL - email_address LONGTEXT NULL - first_name LONGTEXT NULL - last_name LONGTEXT NULL - mobile LONGTEXT NULL - role_id INT NULL Foreign Keys: Indices: - PRIMARY (user_id) - login_name (login_name(255)) 4.8. Table mocenter.moc_identifier (moc_identifier) Columns: - moc_identifier LONGTEXT Foreign Keys: Indices: - PRIMARY (moc_identifier(255)) 4.9. Table mocenter.checks (checks) Columns: - unit_id INT - type LONGTEXT NULL - name LONGTEXT - last_check_ts INT NULL - last_check_status LONGTEXT NULL - last_successful_check_ts INT NULL - last_successful_check_status LONGTEXT NULL Foreign Keys: Indices: - PRIMARY (unit_id, name(255)) - name_dc (name(255)) 4.10. Table mocenter.jobs (jobs) Columns: - job_id INT - name LONGTEXT NULL - server LONGTEXT NULL - pid INT NULL - start_ts INT NULL - status LONGTEXT NULL - check_interval INT NULL - last_check_ts INT NULL - end_ts INT NULL - error_code INT NULL - error_message LONGTEXT NULL - command LONGTEXT NULL Foreign Keys: Indices: - PRIMARY (job_id) II. Data Copy - `mocenter`.`moc_identifier` Succeeded : copied 1 of 1 rows from "mocenter"."moc_identifier" - `mocenter`.`clusters` Succeeded : copied 1 of 1 rows from "mocenter"."clusters" - `mocenter`.`jobs` Succeeded : copied 0 of 0 rows from "mocenter"."jobs" - `mocenter`.`users` Succeeded : copied 1 of 1 rows from "mocenter"."users" - `mocenter`.`vips` Succeeded : copied 1 of 1 rows from "mocenter"."vips" - `mocenter`.`versions` Succeeded : copied 2 of 2 rows from "mocenter"."versions" - `mocenter`.`servers` Succeeded : copied 2 of 2 rows from "mocenter"."servers" - `mocenter`.`checks` Succeeded : copied 46 of 46 rows from "mocenter"."checks" - `mocenter`.`licenses` Succeeded : copied 1 of 1 rows from "mocenter"."licenses" Conclusion

Migrating from SQLite to MySQL is very easy when using MySQL Workbench.

Taxonomy upgrade extras: focmmmigration

Migration of SQLite to MySQL

Cédric Bruderer - Mon, 2015-10-19 09:38

In my first Blog ever, I am going to cover the migration of a SQLite-Database to MySQL. The Tool used is MySQL-Workbench, which you can Download from the MySQL website. In this particular case, it is about the upgrade of mocenter 0.2 to 0.3.

In the Workbench on the right side, you have the button “Database Migration”. Once you click on it, the introduction to the migration wizard will show up.

Setting up source and target

On the bottom of the screen there is a button called “Start Migration”. Click it to get to the source selection.

On the first drop down menu choose “SQLite”. The menu will now change and give you the possibility to load a file. After you did this you can test the connection with the button on the bottom left, or go to the bottom right and click next.

You get a new menu, where you can choose your target of the database. You can use a stored connection or a new one. If you have no idea which connection type to use, TCP/IP usually works fine. Here I recommend you to test the connection, so you see if you can reach target. Then click next.

If the schema fetch does not return any error, you get to the schema selection.

There you have to select a target schema, before you can click next and go to fetch the source. Once you have done that too, click next once more.

Object selection

Now the database is ready to copy.

If you want to remove some of the tables from the migration, you can do this under “Show Selection”.

In case you see some warnings, you can ignore them.

Now click next and make sure there are no errors or failures, until you can select how to create the target database.

If you want to, you can create the SQL file to import the database structure somewhere else. I am just going to put it onto my server.

Clicking next after this step will create the database on the server. If you chose to create the SQL file, it would be created now as well.

Click next, when the creation is done, and you should get something, that looks like this picture. If you select a line, you will be shown the command that was executed.

This was the structure. Now to the data:

To transfer your data from the SQLite directly into the MySQL-Database, you can make an online copy. If you want to, or have to, do it from the command line you could also make a bash file.

If you click the option “Truncate target tables”, all the tables that already exist will be cleared of any data, so be careful using that checkbox.

Once complete, you should get report that looks somewhat like this.

------------------------------------------------------------------------------------ MySQL Workbench Migration Wizard Report Date: Sun Oct 18 17:36:53 2015 Source: SQLite 1.0.0 Target: MySQL 5.6.24 ------------------------------------------------------------------------------------ I. Migration 1. Summary Number of migrated schemas: 1 1. mocenter Source Schema: mocenter - Tables: 10 - Triggers: 0 - Views: 0 - Stored Procedures: 0 - Functions: 0 2. Migration Issues - versions warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - PRIMARY warning Truncated key column length for column from 0 to 255 - nodes warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - name_ui warning Truncated key column length for column from 0 to 255 - clusters warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - cluster_name warning Truncated key column length for column from 0 to 255 - vips warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - ip_address warning Truncated key column length for column from 0 to 255 - servers warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - server_name warning Truncated key column length for column from 0 to 255 - users warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - login_name warning Truncated key column length for column from 0 to 255 - moc_identifier warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - PRIMARY warning Truncated key column length for column from 0 to 255 - checks warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL.warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. - PRIMARY warning Truncated key column length for column from 0 to 255 - name_dc warning Truncated key column length for column from 0 to 255 - jobs warning Source table has a PRIMARY KEY allowing NULL values, which is not supported by MySQL. Column was changed to NOT NULL. 3. Object Creation Issues 4. Migration Details 4.1. Table mocenter.versions (versions) Columns: - version LONGTEXT - mr_version INT NULL - timestamp INT NULL Foreign Keys: Indices: - PRIMARY (version(255)) 4.2. Table mocenter.licenses (licenses) Columns: - license LONGTEXT NULL Foreign Keys: Indices: 4.3. Table mocenter.nodes (nodes) Columns: - node_id INT - name LONGTEXT NULL - last_change_ts INT NULL - status LONGTEXT NULL - node_type LONGTEXT NULL - hostname LONGTEXT NULL - basedir LONGTEXT NULL - datadir LONGTEXT NULL - my_cnf LONGTEXT NULL - port INT NULL - database_user LONGTEXT NULL - database_user_password LONGTEXT NULL - error_log LONGTEXT NULL - pid_file LONGTEXT NULL - read_only INT NULL - server_id INT NULL - role_id INT NULL - cluster_id INT NULL - master_id INT NULL Foreign Keys: Indices: - PRIMARY (node_id) - name_ui (name(255)) 4.4. Table mocenter.clusters (clusters) Columns: - cluster_id INT - name LONGTEXT NULL - last_change_ts INT NULL - type INT NULL Foreign Keys: Indices: - PRIMARY (cluster_id) - cluster_name (name(255)) 4.5. Table mocenter.vips (vips) Columns: - vip_id INT - ip_address LONGTEXT NULL - name LONGTEXT NULL - ipaddr_type INT NULL - interface LONGTEXT NULL - alias INT NULL - primary_id INT NULL - failover_id INT NULL - location_id INT NULL - cluster_id INT NULL - last_change_ts INT NULL - fo_sync_only INT NULL - fo_wait_sync INT NULL Foreign Keys: Indices: - PRIMARY (vip_id) - ip_address (ip_address(255)) 4.6. Table mocenter.servers (servers) Columns: - server_id INT - name LONGTEXT NULL - default_ip LONGTEXT NULL - os_user LONGTEXT NULL - cluster_id INT NULL - last_change_ts INT NULL - myenv_basedir LONGTEXT NULL Foreign Keys: Indices: - PRIMARY (server_id) - server_name (name(255)) 4.7. Table mocenter.users (users) Columns: - user_id INT - login_name LONGTEXT NULL - password_hash LONGTEXT NULL - email_address LONGTEXT NULL - first_name LONGTEXT NULL - last_name LONGTEXT NULL - mobile LONGTEXT NULL - role_id INT NULL Foreign Keys: Indices: - PRIMARY (user_id) - login_name (login_name(255)) 4.8. Table mocenter.moc_identifier (moc_identifier) Columns: - moc_identifier LONGTEXT Foreign Keys: Indices: - PRIMARY (moc_identifier(255)) 4.9. Table mocenter.checks (checks) Columns: - unit_id INT - type LONGTEXT NULL - name LONGTEXT - last_check_ts INT NULL - last_check_status LONGTEXT NULL - last_successful_check_ts INT NULL - last_successful_check_status LONGTEXT NULL Foreign Keys: Indices: - PRIMARY (unit_id, name(255)) - name_dc (name(255)) 4.10. Table mocenter.jobs (jobs) Columns: - job_id INT - name LONGTEXT NULL - server LONGTEXT NULL - pid INT NULL - start_ts INT NULL - status LONGTEXT NULL - check_interval INT NULL - last_check_ts INT NULL - end_ts INT NULL - error_code INT NULL - error_message LONGTEXT NULL - command LONGTEXT NULL Foreign Keys: Indices: - PRIMARY (job_id) II. Data Copy - `mocenter`.`moc_identifier` Succeeded : copied 1 of 1 rows from "mocenter"."moc_identifier" - `mocenter`.`clusters` Succeeded : copied 1 of 1 rows from "mocenter"."clusters" - `mocenter`.`jobs` Succeeded : copied 0 of 0 rows from "mocenter"."jobs" - `mocenter`.`users` Succeeded : copied 1 of 1 rows from "mocenter"."users" - `mocenter`.`vips` Succeeded : copied 1 of 1 rows from "mocenter"."vips" - `mocenter`.`versions` Succeeded : copied 2 of 2 rows from "mocenter"."versions" - `mocenter`.`servers` Succeeded : copied 2 of 2 rows from "mocenter"."servers" - `mocenter`.`checks` Succeeded : copied 46 of 46 rows from "mocenter"."checks" - `mocenter`.`licenses` Succeeded : copied 1 of 1 rows from "mocenter"."licenses" Conclusion

Migrating from SQLite to MySQL is very easy when using MySQL Workbench.

MySQL Environment MyEnv 1.2.2 has been released

FromDual.en - Mon, 2015-10-12 17:48

FromDual has the pleasure to announce the release of the new version 1.2.2 of its popular MySQL, Galera Cluster, MariaDB and Percona Server multi-instance environment MyEnv.

The new MyEnv can be downloaded here.

In the inconceivable case that you find a bug in the MyEnv please report it to our bug tracker.

Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

Upgrade from 1.1.x to 1.2.2 # cd ${HOME}/product # tar xf /download/myenv-1.2.2.tar.gz # rm -f myenv # ln -s myenv-1.2.2 myenv

If you are using plug-ins for showMyEnvStatus create all the links in the new directory structure:

cd ${HOME}/product/myenv ln -s ../../utl/oem_agent.php plg/showMyEnvStatus/
Changes in MyEnv 1.2.2 MyEnv
  • IP addresses are shown in up.
  • All values from [default] section should be inherited to [dbname] section.
  • Configuration file parser made more robust.
  • Empty my.cnf is caught correctly now.
MyEnv Installer
  • Mac OSX findings fixed in installer.
  • Fixed suppressed mysql_install_db error output problem.
  • Missing libaio library is found in installer now.
  • Check for missing /var/run/mysqld directory added.
  • Installation script mysql_install_db is called with --no-defaults now to avoid interference with other configuration files.
MyEnv Utilities
  • Script log_maintenance.php will not abort when having a problem with one log file but continue.
  • Help examples and template improved for log_maintenance.php.
  • Function check for mb_strlen added for log_maintenance.php.
  • Script option --truncate with too many lines leads to out of memory and takes ages. Fixed this by limiting lines to 10000 in log_maintenance.php.
  • But in drop_partition.php was fixed.

For subscriptions of commercial use of MyEnv please get in contact with us.

Taxonomy upgrade extras: myenvoperationMySQL Operationsmulti instanceconsolidationtestingupgraderelease

MySQL Environment MyEnv 1.2.2 has been released

FromDual.en - Mon, 2015-10-12 17:48

FromDual has the pleasure to announce the release of the new version 1.2.2 of its popular MySQL, Galera Cluster, MariaDB and Percona Server multi-instance environment MyEnv.

The new MyEnv can be downloaded here.

In the inconceivable case that you find a bug in the MyEnv please report it to our bug tracker.

Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

Upgrade from 1.1.x to 1.2.2 # cd ${HOME}/product # tar xf /download/myenv-1.2.2.tar.gz # rm -f myenv # ln -s myenv-1.2.2 myenv

If you are using plug-ins for showMyEnvStatus create all the links in the new directory structure:

cd ${HOME}/product/myenv ln -s ../../utl/oem_agent.php plg/showMyEnvStatus/
Changes in MyEnv 1.2.2 MyEnv
  • IP addresses are shown in up.
  • All values from [default] section should be inherited to [dbname] section.
  • Configuration file parser made more robust.
  • Empty my.cnf is caught correctly now.
MyEnv Installer
  • Mac OSX findings fixed in installer.
  • Fixed suppressed mysql_install_db error output problem.
  • Missing libaio library is found in installer now.
  • Check for missing /var/run/mysqld directory added.
  • Installation script mysql_install_db is called with --no-defaults now to avoid interference with other configuration files.
MyEnv Utilities
  • Skript log_maintenance.php will not abort when having a problem with one log file but continue.
  • Help examples and template improved for log_maintenance.php.
  • Function check for mb_strlen added for log_maintenance.php.
  • Skript option --truncate with too many lines leads to out of memory and takes ages. Fixed this by limiting lines to 10000 in log_maintenance.php.
  • But in drop_partition.php was fixed.

For subscriptions of commercial use of MyEnv please get in contact with us.

Taxonomy upgrade extras: myenvoperationMySQL Operationsmulti instanceconsolidationtestingupgrade

Galera Cluster für MySQL/MariaDB Schulung

FromDual.de - Mon, 2015-08-24 16:10

Galera Cluster ist DIE synchrone Hochverfügbarkeitslösung für MySQL und MariaDB. Immer mehr MySQL-Administratoren und -Entwickler sind daher bestrebt, sich auch in diesem Umfeld Wissen anzueignen.

Mit der Galera Cluster für MySQL/MariaDB Schulung geht FromDual auf diese Bedürfnisse ein.

Die nächste Galera Cluster Schulung findet am Dienstag und Mittwoch 29./30. September 2015 im Linuxhotel in Essen (D) statt.

In unserer zweitägigen workshopartigen Schulung werden folgende Themen behandelt.

Galera Cluster Übersicht
  • MySQL Hochverfügbarkeitslösungen Übersicht
  • Cluster Konzepte
  • Was ist Galera Cluster

Galera Cluster Betrieb
  • Installation
  • Konfiguration
  • Setup
  • Betrieb
  • Galera Cluster Upgrade
  • Betriebsarten
  • Backup und Restore
  • Performance und Performance Tuning
  • Überwachung

Load Balancing
  • Aufsetzen des Load Balancers (HA-Proxy)
  • Konfiguration
  • Überwachung
  • Betrieb

Galera Cluster fortgeschrittene Themen
  • Skalierbarkeit
  • Sicherheit
  • Galera Cluster und MySQL Replikation
  • Konfiguration im Detail
  • Interne Galera Architektur
  • Aussichten und neue Funktionalitäten

Für diese Galera Cluster Schulung können sich direkt beim Linuxhotel anmelden.

Taxonomy upgrade extras: galeraclusterschulungmysqlmariadb

Galera Cluster für MySQL/MariaDB Schulung

FromDual.de - Mon, 2015-08-24 16:10

Galera Cluster ist DIE synchrone Hochverfügbarkeitslösung für MySQL und MariaDB. Immer mehr MySQL-Administratoren und -Entwickler sind daher bestrebt, sich auch in diesem Umfeld Wissen anzueignen.

Mit der Galera Cluster für MySQL/MariaDB Schulung geht FromDual auf diese Bedürfnisse ein.

Die nächste Galera Cluster Schulung findet am Dienstag und Mittwoch 29./30. September 2015 im Linuxhotel in Essen (D) statt.

In unserer zweitägigen workshopartigen Schulung werden folgende Themen behandelt.

Galera Cluster Übersicht
  • MySQL Hochverfügbarkeitslösungen Übersicht
  • Cluster Konzepte
  • Was ist Galera Cluster

Galera Cluster Betrieb
  • Installation
  • Konfiguration
  • Setup
  • Betrieb
  • Galera Cluster Upgrade
  • Betriebsarten
  • Backup und Restore
  • Performance und Performance Tuning
  • Überwachung

Load Balancing
  • Aufsetzen des Load Balancers (HA-Proxy)
  • Konfiguration
  • Überwachung
  • Betrieb

Galera Cluster fortgeschrittene Themen
  • Skalierbarkeit
  • Sicherheit
  • Galera Cluster und MySQL Replikation
  • Konfiguration im Detail
  • Interne Galera Architektur
  • Aussichten und neue Funktionalitäten

Für diese Galera Cluster Schulung können sich direkt beim Linuxhotel anmelden.

Taxonomy upgrade extras: galeraclusterschulungmysqlmariadb

FromDual mit Neuem zu MySQL und MariaDB

FromDual.de - Mon, 2015-08-24 10:30

MySQL/MariaDB Schulungstermine

Im Herbst 2015 bieten wir wieder viele interessante und spannende MySQL/MariaDB Kurse an.

Falls Sie Interesse haben, an diesen Schulungen teilzunehmen, bitten wir Sie, Sich schnell anzumelden, um Sich Ihren Platz zu sichern. Es sind nur noch wenige Plätze frei.

Folgende Kurse finden im Herbst statt:

MySQL für Fortgeschrittene vom 31. August - 4. September 2015 im LinuxHotel in Essen. Hier anmelden.

MySQL für Fortgeschrittene vom 14. - 18. September 2015 im LinuxHotel in Essen. Hier anmelden.

Galera Cluster für MySQL vom 04. – 05. November 2015 im LinuxHotel in Essen. Hier anmelden.

Bitte vermerken Sie unter Anmerkungen, dass Sie über den FromDual Newsletter auf das Angebot aufmerksam gemacht wurden.

Alle übrigen Schulungstermine finden Sie unter MySQL/MariaDB Schulung.

MySQL/MariaDB Vorträge

FromDual war dieses Jahr auf der SLAC (SLAC) mit zwei Vorträgen vertreten. Die Folien von der SLAC sind nun online. Sie finden sie wie immer unter Präsentationen.

Neue Software Releases für MySQL/MariaDB

Wir freuen uns den Release der neuen Versionen 0.10.4 des Performance Monitor für MySQL und MariaDB sowie 1.2.2 des FromDual Backup Manager.

Taxonomy upgrade extras: mysqlmariadbschulungtraininggalerampmfromdual_brmanfpmmmbrman

FromDual mit Neuem zu MySQL und MariaDB

FromDual.de - Mon, 2015-08-24 10:30

MySQL/MariaDB Schulungstermine

Im Herbst 2015 bieten wir wieder viele interessante und spannende MySQL/MariaDB Kurse an.

Falls Sie Interesse haben, an diesen Schulungen teilzunehmen, bitten wir Sie, Sich schnell anzumelden, um Sich Ihren Platz zu sichern. Es sind nur noch wenige Plätze frei.

Folgende Kurse finden im Herbst statt:

MySQL für Fortgeschrittene vom 31. August - 4. September 2015 im LinuxHotel in Essen. Hier anmelden.

MySQL für Fortgeschrittene vom 14. - 18. September 2015 im LinuxHotel in Essen. Hier anmelden.

Galera Cluster für MySQL vom 04. – 05. November 2015 im LinuxHotel in Essen. Hier anmelden.

Bitte vermerken Sie unter Anmerkungen, dass Sie über den FromDual Newsletter auf das Angebot aufmerksam gemacht wurden.

Alle übrigen Schulungstermine finden Sie unter MySQL/MariaDB Schulung.

MySQL/MariaDB Vorträge

FromDual war dieses Jahr auf der SLAC (SLAC) mit zwei Vorträgen vertreten. Die Folien von der SLAC sind nun online. Sie finden sie wie immer unter Präsentationen.

Neue Software Releases für MySQL/MariaDB

Wir freuen uns den Release der neuen Versionen 0.10.4 des Performance Monitor für MySQL und MariaDB sowie 1.2.2 des FromDual Backup Manager.

Taxonomy upgrade extras: mysqlmariadbschulungtraininggaleramysql_bmanmpm

FromDual Performance Monitor for MySQL and MariaDB 0.10.5 has been released

FromDual.en - Thu, 2015-08-06 18:29

FromDual has the pleasure to announce the release of the new version 0.10.5 of its popular Database Performance Monitor for MySQL, MariaDB, Galera Cluster and Percona Server fpmmm.

You can download fpmmm from here.

In the inconceivable case that you find a bug in fpmmm please report it to our Bug-tracker.

Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

This release contains various bug fixes and improvements. The previous release had some major bugs so we recommend to upgrade...

New installation of fpmmm v0.10.5

Please follow our mpm installation guide. A specific fpmmm installation guide will follow with the next version.

Prerequisites CentOS 6
# yum install php-cli php-process php-mysqli # cat << _EOF >/etc/php.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm yum update yum install zabbix-sender
CentOS 7 # yum install php-cli php-process php-mysqli # cat << _EOF >/etc/php.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm yum update yum install zabbix-sender
Ubuntu 14.04
# apt-get install php5-cli php5-mysqlnd php5-curl # cat << _EOF >/etc/php5/cli/conf.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF apt-get install zabbix-agent
OpenSuSE 13.1
# zypper install php5 php5-posix php5-mysql php5-pcntl php5-curl #cat << _EOF >/etc/php5/conf.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF zypper addrepo http://download.opensuse.org/repositories/server:/monitoring/openSUSE_13.1 server_monitoring zypper update zypper install zabbix-agent
Upgrade from fpmmm 0.10.x to fpmmm 0.10.5 # cd /opt # tar xf /download/fpmmm-0.10.5.tar.gz # rm -f fpmmm # ln -s fpmmm-0.10.5 fpmmm

The following templates in your Zabbix monitor should be replaced. Before you replace the templates it is a good idea to first delete all triggers...

  • tpl/Template_FromDual.MySQL.fpmmm.xml
  • tpl/Template_FromDual.MySQL.innodb.xml
  • tpl/Template_FromDual.MySQL.master.xml
  • tpl/Template_FromDual.MySQL.myisam.xml
  • tpl/Template_FromDual.MySQL.mysql.xml
  • tpl/Template_FromDual.MySQL.server.xml
  • tpl/Template_FromDual.MySQL.slave.xml
Changes in fpmmm v0.10.5 fpmmm agent
  • Better and more verbose error handling in various modules.
  • Directory for log file is created automatically if it does not exist yet.
  • All broken SQL queries (from 0.10.4) fixed again.
  • Add delay for not so frequent changing data.
  • Several triggers which complained after restart are fixed now.
  • Connections to database were now reduced to the minimum.
  • Links for templates fixed.
  • Innodb_flush_log_at_trx_commit, log_queries_not_using_indexes and character_set_server triggers disabled by default.
  • Also sendCachedData is now checked for too big cache file. Bug from swd.
Slave module
  • Slave error messages are caught and sent to the monitor.
  • Warning is written to the log file if slave module is configured without being a slave.
  • New slave status is reported correctly now.
  • Seconds_behind_master is now only sent when running.
Master module
  • New trigger for binlog_format = MIXED and replication filtering added.
  • Severity increased on STATEMENT based filtering added.
  • Regexp bug fixed.
  • Master without binary log fixed.
MySQL module
  • Old broken triggers fixed.
Server module
  • IOPS graph added.
  • Device sda5 removed.
  • I/O statistics calculation improved.
  • I/O r/w wait experimental items implemented.
  • CPU count added.
  • NUMA and virtualization information added.
InnoDB module
  • innodb_flush_method item added.
  • Trigger for innodb_flush_method added.
  • innodb_force_recovery trigger severity increased.
  • innodb_log_files_in_group item added for log traffic threshold.
  • InnoDB transaction log traffic trigger and graph added.

For subscriptions of commercial use of fpmmm please get in contact with us.

Taxonomy upgrade extras: mysqlperformancemonitormonitoringfpmmmmaasperformance monitormpmrelease

FromDual Performance Monitor for MySQL and MariaDB 0.10.5 has been released

FromDual.en - Thu, 2015-08-06 18:29
Taxonomy upgrade extras: mysqlperformancemonitormonitoringfpmmmmaasperformance monitormpm

FromDual has the pleasure to announce the release of the new version 0.10.5 of its popular Database Performance Monitor for MySQL, MariaDB, Galera Cluster and Percona Server fpmmm.

You can download fpmmm from here.

In the inconceivable case that you find a bug in fpmmm please report it to our Bug-tracker.

Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

This release contains various bug fixes and improvements. The previous release had some major bugs so we recommend to upgrade...

New installation of fpmmm v0.10.5

Please follow our mpm installation guide. A specific fpmmm installation guide will follow with the next version.

Prerequisites CentOS 6
# yum install php-cli php-process php-mysqli # cat << _EOF >/etc/php.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm yum update yum install zabbix-sender
CentOS 7 # yum install php-cli php-process php-mysqli # cat << _EOF >/etc/php.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm yum update yum install zabbix-sender
Ubuntu 14.04
# apt-get install php5-cli php5-mysqlnd php5-curl # cat << _EOF >/etc/php5/cli/conf.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF apt-get install zabbix-agent
OpenSuSE 13.1
# zypper install php5 php5-posix php5-mysql php5-pcntl php5-curl #cat << _EOF >/etc/php5/conf.d/fpmmm.ini variables_order = "EGPCS" date.timezone = 'Europe/Zurich' _EOF zypper addrepo http://download.opensuse.org/repositories/server:/monitoring/openSUSE_13.1 server_monitoring zypper update zypper install zabbix-agent
Upgrade from fpmmm 0.10.x to fpmmm 0.10.5 # cd /opt # tar xf /download/fpmmm-0.10.5.tar.gz # rm -f fpmmm # ln -s fpmmm-0.10.5 fpmmm

The following templates in your Zabbix monitor should be replaced. Before you replace the templates it is a good idea to first delete all triggers...

  • tpl/Template_FromDual.MySQL.fpmmm.xml
  • tpl/Template_FromDual.MySQL.innodb.xml
  • tpl/Template_FromDual.MySQL.master.xml
  • tpl/Template_FromDual.MySQL.myisam.xml
  • tpl/Template_FromDual.MySQL.mysql.xml
  • tpl/Template_FromDual.MySQL.server.xml
  • tpl/Template_FromDual.MySQL.slave.xml
Changes in fpmmm v0.10.5 fpmmm agent
  • Better and more verbose error handling in various modules.
  • Directory for log file is created automatically if it does not exist yet.
  • All broken SQL queries (from 0.10.4) fixed again.
  • Add delay for not so frequent changing data.
  • Several triggers which complained after restart are fixed now.
  • Connections to database were now reduced to the minimum.
  • Links for templates fixed.
  • Innodb_flush_log_at_trx_commit, log_queries_not_using_indexes and character_set_server triggers disabled by default.
  • Also sendCachedData is now checked for too big cache file. Bug from swd.
Slave module
  • Slave error messages are caught and sent to the monitor.
  • Warning is written to the log file if slave module is configured without being a slave.
  • New slave status is reported correctly now.
  • Seconds_behind_master is now only sent when running.
Master module
  • New trigger for binlog_format = MIXED and replication filtering added.
  • Severity increased on STATEMENT based filtering added.
  • Regexp bug fixed.
  • Master without binary log fixed.
MySQL module
  • Old broken triggers fixed.
Server module
  • IOPS graph added.
  • Device sda5 removed.
  • I/O statistics calculation improved.
  • I/O r/w wait experimental items implemented.
  • CPU count added.
  • NUMA and virtualization information added.
InnoDB module
  • innodb_flush_method item added.
  • Trigger for innodb_flush_method added.
  • innodb_force_recovery trigger severity increased.
  • innodb_log_files_in_group item added for log traffic threshold.
  • InnoDB transaction log traffic trigger and graph added.

For subscriptions of commercial use of fpmmm please get in contact with us.

Max_used_connections per user/account

Shinguz - Thu, 2015-07-30 23:34
Taxonomy upgrade extras: max_used_connectionsuseraccountconnectionconfiguration

How many connections can be opened concurrently against my MySQL or MariaDB database can be configured and checked with the following command:

SHOW GLOBAL VARIABLES LIKE 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 505 | +-----------------+-------+

If this limit was ever reached in the past can be checked with:

SHOW GLOBAL STATUS LIKE 'max_use%'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Max_used_connections | 23 | +----------------------+-------+

But on MySQL instances with many different applications (= databases/schemas) and thus many different users it is a bit more complicated to find out which of these users have connected how many times concurrently. We can configure how many connections one specific user can have at maximum at the same time with:

SHOW GLOBAL VARIABLES LIKE 'max_user_connections'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | max_user_connections | 500 | +----------------------+-------+

Further we can limit one specific user with:

GRANT USAGE ON *.* TO 'repl'@'%' WITH MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 10;

and check with:

SELECT User, Host, max_connections, max_user_connections FROM mysql.user; +------+---------------+-----------------+----------------------+ | User | Host | max_connections | max_user_connections | +------+---------------+-----------------+----------------------+ | root | localhost | 0 | 0 | | repl | % | 100 | 10 | | repl | 192.168.1.139 | 0 | 0 | +------+---------------+-----------------+----------------------+

But we have currently no chance to check if this limit was reached or nearly reached in the past...

A feature request for this was opened at MySQL wit bug #77888

Solution

If you cannot wait for the implementation here we have a little workaround:

DROP TABLE IF EXISTS mysql.`max_used_connections`; CREATE TABLE mysql.`max_used_connections` ( `USER` char(16) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `HOST` char(60) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `MAX_USED_CONNECTIONS` bigint(20) NOT NULL, PRIMARY KEY (`USER`, `HOST`) USING HASH ) ENGINE=MEMORY DEFAULT CHARSET=utf8 ; DROP EVENT IF EXISTS mysql.gather_max_used_connections; -- event_scheduler = on CREATE DEFINER=root@localhost EVENT mysql.gather_max_used_connections ON SCHEDULE EVERY 10 SECOND DO INSERT INTO mysql.max_used_connections SELECT user, host, current_connections FROM performance_schema.accounts WHERE user IS NOT NULL AND host IS NOT NULL ON DUPLICATE KEY UPDATE max_used_connections = IF(current_connections > max_used_connections, current_connections, max_used_connections) ; SELECT * FROM mysql.max_used_connections; +--------+-----------+----------------------+ | USER | HOST | MAX_USED_CONNECTIONS | +--------+-----------+----------------------+ | root | localhost | 4 | | zabbix | localhost | 21 | +--------+-----------+----------------------+

Caution: Because we used a MEMORY table those values are reset at every MySQL restart (as it happens with the PERFORMANCE_SCHEMA or the INFORMATION_SCHEMA).

MySQL Environment MyEnv 1.2.1 has been released

FromDual.en - Mon, 2015-07-27 16:11

FromDual has the pleasure to announce the release of the new version 1.2.1 of its popular MySQL, Galera Cluster, MariaDB and Percona Server multi-instance environment MyEnv.

The new MyEnv can be downloaded here.

In the inconceivable case that you find a bug in the MyEnv please report it to our bug tracker.

Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

Upgrade from 1.1.x to 1.2.1 # cd ${HOME}/product # tar xf /download/myenv-1.2.1.tar.gz # rm -f myenv # ln -s myenv-1.2.1 myenv

If you are using plug-ins for showMyEnvStatus create all the links in the new directory structure:

cd ${HOME}/product/myenv ln -s ../../utl/oem_agent.php plg/showMyEnvStatus/
Changes in MyEnv 1.2.1 MyEnv
  • Bug in myenv.server fixed (chmod user:).
  • Distribution check for CentOS 7.1 fixed (bug report Jörg).
  • Directory /var/run/mysqld is created by myenv.server
  • Missing function output added.
  • Output changes unified, execute with LC_ALL=C made language independent.
MyEnv Installer
  • Template my.cnf extended by hostname and instance name.
  • Skip in init script implemented, (bug report Jörg).
  • MyEnv my.cnf.template merged with website.
  • Template AUTO_INCREMENT values fixed.
  • Galera Cluster variable causal read in my.cnf template updated.
  • Functions separated into own library.
  • All templates moved from etc to tpl.
  • my.cnf template provided with hostname tag.
MyEnv Utilities
  • Skript alter_engine.php now supports socket.
  • Check in alter_engine.php for Primary Key length of 767 bytes was removed because it was wrong.
  • Skript decrypt_mylogin_cnf.php added.
  • Script log_maintenance.php added.
  • Usage and --help added to block_galera_node.sh.

For subscriptions of commercial use of MyEnv please get in contact with us.

Taxonomy upgrade extras: myenvoperationMySQL Operationsmulti instanceconsolidationtestingupgraderelease

MySQL Environment MyEnv 1.2.1 has been released

FromDual.en - Mon, 2015-07-27 16:11
Taxonomy upgrade extras: myenvoperationMySQL Operationsmulti instanceconsolidationtestingupgrade

FromDual has the pleasure to announce the release of the new version 1.2.1 of its popular MySQL, Galera Cluster, MariaDB and Percona Server multi-instance environment MyEnv.

The new MyEnv can be downloaded here.

In the inconceivable case that you find a bug in the MyEnv please report it to our bug tracker.

Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

Upgrade from 1.1.x to 1.2.1 # cd ${HOME}/product # tar xf /download/myenv-1.2.1.tar.gz # rm -f myenv # ln -s myenv-1.2.1 myenv

If you are using plug-ins for showMyEnvStatus create all the links in the new directory structure:

cd ${HOME}/product/myenv ln -s ../../utl/oem_agent.php plg/showMyEnvStatus/
Changes in MyEnv 1.2.1 MyEnv
  • Bug in myenv.server fixed (chmod user:).
  • Distribution check for CentOS 7.1 fixed (bug report Jörg).
  • Directory /var/run/mysqld is created by myenv.server
  • Missing function output added.
  • Output changes unified, execute with LC_ALL=C made language independent.
MyEnv Installer
  • Template my.cnf extended by hostname and instance name.
  • Skip in init script implemented, (bug report Jörg).
  • MyEnv my.cnf.template merged with website.
  • Template AUTO_INCREMENT values fixed.
  • Galera Cluster variable causal read in my.cnf template updated.
  • Functions separated into own library.
  • All templates moved from etc to tpl.
  • my.cnf template provided with hostname tag.
MyEnv Utilities
  • Skript alter_engine.php now supports socket.
  • Check in alter_engine.php for Primary Key length of 767 bytes was removed because it was wrong.
  • Skript decrypt_mylogin_cnf.php added.
  • Script log_maintenance.php added.
  • Usage and --help added to block_galera_node.sh.

For subscriptions of commercial use of MyEnv please get in contact with us.

The Upcoming Leap Second

Jörg Brühe - Mon, 2015-06-29 17:56

The press, be it the general daily newspaper or the computer magazines, is currently informing the public about an upcoming leap second, which will be taken in the night from June 30 to July 1 at 00:00:00 UTC. While we Europeans will enjoy our well-deserved sleep then, this will be at 5 PM (17:00) local time on June 30 for Califormia people, and during the morning of July 1 for people in China, Japan, Korea, or Australia. (Other countries not mentioned for the sake of brevity.) This is different from last time, when the leap second was taken in the night from Saturday to Sunday (2012-July-1 00:00:00 UTC), so it was a weekend everywhere on the globe.

We have got several requests from our customers about this upcoming leap second, whether they need to take any special precautions or whether they "are safe". Well, obviously nobody is "safe" from the leap second in the sense that it would circumvent them, everybody will encounter it on their systems. The concern is whether they have to expect any trouble.

For the people operating MySQL (or any other DBMS), this issue is threefold:

  • How will the operating system behave?
  • How will the database system behave?
  • How will the applications behave?
  • Let us look at the operating system first, dealing with Linux only. (All other operating systems don't show up with significant numbers in our customer base.)
    Linux measures the time in seconds (since Jan 1, 1970, 00:00:00 UTC), and it does not include the leap seconds in this counting. When the leap second is taken, the timestamp value (those seconds) will simply not be advanced at the end of the regular second, but it will re-use its current value in the leap second. As a result, the conversion of timestamps into common time reckoning will still produce values from 0 to 59 for the minute as well as for the second, there will not be a 60. Another consequence is that there is no way to tell the leap second from the preceding regular one.

    MySQL always takes the time information from the Linux kernel, so it will also use the same timestamp value (or "now()" result) for both the regular and the leap second. The MySQL manual describes this on its own leap second page, which has become inaccurate by some recent code changes: We could not reproduce the results given there (and will probably file a documentation bug about this). However, that difference does not affect the principle of the page's first paragraph.

    About the application, it is hard to claim anything - there are too many of them. However, it is obvious that an application might run into trouble if it managed to store a new timestamp value every second and assumed they are distinct: they will not be (unless the application manages to skip the leap second). Let's hope any application programmer creating such a high-resolution application was aware of the problem.

    So does it all look fine? Not completely: Following the last leap second (just three years ago), several administrators noticed that their machines became extraordinarily busy, which even let the power consumption rise significantly. This was caused by a bug in the Linux kernel, it let user processes resume immediately if they were trying to wait on a high-resolution timer. The exact details are beyond the scope of this article, your favourite search engine will provide you with more than enough references if you ask it.
    For our purposes, the important fact is that this also happened to MySQL server processes ("mysqld") because InnoDB was doing such operations.

    Back then, Sheeri K. Cabral (well-known in the MySQL blogosphere) published a cure which her team had discovered:
    This loop can be broken by simply setting the Linux kernel's clock to the current time.
    date -s "`date`"
    While this looks like a no-op at first sight, I assume that it will reset the sub-second time information and so will have a small effect, which obviously is sufficient to terminate that loop. (In practice, you should stop your NTP daemon before changing the date, and restart it afterwards. The exact command will depend on your Linux distribution.)

    Well, this was three years ago. The issue was reported to kernel developers, a fix was developed (which gives credit to Sheeri's report) and applied to newer kernels, and it w as also backported to older kernels. From my search, it seems that all reasonably maintained installations should have received that fix. For example, I have seen notices that Ubuntu 12.04 (since kernel 3.2.0-29.46) and 14.04 do have it, as does RedHat 6.4 (since kernel 2.6.32-298); for other distributions, I did not search.

    In addition to a current kernel, you obviously need current packages including the leap second information. Typically, this would be "ntp", "ntpdate", "tzdata", and related ones. Don't forget to restart your NTP daemon after installing these updates!

    So I wish all our readers that the leap second may not get them into trouble, or that (if worst comes to worst) the cure published by Sheeri may get them out. However, I have to remind you of the old truth which is attributed to Mark Twain (sometimes also to Niels Bohr):
    "It is difficult to make predictions, especially about the future."

    The Upcoming Leap Second

    Jörg Brühe - Mon, 2015-06-29 17:56

    The press, be it the general daily newspaper or the computer magazines, is currently informing the public about an upcoming leap second, which will be taken in the night from June 30 to July 1 at 00:00:00 UTC. While we Europeans will enjoy our well-deserved sleep then, this will be at 5 PM (17:00) local time on June 30 for Califormia people, and during the morning of July 1 for people in China, Japan, Korea, or Australia. (Other countries not mentioned for the sake of brevity.) This is different from last time, when the leap second was taken in the night from Saturday to Sunday (2012-July-1 00:00:00 UTC), so it was a weekend everywhere on the globe.

    We have got several requests from our customers about this upcoming leap second, whether they need to take any special precautions or whether they "are safe". Well, obviously nobody is "safe" from the leap second in the sense that it would circumvent them, everybody will encounter it on their systems. The concern is whether they have to expect any trouble.

    For the people operating MySQL (or any other DBMS), this issue is threefold:

  • How will the operating system behave?
  • How will the database system behave?
  • How will the applications behave?
  • Let us look at the operating system first, dealing with Linux only. (All other operating systems don't show up with significant numbers in our customer base.)
    Linux measures the time in seconds (since Jan 1, 1970, 00:00:00 UTC), and it does not include the leap seconds in this counting. When the leap second is taken, the timestamp value (those seconds) will simply not be advanced at the end of the regular second, but it will re-use its current value in the leap second. As a result, the conversion of timestamps into common time reckoning will still produce values from 0 to 59 for the minute as well as for the second, there will not be a 60. Another consequence is that there is no way to tell the leap second from the preceding regular one.

    MySQL always takes the time information from the Linux kernel, so it will also use the same timestamp value (or "now()" result) for both the regular and the leap second. The MySQL manual describes this on its own leap second page, which has become inaccurate by some recent code changes: We could not reproduce the results given there (and will probably file a documentation bug about this). However, that difference does not affect the principle of the page's first paragraph.

    About the application, it is hard to claim anything - there are too many of them. However, it is obvious that an application might run into trouble if it managed to store a new timestamp value every second and assumed they are distinct: they will not be (unless the application manages to skip the leap second). Let's hope any application programmer creating such a high-resolution application was aware of the problem.

    So does it all look fine? Not completely: Following the last leap second (just three years ago), several administrators noticed that their machines became extraordinarily busy, which even let the power consumption rise significantly. This was caused by a bug in the Linux kernel, it let user processes resume immediately if they were trying to wait on a high-resolution timer. The exact details are beyond the scope of this article, your favourite search engine will provide you with more than enough references if you ask it.
    For our purposes, the important fact is that this also happened to MySQL server processes ("mysqld") because InnoDB was doing such operations.

    Back then, Sheeri K. Cabral (well-known in the MySQL blogosphere) published a cure which her team had discovered:
    This loop can be broken by simply setting the Linux kernel's clock to the current time.
    date -s "`date`"
    While this looks like a no-op at first sight, I assume that it will reset the sub-second time information and so will have a small effect, which obviously is sufficient to terminate that loop. (In practice, you should stop your NTP daemon before changing the date, and restart it afterwards. The exact command will depend on your Linux distribution.)

    Well, this was three years ago. The issue was reported to kernel developers, a fix was developed (which gives credit to Sheeri's report) and applied to newer kernels, and it w as also backported to older kernels. From my search, it seems that all reasonably maintained installations should have received that fix. For example, I have seen notices that Ubuntu 12.04 (since kernel 3.2.0-29.46) and 14.04 do have it, as does RedHat 6.4 (since kernel 2.6.32-298); for other distributions, I did not search.

    In addition to a current kernel, you obviously need current packages including the leap second information. Typically, this would be "ntp", "ntpdate", "tzdata", and related ones. Don't forget to restart your NTP daemon after installing these updates!

    So I wish all our readers that the leap second may not get them into trouble, or that (if worst comes to worst) the cure published by Sheeri may get them out. However, I have to remind you of the old truth which is attributed to Mark Twain (sometimes also to Niels Bohr):
    "It is difficult to make predictions, especially about the future."

    FromDual Backup Manager for MySQL 1.2.2 has been released

    Shinguz - Tue, 2015-06-23 11:33

    FromDual has the pleasure to announce the release of the new version 1.2.2 of the popular Backup Manager for MySQL and MariaDB (fromdual_bman).

    You can download the FromDual Backup Manager from here.

    In the inconceivable case that you find a bug in the Backup Manager please report it to our Bugtracker.

    Any feedback, statements and testimonials are welcome as well! Please send them to feedback@fromdual.com.

    Upgrade from 1.2.x to 1.2.2 # cd ${HOME}/product # tar xf /download/fromdual_brman-1.2.2.tar.gz # rm -f fromdual_brman # ln -s fromdual_brman-1.2.2 fromdual_brman
    Changes in FromDual Backup Manager 1.2.2 FromDual Backup Manager

    It contains mainly fixes with brman catalog and physical backups.

    You can verify your current FromDual Backup Manager version with the following command:

    fromdual_bman --version
    • Archiving with physical backup bug fixed.
    • Connect replaced by OO style and error exit fixed.
    • Create catalog fixed.
    • Archivedir without archive option does not make sense.

    Wir suchen Dich: MySQL/MariaDB DBA für FromDual Support

    Shinguz - Mon, 2015-06-22 13:51
    Taxonomy upgrade extras: jobDBAsupportWer sind wir?

    FromDual ist das führende unabhängige Beratungs- und Dienstleistungsunternehmen für MySQL, Galera Cluster, MariaDB und Percona Server in Europa mit Hauptsitz in der Schweiz.

    Unsere Kunden stammen hauptsächlich aus Europa und reichen vom kleinen Start-Up bis zur europäischen Top-500 Firma. Sie erhalten von uns Support bei Datenbank-Problemen, direkte Eingriffe als remote-DBA, Schulung für ihre DBAs und Entwickler sowie Beratung bei Architektur- und Design-Entscheidungen. Ausserdem entwickeln wir Tools rund um MySQL, schreiben Blog-Artikel und halten Vorträge bei Konferenzen.

    Da unsere qualitativ guten Dienstleistungen immer mehr Kunden anziehen, brauchen wir Kollegen (m/w), welche selbst und mit uns wachsen wollen.

    Stellenbeschreibung

    Wir suchen deutschsprachige Mitarbeiter (Sie oder Ihn) auf Junior- oder Senior-Level für Dienstleistungen rund um MySQL (hauptsächlich Support und remote-DBA Arbeiten) in Vollzeit. Primär solltest Du sicherstellen, dass die geschäftskritischen MySQL-Datenbanken unserer Kunden wie am Schnürchen laufen - und falls nicht, diese schnell wieder ans Laufen kriegen...


    Unser/e "Wunschkandidat/in"

    • hat Erfahrung im Betrieb kritischer und hoch verfügbarer produktiver Datenbanken hauptsächlich auf Linux,
    • kennt Replikation in allen Variationen aus der täglichen Arbeit,
    • weiß, wie die meist verbreiteten MySQL-HA-Setups funktionieren und wie man sie wieder effizient repariert, wenn ein Problem auftritt,
    • ist sattelfest in SQL,
    • bringt Erfahrung mit Galera Cluster mit,
    • kann Bash skripten und einfache Programme in mindestens einer verbreiteten Programmier-/Skripting-Sprache (PHP, Bash, ...) erstellen.

    Wir suchen Verstärkung, die von soliden Grundlagen aus auf dem Weg zu diesem Ideal ist.


    Was wir von Dir erwarten:

    • Kenntnisse in MySQL, Percona Server oder MariaDB oder Bereitschaft, sich diese anzueignen
    • wissen, wie man kritische Datenbank-Systeme betreibt
    • Verständnis, was beim Betrieb von Datenbanken falsch laufen kann
    • selbständige Arbeitsweise (remote) mit Kommunikation über IRC, Skype, Mail und Telefon
    • Kenntnisse des Linux Systems

    DBA- oder DevOps-Erfahrungen wären z.B. eine gute fachliche Basis.


    Du schätzt den direkten Kontakt mit Kunden, hast ein gutes Gespür für deren Probleme, kannst zuhören und findest schnell die eigentlichen Probleme. Du bist gewohnt, proaktiv zu handeln bevor etwas passiert, und führst den Kunden wieder auf den richtigen Pfad zurück.


    Um Deine Arbeit erledigen zu können, arbeitest Du in einer europäischen Zeitzone. Deine Arbeitszeit kannst Du, der betrieblichen Situation entsprechend, flexibel gestalten. Wir erwarten, dass Du Deinen Beitrag zum Bereitschaftsdienst leistest. FromDual hat voraussichtlich keine Büroräumlichkeiten in Deinem Wohnort. Ein Umzug ist jedoch nicht notwendig: Wir ermöglichen Dir das Arbeiten von zu Hause aus oder unterstützen Dich bei der Suche einer geeigneten Arbeitsräumlichkeit in Deiner Nähe. Gute schriftliche und mündliche Englischkenntnisse sind erforderlich.

    Was wir Dir bieten:
    • Deinen Leistungen angemessenes Gehalt.
    • Möglichkeit Dich zum Top MySQL-Datenbankspezialisten zu entwickeln.
    • Selbständiges Arbeiten.
    • Verantwortung für Deine Projekte und Kunden zu übernehmen.
    • Gute Kameradschaft im Team, sowie lockerer und angenehmer Umgang.
    • Stellenbezogene Weiterbildungsmöglichkeiten.
    • Teilnahme an Open Source Anlässen.
    • Arbeit von Deinem bevorzugten Wohnort aus.

    Du solltest in der Lage sein, die meiste Zeit selbständig zu arbeiten, zu denken und zu handeln und Dir neues Wissen selbständig anzueignen (durch Web-Suche, die MySQL-Dokumentation, Ausprobieren, etc.). Solltest Du dennoch einmal nicht weiterkommen, werden Dir Deine Kollegen von FromDual gerne helfen.


    Wenn Du jemanden brauchst, der Dir die ganze Zeit Dein Händchen hält, ist FromDual nicht die richtige Wahl.


    Wie geht es weiter

    Wenn Du an dieser Chance interessiert bist und Du denkst, dass Du die passende Kandidatin oder der passende Kandidat bist, würden wir uns freuen, von Dir zu hören. Wir wissen, dass niemand 100% auf diese Stellenbeschreibung passt!


    Bitte schicke Deinen ungeschönten Lebenslauf mit Deinen Gehaltsvorstellungen an jobs@fromdual.com. Wenn Du mehr über diese Stelle erfahren oder wenn Du mit mir persönlich sprechen möchtest, ruf mich bitte an unter +41 79 830 09 33 (Oli Sennhauser, CTO). Bitte nur Bewerber, KEINE Headhunter!


    Nachdem Du uns Deinen Lebenslauf zugeschickt hast, darfst Du Deine Fähigkeiten in einem kleinen MySQL-Test unter Beweis zu stellen. Nach bestandenem Test laden wir Dich für die finalen Interviews ein.

    Wir suchen Dich: MySQL/MariaDB DBA für FromDual Support

    Oli Sennhauser - Fri, 2015-05-29 18:12
    Wer sind wir?

    FromDual ist das führende unabhängige Beratungs- und Dienstleistungsunternehmen für MySQL, Galera Cluster, MariaDB und Percona Server in Europa mit Hauptsitz in der Schweiz.

    Unsere Kunden stammen hauptsächlich aus Europa und reichen vom kleinen Start-Up bis zur europäischen Top-500 Firma. Sie erhalten von uns Support bei Datenbank-Problemen, direkte Eingriffe als remote-DBA, Schulung für ihre DBAs und Entwickler sowie Beratung bei Architektur- und Design-Entscheidungen. Außerdem entwickeln wir Tools rund um MySQL, schreiben Blog-Artikel und halten Vorträge bei Konferenzen.

    Da unsere qualitativ guten Dienstleistungen immer mehr Kunden anziehen, brauchen wir Kollegen (m/w), welche selbst und mit uns wachsen wollen.

    Stellenbeschreibung

    Wir suchen deutschsprachige Mitarbeiter (Sie oder Ihn) auf Junior- oder Senior-Level für Dienstleistungen rund um MySQL (hauptsächlich Support und remote-DBA Arbeiten) in Vollzeit. Primär solltest Du sicherstellen, dass die geschäftskritischen MySQL-Datenbanken unserer Kunden wie am Schnürchen laufen - und falls nicht, diese schnell wieder ans Laufen kriegen...


    Unser/e "Wunschkandidat/in"

    • hat Erfahrung im Betrieb kritischer und hoch verfügbarer produktiver Datenbanken hauptsächlich auf Linux,
    • kennt Replikation in allen Variationen aus der täglichen Arbeit,
    • weiß, wie die meistverbreiteten MySQL-HA-Setups funktionieren und wie man sie wieder effizient repariert, wenn ein Problem auftritt,
    • ist sattelfest in SQL,
    • bringt Erfahrung mit Galera Cluster mit,
    • kann Bash skripten und einfache Programme in mindestens einer verbreiteten Programmier-/Skripting-Sprache (PHP, Bash, ...) erstellen.

    Wir suchen Verstärkung, die von soliden Grundlagen aus auf dem Weg zu diesem Ideal ist.


    Was wir von Dir erwarten:

    • Kenntnisse in MySQL, Percona Server oder MariaDB oder Bereitschaft, sich diese anzueignen
    • wissen, wie man kritische Datenbank-Systeme betreibt
    • Verständnis, was beim Betrieb von Datenbanken falsch laufen kann
    • selbständige Arbeitsweise (remote) mit Kommunikation über IRC, Skype, Mail und Telefon
    • Kenntnisse des Linux Systems

    DBA- oder DevOps-Erfahrungen wären z.B. eine gute fachliche Basis.


    Du schätzt den direkten Kontakt mit Kunden, hast ein gutes Gespür für deren Probleme, kannst zuhören und findest schnell die eigentlichen Probleme. Du bist gewohnt, proaktiv zu handeln bevor etwas passiert, und führst den Kunden wieder auf den richtigen Pfad zurück.


    Um Deine Arbeit erledigen zu können, arbeitest Du in einer europäischen Zeitzone. Deine Arbeitszeit kannst Du, der betrieblichen Situation entsprechend, flexibel gestalten. Wir erwarten, dass Du Deinen Beitrag zum Bereitschaftsdienst leistest. FromDual hat voraussichtlich keine Büroräumlichkeiten in Deinem Wohnort. Ein Umzug ist jedoch nicht notwendig: Wir ermöglichen Dir das Arbeiten von zu Hause aus oder unterstützen Dich bei der Suche einer geeigneten Arbeitsräumlichkeit in Deiner Nähe. Gute schriftliche und mündliche Englischkenntnisse sind erforderlich.

    Was wir Dir bieten:
    • Deinen Leistungen angemessenes Gehalt.
    • Möglichkeit Dich zum Top MySQL-Datenbankspezialisten zu entwickeln.
    • Selbständiges Arbeiten.
    • Verantwortung für Deine Projekte und Kunden zu übernehmen.
    • Gute Kameradschaft im Team, sowie lockerer und angenehmer Umgang.
    • Stellenbezogene Weiterbildungsmöglichkeiten.
    • Teilnahme an Open Source Anlässen.
    • Arbeit von Deinem bevorzugten Wohnort aus.

    Du solltest in der Lage sein, die meiste Zeit selbständig zu arbeiten, zu denken und zu handeln und Dir neues Wissen selbständig anzueignen (durch Web-Suche, die MySQL-Dokumentation, Ausprobieren, etc.). Solltest Du dennoch einmal nicht weiterkommen, werden Dir Deine Kollegen von FromDual gerne helfen.


    Wenn Du jemanden brauchst, der Dir die ganze Zeit Dein Händchen hält, ist FromDual nicht die richtige Wahl.


    Wie geht es weiter

    Wenn Du an dieser Chance interessiert bist und Du denkst, dass Du die passende Kandidatin oder der passende Kandidat bist, würden wir uns freuen, von Dir zu hören. Wir wissen, dass niemand 100% auf diese Stellenbeschreibung passt!


    Bitte schicke Deinen ungeschönten Lebenslauf mit Deinen Gehaltsvorstellungen an jobs@fromdual.com. Wenn Du mehr über diese Stelle erfahren oder wenn Du mit mir persönlich sprechen möchtest, ruf mich bitte an unter +41 79 830 09 33 (Oli Sennhauser, CTO). Bitte nur Bewerber, KEINE Headhunter!


    Nachdem Du uns Deinen Lebenslauf zugeschickt hast, darfst Du Deine Fähigkeiten in einem kleinen MySQL-Test unter Beweis zu stellen. Nach bestandenem Test laden wir Dich für die finalen Interviews ein.

    Pages

    Subscribe to FromDual aggregator