*URGENT* Progress 8.3E Database dump and reload to get rid of errors and to optimize performance - Application Service Solutions

shaw22

New Member
Greetings from Chicago,
We use an application called Service Solutions that runs on Progress 8.3E. We have been experiencing lockups when we search for customers- is there a way to dump and reload the database to get rid of the error and to optimize the database?
Please see attached list of files in the solution folder sorted by time stamp, and other screen shots

Thanks
Shawprogress-version-8.3e.jpgservice-solution-banner.jpgdatabase-maint-was-aborted.jpg19-errors.jpg
 

Attachments

  • tempdir.txt
    12.6 KB · Views: 6
  • tssr08.txt
    3.1 KB · Views: 6

shaw22

New Member
Hi Tom,
This error has been there for many years. Since the software provider is not in business anymore, we couldn't do anything about it and it was not affecting any operations. However, recently it is starting to lockup during customer look up / search. And hence I am thinking may be a dump and reload will help?
 

TomBascom

Curmudgeon
Well, yes, it is possible to dump and reload an 8.3 database.

Actually doing so depends on a lot of details. The two big questions are:

1) What licenses are available? (Run “showcfg” to get a list.)

2) Can you re-compile the application? IOW, do you have all of the source code?

If the answer to #2 is “yes” then you, really, really, really, REALLY, should be looking to upgrade to a supported release of Progress. Not only will it make the dump & load easier but it will also stabilize the entire system.
 

shaw22

New Member
We don't have the source code.
License information below:
progress-lic-1.jpgprogress-lic-2.jpgprogress-lic-3.jpg
 

Attachments

  • progress-lic-2.jpg
    progress-lic-2.jpg
    84.7 KB · Views: 21
Last edited:

shaw22

New Member
Hi Cringer,
I removed the control numbers

Progress version is 8.3E
-Where do I find the service pack info
-Windows 2003
-I haven't tried anything - don't know how to do the dump and reload
-Errors are attached in my first message on this thread

Thanks
 

TomBascom

Curmudgeon
With 8.3 and no compiler license you need to be extra careful about the r-code CRC.

Outline:

0) Make a backup. Or two or three. Make sure that you can restore them properly. This is a good time to make sure that your DR plan works properly.

1) connect to the db and start the data dictionary:

mpro dbname -p dict.p -rx

This should get you to menus that take you to the dump & load process.

2) Find your way to "dump data and definitions" and dump the definitions. This will create dbname.df.

3) In another window create a new, empty database in a different folder but with the same name as the existing database.

prodb empty dbname

4) Start a single user session and load the dbname.df that you dumped in the first step.

pro dbname -p dict.p -rx

5) In the first window dump a table. Using the second window load it.

6) Rinse and repeat.

As described, this is not a fast process. There are, of course ways to make it faster. If you get to step #6 you have proved out each of the individual steps and you can start thinking about how to do the whole thing more efficiently. If you don't get to step #6 then I have omitted something important or you have not quite followed the instructions or there is something hinky in your environment. If the database is not terribly large (the size of the backup would be a good way to judge) then it may be perfectly fine to do things this way. But if the db is bigger you might need to be more clever than this.
 

TomBascom

Curmudgeon
Also: "We have been experiencing lockups when we search for customers..." is awfully vague. What, exactly, is happening? Are there error messages?
 

shaw22

New Member
Hi Tom,
I was out sick for three days.

Thanks for the detailed instructions - I will try the dump and reload this weekend.

>>> "We have been experiencing lockups when we search for customers..." is awfully vague. What, exactly, is happening? Are there error messages? <<<<
We have an option in the system to search orders by customers last name and when we do that, it locks up and we have to kill the process using task manager and restart again
 

shaw22

New Member
Hi Tom,
mpro and pro are not in the installation folders. ProDb is there. See the list of files in the install folders \DLC and \SOLUTION. Where can I get the mpro and pro files?

Thanks
 

Attachments

  • tmpdlcdir.txt
    170.7 KB · Views: 5
  • tmpsoldir.txt
    253.6 KB · Views: 2

TomBascom

Curmudgeon
Ah yes, the good old days of 8.2...

You do have the character client installed and, with that, %DLC%\bin\_progres.exe and proenv.bat. So you could fire up "proenv" and work from there. Just replace "mpro" with "_progres" and "pro" with "_progres -1" and "Bob's your uncle!"

Or at least that ought to work. 8.2 was like 25 or 30 years ago so a few more things may have slipped my mind ;)
 

shaw22

New Member
Hi Tom,

I can only dump data definitions - Select all tables with F5 * and dump data definitions to bkuptssr.df (File size 876,424) (original database size
596,115,456 tssr08.db)

I don't see option to dump data and definition together?


1659842513521.png

Snap 2022-08-06 at 22.04.23.jpg
 

shaw22

New Member
Also please clarify prodb syntax - see below

prodb program is in dlc\bin folder. production database tssr08.df is in e:\solution folder

1659843094986.png
 

TomBascom

Curmudgeon
I don't see option to dump data and definition together?

Correct. It is a two-step process.

Also please clarify prodb syntax

You want to start with an empty database. (I see that you have already named it "bkuptss1").

prodb prompts for missing arguments. You could skip the prompts by saying:

Code:
prodb bkuptss1 empty

Your next step is to start a session with the new database and use the dictionary to LOAD the .df file that you made previously. Usage of -rx may, or may not, be required. If it doesn't work one way try it the other way.

Once the .df is loaded make a backup of the "has schema but no-data", database. That can be a handy backup to have. i.e.

Code:
probkup bkuptss1 bkuptss1.pbk

If you get that far...

I can only dump data definitions...

Did you start the session with, or without the -rx option? Try starting a new session in the opposite manner. If I recall correctly there are some circumstances where you need to do the definitions dump one way and the data dump the other way.

Worst case (which in some ways is actually better) you can opt to do a binary dump & load using proutil instead.

If you managed to get .d files just go ahead and use those to load.

If not then do a binary dump with proutil for each table:

Code:
proutil olddbname -C dump tablename

You can then load that with:

Code:
proutil newdbname -C load tablename.bd

The .bd file for long table names gets abbreviated - so pay attention to that if you go down this road.

You will also need to rebuild indexes after a binary load:

Code:
proutil newdbname -C idxbuild all

I have omitted various optimization techniques since this is a small database. I may have also glossed over or forgotten a few details here and there. It's early and a weekend, I've just started my coffee ;)
 

shaw22

New Member
Good Morning Tom

I was able to create an empty database and make a backup
1659880553695.png
1659880723374.png

I am running the binary dump now - see attached batchfile

While that is running, I have a question on the .lg (log file?) - see attached - the log file starts in 2011 and has grown to 430MB (while the database size is only 596MB) - is there a way to purge the log file?

1659885224820.png


Thanks!
 

Attachments

  • 1659882292412.png
    1659882292412.png
    6.6 KB · Views: 3
  • service-solution-table-names.txt
    5.5 KB · Views: 3
  • tssr08.lg-sample-log-file.txt
    4.5 KB · Views: 1

Rob Fitzpatrick

ProgressTalk.com Sponsor
is there a way to purge the log file?
With the database offline, rename the log file or move it to a different directory. When you restart the database it will create a new log.

Also, it is best not to create new databases or backups in the DLC directory or its subdirectories.
 

shaw22

New Member
Is there a way to get a listing of all tables and the number of records in each table?. I want to make sure I reloaded all table records by comparing the olddb to the newdb after reload
 
Top