DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) point-in-time-recovery-positions

Info Catalog (mysql.info) point-in-time-recovery-times (mysql.info) point-in-time-recovery
 
 5.10.3.2 Specifying Positions for Recovery
 ..........................................
 
 Instead of specifying dates and times, the -start-position and
 -stop-position options for `mysqlbinlog' can be used for specifying log
 positions. They work the same as the start and stop date options,
 except that you specify log position numbers rather than dates. Using
 positions may enable you to be more precise about which part of the log
 to recover, especially if many transactions occurred around the same
 time as a damaging SQL statement. To determine the position numbers, run
 `mysqlbinlog' for a range of times near the time when the unwanted
 transaction was executed, but redirect the results to a text file for
 examination. This can be done like so:
 
      shell> mysqlbinlog --start-date="2005-04-20 9:55:00" \
               --stop-date="2005-04-20 10:05:00" \
               /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
 
 This command creates a small text file in the `/tmp' directory that
 contains the SQL statements around the time that the deleterious SQL
 statement was executed. Open this file with a text editor and look for
 the statement that you don't want to repeat. Determine the positions in
 the binary log for stopping and resuming the recovery and make note of
 them. Positions are labeled as `log_pos' followed by a number. After
 restoring the previous backup file, use the position numbers to process
 the binary log file. For example, you would use commands something like
 these:
 
      shell> mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 \
               | mysql -u root -p
 
      shell> mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 \
               | mysql -u root -p
 
 The first command recovers all the transactions up until the stop
 position given. The second command recovers all transactions from the
 starting position given until the end of the binary log. Because the
 output of `mysqlbinlog' includes `SET TIMESTAMP' statements before each
 SQL statement recorded, the recovered data and related MySQL logs will
 reflect the original times at which the transactions were executed.
 
Info Catalog (mysql.info) point-in-time-recovery-times (mysql.info) point-in-time-recovery
automatically generated byinfo2html