云计算之数据库

news2024/12/23 16:09:40

目录

一、RDS产品介绍及排障思路

1.1 云RDS数据库及其特点

1.2 云RDS数据库-规格

1.3 云RDS数据库-存储

​1.4 云RDS数据库-安全

​1.5 云RDS数据库-整体架构 

1.6 RDS常见问题排查

​1.6.1 如何解决无法链接RDS实例的问题

1.6.2 RDS实例存储空间使用率高,怎么排查

1.6.3 RDS Mysql主从延迟问题

二、Redis产品介绍及排障思路

2.1 Redis介绍

2.2 产品架构

2.3 性能指标与监控

2.4 备份与恢复

2.5 Redis实例CPU使用率高的问题

2.6 排查Redis实例内存使用率高的问题

2.7 Redis常见问题

三、PolarDB产品介绍及排障思路

3.1 PolarDB介绍

3.2 PolarDB连接信息和方式

3.3 产品架构-PolarDB MySQL企业版

3.4 产品架构-PolarDB MySQL标准版

3.5 集群白名单&账号管理

3.6 诊断与优化

3.7 PolarDB MySQL版CPU使用率高问题

3.8 空间问题

3.8.1 集群的存储空间占用突然升高,如何进行排查?

3.8.2 为什么新创建的数据库中没有任何数据,就已经产生了磁盘使用量?

3.8.3 为什么从其他异构数据库导入数据时会占用更多的存储空间?

3.8.4 集群的存储空间是否包含备份空间?

3.8.5 InnoDB引擎中使用DROP命令删除索引后,是否会释放磁盘空间?

3.9 PolarDB死锁

3.10 PolarDB MySQL常见问题

总结


一、RDS产品介绍及排障思路

1.1 云RDS数据库及其特点

1.2 云RDS数据库-规格

根据业务选型:

1.3 云RDS数据库-存储

本地盘计算与存储一体,因此I/O时延很低,性能很好。而云盘存储采用的计算与存储分离,因此灵活性较大,I/O时延相对较高。

1.4 云RDS数据库-安全

通过设置安全组来控制哪些ip可以访问通过,哪些ip访问不通过。

1.5 云RDS数据库-整体架构 

1.6 RDS常见问题排查

1.6.1 如何解决无法链接RDS实例的问题

传送门:https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/what-do-i-do-if-i-fail-to-connect-to-an-apsaradb-rds-instance?spm=a2c4g.11186623.0.0.385f6d29lDsbVO

1.6.2 RDS实例存储空间使用率高,怎么排查

传送门:https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/faq-about-storage-capacity?spm=a2c4g.11186623.0.0.18966314WRlr14

1.6.3 RDS Mysql主从延迟问题

传送门:https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/what-do-i-do-if-my-read-only-apsaradb-rds-for-mysql-instance-synchronizes-data-from-its-primary-instance-at-a-latency?spm=a2c4g.11186623.0.i9

二、Redis产品介绍及排障思路

2.1 Redis介绍

云数据库Redis版(ApsaraDB for Redis)是兼容开源Redis协议标准的数据库服务,基于双机热备架构及集群架构,可满足高吞吐、低延迟及弹性变配等业务需求。

2.2 产品架构

标准版

采用主从模式搭建。主节点提供日常服务访问,从节点提供HA高可用。当主节点发生故障,系统会自动在30秒内切换至从节点,保障业务平稳运行。

集群版

由代理节点、数据分片和配置服务器组件构成,可通过增加数据分片的方式实现横向扩展。每个数据分片均为双副本(分别部署在不同机器上)高可用架构,主节点发生故障后,系统会自动进行主从切换保证服务高可用。

读写分离版

由代理节点、主从节点和只读节点构成。只读节点采取链式复制架构,扩展只读节点个数可使整体实例性能呈线性增长。

2.3 性能指标与监控

  2.4 备份与恢复

2.5 Redis实例CPU使用率高的问题

