One time db scrub with .install file
I typically do things like this outside of modules, and instead use a drush script.

The script itself, would go something like


Go into maintenance mode
Do an EntityFieldQuery to get my nids.
Loop through each nid, and
Load the node, and make an entity metadata wrapper
Do the search and replace on the fields
Save the node
Exit maintenance mode


Before and after running the script, I usually do a drush sql-dump.  You can even combine all of this into a single script

#!/bin/bash

drush variable-set -y --always-set maintenance_mode 1
drush sql-dump --result-file=~/db/before.sql
drush scr path/to/my/script.php
drush sql-dump --result-file=~/db/after.sql
drush variable-delete -y --exact maintenance_mode


By doing a drush script, you can really ensure that the task runs when you want it to, and you aren't bound by execution time limits.  I also find it easier to debug.

That said, you should just be able to use Pathologic to rewrite the URLs.  Install/enable it, and add it to your text formats, and configure to do the path fixups.