How to backup

Hi,

We have software from a company called Eureka running on Progress databases...

Anyway...I REALLY need help because I have no idea how to use Progress and need to set up a adaily backup job.

Can someone tell me how to get around this in laymans terms?

Ideally I need it to save backups to c:\ every night at 7, I was told to be aware of Locked users/process so would have to deal with this to.
 

TomBascom

Curmudgeon
You would probably be best served by an online probkup. That avoids the issues that you seem concerned about. Look in the Progress help (it should be available at start -> all programs -> openedge -> help) for a detailed explanation of PROBKUP.

You should also get some training or mentoring from someone experienced with this stuff (see signature line for some ideas...). There is a lot you don't know and it doesn't sound like the Eureka people are doing much to help you to successfully deploy their application :( (This is not to bad mouth Eureka, it's just that application partners tend to focus on the application and its functionality -- they don't put a lot of thought into the operational aspects of running it, that isn't what they are good at.)
 
Hi we have never had any problems with eureka - we just have never backed up in the YEARS we have had the application.

Now the original IT staff have left and it is on me to try and figure it out, at the minute I prefer sql but it seems like a very robust database - sql often has problems but we have had progress for years without any issues.

From what I have read I want to do an online backup - then create a .bat file and schedule it in schedule tasks.

Only thing is I have so far been unsuccessful in backing it up - i think I am in the wrong directory or something in proEnv...basically I am guessing
 

TomBascom

Curmudgeon
Like I said, I'm not bad mouthing Eureka. For you to not have a backup and not know how to do it just says something about their focus.

Yes, you just need to add a scheduled task.

I have no idea what directory anything is in so I cannot help you with that.

probkup probably wants the dbname to be exactly the same as the dbname used to start the db -- it might be something simple like "eureka" (which would imply that you need to cd to whatever directory the db is in prior to starting the backup) or it might be a full path like "c:\db\eureka".

If you're getting an error it would be good to post the actual message. It would also be helpful to know the version of Progress.
 
Hi yeah I have been trying on a demo.db and live.db held in c:\eureka\db except - this is what I have tried:

Open ProEnv - type prompt, then cd to the above directory
Then I type " probkup online live.db c:\ -verbose -com -red 5 " to save the live.db to the c:\ however it just says "there is no server for database live"

I am reluctant to actuallly use the Eureka database until I can get it to work - does the "online" backup mean it ignores the Locked users/processes I am concerned about?
 

TomBascom

Curmudgeon
That means one of two things:

1) It could just be that there is no server running. Is the a live.lk file? If not then there is no server and therefore the db is offline so just omit the "online".

2) It is being picky and wants you to use the exact same name (path included) that the server was started with.

Beyond that:

You should provide a name for the backup file -- plain old "c:\" isn't adequate and Progress will not provide a default name. Name it something like c:\live.pbk

don't use -red 5. You do not want to be using incremental backups. That's way too complicated for someone in your position.

-verbose probably isn't going to be a good idea either.

-com is a good idea, just keep in mind that it isn't "zip style" compression all that it is doing is skipping empty blocks.

Is the database larger than 2GB? If it is then you are going to need to get into creating a multi-volume backup with a response file providing the names of extents after the first one.
 
Hi

No it is not larger than 2GB - luckily.

Ill try and run "pbkup online c:\eureka.pbk -com" when the time comes.

It turned out the database wasn't online so it backed up correctly

Now I need to create a .bat file which will keep me busy - you don't learn command prompt at uni - i can do a million things but the basics...im just out of uni and just learnt 4 years learning is wasted...turns out I actually need to know basics like cmd and sql and progress..not just theory - still i am enjoying linux and SQL...progress hopefully....

Can you recommend a book on Progress basics? And how to create a .bat file to run in schedule tasks

Im very grateful for your time

Thankyou
 

TomBascom

Curmudgeon
A good book: http://wss.com/publications/fathom_manual.html

There are some other books there too.

