MySQL 5.6使用pt-online-schema-change線上修改大表欄位長度
業務需求:
線上修改一張2000W行表的欄位長度。
[root@21db01 ~]# pt-online-schema-change --alter="modify id VARCHAR(64) CHARSET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT 'ID';" --user=root --password=XXXX --host='127.0.0.1' D=users,t=users_dt --charset=utf8 --execute --no-check-alter --no-check-replication-filters
Cannot connect to A=utf8,D=users,h=10.1.4.80,p=...,u=root
Cannot connect to A=utf8,D=users,h=10.1.4.82,p=...,u=root
Cannot connect to A=utf8,D=users,h=10.1.6.7,p=...,u=root
Cannot connect to A=utf8,D=users,h=10.1.4.97,p=...,u=root
Cannot connect to A=utf8,D=users,h=10.1.6.8,p=...,u=root
Cannot connect to A=utf8,D=users,h=10.1.4.81,p=...,u=root
Cannot connect to A=utf8,D=users,h=10.1.4.79,p=...,u=root
No slaves found. See --recursion-method if host 21db01 has slaves.
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
Operation, tries, wait:
analyze_table, 10, 1
copy_rows, 10, 0.25
create_triggers, 10, 1
drop_triggers, 10, 1
swap_tables, 10, 1
update_foreign_keys, 10, 1
Altering `users`.`users_dt`...
Creating new table...
Created new table users._users_dt_new OK.
Altering new table...
Altered `users`.`_users_dt_new` OK.
2020-09-21T14:17:27 Creating triggers...
2020-09-21T14:17:27 Created triggers OK.
2020-09-21T14:17:27 Copying approximately 26345605 rows...
Copying `users`.`users_dt`: 0% 01:12:38 remain
Copying `users`.`users_dt`: 1% 01:13:24 remain
Copying `users`.`users_dt`: 1% 01:20:53 remain
Copying `users`.`users_dt`: 2% 01:27:24 remain
Copying `users`.`users_dt`: 2% 01:31:22 remain
Copying `users`.`users_dt`: 3% 01:32:27 remain
Copying `users`.`users_dt`: 10% 01:58:39 remain
Copying `users`.`users_dt`: 10% 01:58:30 remain
Copying `users`.`users_dt`: 10% 01:59:12 remain
Copying `users`.`users_dt`: 46% 01:20:35 remain
Copying `users`.`users_dt`: 46% 01:20:22 remain
Copying `users`.`users_dt`: 83% 24:06 remain
Copying `users`.`users_dt`: 98% 01:23 remain
Copying `users`.`users_dt`: 99% 00:37 remain
Copying `users`.`users_dt`: 99% 00:03 remain
2020-09-21T16:49:13 Copied rows OK.
2020-09-21T16:49:13 Analyzing new table...
2020-09-21T16:49:13 Swapping tables...
2020-09-21T16:49:13 Swapped original and new tables OK.
2020-09-21T16:49:13 Dropping old table...
2020-09-21T16:49:50 Dropped old table `users`.`_users_dt_old` OK.
2020-09-21T16:49:50 Dropping triggers...
2020-09-21T16:49:50 Dropped triggers OK.
Successfully altered `users`.`users_dt`.
總共耗時2小時多,普通磁碟。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2722966/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.7使用pt-online-schema-change對大表加欄位MySql
- MySQL修改大表工具pt-online-schema-change原理MySql
- oracle 修改表欄位的長度Oracle
- mysql5.6生成排序欄位MySql排序
- MySQL的欄位數量以及長度限制MySql
- DDL操作導致欄位長度變更修復方案
- MySQL中修改一個資料庫下包含有某個相同欄位的所有表的欄位長度MySql資料庫
- mysql的varchar欄位最大長度真的是65535嗎?MySql
- 一個 MySQL 線上 DDL 工具 — pt-online-schema-changeMySql
- MySQL線上新增欄位的幾種方案介紹MySql
- mysql表操作(alter)/mysql欄位型別MySql型別
- [20180613]縮短欄位長度.txt
- 億級大表線上不鎖表變更欄位與索引索引
- Oracle 修改欄位型別和長度Oracle型別
- MySQL 5.7使用pt-online-schema-change對大表加索引MySql索引
- MySQL 更新同一個表不同欄位MySql
- 5_MySQL 表的欄位約束MySql
- mysql修改表欄位學習筆記MySql筆記
- [20210423]建立檢視以及欄位長度.txt
- MySQL 更新一個表裡的欄位等於另一個表某欄位的值MySql
- MySQL 中 JSON 欄位的使用技巧MySqlJSON
- MySQL中JSON欄位的使用技巧MySqlJSON
- MySQL - 分組連線欄位函式GROUP_CONCAT的使用MySql函式
- MySQL 5.6的表壓縮MySql
- MySQL:count(*) count(欄位) 實現上區別MySql
- mysql建立表的時候對欄位和表新增COMMENTMySql
- 表單欄位
- ORANCLE 資料已存在,修改欄位型別長度型別
- 欄位長度前後端是否都需要做限制?後端
- MySQL 欄位約束MySql
- MySQL VARCHAR型別欄位到底可以定義多長MySql型別
- MySQL8.0大表秒加欄位,是真的嗎?MySql
- Mysql多欄位大表的幾種優化方法MySql優化
- MySQL 5.6 GTID 原理以及使用MySql
- MySQL 5.6對大表做歸檔MySql
- mysql精準模糊查詢使用CONCAT加佔位符(下劃線“_”)的使用,直接限定了長度和格式MySql
- Linux上yum安裝mysql5.6LinuxMySql
- MySQL null值欄位是否使用索引的總結MySqlNull索引