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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql 修改单表导入大小_MySQL更改大库大表存储引擎方案

發布時間:2025/3/17 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 修改单表导入大小_MySQL更改大库大表存储引擎方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 概述

檢查庫中myisam的表, sql如下:

SELECT * FROM `tables` WHERE table_schema = 'UAR_STATISTIC' AND ENGINE = 'MyISAM';

由于數據庫UAR_STATISTIC有大部分表存儲引擎是myisam, 部分表存儲引擎是innodb, 需要將myisam引擎更改為innodb, 更改思路如下:

導出表結構sql

手動更改表結構sql, 將myisam改為innodb

導出表數據sql

刪除原始數據庫

導入表結構

導入表數據

其他庫的myisam表很少, 使用alter語句更改即可,

二. 測試環境

主庫 10.101.67.15

從庫 10.101.67.13 10.101.67.14 10.10.32.20

MySQL版本 5.7.11

注意: 備份和恢復期間, 需要將后端服務停掉

三. 測試前服務器狀態

free –m

top

iostat –d –k 1

io –d –k –x 1 4

mysql配置

server-id=13

max_allowed_packet = 1024M

max_connections=5000

interactive_timeout=28800

wait_timeout=28800

log_warnings=1

long_query_time=1

slow_query_log=1

expire_logs_days=15

user=uar

四. 備份數據庫

備份表結構腳本并更改sql文件

/usr/local/mysql/bin/mysqldump -h'10.10.32.26' -uuar_db_user -p'xxx' -B

UAR_STATISTIC --no-data --set-gtid-purged=OFF > /root/db/table_stru.sql &

sed -i 's/MyISAM/INNODB/g' table_stru.sql

備份表數據命令(花費時間再6分鐘左右)

/usr/local/mysql/bin/mysqldump -h'10.10.32.26' -uuar_db_user -p'xxx' -B

UAR_STATISTIC --no-create-info --no-create-db > /root/db/table_data.sql &

五. 刪除原始數據庫

drop database UAR_STATISTIC;

六. 導入表結構和數據

導入表結構

/usr/local/mysql/bin/mysql -uroot –pxxx -e'source /root/db/table_stru.sql'

>> stru.log

大約20s執行完成

導入表數據

/usr/local/mysql/bin/mysql -uroot -pxxx -e'source /root/db/table_data.sql'

>> /root/db/data.log &

記錄服務器性能

top

記錄磁盤性能(主庫)

iostat -k -d 2 4

iostat -k -d -x 2 4

du -sh /usr/local/mysql/data/UAR_STATISTIC/

mysql> show processlist\G;

1. row

Id: 4

User: repl

Host: node1:9519

db: NULL

Command: Binlog Dump

Time: 1027

State: Master has sent all binlog to slave; waiting for more updates

Info: NULL

2. row

Id: 5

User: repl

Host: node2:47596

db: NULL

Command: Binlog Dump

Time: 1021

State: Master has sent all binlog to slave; waiting for more updates

Info: NULL

3. row

Id: 6

User: repl

Host: BD-APP-07:39140

db: NULL

Command: Binlog Dump

Time: 1016

State: Master has sent all binlog to slave; waiting for more updates

Info: NULL

4. row

Id: 12

User: root

Host: localhost

db: UAR_STATISTIC

Command: Query

Time: 0

State: update

Info: INSERT INTO \`app_at_appv_dev_day\` VALUES

('UAR-000184_358','v1.9.36','HTC+M8Et',20170816,15,1,2,103.

記錄執行時間

start_time: Wed Aug 1 09:50:02 CST 2018

end_time: Wed Aug 1 23:24:01 CST 2018

sql文件大小: 15G SQL

備份數據時間: 6分鐘

導入數據花費時間: 13小時34分鐘

總花費時間: 13小時40分鐘

分析: 導入這么慢, 應該是由于binlog日志寫入以及同步從庫導致, 瓶頸在于io,

數據導入時, 監控io, 基本屬于滿負載運行

七. 總結和風險

更改全部業務庫的存儲引擎為myisam, 導入數據總共大概需要13小時54分鐘, 導入數據時,

需要停止web和后端服務線上機器配置和負載和測試環境相差不大,

預計導入時間和測試相差不大.

總結

以上是生活随笔為你收集整理的mysql 修改单表导入大小_MySQL更改大库大表存储引擎方案的全部內容,希望文章能夠幫你解決所遇到的問題。

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