Redis CPU使用率升高可能是由于以下三种原因:

  • 高并发、高吞吐的业务消耗较多CPU资源,如果CPU资源未达到瓶颈,属于正常业务场景
  • 业务运行超预期,Redis实例的CPU资源无法满足业务需求,可通过增加分片数、副本数或者升级为企业版来解决资源瓶颈
  • 使用不当,例如高消耗命令、热Key、大Key等,导致CPU使用率异常升高

当平均CPU使用率高于70%、连续5分钟内的CPU平均峰值使用率高于90%时,需要及时关注并排查该问题,以保障应用的稳定运行。

哪些因素会导致CPU使用率异常升高

  • 高消耗命令:即时间复杂度为O(N)的命令,其中N为较大值,例如KEYS、HGETALL或使用MGET、MSET、HMSET、HMGET一次操作大量Key等。通常情况下,命令的时间复杂度越高,在执行时会消耗越多的资源,从而导致CPU使用率上升。由于命令执行单元为单线程的特性,Redis在执行高消耗命令时会引发排队导致应用响应变慢。极端情况下,甚至可能导致实例被整体阻塞,引发应用超时中断或流量跳过缓存层直接到达后端的数据库侧,引发雪崩效应。
  • 热Key:某个或某部分Key的请求访问次数显著超过其他Key时,代表此时可能产生了热Key。热Key将会消耗Redis的大量CPU资源,从而影响其他Key的访问时延。并且,在集群架构中,如果热Key较为集中地分布在部分数据分片节点,可能会导致CPU使用率倾斜(个别分片的CPU使用率远超其他分片)。
  • 大Key:大Key会占用更多的内存,同时,对大Key的访问会显著增加Redis的CPU负载和流量。大Key在一定程度上更容易形成热点从而造成CPU使用率高。如果大Key较为集中地分布在部分数据分片节点,可能会导致CPU使用率倾斜、带宽使用率倾斜及内存使用率倾斜。
  • 短连接:频繁地建立连接,导致Redis实例的大量资源消耗在连接处理上。
  • AOF:阿里云Redis实例默认开启了AOF(append-only file),当实例处于高负载状态时,AOF的写盘行为将会导致CPU使用率升高及实例整体的响应时延增加。

2.6 排查Redis实例内存使用率高的问题

Redis内存不足时,可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。如果发现Redis内存占满或收到内存告警,可参考帮助文档判断内存占用是否长期过高、内存占用是否突然上升、是否发生内存倾斜,并通过拆分大Key,设置过期策略,升级规格等方法解决问题。

内存使用率高的现象分类:

内存使用率在较长一段时间内一直处于较高水位。通常,当内存使用率超过95%时需要及时关注。

内存使用率一直较低,但从某个时间点开始突然上升至较高水位,甚至达到100%。

实例整体的内存使用率较低,但某个数据分片节点的内存使用率接近100%

传送门:https://help.aliyun.com/zh/redis/user-guide/troubleshoot-the-high-memory-usage-of-an-apsaradb-for-redis-instance

2.7 Redis常见问题

三、PolarDB产品介绍及排障思路

3.1 PolarDB介绍

PolarDB是一个关系型数据库云服务,目前已在全球十多个地域(Region)的数据中心部署,向用户提供开箱即用的在线数据库服务。PolarDB目前支持3种独立的引擎,分别可以100%兼容MySQL、100%兼容PostgreSQL、高度兼容Oracle语法,存储容量最高可达100 TB。详情参考:什么是PolarDB MySQL企业版、什么是PolarDB MySQL标准版。 PolarDB MySQL版企业版和标准版在功能上有很多差异,可分为集群管理、弹性管理、高性能、备份与恢复、高可用性、高安全、连接管理、高性价比、监控与优化、DB for AI、数据迁移&同步等11个类别。

3.2 PolarDB连接信息和方式

可以通过以下方式管理PolarDB My SQL版集群,包括创建集群、创建数据库、创建账号等。

  • 控制台:提供图形化的Web界面,操作方便。
  • CLI:控制台上所有的操作都可以通过CL!实现。
  • SDK:控制台上所有的操作都可以通过SDK实现。
  • API:控制台上所有的操作都可以通过AP1实现。

