pt-archiver utf8mb4 Wide character emjo error

Description

The following data is false,

 

system@mysql-137-3-3306 17:21: [netdata]> select * from user_info limit 3\G 1. row *************************** id: 1 login_name: ming95 login_pass: e0f1ecba054443075990a2497fcd006a real_name: 刘建国 sex: M link_mobile: 13913984540 email: weiyang@gmail.com address: 安徽省鑫市永川巢湖路F744349 birthdate: 1998-10-08 id_card: 510725194612081053 create_time: 2020-04-25 22:50:38 modify_time: 2020-04-25 22:50:38 2. row *************************** id: 2 login_name: fu login_pass: 51b75e31e673fb5541717c6b6c3d7242 real_name: 刘博 sex: F link_mobile: 13123035804 email: yan15@gmail.com address: 福建省西安市清城茅路j座 545045 birthdate: 1908-10-06 id_card: 340123199009120367 create_time: 2020-04-25 22:50:38 modify_time: 2020-04-25 22:50:38 3. row *************************** id: 3 login_name: xiaxiao login_pass: 2242fe1295076125651269005c661694 real_name: xxxx sex: F link_mobile: 13020444126 email: juan04@gmail.com address: 福建省飞县闵行柳州路m座 954330 birthdate: 1983-12-05 id_card: 510401193007048595 create_time: 2020-04-25 22:50:38 modify_time: 2020-04-25 22:50:38

 

/usr/bin/pt-archiver --source A=utf8mb4,h=192.168.137.3,P=3306,u=netdata,p=netdata,D=netdata,t=user_info --dest h=192.168.137.3,P=3306,u=netdata,p=netdata,D=netdata,t=his_user_info --where 'id=2' --progress 5000 --limit=5000 --txn-size 400 --bulk-insert --bulk-delete --purge --statistics --no-safe-auto-increment --no-version-check TIME ELAPSED COUNT 2020-05-10T17:29:16 0 0 Wide character in print at /usr/bin/pt-archiver line 6769.

Environment

None

Smart Checklist

Activity

Lalit Choudhary June 11, 2020 at 11:26 AM

Hi

Thank you for the report.

Validated as described.

Test case: 

 

