【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

相关推荐
下雨天u30 分钟前
maven dependencyManagement标签作用
java·数据库·maven
代码配咖啡35 分钟前
国产数据库工具突围:SQLynx如何解决Navicat的三大痛点?深度体验报告
数据库
清酒伴风(面试准备中......)1 小时前
小白学编程之——数据库如何性能优化
数据库·oracle·性能优化
默心1 小时前
centos7部署mysql5.7
linux·运维·mysql·centos
The Future is mine1 小时前
SQL Server中delete table和truncate table删除全表数据哪个快?
数据库
瀚高PG实验室1 小时前
HGDB插入超长字段报错指示列名的问题处理
数据库
好吃的肘子2 小时前
MongoDB 高可用复制集架构
数据库·mongodb·架构
兮兮能吃能睡2 小时前
Python之with语句
数据库·python
不穿铠甲的穿山甲2 小时前
MySQL-数据库分布式XA事务
数据库·分布式·mysql
Hadoop_Liang3 小时前
解决Mawell1.29.2启动SQLException: You have an error in your SQL syntax问题
大数据·数据库·maxwell