Desperate help needed for a legacy db

Rayford Booth

New Member
I have two databases running on a unix server with .p, .r, .ds, .I, .LF, .LG, .OUT, etc etc files including the .db file. I was told by a network analysts that was"maintaining" and i use this word loosely, the database system that it ran off of Progress.

I looked into some of the .p source files (Pascal files correct?) and they were created back in the 1997s and were not touched since the 2000 y2k update. The problem is that i have been tasked to start a new database system. I pretty much have no documentation for the database.

Overall though i just want to dump all the tables of data out of the database so i can strip the system and move to something more user-friendly and new. Right now, I have zero software related to progress database systems to work with.

I was looking at Probuddy but dont want to pay for it unless i know it is going to work.

I FTPed the server and extracted the entire systems related to both the database (.db file and related source and scripts). (Note that the entire "program" was unix based through TinyTerm remote login. so there is not much for me to work with.

What should i be using to extract the information ASAP. I dont need anything fancy just the dump of the data.

Remember that i do not have Progress software to open the database atm and would prefer not to have to buy anything. This is a legacy system that has reached its end of life

Thanks
 

rstanciu

Member
First you have to search your .profile for the system variable DLC is the install path of
progress. echo $DLC ?
If you have the DLC exported, then add in the PATH the bin
PATH=.:$DLC/bin:$PATH; export PATH;
If is ok , then type "showcfg" and show me the result.
If you see the "4GL Development System" is OK ...
then you can type
pro [yourdatabase].db -1

You go to Tools->DataDictionary->Admin->Dump Data and Definitions -> Table Contents (.d file)...
like this you can export you data.

btw: the *.p are ProgressFiles not Pascal :)
 

TomBascom

Curmudgeon
You cannot extract the data from the .db file without the Progress database engine. So the db that you ftp'd is useless to you. You need to go back to the original server to dump the data.
 

Rayford Booth

New Member
the .p files read great in a pascal ide:)


Going back to the system will be no problem.

Can i do this over telnet or what?

rstanciu can you give me more details about the PATH part of your instructions?

Thanks
 

TomBascom

Curmudgeon
You're not a UNIX guy are you? ;)

Dot-p files are just text. Any editor will read them.

Yes, of course telnet would be fine.

What don't you understand about the PATH instructions? He's telling you to add the Progress bin directory to it. In order to do that successfully the DLC environment variable has to exist and be exported first. If, for example, Progress is installed in /usr/dlc (it often is) then:

DLC=/usr/dlc
export DLC
PATH=$DLC/bin:$PATH

would be a sort of minimal way to make sure that the basic Progress scripts run from a command line.
 

Rayford Booth

New Member
no i am not really a unix guy. I know enough to move around the operating system and to work a mac terminal. But no i do not know much about the actual internal workings.

What i dont understand about the path instructions is what is the PATH thing?

Is:
DLC=/usr/dlc
export DLC
PATH=$DLC/bin:$PATH

Is this commands you want me to run through telnet?

Basically what i would like, I know it is a lot to ask, but a sort of step by step walkthrough of what i need to do to get all the tables in the database dumped into text files.

Would really appreciate this. Will save me a lot of effort. Thanks. Appreciate the info
 

TomBascom

Curmudgeon
PATH is the same concept as the DOS/Windows PATH (Unix came first).

We cannot give you a simple script to follow because there are too many possible variations in your situation and you lack the basic knowledge to act independently on the guidance provided so far. Which means that this is going to be slow and painful.

1) What is the name of the .db file and what directory was it installed in? (This may provide important clues about what application we are dealing with -- some applications have well known configurations.)

2) Login and type:

echo $DLC

tell us what happens. If we are lucky the DLC variable is defined and available in your environment. This will save us a lot of time hunting for the Progress install directory.

3) If something other than nothing happens in step 2 type:

cat $DLC/version

tell us what happens. This will reveal the version of Progress in use which may affect instructions regarding the dumping of data.

