Question about pt-online-schema-change and performance_schema

Hi,

I run mariadb 11.4.12, galera, on red had linux 9.

I installed percona toolkit, holding pt-online-schema-change 3.7.1-4

I ran this:

pt-online-schema-change --alter "ADD INDEX ix_trnsaction_request_date(request_date)" --alter-foreign-keys-method=auto --no-drop-old-table --execute D=etravel_qa_transaction,t=transaction

It worked fine, but in mariadb’s log I see lots of issues regarding performance_schema:

2026-09-17 14:35:25 7526 [Note] mariadbd: File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory")
2026-09-17 14:35:25 7526 [Note] mariadbd: File './performance_schema/cond_instances.frm' not found (Errcode: 2 "No such file or directory")
2026-09-17 14:35:25 7526 [Note] mariadbd: File './performance_schema/events_stages_current.frm' not found (Errcode: 2 "No such file or directory")
2026-09-17 14:35:25 7526 [Note] mariadbd: File './performance_schema/events_stages_history.frm' not found (Errcode: 2 "No such file or directory")
2026-09-17 14:35:25 7526 [Note] mariadbd: File './performance_schema/events_stages_history_long.frm' not found (Errcode: 2 "No such file or directory")
2026-09-17 14:35:25 7526 [Note] mariadbd: File './performance_schema/events_stages_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory")

  1. Is this normal? Is there a parameter to add to avoid this?
  2. If I see on percona forums site, there is a menu for mysql and not mariadb. Is mariadb still supported by percona?

Thanks!

Hi @albourg ,

Answering Q2 first: Percona fully supports MariaDB.

Now, these two (pt-osc and errors) are not related and what you have is accidental find :slight_smile:

The pt-online-schema-change only worked on etravel_qa_transaction. Those errors are related to Performance Schema tables. And Performance Schema in MariaDB 11.4+ is OFF by default.
I am not sure how was the installation / upgrade performed but I’d do the following to resolve the errors:

mysql> SHOW VARIABLES LIKE 'performance_schema';
mysql> set global performance_schema=ON;

On OS:

mariadb-upgrade --force

Update my.cnf to add the config change: performance_schema=ON

systemctl restart mariadb

performance_schema was set to on from the start and view are there when we do a “show tables”.

This works fine and issue is not there.

The question is “why does the warning appear in log (only) when running pt-online-schema-change”?

Hi @albourg,

Is log_warnings set to 11 or higher in your instance?

I just tested and encountered the same behavior.

Standalone MariaDB 11.4.12, performance_schema=ON and log_warnings=11:

# pt-online-schema-change --alter "ADD INDEX idx_id(id)" --alter-foreign-keys-method=auto --no-drop-old-table --execute D=test,t=parent
No slaves found.  See --recursion-method if host mariadb-01 has slaves.
Not checking slave lag because no slaves were found and --check-replica-lag was not specified.
Operation, tries, wait:
  analyze_table, 10, 1
  copy_rows, 10, 0.25
  create_triggers, 10, 1
  drop_triggers, 10, 1
  swap_tables, 10, 1
  update_foreign_keys, 10, 1
Child tables:
  `test`.`child` (approx. 1 rows)
Will automatically choose the method to update foreign keys.
Altering `test`.`parent`...
Creating new table...
Created new table test._parent_new OK.
Altering new table...
Altered `test`.`_parent_new` OK.
2026-09-18T01:02:36 Creating triggers...
2026-09-18T01:02:37 Created triggers OK.
2026-09-18T01:02:37 Copying approximately 1 rows...
2026-09-18T01:02:37 Copied rows OK.
2026-09-18T01:02:37 Max rows for the rebuild_constraints method: 4000
Determining the method to update foreign keys...
2026-09-18T01:02:37   `test`.`child`: 1 rows; can use rebuild_constraints
2026-09-18T01:02:37 Rebuilding foreign key constraints...
2026-09-18T01:02:37 Rebuilt foreign key constraints OK.
2026-09-18T01:02:37 Analyzing new table...
2026-09-18T01:02:37 Swapping tables...
2026-09-18T01:02:37 Swapped original and new tables OK.
Not dropping old table because --no-drop-old-table was specified.
2026-09-18T01:02:37 Dropping triggers...
2026-09-18T01:02:37 Dropped triggers OK.
Successfully altered `test`.`parent`.

Error log:

2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/cond_instances.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_current.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_history.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_history_long.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_host_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_thread_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_by_user_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_stages_summary_global_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_current.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_history.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_history_long.frm' not found (Errcode: 2 "No such file or directory")
2026-09-18  1:02:36 29 [Note] mariadbd: File './performance_schema/events_statements_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory")
...

Simply querying information_schema.key_column_usage like this produces these note messages (only the first time when the tables are not in the table definition cache, next you will need to flush tables). This is also the query that pt-osc executes:

MariaDB [(none)]> SELECT table_schema, table_name
    -> FROM information_schema.key_column_usage
    -> WHERE referenced_table_schema = 'test'
    ->   AND referenced_table_name = 'parent';
+--------------+------------+
| table_schema | table_name |
+--------------+------------+
| test         | child      |
+--------------+------------+
1 row in set (0.038 sec)

MariaDB [(none)]> flush tables;
Query OK, 0 rows affected (0.015 sec)

MariaDB [(none)]> SELECT table_schema, table_name
    -> FROM information_schema.key_column_usage
    -> WHERE referenced_table_schema = 'test'
    ->   AND referenced_table_name = 'parent';
+--------------+------------+
| table_schema | table_name |
+--------------+------------+
| test         | child      |
+--------------+------------+
1 row in set, 81 warnings (0.020 sec)

MariaDB [(none)]> show warnings;
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message                                                                                                                                 |
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
| Note  |   29 | File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory")                                             |
| Note  |   29 | File './performance_schema/cond_instances.frm' not found (Errcode: 2 "No such file or directory")                                       |
| Note  |   29 | File './performance_schema/events_stages_current.frm' not found (Errcode: 2 "No such file or directory")                                |
| Note  |   29 | File './performance_schema/events_stages_history.frm' not found (Errcode: 2 "No such file or directory")                                |
| Note  |   29 | File './performance_schema/events_stages_history_long.frm' not found (Errcode: 2 "No such file or directory")                           |
| Note  |   29 | File './performance_schema/events_stages_summary_by_account_by_event_name.frm' not found (Errcode: 2 "No such file or directory")       |
| Note  |   29 | File './performance_schema/events_stages_summary_by_host_by_event_name.frm' not found (Errcode: 2 "No such file or directory")          |
| Note  |   29 | File './performance_schema/events_stages_summary_by_thread_by_event_name.frm' not found (Errcode: 2 "No such file or directory")        |
| Note  |   29 | File './performance_schema/events_stages_summary_by_user_by_event_name.frm' not found (Errcode: 2 "No such file or directory")          |
| Note  |   29 | File './performance_schema/events_stages_summary_global_by_event_name.frm' not found (Errcode: 2 "No such file or directory")           |
| Note  |   29 | File './performance_schema/events_statements_current.frm' not found (Errcode: 2 "No such file or directory")                            |
| Note  |   29 | File './performance_schema/events_statements_history.frm' not found (Errcode: 2 "No such file or directory")                            |
...
64 rows in set (0.004 sec)

Or even just executing SHOW CREATE TABLE for any of the PERFORMANCE_SCHEMA tables produces the note message:

MariaDB [(none)]> flush tables;
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> show create table performance_schema.accounts \G
*************************** 1. row ***************************
       Table: accounts
Create Table: CREATE TABLE `accounts` (
  `USER` char(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT 'The connection''s client user name for the connection, or NULL if an internal thread.',
  `HOST` char(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL COMMENT 'The connection client''s host name, or NULL if an internal thread.',
  `CURRENT_CONNECTIONS` bigint(20) NOT NULL COMMENT 'Current connections for the account.',
  `TOTAL_CONNECTIONS` bigint(20) NOT NULL COMMENT 'Total connections for the account.'
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
1 row in set, 1 warning (0.004 sec)

MariaDB [(none)]> show warnings;
+-------+------+---------------------------------------------------------------------------------------------+
| Level | Code | Message                                                                                     |
+-------+------+---------------------------------------------------------------------------------------------+
| Note  |   29 | File './performance_schema/accounts.frm' not found (Errcode: 2 "No such file or directory") |
+-------+------+---------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

Since MariaDB 10.1.1, PERFORMANCE_SCHEMA tables have no .frm files. On open, MariaDB still looks for the .frm files. These note messages are expected and they are only logged to the error log if log_warnings >= 11.