创建PolarDB MysQL版集群后,可以通过以下方式连接PolarDB MysQL版集群:

  • DMS:您可以通过DMS连接PolarDB集群,在Web界面进行数据库开发工作。
  • 客户端:您可以使用通用的数据库客户端工具连接PolarDB MysQL版集群。例如MysQL-Front. HeidisQL等

3.3 产品架构-PolarDB MySQL企业版

云原生数据库PolarDB基于Cloud Native设计理念,既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、快速迭代的优势。产品架构如下:

PolarDB MySQL版的产品架构具有如下特点:

一写多读:

PolarDB采用分布式集群架构,一个集群版集群包含一个主节点和最多15个只读节点(至少一个,用于保障高可用)。主节点处理读写请求,只读节点仅处理读请求。主节点和只读节点之间采用Active-Active的Failover方式,提供数据库的高可用服务。

计算与存储分离:

PolarDB采用计算与存储分离的设计理念,满足公共云计算环境下根据业务发展弹性扩展集群的刚性需求。数据库的计算节点(Database Engine Server)仅存储元数据,而将数据文件、Redo Log等存储于远端的存储节点(Database Storage Server)。各计算节点之间仅需同步Redo Log相关的元数据信息,极大地降低了主节点和只读节点间的复制延迟,而且在主节点故障时,只读节点可以快速切换为主节点。

读写分离:

读写分离是PolarDB集群版默认免费提供的一个透明、高可用、自适应的负载均衡能力。通过集群地址,SQL请求自动转发到PolarDB集群版的各个节点,提供聚合、高吞吐的并发SQL处理能力。

高速链路互联:

数据库的计算节点和存储节点之间采用高速网络互联,并通过RDMA协议进行数据传输,使I/O性能不再成为瓶颈。

共享分布式存储:

多个计算节点共享一份数据,而不是每个计算节点都存储一份数据,极大地降低了用户的存储成本。基于全新打造的分布式块存储(Distributed Storage)和文件系统(Distributed Filesystem),存储容量可以在线平滑扩展,不会受到单个数据库服务器的存储容量限制,可应对上百TB级别的数据规模。

数据多副本、Parallel-Raft协议:

数据库存储节点的数据采用多副本形式,确保数据的可靠性,并通过Parallel-Raft协议保证数据的一致性。 

3.4 产品架构-PolarDB MySQL标准版

PolarDB MySQL版的标准版是PolarDB全新推出的数据库集群类型,采用阿里云全新一代高性能低成本的计算和存储基础设施,用户使用较低的成本即可享受到PolarDB的核心能力。

采用计算与存储分离的架构,数据库代理和计算节点分别采用独立的ECS进行部署,共享存储层使用ESSD云盘,极大的降低了用户使用PolarDB的成本。

PolarDB MySQL版的标准版采用通用的基础设施,用户使用较低的成本即可享受到PolarDB的核心能力:

  • PolarDB MySQL版的标准版和企业版共用一套内核。多年深度优化的PolarDB数据库内核,相对开源的内核大幅提升了数据库性能。
  • 采用最新一代阿里云高性能计算和存储基础设施,客户使用成本大幅下降。
  • 云原生的计算和存储分离架构,一写多读,灵活弹性,配置升降级和增加节点分钟级生效。
  • 多个计算节点共享存储,新增只读节点时只需支付计算节点费用,大大降低了扩容成本。

PolarDB MySQL版提供基于X86和ARM两大主流CPU架构的集群:

  • X86:X86架构搭载英特尔处理器,配套高性能网络,综合性能及稳定性全面提升,满足对业务稳定性及计算性能要求较高的企业级应用诉求。
  • ARM:ARM架构底层采用阿里云自研倚天710处理器芯片及25 GE智能高速网卡,提供强劲的计算能力。配套高性能网络,能更好地满足政府、互联网等各类企业对云上业务的高性价比、安全稳定等诉求。

3.5 基本功能-控制台

可以看到实例所有的信息,地域、VPC、计算付费类型、可用区、交换机、创建时间、兼容性、可维护窗口、系列、到期时间、内核版本等等的信息。