Nominally this book is about "Fathom" (now known as "Open Edge Management") but it really covers a lot of the basics too. (Fathom would probably be overkill for you. And if you are interested in something like that you'd probably find http://dbappraise.com to be a better match for your situation...)

I'm not much of a .BAT guy, I'm a UNIX scripter, but as I recall from the last time I put one of these together, the main thing is to make sure that the DLC variable is correctly set to the Progress install dir and that %DLC%\bin is in the PATH.

So something like:
Code:
set DLC=c:\Progress\OpenEdge
set PATH=%PATH%;%DLC%\bin

call probkup dbname -com c:\dbname.pbk
 
Hi again.

I am trying to do the live db backup now before I create the .bat file and scheduled task.

However I am getting another ...no server for database... error.

This time I am certain it is the live database and in multiuser mode - I could not find a live.lk file...what is the relevance of this?!

Any suggestions?!
 

TomBascom

Curmudgeon
The .lk file is the "lock" file. It should be in the same directory as the dbname.db file. If it does not exist then you are in the wrong directory or the database that you are looking at is not the running database.

So if you production database is named "live" and it is in c:\eureka you would expect to see a minimum of the following files in c:\eureka

live.db
live.lk
live.lg

There may be many additional files -- this is the minimum set. There can also be quite a few files scattered in different directories depending on how this was setup.

If you delete a .lk file from a running database the db will crash. If the .lk file is not there the db is not running.

The .lg file is the log file. Look at the end of the file to see what the most recent activity has been.
 
So to summarise this is what I need to do:

----------------------------------------------

Create a batch file containing:
c:\eureka 2007\eureka\db probkup online eureka.db c:\backups\eureka.db -com

Do I need to do anything else or check anything in the progress database before I do this?

Set that to run every night vai a scheduled task.

-----------------------------------------------
I still need to get the online backup running though.
 

StuartT

Member
That looks to be correct however I usually set the environment variables in the manner Tom outlined as there is no guarantee that the scheduler will have these environment variables set and they are required.

Obviously you can test this out beforehand by simply executing the bat file from the command line.
 
I will try before hand to check...

the "online" is still coming up with "no server for database..."

Will it make more sense to take the database offline, then restart it in the batch file...obviously for someone like me who has no idea about progress it makes a bit more complicated but I need to get it backing up...


Thanks for all your help Tom/Stuart
 

StuartT

Member
It is better to do a backup with the database offline, online backups are really geared for systems that require 24/7 uptime.

If 100% uptime is not an issue for you then you could proceed in the manner I usually employ which is to run a script/batch file at say 10pm on a nightly basis which essentially does the following:

proshut <dbname> -by
probkup <dbname> <dbname>.bkp
proserve <dbname> -pf <pfname>

By doing this you are ensuring that all transactions are comitted and will be included in the backup
 
Obviously I cannot test this during the day. But my batch file will just look like:

cd to database directory
proshut eureka.db -by
probkup eureka.db c:\backups.bkp
proserve eureka.db -pf pfname.pf

Common sense suggests proserve brings it back online, just need to find the parameter file name.

Oh and what file extension do I use, I have now see a pbk and bkp...does this matter or not?!
 

StuartT

Member
Obviously I cannot test this during the day. But my batch file will just look like:

cd to database directory
proshut eureka.db -by
probkup eureka.db c:\backups.bkp
proserve eureka.db -pf pfname.pf

Common sense suggests proserve brings it back online, just need to find the parameter file name.

Oh and what file extension do I use, I have now see a pbk and bkp...does this matter or not?!

It matters not a jot what extension you use for a backup although on windows based ones I would stick to 3 chars and on unix you could use .backup for total clarity of what the file is.
Your backup line should be probkup eureka c:\backups\eureka.bkp

You do not need to qualify the database name with .db, also personally I never change directory within a script/batch file I always fully qualify the paths
ie. probkup c:\eureka 2007\eureka\db\eureka c:\backups\eureka.bkp
 

TomBascom

Curmudgeon
Many of the Progress "commands" being used are actually .BAT files. One of DOS' more endearing "features" :rolleyes: is that when you run a .BAT file from within a .BAT file control does not return to the original. You have to use CALL like so:

Code:
call proshut eureka -by
call probkup eureka c:\backups.bkp
call proserve eureka -pf pfname.pf

As for online vs offline... it all depends. It can get complicated. You might, for instance, want to check if the db is up or down and then decide. If you're going to proshut 1st then it might be a good idea to make sure that proshut succeeds. And so forth. All of which opens up the can of worms called "error handling" :eek: Pretty soon your scripts become a significant code base of their own...

And since I'm on a tangent... if you have not already done so you should be running after-imaging. Any database worth backing up should also have after imaging properly enabled and running. Which also takes a certain amount of scripting :cool:
 
Well after-imaging ----first time I have ever heard that term... what is it?

I have heard from Eureka, they have said we should perform offline backups to ensure integrity.

I am trying to get them to forward me the .bat file which should save me some hastly - unfortunately it isn't general support who I am dealing with so everything takes a bit longer( The database isn't very big .tiny in comparision to the SQL I use on a daily basis..only 60MB but it is all quite important stuff.)Why is there no GUI like SQL Enterprise manager :(

I am trying to install Red Hat with limited success at the minute and will come back to Progress after lunch. I think I need to get bits working in steps, try shutting it down, then restarting it, then shutting it down and backing it up etc....

If i use proserve on the demo db will that make it "live" so i can test it?!
 

TomBascom

Curmudgeon
After imaging = "redo logs". They allow you to "roll forward" transactions against a restored backup and recover your db to a specific point in time (usually just prior to some horrible failure). The Iron Law of Database Crashes states that all unrecoverable crashes occur either 5 minutes prior to the daily backup or just before the DBA leaves on vacation -- whichever is least convenient.

Snap quiz! If a db crash occurs just prior to backup how much data will you lose?

That's right... at least one full day. More if your backup is no good (bad tape, bad scripting, offsite storage loses it... take your pick...)

After-imaging allows you to go back as far as you have saved ai logs and at least one good backup (I like a minimum of 30 days) and roll forward to recover. I've had situations where 6 months of ai logs were available and used...

An online backup is no less reliable than an offline backup. The only real difference is that with an offline backup you have a very easily identified break in the action. Because an online backup is non-intrusive it can make it a bit fuzzy in peoples minds if a transaction that they were working on at around 7pm is, or is not in that backup (it's not really fuzzy, but perception is what matters...) Anyhow, it's not that big a deal one way or the other -- right now you have no backup at all so either one is a huge step forward.

There is a GUI -- Progress Exploder, err, "Explorer" ;) There is also "OpenEdge Management". But frankly I think you'd be better off learning the command line tools.

Yes, executing proserve should bring up live and make it testable.
 
Top