Not the answer you need?
Register and ask your own question!

pt-table-checksum "Deep recursion..." error

adamp_ohadamp_oh EntrantInactive User Role Beginner
I am trying to run the latest pt-table-checksum on a MySQL 5.0.67 server (Cent 5.5) and I receive the following error:

Deep recursion on subroutine "SchemaIterator::_iterate_dbh" at /usr/bin/pt-table-checksum line 6927.

I am using pt-table-checksum as follows:

pt-table-checksum h=localhost,u=user,p=password --no-check-replication-filters --lock-wait-time=120 --recursion-method=dsn=D=percona,t=dsns --tables database.table

I'm not sure what to do. Google didn't really help me on this one.


  • niljoshiniljoshi MySQL Sage Inactive User Role Beginner

    I've tested it locally but I'm not getting above error. As per your commandline, I'm assuming that you want to compare your master server with specific slave (you must have more slaves with one master). Have you created dsns table on percona DB and add DSN entry in that table? If not, then can you do it first?


    CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`));INSERT INTO dsns (dsn) VALUES ("-h127.0.0.1,u=user,p=pass,P=port"); -- here details should be of slave which you want to compare. </pre>

    You can get more information here ksum.html#cmdoption-pt-table-checksum--recursion-method
    And then try again to run above command for checksum.

  • adamp_ohadamp_oh Entrant Inactive User Role Beginner
    I did that part, although I only add the host and port since I have some slaves on non-standard ports. I didn't add an entry with username and password, or entries for slaves with a standard port.
  • badaldudybadaldudy Entrant Inactive User Role Beginner
    niljoshi wrote: »

    hi i want to modify one column in the table and i alos want to use --recursion-method/ --check-slave-lag i want to monitor the lag between two network how can i do this

    These are my commands:-

    pt-online-schema-change --p=123456 --execute --check-slave-lag=10s h=abc.slave , P=3306 --print --alter "MODIFY COLUMN abc varchar(7) NOT NULL DEFAULT 'money'" D=archives,t=abc_details_xyz;

    pt-online-schema-change --p=123456 --execute --recursion-method=dsn=D=percona,t=dsns --print --alter "MODIFY COLUMN abc varchar(7) NOT NULL DEFAULT 'money'" D=archives,t=abc_details_xyz;

    These two are my errors:--

    DBD::mysql::db selectcol_arrayref failed: Unknown column 'dsn' in 'field list' [for Statement "SELECT dsn FROM `archives`.`abc_details_xyz` ORDER BY id"] at /usr/bin/pt-online-schema-change line 4764

    Usage: pt-online-schema-change [OPTIONS] DSN

    Errors in command-line arguments:
    * Specify only one DSN on the command line
    * The DSN must specify a database (D) and a table (t)

    pt-online-schema-change alters a table's structure without blocking reads or
    writes. Specify the database and table in the DSN. Do not use this tool before
    reading its documentation and checking your backups carefully. For more
    details, please use the --help option, or try 'perldoc
    /usr/bin/pt-online-schema-change' for complete documentation.

    Please help on this topic you can contact me on [email protected]
Sign In or Register to comment.

MySQL, InnoDB, MariaDB and MongoDB are trademarks of their respective owners.
Copyright ©2005 - 2020 Percona LLC. All rights reserved.