第二部分是白名单于账号,可以点击蓝色的字体直达对应的部分。

第三部分是数据库连接,包含主地址、集群地址以及是否有自定义地址。

可以点击查看对应的集群地址配置,里面会有集群地址的路由策略。

3.5 集群白名单&账号管理

创建PolarDB MySQL版数据库集群后,您还需要设置集群的IP白名单,并创建集群的初始账号,只有已添加到白名单中的IP地址或安全组中的ECS实例才能访问该集群。

PolarDB支持高权限账号和普通账号这两种数据库账号,您可以在控制台管理所有账号。出于安全原因,PolarDB不提供root账号。其中,云上的实例没有super权限。如果只支持库级别的权限设置,更细的权限需要命令行的方式。

3.6 诊断与优化

主要涉及有一键诊断,里面包含一些异常事件、会话管理、实时性能、所分析、空间分析、诊断报告和性能洞察。比较常见的是 异常事件以及会话管理

日志管理:主要是一些运行日志

慢SQL: 执行时间超过long_query_time的SQL

日志与审计:属于洞察部分,可以用于记录查看客户执行的SQL。

3.7 PolarDB MySQL版CPU使用率高问题

CPU作为数据库最核心的资源,是日常运维中需要重点关注的对象。CPU用满,会导致应用RT增高、业务卡顿,更严重会导致数据库实例hang死、发生HA等问题,严重影响现网业务。正常情况下,对于CPU的监控需要设定安全水位,超出安全水位时要及时进行处理,否则会引发不可预期的严重后果。

随着业务的增长,数据库集群的规格可能已经不能满足业务流量的上涨需求。此时由于流量的不断增长,数据库集群的使用率逐渐提升,CPU使用率也逐渐升高。如果从性能曲线进行观察,必然存在某个指标(如QPS/IOPS)呈上涨趋势,与CPU使用率上涨趋势相似。如下图所示:

cpu使用过高分为业务增长导致cpu打高和非预期内的cpu打高,具体排查参考:https://help.aliyun.com/zh/polardb/polardb-for-mysql/high-cpu-utilization-of-polardb-for-mysql-clusters

3.8 空间问题

3.8.1 集群的存储空间占用突然升高,如何进行排查?

按照以下步骤进行排查:

  1. 登录PolarDB控制台。
  2. 在控制台左上角,选择集群所在地域。
  3. 找到目标集群,单击集群ID。
  4. 基本信息页面的数据库分布式存储区域,查看数据库存储用量
  5. 在左侧导航栏,单击诊断与优化>一键诊断,在空间概况页面的空间变化趋势区域,查看是因为哪个空间使用量升高导致存储空间升高。

传送门:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。icon-default.png?t=N7T8https://polardb.console.aliyun.com/overview

3.8.2 为什么新创建的数据库中没有任何数据,就已经产生了磁盘使用量?

数据库初始化时,会创建相关的系统表用于存储账户、权限等。此外,数据库系统日志(Redo log、Undo log等)也会占用磁盘空间。

3.8.3 为什么从其他异构数据库导入数据时会占用更多的存储空间?

不同的数据库存储引擎处理数据的方式不同。例如,是否有压缩功能、某些字段上是否有索引等都会影响存储空间的占用量。

3.8.4 集群的存储空间是否包含备份空间?

包含,PolarDB备份和恢复功能均免费使用,但备份文件会占用一定的存储空间。根据备份存储位置,备份文件占用的空间分为一级备份、二级备份和物理日志备份。

3.8.5 InnoDB引擎中使用DROP命令删除索引后,是否会释放磁盘空间?

由于索引和数据存储在同一个文件中,因此,在使用独立表空间时,在InnoDB引擎中使用DROP命令删除索引后,并不会释放存储空间。

3.9 PolarDB死锁

死锁是关系型数据库系统中最为常见的错误,出现在不同事务中同时对某些数据访问加锁时,都要等待对方请求中的数据而无法获取锁。数据库系统会自动牺牲回滚代价最小的事务,从而导致对应的写请求失败。更严重的情况是在大量死锁发生时,会导致数据库系统效率低下,大量进程堆积进而引发性能问题。正常情况下,死锁都是由于逻辑加锁的顺序导致的,也就是我们常说的ABA死锁。

