【MySQL精通之路】InnoDB(6)-磁盘结构(5)-Redolog

主博客:

【MySQL精通之路】InnoDB(6)-磁盘上的InnoDB结构-CSDN博客

上一篇:

【MySQL精通之路】InnoDB-双写缓冲区-CSDN博客

下一篇:


目录

1.配置Redo Log容量(MySQL 8.0.30或更高版本)

2.配置重做日志容量(MySQL 8.0.30之前)

3.自动恢复日志容量配置

4.重做日志存档

5.性能注意事项

6.禁用重做日志记录


        Redo Log重做日志是一种基于磁盘的数据结构,在崩溃恢复期间用于更正由不完整事务写入的数据。

在正常操作过程中,重做日志对SQL语句低级API调用产生的更改表数据的请求进行编码。

初始化期间接受连接之前意外关闭之前没有完成更新数据文件的操作将自动重播。

有关重做日志在崩溃恢复中的作用的信息,请参阅“InnoDB恢复”。

【MySQL精通之路】InnoDB(18)-备份与恢复-CSDN博客

        重做日志在磁盘上由Redo Log文件物理表示。写入Redo Log文件的数据是根据受影响的记录进行编码的,这些数据统称为重做。通过Redo Log文件的数据传输由不断增加的LSN值表示。重做日志数据会随着数据修改的进行而附加,最旧的数据会随着检查点的进行而截断。

与重做日志相关的信息和过程在本节的以下主题下进行了描述:

1.配置Redo Log容量(MySQL 8.0.30或更高版本)

在MySQL 8.0.30中,innodb_redo_log_cability系统变量控制重做日志文件占用的磁盘空间量。

您可以在启动时或运行时使用SET GLOBAL语句在选项文件中设置此变量;

例如,以下语句将重做日志容量设置为8GB:

SET GLOBAL innodb_redo_log_capacity = 8589934592;

在运行时设置时,配置更改会立即生效,但可能需要一些时间才能完全实现新的限制。

如果Redo Log文件占用的空间小于指定值,则脏页会从缓冲池刷新到表空间数据文件的力度会降低,最终会增加重做日志文件所占用的磁盘空间

如果Redo Log文件占用的空间超过指定值,脏页会被更积极地刷新,最终会减少重做日志文件所占用的磁盘空间。

如果未定义innodb_do_log_cability,并且既没有定义innodd_log_file_size也没有定义innodab_log_file_in_group,则使用默认的innodab_do_long_cabilition值。

如果没有定义innob_redo_log_cability,如果定义了innodb_log_file_size和/或innodb_og_files_in_group,则Redo Log文件容量计算为(innodb_logo _files_i_group*innodb_log _file_size)。

此计算不会修改未使用的innodb_redo_log_cability设置的值。

Innodb_redo_log_cability_resize服务器状态变量表示所有Redo Log文件的总Redo Log文件容量

        重做日志文件位于数据目录中的#innodb_Redo目录中,除非innodb_log_group_home_dir变量指定了其他目录。

        如果定义了innodb_log_group_home_dir,则重做日志文件位于该目录中的#innodb_redo目录中。

        有两种类型的重做日志文件,普通备用

        正在使用的是普通的Redo Log文件。备用Redo Log文件是那些等待使用的文件。InnoDB尝试总共维护32个Redo Log文件,每个文件的大小等于1/32*InnoDB_redo_log_cability

但是,在修改innodb_redo_logcapacity设置后,文件大小可能会在一段时间内有所不同。

        重做日志文件使用#ib_redoN命名约定,其中N是重做日志文件编号

        备用重做日志文件由_tmp后缀表示

        以下示例显示了#innodb_redo目录中的重做日志文件,其中有21个活动Redo Log文件11个备用Redo Log文件(按顺序编号)。

'#ib_redo582'  '#ib_redo590'  '#ib_redo598'      '#ib_redo606_tmp'
'#ib_redo583'  '#ib_redo591'  '#ib_redo599'      '#ib_redo607_tmp'
'#ib_redo584'  '#ib_redo592'  '#ib_redo600'      '#ib_redo608_tmp'
'#ib_redo585'  '#ib_redo593'  '#ib_redo601'      '#ib_redo609_tmp'
'#ib_redo586'  '#ib_redo594'  '#ib_redo602'      '#ib_redo610_tmp'
'#ib_redo587'  '#ib_redo595'  '#ib_redo603_tmp'  '#ib_redo611_tmp'
'#ib_redo588'  '#ib_redo596'  '#ib_redo604_tmp'  '#ib_redo612_tmp'
'#ib_redo589'  '#ib_redo597'  '#ib_redo605_tmp'  '#ib_redo613_tmp'

