【MySQL备份】Percona XtraBackup

这份文档针对的是最新发布的版本:Percona XtraBackup 2.4.29(发布说明)。

Percona XtraBackup是一款针对MySQL系列服务器的开源热备份工具,在备份过程中不会锁定您的数据库。它能够对MySQL 5.1、5.5、5.6和5.7服务器以及带有XtraDB的Percona服务器上的InnoDB、XtraDB和MyISAM表进行数据备份。

注意

从Percona XtraBackup 2.1版本开始,已移除对InnoDB 5.1内置版本的支持。

如需了解更多关于其众多高级功能的概述,包括功能对比,请参阅"关于Percona XtraBackup"。

无论是对24小时高负载服务器还是低交易量环境,Percona XtraBackup都旨在实现无缝备份,而不会中断生产环境中服务器的性能。我们还提供商业支持合同。

重要提示

Percona XtraBackup 2.4 不支持对 MySQL 8.0Percona Server for MySQL 8.0Percona XtraDB Cluster 8.0中创建的数据库进行备份。请为8.0版本的数据库使用Percona XtraBackup 8.0。

一 介绍

1 关于 Percona XtraBackup

Percona XtraBackup是全球唯一一款开源且免费的MySQL热备份软件,能够为InnoDB和XtraDB数据库执行非阻塞备份。使用Percona XtraBackup,您可以获得以下好处:

  • 快速且可靠的备份完成
  • 备份期间事务处理不间断
  • 节省磁盘空间和网络带宽
  • 自动备份验证
  • 由于恢复时间更快,因此系统正常运行时间更长

请查看Percona软件和平台生命周期中的兼容性矩阵,了解Percona XtraBackup支持哪些版本的MySQL、MariaDB以及Percona Server for MySQL,并且支持对任何类型的备份进行加密。

Percona XtraBackup支持对InnoDB、Percona XtraDB Cluster和HailDB存储引擎进行非阻塞备份。此外,在备份结束时短暂暂停写入操作,Percona XtraBackup还可以备份以下存储引擎:MyISAM、Merge(.MRG)和Archive(.ARM),包括分区表、触发器和数据库选项。在复制非InnoDB数据时,InnoDB表仍然会被锁定。对于启用了更改页面跟踪的Percona Server with Percona XtraDB Cluster,支持快速增量备份。

重要提示

  • Percona XtraBackup 2.4仅支持Percona XtraDB Cluster 5.7。
  • Percona XtraBackup 2.4不支持MyRocks存储引擎或TokuDB存储引擎。
  • Percona XtraBackup与MariaDB 10.3及更高版本不兼容。

Percona的企业级商业MySQL支持合同包括了对Percona XtraBackup的支持。我们建议您为关键的生产环境部署提供支持。

Percona XtraBackup有哪些功能?

以下是Percona XtraBackup功能的简短列表。更多信息请参见文档。

  • 在不暂停数据库的情况下创建InnoDB热备份
  • 对MySQL进行增量备份
  • 将压缩的MySQL备份流式传输到另一台服务器
  • 在线在MySQL服务器之间移动表
  • 轻松创建新的MySQL复制副本
  • 在不增加服务器负载的情况下备份MySQL

备份锁是Percona Server 5.6+中提供的FLUSH TABLES WITH READ LOCK的轻量级替代方案。Percona XtraBackup会自动使用它们来复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。

Percona XtraBackup根据每秒IO操作的数量进行限速。

在准备紧凑备份时,Percona XtraBackup会跳过次要索引页并在之后重新创建它们。

无论InnoDB版本如何,Percona XtraBackup都可以从完整备份中导出单个表。

使用Percona XtraBackup导出的表可以导入到Percona Server 5.1、5.5或5.6+或MySQL 5.6+中。

2 Percona XtraBackup 如何工作

Percona XtraBackup基于InnoDB的崩溃恢复功能。它首先复制您的InnoDB数据文件,这些数据文件在内部是不一致的;但随后它会对这些文件执行崩溃恢复操作,使它们再次成为一致且可用的数据库。

这之所以可行,是因为InnoDB维护了一个重做日志(也称为事务日志)。该日志记录了InnoDB数据的所有更改。InnoDB启动时,会检查数据文件和事务日志,并执行两个步骤。它将已提交的事务日志条目应用到数据文件中,并对任何修改了数据但未提交的事务执行回滚操作。

