News
Anonymous PL/SQL block
Is this not just a simple an Anonymous PL/SQL Block?
MariaDB Devroom at FOSDEM 2022 CfP is now open
Also in 2022 there will be a FOSDEM (Free and Open source Software Developers’ European Meeting) on 5 and 6 February 2022. This time again online from Brussels (Belgium).
MariaDB has again its own Devroom and the Call for Papers (CfP) is now open for your submissions. We are looking for interesting topics about your daily business, technical presentations, war stories, point of views of management, etc. The deadline for the CfP is before 21 December 2021.
For further information about how to submit a …
MariaDB Connection ID
The MariaDB Connection ID exists since long ago. So why bother about the Connection ID? Because it is interesting and you can do some interesting things with the Connection ID like tracking statements in your connections and find where they come from your application code.
The MariaDB Connection ID is a strictly monotonic increasing number starting with 1 at server restart:
shell> mariadb --user=root --execute='SELECT CONNECTION_ID()<br>G' | grep CONNECTION_ID
CONNECTION_ID(): 2372
shell> …GRA_XXX_YYY.log
XXX means Thread ID (= Connection ID) and YYY wsrep transaction sequence number (wsrep_last_committed?):
snprintf(filename, len+1, "%s/GRA_%lld_%lld.log",
wsrep_data_home_dir, (long long) thd->thread_id,
(long long) wsrep_thd_trx_seqno(thd));
MariaDB / MySQL Advanced training end of October 2021
From 25 to 29 October 2021 (calendar week 43) we will have another MariaDB / MySQL advanced training in the Linuxhotel in Essen (Germany). The training is in German and will take place on-site (3G!). There are still some places free!
More details about the training you can find here.
Upgrade of Galera Cluster takes more than 1 year
We currently have the situation that a customer cannot upgrade its hyper-consolidated Galera Cluster for more than a year because various different applications cannot, are not willing to or do not have the time to test against the newer version.
What what we suggest here: Create a new Galera Cluster with the new version and move over one project/application after the other to the new Cluster. This reduces complexity. You can do slightly progress and the pressure for the "slow-upgrader" increases over …
Automated MariaDB restore tests
Nearly everybody does backups. But nobody needs backups! What everybody wants and needs is a working restore not a working backup…
So how to make sure that your backup is working for the restore? There are a few things you can do already during your backup:
- Check that your backup was running fine. For example by checking the return code of your backup.
- Check the runtime of your backup. If the runtime of your backup significantly changed, it is worth to have a closer look at the backup.
- Check the …
FromDual Backup and Recovery Manager for MariaDB and MySQL 2.2.4 has been released
FromDual has the pleasure to announce the release of the new version 2.2.4 of its popular Backup and Recovery Manager for MariaDB and MySQL (brman).
The new FromDual Backup and Recovery Manager can be downloaded from here. The FromDual Repositories were updated. How to install and use the Backup and Recovery Manager is described in FromDual Backup and Recovery Manager (brman) installation guide.
In the inconceivable case that you find a bug in the FromDual Backup and Recovery Manager please report it to the …
MariaDB Foreign Key Constraint example
Foreign Key Constraints are used to model a parent/child relation in an entity relationship (ER) model:

