When performing physical backup on system that are heavily used, it can happen that the backup speed cannot keep up with the redo log generation. This can happen when the backup storage is slower than the redo log storage media and this can lead in inconsistency in the generated backup. MySQL Enterprise Backup (aka MEB) […]
Recently, I wrote several articles on how to load data from CSV files to migrate from different databases to MySQL Database Service: We saw that the most complicate is to write the CREATE TABLE statement that matches the data. I also received some questions about how to generate the table’s definition when only the CSV […]
Space constraint has been an endless and painstaking process for many of us, especially in systems that have a high number of transactions and data growth exceeding hundreds of GBs in a matter of days. In this blog, I will share a solution to remove this space and remove rows from tables in a few seconds regardless of the size of a table without causing any additional load on the database using table partitions.
The first approach that comes to anyone’s mind for deleting the row is using a DELETE query in SQL. Suppose, one wants to delete rows from a table that are older than one year—the query for such operations would be like this:
DELETE FROM salaries WHERE from_date <DATE_SUB(NOW(),INTERVAL 1 YEAR);
The above query is pretty straightforward but there are a few caveats:
- Server business will grow exponentially and could impact the usual traffic on the server.
- To speed up the above query …
Recently, we performed a database engine major version upgrade in one of our customers’ environments from MySQL 5.7.26 to 8.0.27. After this version upgrade, we experienced issues with backups and replication for one of the nodes.
In this article, I will explain these issues in detail and recommend a way to take backups from a replication environment.
To begin with, we upgraded all the database nodes from 5.7.26 to 8.0.27 and as a recommended way we have a backup set-up from one of the replica nodes. Physical backups are being taken using Percona XtraBackup (PXB) so it does not lock the database during the backup.
With MySQL 5.7, a backup was taken using PXB 2.4. Due to the new data dictionaries, redo log and undo log in MySQL 8.0, we also upgraded PXB to 8.0.27 to avoid …
[Read more]In previous posts we already saw how to export data from PostgreSQL and AWS RedShift, and import it on MySQL Database Service in OCI using MySQL Shell importTable utility: Today, we will see how we can export some tables from AWS RDS Aurora PostgreSQL and import them on MySQL HeatWave Database Service. For this exercise, […]
We saw in this previous post how to import data from PostgreSQL to MySQL HeatWave Database Service. Using almost the same technique, we will now import data from Amazon Redshift and import it to a MySQL HeatWave instance in OCI. With Redshift we have two options to export the data to CSV files that can […]
MySQL HeatWave Database Service is very popular and many users wants to benefit from the managed MySQL service and from MySQL HeatWave fast engine. We see many users migrating their data from MySQL on-premise or from another cloud vendor to OCI MySQL HeatWave… but we also see people migrating from other data-stores like PostgreSQL. In […]
If you tried to migrate live from Amazon RDS/Aurora or any other Cloud to OCI MySQL HeatWave before December 6, 2022, you may have encountered issues with Amazon to OCI asynchronous replication. See: Live Migration from Azure Database for MySQL to MySQL Database Service on OCI This is because Amazon (an other Cloud) writes to […]
In Managed Services, we have many customers, and as each has a different kind of config and environment, working on their environment is always fun and interesting. In this blog post, I will showcase an issue we faced when dropping a table and how it was resolved.
There was a ticket to drop a table in a client’s production environment (MySQL 5.7). The table had a # symbol at the beginning of the table’s name. I thought it was easy that we can use quotes or backtick symbols to specify the table to drop. But it did not work as I expected and I came to know why the customer created the ticket to drop the table.
The following example recreates the problem. It shows the table, but you are unable to see the structure and cannot drop it.
mysql> show tables; +--------------------------+ | Tables_in_percona | +--------------------------+ | …[Read more]
Let’s examine COMMIT latency on Aurora v2 (MySQL
5.7) vs. Aurora v3 (MySQL 8.0) vs. RDS MySQL 8.0 2-AZ vs. RDS
MySQL 8.0 3-AZ “cluster”.