搜索
 找回密码
 立即注册
发新帖

mariadb教程[75] 数据库维护

时间:2020-3-22 21:50 0 634 | 复制链接 |

610

主题

610

帖子

0

积分

网站编辑

Rank: 8Rank: 8

积分
0
本帖最后由 O'Reilly 于 2020-3-24 16:00 编辑

备份数据
由于mariadb数据库是基于磁盘的文件,普通的备份系统和例程就能备份mariadb的数据。但是,由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效。
下面列出这个问题的可能解决方案:
1.使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。
2.可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据(并非所有数据库引擎都支持这个实用程序)。
3.可以使用mariadb的backup table或select into outfile转储所有数据到某个外部文件。这两条语句都接受将要创建的系统文件名,此系统文件必须不存在,否则会出错。数据可以用rstore table来复原。
为了保证所有数据被写到磁盘(包括索引数据),可能需要在进行备份前使用flush tables语句先刷新未写数据。

数据库维护analyze table用来检查表键是否正确。如:
analyze table orders;
check table用来针对许多问题对表进行检查。在MyISAM表上还对索引进行检查。check table支持一系列的用户MyISAM表的方式。CHANGED检查自最后一次检查以来改动过的表。extended执行最彻底的检查,fast只检查未正常关闭的表,medium检查所有北删除的链接并进行键检验,quick只进行快速扫描。如:
check table orders,orderitems;
如果MyISAM表访问产生不正确和不一致的结果,可能需要用repair table来修复相应的表。这条语句不应该经常使用,如果需要使用,可能会有更大的问题要解决。
如果从一个表中删除大量数据,应该使用optimize table来收回所用的空间,从而优化表的性能。

诊断启动问题
服务器启动问题通常在对mariadb配置或服务器本身进行更改时出现。mariadb在这个问题发生时报告错误,但由于多数mariadb服务器是作为系统进程或服务自动启动的,这些消息可能看不到。
在排除系统启动问题时,首先应该尽量用手动启动服务器。mariadb服务器自身通过在命令行上执行mariadbd启动。下面是这个命令的选项:
1.--help显示帮助  
2.--safe-mode装载减去某些最佳配置的服务器
3.--verbose显示全文本消息(为获得更详细的帮助消息与--help联合使用)
4.--version显示版本信息然后退出

查看日志文件
1.错误日志。它包含启动和关闭问题以及任意关键错误的细节。此日志通常名为hostname.err,位于data目录中。此日志名可用--log-error命令行选项更改。
2.查询日志。它记录所有mariadb活动,在诊断问题时非常有用。此日志文件可能会很快地变得非常大,因此不应该长期使用它。此日志通常名为hostname.log,位于data目录中。此名字可以用--log命令行选项更改。
3.二进制日志。它记录更新过数据(或者可能更新过数据)的所有语句。此日志通常名为hostname-bin,位于data目录内。此名字可以用--log-bin命令行选项更改。
4.缓慢查询日志。此日志记录执行缓慢的任何查询。这个日志在确定数据库何处需要优化很有用。此日志通常名为hostname-slow.log,位于data目录下。此名字可以用--log-slow-queries命令行选项更改。
在使用日志时,可用flush logs语句来刷新和重新开始所有日志文件。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部