Percona XtraBackup的工作原理是,在开始时记住日志序列号(LSN),然后复制数据文件。这个过程需要一些时间,因此如果文件正在更改,则它们会反映数据库在不同时间点的状态。同时,Percona XtraBackup会运行一个后台进程来监控事务日志文件,并从中复制更改。Percona XtraBackup需要持续这样做,因为事务日志是以循环方式写入的,并且可以被重用。自Percona XtraBackup开始执行以来,它需要事务日志记录来记录对数据文件的每次更改。

在可能的情况下,Percona XtraBackup会使用备份锁作为FLUSH TABLES WITH READ LOCK的轻量级替代方案。此功能在Percona Server for MySQL 5.6+中可用。Percona XtraBackup会自动使用此功能来复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。当服务器支持备份锁时,xtrabackup将首先复制InnoDB数据,运行LOCK TABLES FOR BACKUP并复制MyISAM表和.frm文件。完成这些操作后,将开始备份文件。它将备份.frm、.MRG、.MYD、.MYI、.TRG、.TRN、.ARM、.ARZ、.CSM、.CSV、.par和.opt文件。

注意

仅对MyISAM和其他非InnoDB表进行锁定,并且仅在Percona XtraBackup完成备份所有InnoDB/XtraDB数据和日志后进行。在可能的情况下,Percona XtraBackup会使用备份锁作为FLUSH TABLES WITH READ LOCK的轻量级替代方案。此功能在Percona Server for MySQL 5.6+中可用。Percona XtraBackup会自动使用此功能来复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。

之后,xtrabackup将使用LOCK BINLOG FOR BACKUP来阻止所有可能会更改二进制日志位置或Exec_Master_Log_Pos或Exec_Gtid_Set(即SHOW MASTER/SLAVE STATUS报告的与复制副本上当前SQL线程状态对应的源二进制日志坐标)的操作。然后,xtrabackup将完成复制REDO日志文件并获取二进制日志坐标。完成此操作后,xtrabackup将解锁二进制日志和表。

最后,二进制日志位置将被打印到STDERR,如果一切正常,xtrabackup将退出并返回0。

请注意,xtrabackup的STDERR不会写入任何文件。您需要将其重定向到文件,例如,xtrabackup OPTIONS 2> backupout.log。

它还会在备份目录中创建以下文件。

在准备阶段,Percona XtraBackup将使用复制的事务日志文件对复制的数据文件执行崩溃恢复。完成后,数据库即可恢复和使用。

备份的MyISAM和InnoDB表最终将相互一致,因为在准备(恢复)过程之后,InnoDB的数据会向前滚动到备份完成时的点,而不是回滚到开始时的点。这个时间点与FLUSH TABLES WITH READ LOCK的时间点相匹配,因此MyISAM数据和准备好的InnoDB数据是同步的。

xtrabackup和innobackupex工具都提供了许多前面解释中未提及的功能。手册中进一步详细解释了每个工具的功能。简而言之,这些工具允许您执行诸如流式和增量备份等操作,这些操作可以结合复制数据文件、复制日志文件以及将日志应用到数据来实现。

恢复备份

要使用xtrabackup恢复备份,您可以使用xtrabackup --copy-back或xtrabackup --move-back选项。

xtrabackup将读取my.cnf中的datadir、innodb_data_home_dir、innodb_data_file_path、innodb_log_group_home_dir变量,并检查这些目录是否存在。

它将首先复制MyISAM表、索引等(.frm、.MRG、.MYD、.MYI、.TRG、.TRN、.ARM、.ARZ、.CSM、.CSV、par和.opt文件),然后是InnoDB表和索引,最后是日志文件。在复制文件时,它会保留文件的属性,因此在启动数据库服务器之前,您可能需要将文件的所有权更改为mysql,因为备份文件的所有者将是创建备份的用户。

另外,还可以使用xtrabackup --move-back选项来恢复备份。此选项与xtrabackup --copy-back类似,唯一不同的是,它不是复制文件,而是将它们移动到目标位置。由于此选项会删除备份文件,因此请谨慎使用。当磁盘空间不足以同时存储数据文件和其备份副本时,此选项很有用。

3 理解版本号

版本号用于标识产品的发布版本。该产品包含发布时最新的通用可用(GA)功能。

