Here's what I do:
My primary database has transaction log shipping turned on. The logs are written to /db/archive.
Every hour, a cron job runs as the oracle user. This cronjob does the following things:
moves the contents of /db/archive/ to /db_archive/YYYYMMDD/ (using the following script (that I didn't write, and so don't hold me accountable for ugliness))
# args: <src> <dest> <date>
echo "Processing $datechunk"
check=`ls $1 | wc -l`
if [ $check -le 2 ]; then
echo "Processing $check2 files"
ls -vA $1 | head -n $check2 > $2/dirlist.$datechunk
for line in `cat $2/dirlist.$datechunk`
cp $1/$line $2/$datechunk
if [ -s $2/$datechunk/$line ]; then
rsyncs the contents of /db_archive/YYYYMMDD/ to /db_archive/YYYYMMDD on the secondary server.
That takes care of getting the files there.
On the secondary server, /db/archive is a symlink to /db_archive/YYYYMMDD. "recover standby database" automatically reads from /db/archive/, so whatever script you use to recover your database should be able to handle the errors generated at the end of a day, so they can switch the symlink to the new day.
Does this help, or do you need more info?