每个普通的重做日志文件都与特定范围的LSN值相关联;

例如,以下查询显示上一示例中列出的活动Redo Log文件START_LSNEND_LSN值:

mysql> SELECT FILE_NAME, START_LSN, END_LSN FROM performance_schema.innodb_redo_log_files;
+----------------------------+--------------+--------------+
| FILE_NAME                  | START_LSN    | END_LSN      |
+----------------------------+--------------+--------------+
| ./#innodb_redo/#ib_redo582 | 117654982144 | 117658256896 |
| ./#innodb_redo/#ib_redo583 | 117658256896 | 117661531648 |
| ./#innodb_redo/#ib_redo584 | 117661531648 | 117664806400 |
| ./#innodb_redo/#ib_redo585 | 117664806400 | 117668081152 |
| ./#innodb_redo/#ib_redo586 | 117668081152 | 117671355904 |
| ./#innodb_redo/#ib_redo587 | 117671355904 | 117674630656 |
| ./#innodb_redo/#ib_redo588 | 117674630656 | 117677905408 |
| ./#innodb_redo/#ib_redo589 | 117677905408 | 117681180160 |
| ./#innodb_redo/#ib_redo590 | 117681180160 | 117684454912 |
| ./#innodb_redo/#ib_redo591 | 117684454912 | 117687729664 |
| ./#innodb_redo/#ib_redo592 | 117687729664 | 117691004416 |
| ./#innodb_redo/#ib_redo593 | 117691004416 | 117694279168 |
| ./#innodb_redo/#ib_redo594 | 117694279168 | 117697553920 |
| ./#innodb_redo/#ib_redo595 | 117697553920 | 117700828672 |
| ./#innodb_redo/#ib_redo596 | 117700828672 | 117704103424 |
| ./#innodb_redo/#ib_redo597 | 117704103424 | 117707378176 |
| ./#innodb_redo/#ib_redo598 | 117707378176 | 117710652928 |
| ./#innodb_redo/#ib_redo599 | 117710652928 | 117713927680 |
| ./#innodb_redo/#ib_redo600 | 117713927680 | 117717202432 |
| ./#innodb_redo/#ib_redo601 | 117717202432 | 117720477184 |
| ./#innodb_redo/#ib_redo602 | 117720477184 | 117723751936 |
+----------------------------+--------------+--------------+

当执行检查点时,InnoDB将检查点LSN存储在包含该LSN的文件的头中。

在恢复过程中,将检查所有重做日志文件,并在最新的检查点LSN开始恢复。

提供了几个状态变量,用于监控Redo Log文件Redo Log文件容量调整操作;

例如,您可以查询Innodb_redo_log_resize_status来查看调整大小操作的状态:

mysql> SHOW STATUS LIKE 'Innodb_redo_log_resize_status';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| Innodb_redo_log_resize_status | OK    |
+-------------------------------+-------+

Innodb_redo_log_cability_resize状态变量显示当前Redo Log文件容量限制:

mysql> SHOW STATUS LIKE 'Innodb_redo_log_capacity_resized';+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| Innodb_redo_log_capacity_resized | 104857600 |
+----------------------------------+-----------+

其他适用的状态变量包括:

Innodb_redo_log_checkpoint_lsn

Innodb_redo_log_current_lsn

Innodb_redo_log_flushed_to_disk_lsn

Innodb_redo_log_logical_size

Innodb_redo_log_physical_size

Innodb_redo_log_read_only

Innodb_redo_log_uuid

 有关更多信息,请参阅状态变量说明。

您可以通过查询Performance Schema库的innodb_redo_log_files表来查看有关活动Redo Log文件的信息。以下查询从表的所有列中检索数据:

SELECT FILE_ID, START_LSN, END_LSN, SIZE_IN_BYTES, IS_FULL, CONSUMER_LEVEL 
FROM performance_schema.innodb_redo_log_files;