Percona采用语义版本号,遵循基础版本和次要构建的格式。Percona为每个次要构建发布分配唯一且递增的非负整数。版本号结合了Percona XtraBackup的基础版本号和次要构建版本号。

Percona并不会为MySQL 5.7的每个发布版本都发布一个新的Percona XtraBackup 2.4版本。Percona XtraBackup 2.4与MySQL 5.7的更新版本兼容。

Percona XtraBackup 2.4.26的版本号定义了以下信息:

  • 基础版本 - 最左边的数字表示基于MySQL 5.7的Percona XtraBackup的版本。基础版本升级时,次要构建版本会重置为0。
  • 次要构建版本 - 一个内部编号,表示软件的版本。每次发布Percona XtraBackup时,构建版本都会增加1。

二 安装

官方文档支持多种安装方式 使用RPM包 源码编译 ,二进制压缩包等,我们这里使用下载的rpm包进行安装

使用下载的rpm包安装Percona XtraBackup

下载页面: https://www.percona.com/downloads

下载页面为您的架构下载所需系列的包。以下示例将下载适用于CentOS 7的Percona XtraBackup 2.4.28发行版包:

bash 复制代码
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm

现在,您可以通过运行以下命令来安装Percona XtraBackup:

bash 复制代码
yum install -y percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm

卸载Percona XtraBackup

要完全卸载Percona XtraBackup,您需要删除所有已安装的软件包。

删除软件包:

|---|---------------------------------|
| | yum remove percona-xtrabackup |

三 要求

1 连接和所需权限

Percona XtraBackup在创建备份、在某些场景下准备备份以及恢复备份时,需要能够连接到数据库服务器并在服务器上和数据目录(datadir)执行操作。为了执行这些操作,必须满足其执行时的权限和许可要求。

权限指的是系统用户在数据库服务器上被允许执行的操作。这些权限在数据库服务器上设置,并且仅适用于数据库服务器中的用户。

许可是指允许用户在系统上执行操作,如读取、写入或执行某个目录中的文件,或启动/停止系统服务。这些许可在系统级别设置,并且仅适用于系统用户。

无论使用xtrabackup还是innobackupex,都涉及两个主体:调用程序的用户(系统用户)和在数据库服务器上执行操作的用户(数据库用户)。请注意,尽管它们可能有相同的用户名,但它们在不同的地方是不同的用户。

本文档中所有对innobackupex和xtrabackup的调用都假设系统用户具有适当的许可,并且您除了提供执行操作所需的选项外,还提供了连接数据库服务器的相关选项,同时数据库用户具有足够的权限。

连接到服务器

连接到服务器的数据库用户及其密码由xtrabackup的--user和--password选项指定:

bash 复制代码
$ xtrabackup --user=DVADER --password=14MY0URF4TH3R --backup \
  --target-dir=/data/bkps/
$ innobackupex --user=DBUSER --password=SECRET /path/to/backup/dir/
$ innobackupex --user=LUKE  --password=US3TH3F0RC3 --stream=tar ./ | bzip2 -

如果您不使用xtrabackup的--user选项,Percona XtraBackup将假定执行它的系统用户的名称是数据库用户名。

其他连接选项

根据您的系统,您可能需要指定以下一个或多个选项来连接到服务器:

  • --port:使用TCP/IP连接到数据库服务器时要使用的端口。
  • --socket:连接到本地数据库时要使用的套接字。
  • --host:使用TCP/IP连接到数据库服务器时要使用的主机。

这些选项将原封不动地传递给mysql子进程,详见mysql --help。

注意:在多个服务器实例的情况下,为了xtrabackup能够与正确的服务器通信,必须指定正确的连接参数(端口、套接字、主机)。

所需许可和权限

连接到服务器后,为了执行备份,您需要在服务器的数据目录的文件系统级别具有读取和执行权限。

