dev-test-prod staging workflow for drupal with transport of database changes
Regarding #2, I would recommend using drush site aliases.  See also the sync_enable example in Drush, which demonstrates how you can get Drush to automatically adjust your database settings when you move your db from prod towards dev.  For moving configuration from dev to production, many folks use features; you might also want to look at ctools export bonus, which is built on much of the same technology.