SQL> CREATE TABLE team (
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT
, name VARCHAR(48) NOT NULL
, PRIMARY KEY (id)
);
SQL> CREATE TABLE employee (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT
, first_name VARCHAR(32) NOT NULL
, last_name VARCHAR(64) NOT NULL
, team_id BIGINT UNSIGNED NOT NULL
, PRIMARY KEY (id)
, CONSTRAINT `fk_employee_team` FOREIGN KEY (team_id)
REFERENCES team (id) ON …Monitoring your MariaDB database with SNMP
Table of Contents
- What is SNMP?
- SNMP Agent (snmptrap)
- SNMP Manager (snmptrapd)
- Test the SNMP Agent
- Creating your own MIB
- Sending MariaDB SNMP traps from PHP
- Literature
What is SNMP?
A customer recently had the question if an how his MariaDB database can be easily monitored with SNMP?
SNMP means Simple Network Management Protocol. It is a widely used and standardized protocol for monitoring the health of network and other devices (including services). In principle you can monitor nearly everything with …
MariaDB/MySQL Environment MyEnv 2.0.3 has been released
FromDual has the pleasure to announce the release of the new version 2.0.3 of its popular MariaDB, Galera Cluster and MySQL multi-instance environment MyEnv.
The new MyEnv can be downloaded here. How to install MyEnv is described in the MyEnv Installation Guide.
In the inconceivable case that you find a bug in the MyEnv please report it to the FromDual bug tracker.
Any feedback, statements and testimonials are welcome as well! Please send them to …
Query on target list
Hello Leo
Thank you for your question. What did you try so far? Or where did you stuck? Can you show us the query you have created so far?
An alternative would be to use HeidiSQL, MySQL Workbench or phpMyAdmin to design the right query.
Possibly the GROUP BY clause is what you are looking for. Please read here.
Regards, Oli
Data Warehouse Design
This is my cheat sheet for dimensional modelling design techniques of a data warehouse (DWH) according to Kimball/Ross.
Dimensional Design Process (p. 38 ff.)
- Select the business process.
- Declare the grain (what a single fact table row represents).
- Identify the dimensions.
- Identify the facts.
Dimension Tables (p. 46 ff., p. 62 ff.)
who, what, where, when, why and how
- Dimension tables are entry point to the fact tables.
- Every dimension table has a single primary key (PK) column.
- Dimension tables are …
Query performance comparison between MariaDB ColumnStore and other Storage Engines
Storage Engines like InnoDB, Aria and MyISAM are Row Stores. They store rows one after the other in blocks or even directly in a single file (MyISAM). On the other hand a Column Store like MariaDB ColumnStore stores all the same attributes (columns) of the rows together in chunks.
This is how the table sales_fact looks like:
CREATE TABLE `sales_fact` (
`product_id` int(11) NOT NULL,
`time_id` int(11) NOT NULL,
`customer_id` int(11) NOT NULL,
`promotion_id` int(11) NOT NULL,
`store_id` int(11) NOT …Galera Load Balancer SystemD Unit file
# # /etc/systemd/system/glbd.service # [Unit] Description=Galera Load Balancer Service After=network.target [Service] # # adjust the EnvironmentFile variable for your distribution # # On Redhat and derivatives it should be /etc/sysconfig/glbd.conf # # On Debian and derivatives it should be /etc/default/glbd.conf # EnvironmentFile=/etc/sysconfig/glbd.conf Type=simple ExecStart=/usr/sbin/glbd --daemon --threads $THREADS --max_conn $MAX_CONN $OTHER_OPTIONS --control $CONTROL_ADDR …
The Galera Load Balancer Configuration file
# # This is a configuration file for glbd service script # # On Red Hat and derivatives it should be placed in /etc/sysconfig/glbd.conf # # On Debian and derivatives it should be placed in /etc/default/glbd.conf # # All settings besides LISTEN_ADDR are optional. # # Address to listen for client connections at. Mandatory parameter. # To bind to all interfaces only port should be specified. #LISTEN_ADDR="0.0.0.0:3306" # Address for controlling connection. Mandatory part is port. # If not …
Create a single-node MariaDB ColumnStore test installation
Table of Contents
- Hardware requirements
- O/S (Linux) settings
- Installation
- Configuration
- Cross Engine Join User
- Start ColumnStore
- Create the Cross Engine Join User in the database
- MariaDB ColumnStore schemas
- Server System Variables and Server Status Variables
- MariaDB ColumnStore on the file system
- Creating our first table
- Querying and changing data in MariaDB ColumnStore
- MariaDB ColumnStore using sequences instead of
AUTO_INCREMENT - MariaDB ColumnStore Query Execution Plan
For a long time I wanted to …
FromDual Ops Center for MariaDB, MySQL and compatible databases 1.1.0 has been released
FromDual has the pleasure to announce the release of the new version 1.1.0 of its popular FromDual Ops Center focmm, a Graphical User Interface (GUI) for MariaDB, MySQL and compatible databases.
The FromDual Ops Center for MariaDB and MySQL (focmm) helps DBA’s and System Administrators to better manage their MariaDB, MySQL and compatible databases farms. Ops Center makes DBA and Admins life easier!
The main task of Ops Center is to support you in your daily MariaDB, MySQL and compatible databases …
Limiting MySQL tmpdir size
Today a customer gave me the idea of using a separate file as a volume for limiting the MySQL tmpdir size. On some not so well set-up Linux systems the MySQL tmpdir is located under /tmp which is the same mount point as / (root). This can lead to troubles in case the tmpdir is filled up with implicit temporary MyISAM tables which fills up the / (root) directory of the O/S as well.
MySQL itself has no possibility to limit explicitly the total size nor the number of implicit temporary tables. So this can …
MariaDB Enterprise Server vs. MariaDB Community Server
MariaDB Enterprise Platform
The MariaDB Enterprise Platform is available on-premises and on the MariaDB SkySQL DBaaS (Cloud database platform). MariaDB Enterprise Platform consists of:
MariaDB Enterprise Server (MariaDB database server)
MariaDB Xpand (distributed database, scaling writes, former ClustrixDB)
MariaDB Enterprise ColumnStore (former InfiniDB used for data warehouse (DWH), BI, Reporting)
MariaDB MaxScale (Load Balancer)
MariaDB Connectors
- MariaDB Connector/C++
- MariaDB Connector/R2DBC (Reactive …

