Try the following
You could try the following:
Step 01) On the Master, run this
FLUSH TABLES WITH READ LOCK; SELECT CONNECTION_ID(); SELECT SLEEP(300);
Step 02) SHOW SLAVE STATUS\G
on both Slaves (or just the Reporting Slave)
Step 03) Repeat Step 02 Until
- Relay_Log_Space stops changing
- Relay_Log_Pos stops changing
- Seconds_Behind_Master is 0
At this point, since both Slaves have not received any new SQL to process, you have effectively frozen MySQL on the Slaves at the Same Point-In-Time as the Master
Step 04) On the Slaves (or just the Reporting Slave), run STOP SLAVE;
Step 05) On the Master, (if the CONNECTION_ID() return 789) run mysql> KILL 789;
in another mysql session.
Step 06) Run your reports
Step 07) Run START SLAVE;
on the Slaves (or just the Reporting Slave)
UPDATE 2012-06-05 15:15 EDT
Since this seems a little heavy handed for the sake of a few tables in one particular schema, the simplest thing would just be to run STOP SLAVE;
on the Slave you do the Reporting from.