日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

shell脚本:批量检查并更改MySQL数据库表的存储引擎工作中总结

發布時間:2025/4/5 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本:批量检查并更改MySQL数据库表的存储引擎工作中总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Work Description: 在搭建完Percona XtraDB Cluster(一種MySQL架構,簡稱PXC),需要把old mysql中的數據導入到new mysql中,但PXC只支持InnoDB表,非InnoDB表無法同步到PXC的其它節點上,因此我需要批量統一表的引擎。


Event Description:

1.需要寫個shell腳本,完成兩個目的:<1>查詢(ck)ENGINE的狀態 <2>更改(al)引擎狀態

2.需要在管理機上,訪問遠程MySQL

????<方式:mysql -uadmin -h10.10.10.12 -P3001 -ppassword -e"sql_cmd">

3.mysql存儲引擎的查看方式選擇:

<1>:select ENGINE from information_schema.TABLES where TABLE_SCHEMA='DB_NAME' and TABLE_NAME=TB_NAME};

<2>:SHOW CREATE TABLE tb_name;

4.達到目的:

<1>:希望執行命令之后,屏幕上能顯示<庫名、表名、以及引擎狀態> 方便直接瀏覽

<2>:表數量很大,希望統計下各引擎表數量并輸出,以便分析al時產生的影響

<3>:不希望每次al前都執行ck,也不希望ck工程中就al了,我想ck 和al 可以在一起用也可以單獨用,這樣就靈活了

<4>:考慮過寫個ip列表的文件,批量對多臺機器ck(不太適用我的環境,還要每次vim文件),我希望對單臺server 進行ck,這樣會比較靈活

<5>:我只ck非系統庫表(系統庫:mysql,test,information_schema,performance_schema)

????<6>:執行sh ck_engine_status.sh 后面所跟參數不夠,會打印幫助信息

5.腳本check_engine.sh見附件或者鏈接地址:http://yunpan.cn/cLeVbLN9AnItQ (提取碼:08d7)


Script Execution And Description:

Execution:

$sh ck_engine_status.sh 10.10.10.12 3001 ck' #查看ENGINE STATUS

$sh ck_engine_status.sh 10.10.10.12 3001 al' #更改ENGINE STATUS


Description:

1.腳本中需要靈活改動的變量:<用戶:USER 密碼:PASS> 具有1.遠程訪問權限 2.select權限 <自己定義:check_log文件路徑>

2.執行ck,屏幕只會列出engine狀態,不會做al

3.ck完成之后,自動將MyISAM表以:db_name.tb_name格式寫入:check_log中<只涉及MyISAM和InnoDB> <ck前會自動刪check_log>

4.al會讀取check_log中的MyISAM表,并做更改。<al后會自動刪check_log,避免多次al><al時會先判斷log文件是否存在,不存在會報錯提示>

5.可以手動將特定的表寫入check_log中,并執行al


相關截圖:

  • 幫助信息

  • ck結果

  • al結果



  • 轉載于:https://blog.51cto.com/test002/1714804

    總結

    以上是生活随笔為你收集整理的shell脚本:批量检查并更改MySQL数据库表的存储引擎工作中总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。