最近接手一台新的資料庫機器,發現某些庫某些表沒有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的資料結構,首先要解決兩個概念性的問題 共享表空間以及獨佔表空間。什麼是共享表空間和獨佔表空間 共享表空間以及獨佔表空間都是針對資料的儲存方式而言的。共享表空間 某乙個資料庫的所有...