数据库用户需要对要备份的表/数据库具有以下权限:

  • RELOADLOCK TABLES(除非指定了--no-lock选项),以便在开始复制文件之前执行FLUSH TABLES WITH READ LOCK和FLUSH ENGINE LOGS,并且在使用备份锁时需要此权限来LOCK TABLES FOR BACKUP和LOCK BINLOG FOR BACKUP。
  • REPLICATION CLIENT以获得二进制日志位置。
  • CREATE TABLESPACE以导入表(见恢复单个表)。
  • PROCESS以运行SHOW ENGINE INNODB STATUS(这是必需的),并且可选地查看服务器上正在运行的所有线程(见改进的FLUSH TABLES WITH READ LOCK处理)。
  • SUPER以在复制环境中启动/停止复制线程,使用XtraDB Changed Page Tracking进行增量备份,以及进行改进的FLUSH TABLES WITH READ LOCK处理。
  • CREATE权限以创建PERCONA_SCHEMA.xtrabackup_history数据库和表。
  • ALTER权限以升级PERCONA_SCHEMA.xtrabackup_history数据库和表。
  • INSERT权限以向PERCONA_SCHEMA.xtrabackup_history表添加历史记录。
  • SELECT权限以使用innobackupex --incremental-history-name或innobackupex --incremental-history-uuid功能来查找PERCONA_SCHEMA.xtrabackup_history表中的innodb_to_lsn值。

这些权限的使用情况解释可以在《Percona XtraBackup的工作原理》中找到。

创建一个具有执行完整备份所需最低权限的数据库用户的SQL示例如下:

sql 复制代码
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
       'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;

2 配置xtrabackup

xtrabackup的所有配置都是通过选项完成的,这些选项的行为与标准的MySQL程序选项完全相同:它们既可以在命令行中指定,也可以通过如/etc/my.cnf这样的文件指定。

xtrabackup二进制文件会按顺序读取任何配置文件中的[mysqld]和[xtrabackup]部分。这样做是为了让它可以从您现有的MySQL安装中读取选项,比如datadir或一些InnoDB选项。如果您想覆盖这些选项,只需在[xtrabackup]部分中指定它们,并且由于它是后面读取的,因此会优先生效。

如果您不想在my.cnf中放置任何配置,也不需要这样做。您可以直接在命令行中指定选项。通常,您可能觉得在my.cnf文件的[xtrabackup]部分中唯一方便放置的是target_dir选项,用于设置备份文件默认放置的目录,例如:

[xtrabackup]

target_dir = /data/backups/mysql/

本手册将假设您没有为xtrabackup设置任何基于文件的配置,因此它总是会显式地显示所使用的命令行选项。有关所有配置选项的详细信息,请参阅选项和变量参考。

xtrabackup二进制文件在my.cnf文件中接受的语法并不完全与mysqld服务器二进制文件相同。出于历史原因,mysqld服务器二进制文件接受带有--set-variable=<variable>=<value>语法的参数,但xtrabackup不理解这种语法。如果您的my.cnf文件中有这样的配置指令,您应该将它们重写为--variable=value语法。

3 系统配置和NFS卷

在大多数系统上,xtrabackup工具不需要特殊配置。但是,xtrabackup的--target-dir所在的存储必须在调用fsync()时表现正常。特别是,我们注意到,未使用sync选项挂载的NFS卷可能不会真正同步数据。因此,如果您将备份存储在使用async选项挂载的NFS卷上,然后尝试从也挂载了该卷的不同服务器准备备份,数据可能会显示为损坏。您可以使用sync挂载选项来避免这个问题。

四 备份场景

1 全备

**(1)**Creating a backup 创建全备

要创建备份,请使用带有--backup选项的xtrabackup命令。您还需要指定--target-dir选项,该选项定义了备份存储的位置。如果InnoDB数据或日志文件未存储在相同目录中,您可能还需要指定这些文件的位置。如果目标目录不存在,xtrabackup将创建它。如果目录已存在且为空,xtrabackup将成功执行。xtrabackup不会覆盖现有文件,如果尝试这样做,将会遇到操作系统错误17(文件已存在)并导致失败。

要启动备份过程,请运行:

$ xtrabackup --backup --target-dir=/data/backups/

这将在/data/backups/目录下存储备份。如果您指定的是相对路径,则目标目录将相对于当前目录。

在备份过程中,您应该会看到大量输出,显示数据文件正在被复制,以及日志线程反复扫描日志文件并从中复制内容。以下是一个示例,显示了后台日志线程正在扫描日志,以及一个文件复制线程正在处理ibdata1文件:

最后,您应该会看到类似以下的内容,其中<LSN>的值将取决于您的系统:

xtrabackup: 已复制lsn从(<SLN>)到(<LSN>)的事务日志。

