檢查使用共享表空間的表

2021-09-07 11:30:38 字數 888 閱讀 5771

最近接手一台新的資料庫機器,發現某些庫某些表沒有ibd檔案只有frm檔案,而ibdata1檔案一共有20g+,估計是使用了共享表空間

存放在ibdata1檔案裡

於是寫了乙個指令碼,檢查例項下哪些庫哪些表使用了共享表空間,原理是如果有frm檔案而沒有ibd檔案就認為是使用了共享表空間

#!/bin/bash

# written by steven

# name: checktablesharespace.

sh# version: v1.

0# function: 檢查使用共享表空間的表結果存放在/tmp/checkresult.txt

# create date:

2016-08-27

dbs="

"#輸入要檢查的資料庫

dbpath="

/data/mysql

"#輸入例項所在路徑

>/tmp/checkresult.txt

#備份for db in

$dbs

docd $$

echo --------------$--------------- >> /tmp/checkresult.txt

for i in `ls *.frm`

dop=`echo $i|awk -f'

.frm''

'`if [ ! -s $p.ibd ]

then

echo $p >> /tmp/checkresult.txt

fidone

echo >> /tmp/checkresult.txt

done

眾所周知,共享表空間的壞處有很多,比如不能使用表空間傳輸,資料壓縮和加密,重整表空間等等

檢查使用共享表空間的表

最近接手一台新的資料庫機器,發現某些庫某些表沒有ibd檔案只有frm檔案,而ibdata1檔案一共有20g 估計是使用了共享表空間 存放在ibdata1檔案裡 於是寫了乙個指令碼,檢查例項下哪些庫哪些表使用了共享表空間,原理是如果有frm檔案而沒有ibd檔案就認為是使用了共享表空間 bin bash...

共享表空間到獨立表空間的轉化流程

遷移步驟1 show variables like per table 遷移步驟2 service mysqld stop 遷移步驟3 修改配置檔案 innodb file per table 1 遷移步驟4 mysqldump 備份需要的資料 mysqldump u p all databases...

mysql共享表空間和獨立表空間 轉

innodb表的資料結構 innodb這種引擎,與myisam引擎的區別很大。特別是它的資料儲存格式等.對於innodb的資料結構,首先要解決兩個概念性的問題 共享表空間以及獨佔表空間。什麼是共享表空間和獨佔表空間 共享表空間以及獨佔表空間都是針對資料的儲存方式而言的。共享表空間 某乙個資料庫的所有...