4) If something other than nothing happens in step 2 type:

$DLC/bin/showcfg

tell us what happens. This will reveal the type of license available. Some license types make dumping data difficult.

5) If step #2 resulted in nothing type:

find / -name _progres -print 2> /dev/null

(That's "Progress" with a leading "_", lower case "p" and only 1 "s".) This command will search the entire server for the _progres binary. It may take a long time to run.

If this succeeds it will return something like:

/usr/dlc/bin/_progres

5a) Set the DLC variable manually by eliminating the /bin/_progres portion of the string found in step 5. For example:

DLC=/usr/dlc
export DLC

5b) Add $DLC/bin to the PATH:

PATH=$DLC/bin:$PATH

5c) Run steps 3 and 4 again.
 

Rayford Booth

New Member
PATH is the same concept as the DOS/Windows PATH (Unix came first).

We cannot give you a simple script to follow because there are too many possible variations in your situation and you lack the basic knowledge to act independently on the guidance provided so far. Which means that this is going to be slow and painful.

1) What is the name of the .db file and what directory was it installed in? (This may provide important clues about what application we are dealing with -- some applications have well known configurations.)

2) Login and type:

echo $DLC

tell us what happens. If we are lucky the DLC variable is defined and available in your environment. This will save us a lot of time hunting for the Progress install directory.

3) If something other than nothing happens in step 2 type:

cat $DLC/version

tell us what happens. This will reveal the version of Progress in use which may affect instructions regarding the dumping of data.

4) If something other than nothing happens in step 2 type:

$DLC/bin/showcfg

tell us what happens. This will reveal the type of license available. Some license types make dumping data difficult.

5) If step #2 resulted in nothing type:

find / -name _progres -print 2> /dev/null

(That's "Progress" with a leading "_", lower case "p" and only 1 "s".) This command will search the entire server for the _progres binary. It may take a long time to run.

If this succeeds it will return something like:

/usr/dlc/bin/_progres

5a) Set the DLC variable manually by eliminating the /bin/_progres portion of the string found in step 5. For example:

DLC=/usr/dlc
export DLC

5b) Add $DLC/bin to the PATH:

PATH=$DLC/bin:$PATH

5c) Run steps 3 and 4 again.


Ok i ran all your commands. The version is 6.3E03.

I then tried to run the pro [database name] command but got a multi user mode error. Then i tried the proserve and mpro commands but got a no server for database error.

Whats next?
 

Rayford Booth

New Member
Also when i run the mpro it does connect and gives me the 1 to 9 option but when i make a selection it gives me unable to open prostart.p errno=13 <98>
 

StuartT

Member
Ok i ran all your commands. The version is 6.3E03.

I then tried to run the pro [database name] command but got a multi user mode error. Then i tried the proserve and mpro commands but got a no server for database error.

Whats next?

Wow there is still a progress V6.3 application out there.
V6.3D was the first version of progress I ever used (back in 1992)

when you tried mpro, you did try mpro <dbname>?

If so and you get a no server error then one of two things has happened, either someone is using the db in single user mode or the server has chashed at some point during the last 12 years and the lock file has not been deleted.

If you confirm that noone else is using the db, you should remove the file <dbname>.lk which will be in the same folder as <dbname>.db, having done this you should be able to issue the command pro <dbname>
 

StuartT

Member
Also when i run the mpro it does connect and gives me the 1 to 9 option but when i make a selection it gives me unable to open prostart.p errno=13 <98>

I cannot remember the mpro command ever giving 9 options it should simply connect to the DB in multi user mode.
What are the 9 options it gives?
 

rstanciu

Member
on the v.6 the bin directory not exist ...
you have to put the $DLC in the PATH and not the $DLC/bin
... and if I well rebemeber, the DataDictionary is a "prodict" binary.
 

Rayford Booth

New Member
Looks like in another directory we are running version 7.2D as well and i am think the 7.2 version is the version being currently used.
 
Top