注意

日志复制线程每秒检查一次事务日志,以查看是否有需要复制的新日志记录写入,但有可能日志复制线程无法跟上写入事务日志的量,并且当日志记录在被读取之前被覆盖时,会遇到错误。

备份完成后,目标目录将包含如下文件,假设您有一个名为test.tbl1的单个InnoDB表,并且正在使用MySQL的innodb_file_per_table选项:

$ ls -lh /data/backups/

结果如下:

备份可能需要很长时间,具体取决于数据库的大小。但您可以随时安全地取消,因为它不会修改数据库。

下一步是准备恢复备份。

(2) Preparing a backup 准备恢复

使用xtrabackup --backup选项进行备份后,您需要先准备它,然后才能恢复。在准备之前,数据文件并不是时间点一致的,因为它们在程序运行时是在不同时间复制的,而且在这个过程中可能会发生变化。如果您尝试使用这些数据文件启动InnoDB,它将检测到损坏并自行崩溃,以防止您在损坏的数据上运行。xtrabackup --prepare步骤可以使文件在某一瞬间完全一致,这样您就可以在它们上面运行InnoDB。

您可以在任何机器上运行准备操作;它不需要在原始服务器或您打算恢复的服务器上。您可以将备份复制到实用程序服务器并在那里准备它。

注意

您可以使用较新的Percona XtraBackup版本来准备使用较旧版本创建的备份,但反之则不行。在不支持的服务器版本上准备备份时,应使用支持该服务器版本的最新Percona XtraBackup发行版。例如,如果有人使用Percona XtraBackup 1.6创建了MySQL 5.0的备份,那么使用Percona XtraBackup 2.3来准备备份是不受支持的,因为Percona XtraBackup 2.1中已移除了对MySQL 5.0的支持。相反,应该使用2.0系列的最新版本。

在准备操作期间,xtrabackup会启动一种嵌入在其内部的修改过的InnoDB(它链接到的库)。这些修改是必要的,以禁用InnoDB的标准安全检查,比如抱怨日志文件大小不正确,这些对于处理备份来说是不合适的。这些修改仅适用于xtrabackup二进制文件;您不需要修改InnoDB即可使用xtrabackup进行备份。

准备步骤使用此嵌入的InnoDB对复制的数据文件执行崩溃恢复,并使用复制的日志文件。准备步骤的使用非常简单:您只需运行xtrabackup --prepare选项并告诉它要准备哪个目录,例如,要准备之前创建的备份,请运行:

$ xtrabackup --prepare --target-dir=/data/backups/

完成后,您应该会看到InnoDB关闭并显示如下消息,其中LSN的值将取决于您的系统:

InnoDB: Shutdown completed; log sequence number 137345046
160906 11:21:01 completed OK!

后续的所有准备操作都不会更改已经准备好的数据文件,您会看到输出显示:

xtrabackup: This target seems to be already prepared.
xtrabackup: notice: xtrabackup_logfile was already used to '--prepare'.

不建议在准备备份时中断xtrabackup进程,因为这可能会导致数据文件损坏,使备份无法使用。如果准备过程被中断,则不保证备份的有效性。

注意

如果您打算让备份成为进一步增量备份的基础,那么在准备备份时应使用xtrabackup --apply-log-only选项,否则您将无法将增量备份应用到它上面。有关准备增量备份的更多详细信息,请参阅相关文档。

**(3)**Restoring a Backup 恢复备份

警告

备份需要先准备好才能恢复。

$ xtrabackup --copy-back --target-dir=/data/backups/

如果您不想保留备份,可以使用xtrabackup --move-back选项,这将把备份的数据移动到datadir。

如果您不想使用上述任何选项,还可以使用rsynccp来恢复文件。

注意

  • 在恢复备份之前,datadir必须为空。
  • 此外,重要的是要注意,在恢复之前需要关闭MySQL服务器。您不能恢复到正在运行的mysqld实例的datadir(除非在导入部分备份时)。

可以使用以下示例rsync命令来恢复备份:

$ rsync -avrP /data/backup/ /var/lib/mysql/

您应该检查恢复的文件是否具有正确的所有权和权限。

由于文件属性将被保留,在大多数情况下,您需要在启动数据库服务器之前将文件的所有权更改为mysql,因为它们的所有者将是创建备份的用户:

$ chown -R mysql:mysql /var/lib/mysql

现在数据已恢复,您可以启动服务器。

注意

当启用relay-log-info-repository=TABLE时,从备份恢复的实例会在错误日志中出现错误,如下所示:

2019-08-09 12:40:02 69297 [ERROR] Failed to open the relay log '/data/mysql-relay-bin.004349' (relay_log_pos 5534092)

为避免此类问题,请在执行CHANGE MASTER TO之前启用relay_log_recovery或执行RESET SLAVE

中继日志信息已备份,但已创建新的中继日志,这在恢复期间会造成不匹配。

2 增量备份

3 压缩备份

Percona XtraBackup 支持压缩备份:可以使用 xbstream 对本地或流式备份进行压缩或解压缩。

(1)创建压缩备份

要创建压缩备份,您需要使用 xtrabackup 的 --compress 选项:

$ xtrabackup --backup --compress --target-dir=/data/compressed/

xtrabackup --compress 使用 qpress 工具进行压缩,您可以通过 percona-release 包配置工具安装该工具,如下所示:

bash 复制代码
$ sudo percona-release enable tools
$ sudo apt update
$ sudo apt install qpress

注意

启用存储库:percona-release enable-only tools release。如果您打算将 Percona XtraBackup 与上游 MySQL 服务器结合使用,则只需启用 tools 存储库:percona-release enable-only tools

如果要加快压缩速度,可以使用并行压缩,通过 --compress-threads 选项启用。以下示例将使用四个线程进行压缩:

bash 复制代码
$ xtrabackup --backup --compress --compress-threads=4 \
--target-dir=/data/compressed/

(2)准备备份

在准备备份之前,您必须解压缩所有文件。Percona XtraBackup 实现了 --decompress 选项,可用于解压缩备份。

复制代码

|---|------------------------------------------------------------|
| | $ xtrabackup --decompress --target-dir=/data/compressed/ |

注意

--parallel 可以与 --decompress 选项一起使用,以同时解压缩多个文件。

Percona XtraBackup 不会自动删除压缩文件。为了清理备份目录,请使用 --remove-original 选项。如果未删除文件,在使用 --copy-back--move-back 时,它们不会被复制到或移动到 datadir。

解压文件后,您可以使用 --prepare 选项准备备份:

复制代码

|---|---------------------------------------------------------|
| | $ xtrabackup --prepare --target-dir=/data/compressed/ |

检查确认消息

现在,/data/compressed/ 中的文件已准备好供服务器使用。

(3)恢复备份

xtrabackup 有一个 --copy-back 选项,可将备份恢复到服务器的 datadir:

|---|--------------------------------------------------------|
| | $ xtrabackup --copy-back --target-dir=/data/backups/ |

该选项将所有相关数据文件复制回服务器的 datadir,该目录由服务器的 my.cnf 配置文件确定。检查输出的最后一行以获取成功消息:

复制代码

复制代码

|---|--------------------------|
| | 170223 13:49:13 完成 OK! |

复制数据后,验证文件权限。您可能需要调整权限。例如,以下命令更改文件位置的所有者:

复制代码

bash复制代码

|---|-----------------------------------------|
| | $ chown -R mysql:mysql /var/lib/mysql |

现在,datadir 包含恢复的数据。您已准备好启动服务器。

4 加密备份

参考

Percona XtraBackup

相关推荐
TianyaOAO4 分钟前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong16 分钟前
mysql系列5—Innodb的缓存
数据库·mysql·缓存
码农老起1 小时前
企业如何通过TDSQL实现高效数据库迁移与性能优化
数据库·性能优化
夏木~2 小时前
Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率
数据库·oracle
W21552 小时前
Liunx下MySQL:表的约束
数据库·mysql
黄名富2 小时前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
言、雲2 小时前
从tryLock()源码来出发,解析Redisson的重试机制和看门狗机制
java·开发语言·数据库
一个程序员_zhangzhen3 小时前
sqlserver新建用户并分配对视图的只读权限
数据库·sqlserver
zfj3213 小时前
学技术学英文:代码中的锁:悲观锁和乐观锁
数据库·乐观锁··悲观锁·竞态条件
吴冰_hogan3 小时前
MySQL InnoDB 存储引擎 Redo Log(重做日志)详解
数据库·oracle