首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
清单首页dba文章详情

表空间

表空间迁移

5.5直接拷贝走就可以使用

5.6版本之后 ibd frm ibdata1 不能单独的去cp ibd和frm 不能cp达到迁移的目的,只能在同一版本迁移小版本也不能差

1先把表结构创建出来 建表语句创建空表

show create table 表名;

2把空表的ibd文件删除

alter table 表名 discard tablespace;

3把原表ibd文件拷贝到新主机,改个权限

4登录新数据库,导入一下

alter table 表名 import tablespace;只适合大表的离线迁移

5.7版本数据库

ibdata1被删除恢复,官方找插件MySQL Utilities 二进制解压即用,业务库中有两百张表

1表太多

2建表语句如何获得

mysqlfrm --diagnostic 指定要看的frm文件 导出建表语句

3如何批量把ibd文件删除

代码语言:javascript
复制
select concat("alter table 库名.",table_name,"discard tablespace;") from information_schema.tables where table_schema='库名';

4将磁盘ibd文件考入新库,改权限

5进行 import恢复

6进行数据检查

7有外键关系只能删除掉

8总结8.0如何获取 ibd2sdi ibd文件

undo tablespace

撤销 回滚日志会生成两个undo文件在目录下,在5.7版本需要在初始化是指定undo文件才能独立

8.0可以随时生成undo

创建 undo文件

create undo tablespace 表名 add datafile '文件名字.ibu'

查看有几个undo文件

select tablespace_name ,file_name from information_schema.files where file_type like 'undo log'

删除undo

alter undo tablespace 表名 set inactive;

drop undo tablespace 表名;

tmp tablespace

作用 存储临时表

innodb_temp_data_file_path = ibtmp1:128M;ibtmp2:128M:autoextend:max:500M

一般设置2-3个 512m-1g

通用表空间

作用所有的应用都往里面写 然后我们在扩容跟oracle差不多

表空间包括三个结构

区(簇) 一个区默认是连续64个的数据页 默认是1m的空间

页默认是16kb

有7个部分

文件头

配置头

下确界和上确界记录

user records 已经存储的用户记录

free space 可用空间

page directory 页目录

fil trailer 文件预告片

行格式

代码语言:javascript
复制
查看行格式
show varibales like '%fromat%';
+---------------------------------+---------+
| Variable_name                   | Value   |
+---------------------------------+---------+
| binlog_format                   | ROW     |
| default_week_format             | 0       |
| information_schema_stats_expiry | 86400   |
| innodb_default_row_format       | dynamic |
结构说明 
存储单元为页(page),16kb
每个页至少要存两条数据
每条记录都会有记录头
每条记录都会有三个隐藏的列
记录都是按照聚簇索引组织
5.6 默认是compact
变长字段(记录长度)列表+ null列表+记录头信息+列值
变长字段(记录长度)列表采用一到两个字节来表示一个字段的长度
记录头信息:使用5个字节来表示,主要包含记录是否被删除记录类型,下一条记录的相对偏移量
5.7后 默认是 dynamic
和compact格式很像,差异在页面溢出上

redo日志(wal)

log buffer 记录的是buffer pool中数据的变化

8.0 + 后会记录ddl操作

大部分是物理日志

逻辑日志能看见 类似于sql 物理日志是指数据页的变化

在修改之后会记录到log buffer 会比数据页先落盘

日志优先写

1快 因为日志是追加形式顺序io

2日志只会记录变化的字节

3日志提交成功就算成功 更快

undo日志

回滚日志

在提交前可以回滚

记录的是逻辑日志,大概记录的是反操作

8.0+ 会记录ddl

undo会现在redo前落盘

下一篇
举报
领券