2.配置重做日志容量(MySQL 8.0.30之前)

在MySQL 8.0.30之前,InnoDB默认在数据目录中创建两个redo日志文件,分别命名为ib_logfile0和ib_logfile 1,并以循环方式写入这些文件。

修改Redo Log文件容量需要更改Redo Log文件的数量或大小,或者同时更改两者。

1.停止MySQL服务器并确保其关闭时没有出现错误。

2.编辑my.cnf以更改重做日志文件配置。要更改重做日志文件的大小,请配置

innodb_log_file_size。要增加重做日志文件的数量,请配置innodb_log_files_in_group。

3.再次启动MySQL服务器。

如果InnoDB检测到InnoDB_log_file_size与重做日志文件大小不同,它会写入一个日志检查点,关闭并删除旧的日志文件,以请求的大小创建新的日志文件并打开新日志文件。

3.自动恢复日志容量配置

当innob_dedicated_server启用时,innodb会自动配置某些innodb参数,包括Redo Log文件容量。

自动配置适用于驻留在MySQL专用服务器上的MySQL实例,MySQL服务器可以使用所有可用的系统资源。

有关更多信息,请参阅“启用专用MySQL服务器的自动配置”。

4.重做日志存档

        在备份操作进行过程中,复制Redo Log文件的备份实用程序有时可能无法跟上重做日志生成的步伐,从而导致这些记录被覆盖而丢失重做日志记录。

        当MySQL服务器在备份操作过程中有重大活动,并且重做日志文件存储介质的运行速度比备份存储介质快时,最常出现此问题

        MySQL 8.0.17中引入的Redo Log文件归档功能。

        通过将重做日志记录顺序写入归档文件以及Redo Log文件来解决此问题。

备份实用程序可以根据需要从存档文件中复制重做日志记录,从而避免潜在的数据丢失。

如果在服务器上配置了重做日志归档,MySQL Enterprise Edition提供的MySQL Enterprise Backup在备份MySQL服务器时会使用重做日志归档功能

        在服务器上启用重做日志存档需要为innodb_redo_log_archive_dirs系统变量设置一个值。该值指定为标记的重做日志存档目录的分号分隔列表。

label:目录对由冒号(:)分隔

例如

mysql> SET GLOBAL innodb_redo_log_archive_dirs='label1:directory_path1[;label2:directory_path2;…]';

标签是存档目录的任意标识符。它可以是任何字符串,但不允许使用冒号(:)。

空标签也是允许的,但在这种情况下仍然需要冒号(:)。

必须指定directory_path。激活重做日志存档或返回错误时,为重做日志存档文件选择的目录必须存在。

路径可以包含冒号(“:”),但不允许使用分号(;)。

在激活重做日志归档之前,必须配置innodb_redo_log_archive_dirs变量

默认值为NULL,不允许激活重做日志存档。

注意:
指定的存档目录必须满足以下要求。(当激活重做日志归档时,会强制执行这些要求。):

1.目录必须存在。目录不是由重做日志存档过程创建的。否则,将返回以下错误:

错误3844(HY000):重做日志存档目录“directory_path1”不存在或不是目录

2.目录不能在全球范围内访问。这是为了防止重做日志数据暴露给系统上未经授权的用户。否则,将返回以下错误:

错误3846(HY000):所有操作系统用户都可以访问重做日志存档目录“directory_path1”

3.目录不能是由

datadir

innob_data_home_dir

innodb_Directories

innob_log_group_home_dirinnodb_tmp_tablespaces_dir

innodd_tmpdir innodb_undo_directory

secure_file_priv

定义的目录,也不能是这些目录的父目录或子目录。

否则,将返回类似于以下内容的错误:

错误3845(HY000):重做日志存档目录“directory_path1”位于服务器目录“datadir”中、之下或之上-“/path/to/data_directory”

 当支持重做日志归档的备份实用程序启动备份时,该备份实用程序通过调用innodb_redo_log_archive_start()函数来激活重做日志归档。

如果您没有使用支持重做日志归档的备份实用程序,也可以手动激活重做日志归档,如图所示:

mysql>选择innodb_redo_log_archive_start('label','subdir');
+------------------------------------------+
|innodb_redo_log_archive_start(“标签”)|
+------------------------------------------+
| 0                                        |
+------------------------------------------+
mysql> DO innodb_redo_log_archive_start('label', 'subdir');
Query OK, 0 rows affected (0.09 sec)

注意:
激活重做日志归档的MySQL会话(使用innodb_redo_log_archive_start())在归档期间必须保持打开状态。

同一会话必须停用重做日志存档(使用innodb_redo_log_archive_stop())。

如果会话在显式停用重做日志归档之前终止,则服务器隐式停用重做记录归档删除重做记录归档文件

其中

label是innodb_redo_log_archive_dirs定义的标签;

subdir是一个可选参数,用于指定由保存归档文件的标签标识的目录的子目录;它必须是一个简单的目录名(不允许使用斜线(/)、反斜线(\)或冒号(:))。subdir可以为空、null,也可以省略。

只有具有INNODB_REDO_LOG_ARCHIVE权限的用户才能通过调用INNODB_REDO_LOG_ARCHIVE_start()激活重做日志归档

或者使用INNODB_reado_LOG_aArchive_stop()将其停用。

运行备份实用程序的MySQL用户或手动激活和停用重做日志归档的MySQL用户必须具有此权限。

重做日志存档文件路径为directory_identified_by_label/[subdir/]archive.serverUUID.0000001.log,其中directory_identified _by_label是由innodb_redo_log_archive_start()的label参数标识的存档目录。subdir是用于innodb_redo_log_archive_start()的可选参数。

例如,重做日志存档文件的完整路径和名称如下所示:

/directory_path/subdirectory/archive.e71a47dc-61f8-11e9-a3cb-080027154b4d.000001.log

备份实用程序完成复制InnoDB数据文件后,通过调用InnoDB_redo_log_archive_stop()函数停用重做日志归档。

如果您没有使用支持重做日志归档的备份实用程序,也可以手动停用重做日志归档,如图所示:

mysql> SELECT innodb_redo_log_archive_stop();
+--------------------------------+
| innodb_redo_log_archive_stop() |
+--------------------------------+
| 0                              |
+--------------------------------+
mysql> DO innodb_redo_log_archive_stop();
Query OK, 0 rows affected (0.01 sec)

停止功能成功完成后,备份实用程序会从归档文件中查找重做日志数据的相关部分,并将其复制到备份中。

备份实用程序完成复制重做日志数据并且不再需要重做日志归档文件后,将删除归档文件。

在正常情况下,删除存档文件是备份实用程序的责任。

但是,如果重做日志归档操作在调用innodb_redo_log_archive_stop()之前意外退出,MySQL服务器将删除该文件

5.性能注意事项

由于额外的写入活动,激活重做日志归档通常会带来较小的性能成本。

在Unix和类Unix操作系统上,假设没有持续的高更新率,对性能的影响通常很小。

在Windows上,假设相同,性能影响通常会更高一些。

如果存在持续的高更新率,并且重做日志归档文件与重做日志文件位于同一存储介质上,则由于复杂的写入活动,性能影响可能更为显著。

如果存在持续的高更新率,并且重做日志归档文件位于比重做日志文件慢的存储介质上,则性能会受到任意影响。

写入重做日志归档文件不会妨碍正常的事务日志记录,除非重做日志归档文件存储介质以比重做日志文件存储介质慢得多的速率运行,并且有大量的持久化重做日志块等待写入重做日志档案文件。在这种情况下,事务日志记录速率会降低到可以由重做日志归档文件所在的较慢存储介质管理的水平。

6.禁用重做日志记录

从MySQL 8.0.21开始,您可以使用以下命令禁用重做日志记录

ALTER INSTANCE DISABLE INNODB REDO_LOG

此功能旨在将数据加载到新的MySQL实例中。

禁用重做日志记录可以避免重做日志写入双写缓冲,从而加快数据加载

警告
此功能仅用于将数据加载到新的MySQL实例中。不要在生产系统上禁用重做日志记录。

允许在禁用重做日志记录时关闭重新启动服务器,但在禁用重做记录时服务器意外停止可能会导致数据丢失和实例损坏。

在禁用重做日志记录的情况下,在服务器意外停止后尝试重新启动服务器被拒绝,错误如下:

[ERROR] [MY-013598] [InnoDB] Server was killed when Innodb Redo 
logging was disabled. Data files could be corrupt. You can try 
to restart the database with innodb_force_recovery=6

在这种情况下,初始化一个新的MySQL实例,然后再次启动数据加载过程。

启用和禁用重做日志记录需要INNODB_REDO_LOG_ENABLE权限

Innodb_redo_log_enabled状态变量允许监视重做日志记录状态。

在禁用重做日志记录时,不允许克隆操作重做日志存档,反之亦然。

ALTER INSTANCE [ ENABLE | DISABLE ]  INNODB REDO_LOG操作

需要一个独占备份元数据锁,这将阻止其他ALTER INSTANCE操作同时执行。

其他ALTER INSTANCE操作必须等待锁释放后才能执行。

以下过程演示了如何在将数据加载到新MySQL实例时禁用重做日志记录。

1.在新的MySQL实例上,将INNODB_REDO_LOG_ENABLE权限授予负责禁用重做日志记录的用户帐户。

mysql> GRANT INNODB_REDO_LOG_ENABLE ON *.* to 'data_load_admin';

2.作为data_load_admin用户,禁用重做日志记录:

mysql> ALTER INSTANCE DISABLE INNODB REDO_LOG;

3.检查Innodb_redo_log_enabled状态变量以确保重做日志记录被禁用。

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_redo_log_enabled';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Innodb_redo_log_enabled | OFF   |
+-------------------------+-------+

4.运行数据加载操作。

5.作为data_load_admin用户,在数据加载操作完成后启用重做日志记录:

mysql>ALTER INSTANCE ENABLE INNODB REDO_LOG;

6.检查Innodb_redo_log_enabled状态变量以确保已启用重做日志记录。

mysql> SHOW GLOBAL STATUS LIKE 'Innodb_redo_log_enabled';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Innodb_redo_log_enabled | ON    |
+-------------------------+-------+

扩展知识:

重做日志配置

优化InnoDB重做日志记录

重做日志加密

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++初阶之深入模板

一、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

基于STM32实现智能空气质量监测系统

目录 文章主题环境准备智能空气质量监测系统基础代码示例:实现智能空气质量监测系统 配置传感器并读取数据数据处理与显示数据存储与传输应用场景:室内环境监测与空气质量控制问题解决方案与优化收尾与总结 1. 文章主题 文章主题 本教程将详细介绍如何…

LIO-EKF: High Frequency LiDAR-Inertial Odometry using Extended Kalman Filters

一、论文摘要 里程计估计是每个需要在未知环境中导航的自主系统的关键要素。在现代移动机器人中,3D LiDAR 惯性系统通常用于执行此任务。通过融合 LiDAR 扫描和 IMU 测量,这些系统可以减少因顺序注册各个 LiDAR 扫描而引起的累积漂移,并提供稳…

如何在 Ubuntu 24.04 (桌面版) 上配置静态IP地址 ?

如果你想在你的 Ubuntu 24.04 桌面有一个持久的 IP 地址,那么你必须配置一个静态 IP 地址。当我们安装 Ubuntu 时,默认情况下 DHCP 是启用的,如果网络上可用,它会尝试从 DHCP 服务器获取 IP 地址。 在本文中,我们将向…

登录接口测试

登录接口测试 数据驱动

深度解析:用 Python 爬虫逆向破解 solscan 的请求头加密参数 Sol-Aut

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你详细地逆向分析 solscan 网站请求头加密字段 Sol-Aut 的构造逻辑,…

C语言基础-macro和volatile

在C语言中&#xff0c;可以使用#define预处理指令来定义宏。宏是一种在编译时替换文本的工具&#xff0c;通常用于表示常量或执行简单的文本替换。 下面是一个定义“标准”宏MIN的例子&#xff0c;这个宏用于比较两个值并返回较小的那个&#xff1a; #include <stdio.h>…

我把PostgreSQL最核心的插件撸干净了!!!

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

景源畅信:小白做抖音运营难吗?

在数字化时代&#xff0c;社交媒体已成为人们生活的一部分&#xff0c;而抖音作为其中的翘楚&#xff0c;吸引了众多希望通过平台实现自我价值和商业目标的用户。对于刚入门的小白来说&#xff0c;运营抖音账号可能会遇到不少挑战。接下来&#xff0c;我们将详细探讨这一话题&a…