利用DAS的锁分析功能与SQL洞察功能进行死锁定位的方法见传送门: https://help.aliyun.com/zh/polardb/polardb-for-mysql/resolve-deadlocks-in-polardb?spm=a2c4g.11186623.0.0.d8a130cfX7b3A9 

3.10 PolarDB MySQL常见问题

总结

1、RDS、Redis和PolarDB分别是阿里云提供的关系型数据库、键值存储数据库和高性能分布式数据库服务。

2、RDS简化了数据库的部署和管理,提供了高可用性和安全性;Redis则适用于需要高吞吐量和低延迟的应用场景,支持多种架构以满足不同的业务需求;PolarDB结合了传统数据库的稳定性和云数据库的弹性,支持多种数据库引擎,特别适合大规模数据处理和企业级应用。这三者均提供了详尽的监控和排障指南,帮助用户高效管理和优化数据库性能,确保业务稳定运行。

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

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

相关文章

比特币客户端和API

1. 比特比客户端的安装 Bitcoin Core 客户端适用于从 x86 Windows 到 ARM Linux 的不同架构和平台,如下图所示: 2. Bitcoin Core客户端的类型 2.1 Bitcoind Bitcoind 末尾的字母 d 表示 daemon (守护程序)。所谓守护程序,就是指常…

【完美解决】电脑蓝屏 驱动丢失或包含错误问题的解决办法

电脑开机出现了蓝屏报错进入恢复页: 无法加载操作系统,原因是关键系统驱动程序丢失或包含错误 文件 \windows\system32\XXXXX 错误代码:XXXX 重启无数次也不行,安全模式进不去,修复也不行 查了一圈,尝试了…

【深度学习详解】Task3 实践方法论-分类任务实践 Datawhale X 李宏毅苹果书 AI夏令营

前言 综合之前的学习内容, 本篇将探究机器学习实践方法论 出现的问题及其原因 🍎 🍎 🍎 系列文章导航 【深度学习详解】Task1 机器学习基础-线性模型 Datawhale X 李宏毅苹果书 AI夏令营 【深度学习详解】Task2 分段线性模型-引入…

南通网站建设手机版网页

随着移动互联网的迅猛发展,越来越多的人通过手机浏览网页,进行在线购物、信息查询和社交互动。因此,建立一个适合移动端访问的网站已成为企业和个人不可忽视的重要任务。在南通,网站建设手机版网页的需求逐渐增加,如何…

springboot整合Logback

Logback介绍 描述 Logback是由log4j创始人设计的另外一种开源日志组件,性能比log4j要好。相对是一个可靠、通用、快速而又灵活的Java日志框架。 Logback主要分三个模块 1、logback-core:其他两个模块的基础模块 2、logback-classic:它是lo…

基于AIM平台实现对SAP PO平台的监控告警管理及WeLink告警案例

一、客户背景 某集团基于SAP PO平台统一管理的接口量较大,为了方便团队进行后期维护和管理,固上此AIM监控平台系统,用于接口日常运行、SAP PO各类型指标和系统性能方面的监控,多种告警类型渠道满足各种用户需求,采用…

ESP8266下载固件→连接阿里云

一、工具准备 1、ESP8266Wifi模块 2、ESP8266下载器 ESP8266-01模块 二、固件配置 CH340串口工具-烧录ESP8266-01固件_esp8266 ch340烧录-CSDN博客文章浏览阅读444次,点赞6次,收藏3次。CH340会有供电不足的问题,因此需要外部供电_esp…

【leetcode详解】清除数字:栈思想解决字符串问题(思路详解)

实战总结 string的常用方法: pop_back, push_back使得可以直接像操作栈一样操作string类型 注意,上面两个方法只能对单个字符char操作但是‘ ’对 char 和 string 均适用 题面 思路详解: 不妨对比一下其他思路: 双指针&#…