CREATE TABLE `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, `login_name` varchar(30) DEFAULT NULL, `login_pass` varchar(200) DEFAULT NULL, `address` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 mysql [localhost] {msandbox} (test) > select * from user_info; +----+------------+----------------------------------+-------------------------------------------+ | id | login_name | login_pass | address | +----+------------+----------------------------------+-------------------------------------------+ | 1 | user1 | e0f1ecba054443075990a2497fcd006a | 安徽省鑫市永川巢湖路F座 744349 | | 2 | user1 | e0f1ecba054443075990a2497fcd006a | 安徽省鑫市永川巢湖路F座 744349 | | 3 | user1 | e0f1ecba054443075990a2497fcd006a | 安徽省鑫市永川巢湖路F座 744349 | | 4 | user1 | e0f1ecba054443075990a2497fcd006a | 安徽省鑫市永川巢湖路F座 744349 | | 5 | user1 | e0f1ecba054443075990a2497fcd006a | 安徽省鑫市永川巢湖路F座 744349 | | 6 | user1 | e0f1ecba054443075990a2497fcd006a | 安徽省鑫市永川巢湖路F座 744349 | | 7 | user1 | e0f1ecba054443075990a2497fcd006a | 福建省西安市清城茅路j座 545045 | | 8 | user1 | e0f1ecba054443075990a2497fcd006a | 福建省西安市清城茅路j座 545045 | | 9 | user1 | e0f1ecba054443075990a2497fcd006a | 福建省西安市清城茅路j座 545045 | | 10 | user1 | e0f1ecba054443075990a2497fcd006a | 福建省西安市清城茅路j座 545045 | +----+------------+----------------------------------+-------------------------------------------+ 10 rows in set (0.00 sec)   Destination mysql server: CREATE TABLE `user_info_copy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `login_name` varchar(30) DEFAULT NULL, `login_pass` varchar(200) DEFAULT NULL, `address` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4   $ ../../mysql_tar/percona-toolkit-3.1.0/bin/pt-archiver --source A=utf8mb4,h=127.0.0.1,P=5730,u=msandbox,p=msandbox,D=test,t=user_info --dest h=127.0.0.1,P=5722,u=msandbox,p=msandbox,D=test,t=user_info_copy --where 'id=2' --progress 5 --limit=50 --txn-size 400 --bulk-insert --bulk-delete --purge --statistics --no-safe-auto-increment --no-version-check TIME ELAPSED COUNT 2020-06-11T16:49:54 0 0 Wide character in print at ../../mysql_tar/percona-toolkit-3.1.0/bin/pt-archiver line 6769. In other cases same work fine. CREATE TABLE `sbtest95` ( `id` int(11) NOT NULL AUTO_INCREMENT, `k` int(11) NOT NULL DEFAULT '0', `c` char(120) CHARACTER SET latin1 NOT NULL DEFAULT '', `pad` char(60) CHARACTER SET latin1 NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_95` (`k`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; $ ../../mysql_tar/percona-toolkit-3.1.0/bin/pt-archiver --source A=utf8mb4,h=127.0.0.1,P=5730,u=msandbox,p=msandbox,D=test,t=sbtest95 --dest h=127.0.0.1,P=5722,u=msandbox,p=msandbox,D=test,t=sbtest95 --where 'id=2' --progress 5 --limit=50 --txn-size 400 --bulk-insert --bulk-delete --purge --statistics --no-safe-auto-increment --no-version-check TIME ELAPSED COUNT 2020-06-11T16:52:59 0 0 2020-06-11T16:52:59 0 1 Started at 2020-06-11T16:52:59, ended at 2020-06-11T16:52:59 Source: A=utf8mb4,D=test,P=5730,h=127.0.0.1,p=...,t=sbtest95,u=msandbox Dest: A=utf8mb4,D=test,P=5722,h=127.0.0.1,p=...,t=sbtest95,u=msandbox SELECT 1 INSERT 1 DELETE 1 Action Count Time Pct commit 2 0.0086 19.43 select 2 0.0046 10.45 bulk_deleting 1 0.0042 9.55 bulk_inserting 1 0.0021 4.62 print_bulkfile 1 0.0000 0.03 other 0 0.0248 55.91

 

Aaron May 23, 2020 at 8:46 AM

Option"--Bulk-insert" conflict with utf8mb4 table !!! 

I guess Maybe bulk-insert use CSV file can‘t support utf8mb4, 

But the single-line mode is too slow, pt-archiver should support batch commit like  this : 

"insert into dest_table values (), (), ()..."

 

=============

single row mode , This is ok

pt-archiver --no-version-check --no-check-charset --no-delete --statistics --txn-size=1000 --limit=1000 --source \
A=utf8mb4,h=rr-.mysql.rds.aliyuncs.com,L=1,P=3306,u=,p='',D=arch_test,t=t_order_ext --dest \
A=utf8mb4,h=pc-.rwlb.rds.aliyuncs.com,L=1,P=3306,u=,p='',D=archiver_test,t=t_order_ext_202002 --where "create_time < '2020-02-01 01:00:00' "

----------------

bulk-insert mode , there is error

pt-archiver --no-version-check --no-check-charset --no-delete --bulk-insert --statistics --txn-size=1000 --limit=1000 --source \
A=utf8mb4,h=rr-.mysql.rds.aliyuncs.com,L=1,P=3306,u=,p='',D=arch_test,t=t_order_ext --dest \
A=utf8mb4,h=pc-.rwlb.rds.aliyuncs.com,L=1,P=3306,u=,p='',D=archiver_test,t=t_order_ext_202002 --where "create_time < '2020-02-01 01:00:00' "

2 Wide character in print at /usr/local/Cellar/percona-toolkit/3.0.13_1/libexec/bin/pt-archiver line 6768.
[log] 归档失败Wide character in print at /usr/local/Cellar/percona-toolkit/3.0.13_1/libexec/bin/pt-archiver line 6768.

 

 

Details

Assignee

Reporter

Priority

Affects versions

Fix versions

Smart Checklist

Created May 10, 2020 at 9:50 AM
Updated February 18, 2025 at 9:48 AM

Flag notifications