来源,翻译:https://mariadb.com/resources/blog/announcing-mariadb-community-server-11-3-ga-and-11-4-rc/
我们很高兴地宣布 MariaDB 社区服务器 11.3 正式发布 (GA) 以及 MariaDB 社区服务器 11.4 的候选版本 (RC)。
MARIADB 社区服务器 11.3 现已正式发布
MariaDB Community Server 11.3 提供了新的安全权限以及 SQL 函数、InnoDB 和复制的增强功能。MariaDB Community Server 11.3 的一些具体亮点包括:
- 现在可以在不重新启动数据库的情况下缩小临时 InnoDB 表空间。
- 要执行复制中继日志的事务直至提供的全局事务 ID (GTID),可以通过使用 START REPLICA UNTIL 的新选项 SQL_BEFORE_GTIDS 和 SQL_AFTER_GTIDS 来定义是否应包含提供的 GTID。
- 引入了新权限 SHOW CREATE ROUTINE,使任何具有此权限的用户都可以查看存储例程的定义,而无需授予对系统表 mysql.procs 的读取访问权限。
- 函数 DATE_FORMAT 中添加了新的时区选项。
阅读此博客,了解 11.3.2 版本中所有新功能的完整列表,包括一些示例。MariaDB 社区服务器 11.3 版本系列从预览版本开始,然后于 2023 年 11 月发布 RC 版本。
MARIADB 社区服务器 11.4 现已 RC
我们的下一个版本系列 MariaDB Community Server 11.4 提供了分区性能增强、使用 SSL 的简化方法、使用独立于所用 SQL 模式的存储例程包等等。
权限/安全增强
默认情况下 SSL 加密
MariaDB Server 11.4 简化了 SSL(更正确的术语是 TLS,但实际上 SSL 更常用)的使用。在版本 11.4 之前,正确的 SSL 配置需要对服务器和连接到它的所有客户端执行多个手动步骤。
现在客户端无需任何配置即可验证服务器自签名证书。服务器完全自动生成SSL证书,客户端根据需要自动验证。
这种简化允许服务器现在默认要求 SSL 加密连接并拒绝未加密的连接。
有关更多详细信息和限制,请阅读由 Sergei Golubchik 撰写的博客文章《碟中谍:零配置 SSL》,该文章已在 11.3 预览版中添加增强功能时发布。此关键功能需要更多测试,因此仅添加到此版本中。
此外,11.4 允许用户使用指纹验证 SSL 证书。
检索特定表上的用户权限
MariaDB Server 提供有关用户对不同视图中的表的权限的信息INFORMATION_SCHEMA,分为全局权限、架构权限和表权限。在 11.4 之前,没有简单的方法来列出用户有权访问的所有表,必须从多个表中查询此信息。
MariaDB Community Server 11.4 现在privileges_by_table_by_level在SYS架构中提供了一个新视图,列出了每个用户、架构和表的权限和权限级别。
例子:
CREATE DATABASE test;
use test;
CREATE TABLE t1 (id int);
CREATE USER user1;
GRANT SELECT, UPDATE ON *.* TO user1;
CREATE USER user2;
GRANT SELECT ON test.* TO user2;
CREATE USER user3;
GRANT SELECT ON test.t1 TO user3;
SELECT * FROM sys.privileges_by_table_by_level WHERE GRANTEE NOT LIKE "'root'@'%'";
+--------------+------------+-------------+-----------+--------+
| TABLE_SCHEMA | TABLE_NAME | GRANTEE | PRIVILEGE | LEVEL |
+--------------+------------+-------------+-----------+--------+
| test | t1 | 'user1'@'%' | SELECT | GLOBAL |
| test | t1 | 'user1'@'%' | UPDATE | GLOBAL |
| test | t1 | 'user2'@'%' | SELECT | SCHEMA |
| test | t1 | 'user3'@'%' | SELECT | TABLE |
+--------------+------------+-------------+-----------+--------+
分区
无需验证即可交换分区或转换表
将分区与表交换或将表转换为分区的过程可能是一个非常慢的操作,尤其是对于较大的表,因为对于每个新数据行,需要验证分区定义以验证新行确实应该是在这个分区中。
现在可以通过禁用此验证来加快此过程。应谨慎使用此新功能,因为如果不满足分区规则,可能会导致不一致。
ALTER TABLE 的新增内容是:
EXCHANGE PARTITION partition_name WITH TABLE tbl_name [{WITH | WITHOUT} VALIDATION]
CONVERT TABLE normal_table TO partition_definition [{WITH | WITHOUT} VALIDATION]
复制
二进制日志使用的空间的全局限制
新的系统变量 max_binlog_total_size (别名 binlog_space_limit)在所有二进制日志的总大小超过指定阈值时启用二进制日志清除。默认值为max_binlog_total_size0,表示没有限制。无需重新启动服务器即可更改系统变量。
新的系统变量–slave-connections-needed-for-purge默认设置为 1,可确保至少在连接了许多副本并且不再需要清除的二进制日志之前不会发生二进制日志清除。
新的状态变量Binlog_disk_use可用于查询二进制日志当前使用的磁盘空间。
GTID 上的二进制日志索引
现在在二进制日志的 GTID 上创建了一个索引,这允许连接副本找到它应该开始的位置,而无需扫描整个二进制日志。
新的系统变量 binlog_gtid_index (默认 ON)可用于禁用索引的创建。
新的系统变量 binlog_gtid_index_page_size (默认 4096)定义用于二进制日志 GTID 索引的页面大小。
新的系统变量binlog_gtid_index_span_min(默认65536)控制二进制日志GTID索引的稀疏度。
新的状态变量 binlog_gtid_index_hit 和 binlog_gtid_index_miss 可用于监视目的。未命中表示索引文件丢失。
SQL 级别增强
存储例程包的一般支持
在 MariaDB Community Server 11.4 之前,该CREATE PACKAGE功能以及CREATE PACKAGE BODY,仅支持sql_mode = ORACLE. 它们现在可以与任何 SQL 模式一起使用。
例子:
DELIMITER $$
CREATE OR REPLACE PACKAGE myPkg
PROCEDURE p1();
FUNCTION f1() RETURNS INT;
END;
$$
CREATE OR REPLACE PACKAGE BODY myPkg
-- variable declarations
DECLARE v1 INT DEFAULT 1;
DECLARE v2 INT DEFAULT 10;
-- routine declarations
PROCEDURE p1()
BEGIN
SELECT v1, v2;
END;
FUNCTION f1() RETURNS INT
BEGIN
RETURN v1;
END;
-- package initialization
SET v1=v1 + 2;
END;
$$
DELIMITER ;
SELECT myPkg.f1();
+------------+
| myPkg.f1() |
+------------+
| 3 |
+------------+
CALL myPkg.p1();
+------+------+
| v1 | v2 |
+------+------+
| 3 | 10 |
+------+------+
函数 CONV() 的增强
该函数CONV()在数字基数系统之间转换数字,现在支持高达 62 基数的转换。这允许将编码转换为大写字母 AZ、小写字母 az 和数字 0-9。旧的限制是 36,不包括小写字母。
例子:
SELECT CONV(61,10,36);
+----------------+
| CONV(61,10,36) |
+----------------+
| 1P |
+----------------+
SELECT CONV(61,10,62);
+----------------+
| CONV(61,10,62) |
+----------------+
| z |
+----------------+
备份还原
mariadb-dump 的并行性
当mariadb-dump与选项-T/一起使用–tab=来为每个表生成制表符分隔的文本格式数据文件时,新选项–parallel(同义词–use-threads)可用于并行使用多个线程将表数据转储到其 .txt 文件。–single-tansaction如果使用该选项,并行性也有效。
该选项–parallel已作为 的同义词添加到 mariadb-import 中–use-threads,该选项之前已可用。
各种各样的
有关应用程序时间周期表的信息
新视图PERIOD和KEY_PERIOD_USAGE添加到information_schema.
视图PERIODS包括列
- TABLE_CATALOG
- TABLE_SCHEMA
- TABLE_NAME
- PERIOD_NAME
- START_COLUMN_NAME
- END_COLUMN_NAME
列出应用程序时间段表、为时间段定义的名称以及用于开始和结束时间戳的列。
视图KEY_PERIOD_USAGE包括列
- CONSTRAINT_CATALOG
- CONSTRAINT_SCHEMA
- CONSTRAINT_NAME
- TABLE_CATALOG
- TABLE_SCHEMA
- TABLE_NAME
- PERIOD_NAME
COLUMNS视图中添加了两个新列information_schema
- IS_SYSTEM_TIME_PERIOD_START
- IS_SYSTEM_TIME_PERIOD_END
增强 SQL 错误日志插件
SQL 错误日志插件可用于记录发送到客户端的错误以供以后分析。设置选项后sql_error_log_with_db_and_thread_info=ON,日志文件现在还显示线程 ID 和错误的当前默认架构。
请查看 MariaDB Server 11.4.0和11.4.1的发行说明以了解更多更改。
不推荐使用的选项
存储引擎 Spider 中的选项
从 MariaDB Community Server 11.3 开始,SPIDER 存储引擎中有专用的表选项,因此使用COMMENT为 Spider 提供选项的子句现已弃用,并将在后续版本系列中删除。