...answering Q2 would require me to think about the actual job you're trying to do, and I'm not sure I remember the details too well, and I'm not about to look them up in a bunch of old threads -- Anyway, about #1, "Is [the help message] understandable to you?", one comment:
I assume the single 's' in "--dbname=s", "--user=s", etc, stands for "string". If you're mostly going to be running this yourself, that's fine; but, if you have a bunch of less-sophisticated (l)users who'll be running this, then it might be good to spell that out.
Just a thought.