OE10.1b Database Backup Scheme

mkob

New Member
We have been running progress for several years now, and we have been growing. We recently upgraded to OpenEdge 10.1b - and are moving closer to a 24x7 shop every day. Here is my database backup though.

Question: Can I disable ai's while the database is online?

If I can - what does everyone think of this for a backup scheme:


  • Run database online - 24x6 Mon-Sat
  • During the week do:
    • a aimage end (online)
    • archive to tape the previous bkup and archived ai's
    • run a probkup online using enableai enableaiarchiver
  • On Sunday actually bring the database down and stop aimage, run a probkup, turn ai's on and start the database again.
Any thoughts are appreciated. I still need to research more about the incremental backups, thinking that they may work for me as well. I am trying to keep the number of ai files I need to keep around down to a day's list, while keeping the database up.
 

TomBascom

Curmudgeon
This sounds like the Infor/Trend/SXE backup/AI management process.

Yes, it will still work. But there is no need to disable AI and, in reality, it's a kind of silly thing to be doing. Think about it. What's the point?

The whole point of after-imaging is to create logs that can be combined with previous backups to recreate a database that has somehow become corrupted or lost (perhaps because the building burned to the ground...) Routinely disabling and re-enabling AI does nothing to serve that purpose.

(There is a bug, now fixed, in some versions where you cannot roll forward extents whose sequence number is greater than 65535 -- but that's nearly 2 years of switching extents every 15 minutes.)

The most important question is -- where are those archived ai logs being kept?

The best answer is -- on a disk far, far away from the original database. Hopefully a disk in another building, preferably in another time zone.

The amount of time that passes between "rfutil dbname -C aimage new" and the copying of that extent to the offsite archive is the amount of data that you could lose in a catastrophe.

Backing up those extents on the same tape as a backup of the database kind of misses the point. If you've got a copy of the database what do you need the ai files for?

(There is a small amount of usefulness to those ai files -- the backed up db could be corrupt. But in the grand scheme of things that's far less likely than the backup not running because the server died -- and then you lose the backup and the ai files. There's also the "oops" programming mistake that deletes all your customers -- but you probably noticed that before the backup.)
 

mkob

New Member
But what if you lose the database say 4 hours into your day for whatever reason. If i have a backup on tape I can restore, if i have the ai files then I can roll forward the changes since the backup. If I do not stop and start the aimage before/after the probkup, can I still roll forward those ai files?

This sounds like the Infor/Trend/SXE backup/AI management process.

Yes, it will still work. But there is no need to disable AI and, in reality, it's a kind of silly thing to be doing. Think about it. What's the point?

The whole point of after-imaging is to create logs that can be combined with previous backups to recreate a database that has somehow become corrupted or lost (perhaps because the building burned to the ground...) Routinely disabling and re-enabling AI does nothing to serve that purpose.

(There is a bug, now fixed, in some versions where you cannot roll forward extents whose sequence number is greater than 65535 -- but that's nearly 2 years of switching extents every 15 minutes.)

The most important question is -- where are those archived ai logs being kept?

The best answer is -- on a disk far, far away from the original database. Hopefully a disk in another building, preferably in another time zone.

The amount of time that passes between "rfutil dbname -C aimage new" and the copying of that extent to the offsite archive is the amount of data that you could lose in a catastrophe.

Backing up those extents on the same tape as a backup of the database kind of misses the point. If you've got a copy of the database what do you need the ai files for?

(There is a small amount of usefulness to those ai files -- the backed up db could be corrupt. But in the grand scheme of things that's far less likely than the backup not running because the server died -- and then you lose the backup and the ai files. There's also the "oops" programming mistake that deletes all your customers -- but you probably noticed that before the backup.)
 

TomBascom

Curmudgeon
Starting and stopping AI is a bad idea.

Starting and stopping AI is a bad idea.

Starting and stopping AI is a bad idea.

Why?

Because if you do anything to the data base in between the start and the stop you will NOT be able to roll AI files across that boundary.

After Imaging is something that you START.

Once it is started you leave it enabled unless you have a very good reason to stop it.

Very good reasons include things like dumping & loading, rebuilding indexes or purging massive amounts of data. If you think that you have a very good reason think twice -- once you stop after-imaging for one of these reasons your old ai files cannot be used to recover. You will need a fresh backup and a new sequence of ai files. You must also have a very good backup in place before you stop ai for one of these very good reasons.

After image files are used to roll forward from any older copy of a database to some defined point. Often that defined point is "the last ai file I can lay my hands on" but sometimes it is "10 minutes prior to stupid thing that I did that deleted all my customers".

The only thing that you need is an old backup and every ai file since the backup was made.

Suppose that you have nightly backups safely stored somewhere. Suppose also that you archive your AI files every hour. (You use all variable length AI files to make this simple and easy and you follow my advice and make sure that the AI archive is in a different time-zone.)

If your database crashes with scary messages right now you would restore last night's backup and roll forward the 14 or 15 ai extents that you have been ftp'ing offsite all day long. (Notice how those AI files on last nights backup don't come into play?)

Oops! Last night's backup is no good. The tape has been reused too many times... Ok, no problem go back to Saturday night, retrieve another days worth of archives from the archive sight and roll forward 39 or so extents (notice how the AI files on the bad tape wouldn't help you since the tape was bad...)

Oh shoot -- the only good tape we can find is from 90 days ago :-( That's ok, just pull 90 days of ai extents from that nice safe ai archive that you've been putting them on and roll forward.
 

mkob

New Member
I do not think I have space to keep 90 days of ai's around. Just to be clear - you are saying I can start ai's - and run the aiarchiver.

So they count out 1,2,3,4,5,6,7,......100.

I do an online backup every night.

The database dies...

I have a tape to restore from. How do I find the correct AI at this point to restore from? Can I just pick the next one from after the backup?


Starting and stopping AI is a bad idea.

Starting and stopping AI is a bad idea.

Starting and stopping AI is a bad idea.

Why?

Because if you do anything to the data base in between the start and the stop you will NOT be able to roll AI files across that boundary.

After Imaging is something that you START.

Once it is started you leave it enabled unless you have a very good reason to stop it.

Very good reasons include things like dumping & loading, rebuilding indexes or purging massive amounts of data. If you think that you have a very good reason think twice -- once you stop after-imaging for one of these reasons your old ai files cannot be used to recover. You will need a fresh backup and a new sequence of ai files. You must also have a very good backup in place before you stop ai for one of these very good reasons.

After image files are used to roll forward from any older copy of a database to some defined point. Often that defined point is "the last ai file I can lay my hands on" but sometimes it is "10 minutes prior to stupid thing that I did that deleted all my customers".

The only thing that you need is an old backup and every ai file since the backup was made.

Suppose that you have nightly backups safely stored somewhere. Suppose also that you archive your AI files every hour. (You use all variable length AI files to make this simple and easy and you follow my advice and make sure that the AI archive is in a different time-zone.)

If your database crashes with scary messages right now you would restore last night's backup and roll forward the 14 or 15 ai extents that you have been ftp'ing offsite all day long. (Notice how those AI files on last nights backup don't come into play?)

Oops! Last night's backup is no good. The tape has been reused too many times... Ok, no problem go back to Saturday night, retrieve another days worth of archives from the archive sight and roll forward 39 or so extents (notice how the AI files on the bad tape wouldn't help you since the tape was bad...)

Oh shoot -- the only good tape we can find is from 90 days ago :-( That's ok, just pull 90 days of ai extents from that nice safe ai archive that you've been putting them on and roll forward.
 

TomBascom

Curmudgeon
I do not think I have space to keep 90 days of ai's around.

1) They are surprisingly small. And they compress well. You might be amazed how many you can keep.

2) Disk is cheap. Go on down to Best Buy and pick up a Terabyte or two.

Just to be clear - you are saying I can start ai's - and run the aiarchiver.

So they count out 1,2,3,4,5,6,7,......100.

I do an online backup every night.

The database dies...

I have a tape to restore from. How do I find the correct AI at this point to restore from? Can I just pick the next one from after the backup?

More or less. It depends on where you're looking to get that information -- sometimes you just read the wrong line out of the .lg file.

You can always guess. When you guess wrong the error message tells you what you should have guessed. There is no penalty (aside from wasted time) for guessing wrong.

BTW - my big complaint about the ai archiver is the file naming convention. It stinks. It makes it too hard to get the right file and the names are just ridiculously long.
 
Top