Skip to content

Commit 2ff6851

Browse files
committed
Merge pull request #571 from percona/ps-10190
PS-10190 [DOCS] - Binary Log UDFs functions documentation incomplete 8.4
2 parents 9274626 + 28041c1 commit 2ff6851

18 files changed

+1277
-403
lines changed

docs/8.4-breaking-changes.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# Breaking and incompatible changes in {{vers}}
2+
3+
Review these items before upgrading from 8.0 to {{vers}}. This document covers breaking behavioral changes, removed features, and removed variables that may affect your upgrade. Each entry includes the impact, replacement (if available), and recommended action.
4+
5+
## Authentication and user management
6+
7+
Impact:
8+
9+
* `mysql_native_password` is disabled by default in {{vers}}; new users default to `caching_sha2_password`.
10+
11+
* The `mysql_native_password` plugin can still be loaded using `--mysql-native-password=ON` if needed for backward compatibility.
12+
13+
* In the 9.x series, `mysql_native_password` will be completely removed.
14+
15+
* `default_authentication_plugin` variable is removed.
16+
17+
Replacement:
18+
19+
* New users default to `caching_sha2_password`; configure authentication via supported mechanisms without this variable.
20+
21+
Action:
22+
23+
* Identify accounts and applications using `mysql_native_password` and plan migration to `caching_sha2_password`.
24+
* If necessary for temporary compatibility, you can enable `mysql_native_password` with `--mysql-native-password=ON`, but plan to migrate accounts as this plugin will be removed in future versions.
25+
* Validate driver/client support for `caching_sha2_password` and TLS.
26+
* Ensure drivers and clients support `caching_sha2_password`.
27+
28+
## Replication terminology and commands
29+
30+
Impact:
31+
32+
* MASTER/SLAVE terms and statements are removed in {{vers}} and will cause syntax errors if used.
33+
34+
* Statements such as `CHANGE MASTER TO`, `START SLAVE`, `STOP SLAVE`, and `SHOW SLAVE STATUS` are no longer supported.
35+
36+
* Related status variables and counters (for example, `Com_show_slave_status`) are also removed.
37+
38+
Replacement:
39+
40+
* Use REPLICA/SOURCE equivalents: `START REPLICA`, `SHOW REPLICA STATUS`, `CHANGE REPLICATION SOURCE TO` and updated status fields.
41+
42+
Action:
43+
44+
* Update operational scripts, automation, and runbooks to new commands before upgrading.
45+
46+
* Search for and replace all MASTER/SLAVE statements in your codebase with their REPLICA/SOURCE equivalents.
47+
48+
* Update scripts, automation, and monitoring that reference removed statements or counters.
49+
50+
* Re-test replication lifecycle: provisioning, change-source, failover.
51+
52+
## Spatial indexes
53+
54+
Impact:
55+
56+
* A known issue can corrupt a spatial index after certain update/delete sequences across an upgrade.
57+
58+
Action:
59+
60+
* Drop spatial indexes before upgrade; re-create them after upgrade and verify integrity.
61+
62+
## New reserved keywords
63+
64+
Impact:
65+
66+
* New reserved words (for example, `MANUAL`, `PARALLEL`, `QUALIFY`, `TABLESAMPLE`) may conflict with unquoted identifiers and break queries.
67+
68+
Action:
69+
70+
* Scan schemas and queries for unquoted usage; quote or rename objects.
71+
72+
* See: [Keywords and Reserved Words in MySQL {{vers}}](https://dev.mysql.com/doc/refman/{{vers}}/en/keywords.html) for the complete list of reserved keywords.
73+
74+
75+
## Data type restrictions
76+
77+
Impact:
78+
79+
* `AUTO_INCREMENT` is not permitted on `FLOAT` or `DOUBLE`.
80+
81+
Action:
82+
83+
* Convert these columns to `INTEGER` before upgrading.
84+
85+
## Removed SQL function
86+
87+
Impact:
88+
89+
* `WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()` function is removed (deprecated in 8.0).
90+
91+
Replacement:
92+
93+
* `WAIT_FOR_EXECUTED_GTID_SET()`.
94+
95+
Action:
96+
97+
* Replace function usage in procedures, scripts, and runbooks.
98+
99+
## Binary log retention variable
100+
101+
Impact:
102+
103+
* `expire_logs_days` variable is removed.
104+
105+
Replacement:
106+
107+
* `binlog_expire_logs_seconds`.
108+
109+
Action:
110+
111+
* Adjust configuration and automation to use seconds-based retention.
112+
113+
## Memcached-related variables and APIs
114+
115+
Impact:
116+
117+
* Built-in memcached integration variables (for example, `daemon_memcached`, `innodb_api`, and related settings) are removed.
118+
119+
Replacement:
120+
121+
* Externalize caching at the application tier or separate cache services.
122+
123+
Action:
124+
125+
* Remove dependencies on the built-in memcached functionality.
126+
127+
## Further reading
128+
129+
* [Upgrade overview](./upgrade.md)
130+
* [Upgrade checklist for {{vers}}](./upgrade-checklist-8.4.md)
131+
* [Upgrade procedures for {{vers}}](./upgrade-procedures.md)
132+
* [Upgrade strategies](./upgrade-strategies.md)
133+
* [MySQL upgrade paths and supported methods](./mysql-upgrade-paths.md)
134+
* [Upgrade from plugins to components](./upgrade-components.md)
135+
* [Upgrade to Percona Server for MySQL Pro](./upgrade-pro.md)
136+
* [Downgrade options](./downgrade.md)
137+
* [Compatibility and removed items in {{vers}}](./8.4-compatibility-and-removed-items.md)
138+
* [Defaults and tuning guidance for {{vers}}](./8.4-defaults-and-tuning.md)
139+
* [Percona Toolkit updates for {{vers}}](./percona-toolkit-8.4-updates.md)
140+
141+
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Compatibility and removed items in {{vers}}
2+
3+
A successful migration requires identifying and addressing all removed parameters, variables, and functions. Using removed items in configuration files or application code will cause errors and prevent server startup or application execution.
4+
5+
## Removed server and replication system variables
6+
7+
| Variable Name | Description | Replacement |
8+
| --- | --- | --- |
9+
| `avoid_temporal_upgrade` | Whether ALTER TABLE should upgrade pre-5.6.4 temporal columns | No replacement |
10+
| `binlog_transaction_dependency_tracking` | Source of dependency information for multithreaded applier | Functionality is now internal |
11+
| `character-set-client-handshake` | Do not ignore client-side character set value sent during handshake | No replacement |
12+
| `default_authentication_plugin` | Default authentication plugin | `authentication_policy` |
13+
| `expire_logs_days` | Purge binary logs after a number of days | `binlog_expire_logs_seconds` |
14+
| `group_replication_ip_whitelist` | List of hosts permitted to connect to the group | No replacement |
15+
| `group_replication_primary_member` | Primary member UUID when in single-primary mode | No replacement |
16+
| `group_replication_recovery_complete_at` | Recovery policies when handling cached transactions | No replacement |
17+
| `have_openssl` | Whether the server supports SSL connections | No replacement |
18+
| `have_ssl` | Whether the server supports SSL connections | No replacement |
19+
| `innodb_api_...` variables | All innodb_api variables related to built-in memcached functionality | No replacement |
20+
21+
## Removed server options, SQL statements, and status variables
22+
23+
| Item Name | Type | Replacement |
24+
| --- | --- | --- |
25+
| `admin-ssl` | Server Option | `--tls-version` and `--admin-tls-version` |
26+
| `authentication_fido_rp_id` | Server Option | No replacement |
27+
| `--language` | Server Option | No replacement |
28+
| `--old` and `--new` | Server Option | No replacement |
29+
| `Com_change_master` | Status Variable | `Com_change_replication_source` |
30+
| `Com_show_master_status` | Status Variable | `Com_show_binary_log_status` |
31+
| `Com_show_slave_status` | Status Variable | `Com_show_replica_status` |
32+
| `Com_slave_start` | Status Variable | `Com_replica_start` |
33+
| `Com_slave_stop` | Status Variable | `Com_replica_stop` |
34+
| `CHANGE MASTER TO` | SQL Statement | `CHANGE REPLICATION SOURCE TO` |
35+
| `SHOW SLAVE STATUS` | SQL Statement | `SHOW REPLICA STATUS` |
36+
| `START SLAVE` | SQL Statement | `START REPLICA` |
37+
| `STOP SLAVE` | SQL Statement | `STOP REPLICA` |
38+
| `WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()` | SQL Function | `WAIT_FOR_EXECUTED_GTID_SET()` |
39+
40+
## Third-party tool compatibility
41+
42+
### Percona XtraBackup (PXB)
43+
44+
* **Version-specific backups**: Percona XtraBackup 8.4 creates backups of MySQL 8.4, Percona Server for MySQL 8.4, and Percona XtraDB Cluster 8.4 only.
45+
* **Compatibility**: Does not support backing up databases from MySQL 8.0 or 9.x servers.
46+
* **Action**: Upgrade XtraBackup to version 8.4 before or during the database upgrade.
47+
48+
### Percona Operator for MySQL
49+
50+
* **Upgrade method**: Create a new PXC 8.4 installation using the Percona Operator for PXC 8.4.
51+
* **Data migration**: Recover data from an 8.0 backup, then establish asynchronous replication between clusters.
52+
* **In-place upgrade**: Not recommended; may work but is not guaranteed.
53+
54+
### ProxySQL
55+
56+
* **MySQL 8.4 support**: Recent versions support MySQL 8.4 and include Group Replication support for 8.4 and 9.x.
57+
* **Authentication**: ProxySQL 2.6+ supports `caching_sha2_password` (default in 8.4).
58+
* **Replication terminology**: Compatible with REPLICA/SOURCE syntax; can monitor replica lag and manage traffic accordingly.
59+
60+
## Pre-upgrade validation
61+
62+
Use these tools to identify compatibility issues:
63+
64+
* **mysqlsh upgrade checker**: Identifies many removed parameters and compatibility issues.
65+
* **Manual review**: Cross-reference your configuration files and application code against the removed items tables above.
66+
* **Third-party tooling**: Verify versions of backup utilities, proxies, and monitoring solutions.
67+
68+
## Further reading
69+
70+
* [Upgrade overview](./upgrade.md)
71+
* [Upgrade checklist for {{vers}}](./upgrade-checklist-8.4.md)
72+
* [Upgrade procedures for {{vers}}](./upgrade-procedures.md)
73+
* [Upgrade strategies](./upgrade-strategies.md)
74+
* [MySQL upgrade paths and supported methods](./mysql-upgrade-paths.md)
75+
* [Upgrade from plugins to components](./upgrade-components.md)
76+
* [Upgrade to Percona Server for MySQL Pro](./upgrade-pro.md)
77+
* [Downgrade options](./downgrade.md)
78+
* [Breaking and incompatible changes in {{vers}}](./8.4-breaking-changes.md)
79+
* [Defaults and tuning guidance for {{vers}}](./8.4-defaults-and-tuning.md)
80+
* [Percona Toolkit updates for {{vers}}](./percona-toolkit-8.4-updates.md)

docs/8.4-defaults-and-tuning.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Defaults and tuning guidance for {{vers}}
2+
3+
MySQL {{vers}} updates several server defaults to align with modern CPUs, memory sizes, and SSD/NVMe storage. An in-place upgrade that blindly reuses an 8.0-era `my.cnf` may forgo these improvements or cause unexpected performance behaviors. Review and re-evaluate configuration on {{vers}}—or generate a new config—rather than carrying old settings forward.
4+
5+
## Notable InnoDB default changes
6+
7+
| InnoDB System Variable Name | New Default ({{vers}}) | Previous Default (8.0) |
8+
| --- | --- | --- |
9+
| `innodb_adaptive_hash_index` | OFF | ON |
10+
| `innodb_change_buffering` | none | all |
11+
| `innodb_doublewrite_files` | 2 | `innodb_buffer_pool_instances * 2` |
12+
| `innodb_flush_method` on Linux | O_DIRECT if supported, otherwise fsync | fsync |
13+
| `innodb_io_capacity` | 10000 | 200 |
14+
| `innodb_log_buffer_size` | 67108864 (64 MiB) | 16777216 (16 MiB) |
15+
| `innodb_numa_interleave` | ON | OFF |
16+
| `temptable_max_ram` | 3% of total memory (1–4 GiB range) | 1073741824 (1 GiB) |
17+
| `innodb_parallel_read_threads` | available logical processors / 8 (min 4) | 4 |
18+
19+
Why it matters:
20+
21+
* Higher `innodb_io_capacity` leverages SSD/NVMe for IO-bound workloads; legacy spinning disks may need a lower value.
22+
* Larger `innodb_log_buffer_size` reduces redo flush frequency—helpful for write-heavy workloads.
23+
* `innodb_adaptive_hash_index` default OFF favors predictability; AHI can become a contention source under concurrency.
24+
* NUMA interleaving defaults ON to reduce imbalance on multi-socket systems.
25+
26+
## Configuration review checklist
27+
28+
Use this to adapt an 8.0 configuration to {{vers}}:
29+
30+
* Remove overrides that merely reassert old 8.0 defaults unless they are proven necessary.
31+
* Re-evaluate IO settings (`innodb_io_capacity`, flush method) based on storage type and observed latency.
32+
* Confirm redo/undo settings and log buffer meet current write patterns.
33+
* Validate parallel read threads relative to CPU topology and workload.
34+
* Generate a fresh config for {{vers}} when possible; only reapply carefully justified overrides.
35+
36+
## Practical evaluation steps
37+
38+
* Benchmark with your workload: baseline on 8.0 → restore to {{vers}} → run the same tests.
39+
* Compare Performance Schema and wait events for regressions or new hotspots.
40+
* Adjust a single variable at a time; document changes and impacts.
41+
42+
## Further reading
43+
44+
* [Upgrade overview](./upgrade.md)
45+
* [Upgrade checklist for {{vers}}](./upgrade-checklist-8.4.md)
46+
* [Upgrade procedures for {{vers}}](./upgrade-procedures.md)
47+
* [Upgrade strategies](./upgrade-strategies.md)
48+
* [MySQL upgrade paths and supported methods](./mysql-upgrade-paths.md)
49+
* [Upgrade from plugins to components](./upgrade-components.md)
50+
* [Upgrade to Percona Server for MySQL Pro](./upgrade-pro.md)
51+
* [Downgrade options](./downgrade.md)
52+
* [Breaking and incompatible changes in {{vers}}](./8.4-breaking-changes.md)
53+
* [Compatibility and removed items in {{vers}}](./8.4-compatibility-and-removed-items.md)
54+
* [Percona Toolkit updates for {{vers}}](./percona-toolkit-8.4-updates.md)
55+
56+

0 commit comments

Comments
 (0)