《高等代数》相邻两行(列)相差K倍行列式

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:1)相邻两行(列)相差K倍行列式需要关注行(列)与行(列)之间的关系,运用适当…

《卷积神经网络 CNN 原理探秘》

CNN基本原理详解 卷积神经网络(Convolutional Neural Network,简称CNN),是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层和池化层。 卷积神经网络是受…

实验室ICPR 2024论文分享┆DS MYOLO:一种基于状态空间模型的驾驶场景可靠目标检测器

论文分享简介 本推文详细介绍了一篇实验室的最新论文成果《DS MYOLO: A Reliable Object Detector Based on SSMs for Driving Scenarios》,该论文已被第27届国际模式识别大会(ICPR)接收,论文的第一作者为李杨。论文提出了一种基…

使用Cloudflare构建RAG应用;端到端语音开源大模型;AI幻灯片生成器,等六个开源项目

✨ 1: Cloudflare RAG 如何使用Cloudflare构建一个完整的RAG应用,结合多种搜索技术和AI服务。 Cloudflare RAG(Retrieval Augmented Generation)是一个全栈示例,展示如何使用 Cloudflare 构建 RAG 应用程序。该项目结合了 Cloud…

新能源车“卖电”有多赚?多地试点反向充电

新能源车“卖电”有多赚?多地试点车对桩反向充电 据经济观察报了解,在不同的城市,新能源车主参与车网互动获得的收益差异颇大。同时,有的车主担心增加充放电次数影响电池寿命,不愿意参与。 今年入夏以来,随…

C#实战|大乐透选号器[2]:初始化动态生成大乐透红球区选择球

哈喽,你好啊,我是雷工! 红球区和篮球区的选择球可以通过拖拽控件一个一个的拖放实现,但该方法太浪费时间,可以使用循环动态生成; 只要通过观察找到每个球的位置坐标的规律,就可以通过循环生成,这样即使有再多球也不至于一个一个的拖放实现了; 以下为初始化动态生成大乐…

Redis在Spring Boot中的应用详细讲解和案例示范

深入理解Redis在Spring Boot中的应用 Redis 作为一种高性能的键值数据库,常被用于缓存、会话管理和其他需要快速访问的数据存储场景中。在 Spring Boot 项目中集成 Redis,可以显著提高应用的性能和可扩展性。本篇文章将深入探讨如何在 Spring Boot 中使…

几千块考的证,公司根本不认,「PMP证书」是智商税吗?

有很多小伙伴们担心,自己的公司并不认可PMP证书,觉得考这个证书没什么用。 真的是这样吗🤔?但据观察来看,PMP主要是北上广深等发达城市的认可度更高,有75%都是来自于北上广深以及江苏、浙江等经济发达地区。…

内裤洗衣机是鸡肋吗?五大品质拔尖的佳品一览

当代年轻人对生活品质的追求日益迫切,现在许多用户都开始注重整理和清洗衣物,举例来说,通常会把婴儿的小件衣物分开洗,将不同类型的衣物分开洗,甚至是将内衣也分开洗,主要由于大型洗衣机的卫生问题又堪忧&a…

Android OpenGLES开发:EGL环境搭建

努力,不是为了要感动谁,也不是要做给哪个人看,而是要让自己随时有能力跳出自己厌恶的圈子,并拥有选择的权利,用自己喜欢的方式过一生! EGL是什么? 谈到openGL开发我们就不得不说EGL&#xff0c…

eetrade:黄金分哪几种,什么金最好

随着黄金价格的持续走高,越来越多的消费者开始关注黄金的购买。市场上出现了多种黄金类型,如足金、千足金、万足金、3D硬金、古法黄金等,让人感到困惑。本文将为您详细解析这些黄金的种类及其含金量,帮助您更好地理解和选择。 一…

备忘录在哪添加图片?桌面备忘录能保存图片吗

在快节奏的生活中,备忘录app已成为我们日常工作和学习的得力助手。它帮助我们规划任务、提醒重要事件,确保一切井然有序。但备忘录的用途远不止于此,随着科技的发展,现在的备忘录功能已经越来越强大。 很多人习惯在备忘录中记录文…