首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每个表数据位置的mariadb文件

每个表数据位置的mariadb文件
EN

Database Administration用户
提问于 2022-01-22 23:31:48
回答 1查看 612关注 0票数 0

我有以下设置:

代码语言:javascript
运行
复制
datadir                         = /var/db/mysql/data
innodb_data_home_dir            = /var/db/mysql/innodb
innodb_file_per_table           = ON

我的目的是将无害的数据存储在/var/db/mysql/innodb中,但它仍然存储在/var/db/mysql/data/database_name/下。我希望我的设置能够实现我想要的行为,如https://mariadb.com/kb/en/innodb-file-per-table-tablespaces/所示:

默认情况下,InnoDB的按表文件空间是在系统的数据目录中创建的,该目录由datadir system变量定义。如果要将InnoDB数据与其他存储引擎的数据分开存储,则通过设置innodb_data_home_dir系统变量来更改这一点。

但对我来说不管用。有什么想法吗?谢谢!

服务器版本: 10.5.13-MariaDB-log

日志中没有与此“问题”相关的错误。

EN

回答 1

Database Administration用户

发布于 2022-01-23 04:27:14

更改innodb_file_per_table设置后

干扰目录设置不会移动文件。

该设置仅在CREATE TABLEALTER TABLE时生效。与启动一起构建的现有表将保留在ibdata1中。

收缩ibdata1是不容易的。此外,它不能被移除,而不是变成“空”;除了桌子之外,其他东西都在里面。

你的最终目标是什么?如果要收缩ibdata1,那么这里有大量的Q&A通过步骤来实现这一点。

或者,新目录位于单独的物理驱动器上。(这不太可能在性能上产生太大影响。)

如果您只是简单地将东西“移动”到另一个目录,那么下面的操作可能会有效。(小心!我不太确定。)

  1. 后援!(使用mariadump或复制整个目录树)
  2. 停止MariaDB
  3. 更改dir设置。
  4. 手动将ib*和任何数据库目录移动到新位置。
  5. 启动MariaDB
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/306441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档