Note: Updated Dec. 5, 2011 to reflect the latest changes in drush commands.
I backup databases, sometimes several times a week using drush.
$ drush sql-dump --result-file=backup.sql
(By the way, using the --result-file option instead of a redirect to prevent corrupting the charset in your data).
However, when reloading a backup I would always use the mysql command directly because drush doesn't have an import command. This means looking up the password and manually typing it in.
$ drush sql-connect mysql -hlocalhost -unathan -psomething some_database $ mysql -hlocalhost -unathan -psomething some_database < backup.sql
I finally figured out how to use drush for loading mysql dump files. From the command line you can convert the output of a command into a command itself, using the following syntax.
$ $(drush sql-connect) < backup.sql
Or, similarly, using the backtick character to wrap the command.
$ `drush sql-connect` < backup.sql