法那科机器人M-900iA维修主要思路

发那科工业机器人是当今制造业中常用的自动化设备之一&#xff0c;而示教器是发那科机器人操作和维护的重要组成部分。 一、FANUC机械手示教器故障分类 1. 硬件故障 硬件故障通常是指发那科机器人M-900iA示教器本身的硬件问题&#xff0c;如屏幕损坏、按键失灵、电源故障等。 2…

NFT Insider #131:Mocaverse NFT市值破3.5万ETH,The Sandbox 参加NFCsummit

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members&#xff08;https://twitter.com/WHALEMembers&#xff09;、BeepCrypto &#xff08;https://twitter.com/beep_crypto&#xff09;联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、…

EasyExcel的CellWriteHandler注入CellStyle不生效

文章目录 一、问题描述二、问题排查三、解决问题 一、问题描述 最近发现原本项目的导出excel功能中&#xff0c;写的那些 CellWriteHandler 去改变样式的代码全都不生效了 二、问题排查 由于代码都是没有改动的&#xff0c;加上最近有升级过 easyExcel 的版本&#xff0c;由…

YOLOv5改进 | 主干网络 | 用EfficientNet卷积替换backbone【教程+代码 】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 在YOLOv5的GFLOPs计算量中&#xff0c;卷积占了其中大多数的比列&#xff0c;为了减少计算量&#xff0c;研究人员提出了用EfficientNet代替b…

【C++ Boost 开源库 】从安装到运用

1. Boost 开源库的介绍 推荐看下面的博文&#xff0c;就不重复造轮子了 https://blog.csdn.net/qq_44681788/article/details/130895520 2. Boost 开源库下载 这里推荐这个链接&#xff0c;需要的版本只需要改后面的版本号即可 https://boostorg.jfrog.io/artifactory/main…

简述Java虚拟机(JVM)的工作原理

一、技术难点 Java虚拟机&#xff08;JVM&#xff09;的工作原理是Java技术体系中的核心部分&#xff0c;其技术难点主要体现在以下几个方面&#xff1a; 跨平台性&#xff1a;JVM是实现Java“一次编写&#xff0c;到处运行”跨平台特性的关键。JVM需要屏蔽与具体操作系统平台…

获得 AI Applied Skills 凭证:微软在线评估认证的注意事项

在你踏上微软的亚洲AI奥德赛之旅&#xff0c;完成基础课程学习后&#xff0c;你可以继续进行相应的评估&#xff0c;在交互式实验室体验中完成一系列任务&#xff0c;通过线上即时评估赢得认证。通过本文的介绍&#xff0c;可以帮助你了解评估认证的一些细节以及注意事项&#…

CSS与表格设计

在网页设计中&#xff0c;表格是一种不可或缺的元素&#xff0c;用于展示和组织数据。虽然HTML提供了基本的表格结构&#xff0c;但通过CSS&#xff08;层叠样式表&#xff09;的应用&#xff0c;我们可以极大地提升表格的外观和用户体验。本文将探讨如何利用CSS来设计既美观又…

一般EI论文的格式是什么样的?

论文应该符合会议的提交要求和模板&#xff0c;包括页面格式、字体、字号、行距等。可以在特定会议的官方网站上找到详细的提交指南和模板。 EI会议论文的格式通常遵循以下基本结构&#xff1a; 标题和作者信息&#xff1a;论文标题应该简洁明了&#xff0c;能够准确概括您研究…

ubuntu_概念

su(switch user) wget(Web Get) cd(change directory) dpkg(Debian Packager)为 “Debian” 专门开发的套件管理系统&#xff0c;方便软件的安装、更新及移除。 chmod(Change Mode)用于改变文件或目录的权限 ps(Process Status)进程状态 grep(Global Regular Expression Print)…

OpenCV与AI深度学习 | 高效开源的OCR工具:Surya-OCR介绍与使用

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;高效开源的OCR工具&#xff1a;Surya-OCR介绍与使用 1 背景 在众多企业应用中&#xff0c;光学字符识别 (OCR) 是一项基础技术。在本文中&…