この問題のため、 dtraceを使用して、スレーブ SQL スレッドが一時テーブルで何を行っているかを調べるつもりです。このガイドに従ってください。
これが私のスクリプトです:
#!/usr/sbin/dtrace -s
#pragma D option quiet
dtrace:::BEGIN
{
printf("Tracing... Hit Ctrl-C to end.\n");
}
pid$target::*mysql_parse*:entry
{
self->query = copyinstr(arg1);
}
pid$target::*Slave_open_temp_tables*:return
{
@query[self->query] = count();
}
そして、これは私が実行したときに得たものです:
# ./Slave_open_temp_tables.d -p `pgrep -x mysqld`
proc-stub:rd_event_enable
proc-stub:rd_errstr err=26
dtrace: failed to compile script ./Slave_open_temp_tables.d: line 14: probe description pid29441::*Slave_open_temp_tables*:return does not match any probes
User defined signal 1
私も試してみましcreate_myisam_tmp_table
たが、同じ結果が得られました。
私はどこで間違ったのですか?