Kbase 21184: How to allow database extents larger than 2Gb?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/9/2010 |
|
Status: Verified
GOAL:
How to allow database extents larger than 2Gb?
GOAL:
How to allow database files larger than 2Gb?
GOAL:
How Large Files support works?
GOAL:
How to enable large files support?
GOAL:
What is needed to enable large file support?
GOAL:
Which files does enablelargefiles affect?
GOAL:
How to run EnableLargeFiles?
GOAL:
How to allow large file support?
FACT(s) (Environment):
UNIX
Progress 9.1C
Progress 9.1D
Progress 9.1E
OpenEdge 10.x
FIX:
A new feature was implemented in the Version 9.1C Enterprise Database product to enable database extents to be larger than 2GB.
When large file processing is enabled for a database, a flag is set in the master block to permanently mark the database. By default, large file processing is NOT enabled. The reason for this is that once large files are enabled, releases prior to 9.1C will be unable to use or open these databases -- earlier releases don't have the code necessary to use large files.
Please note that even in 9.1C and 9.1D, Progress still does not support large files on the following operating systems:
Linux: We still support some older Linux versions that do not have large file support, therefore we could not enable large files support in the Linux port. Progress 9.1E supports large files on Linux
SCO OpenServer: The operating system does not support large files.
SCO UnixWare: The port for SCO UnixWare is the same as for SCO OpenServer; because SCO OpenServer does not support large files, we could not enable large files support in the SCO UnixWare port either.
When large file processing is enabled for a database, fixed and variable length extents with specified maximum sizes beyond 2GB are allowed.
If a variable length extent with no specified maximum size is created for a database with large file processing enabled, the extent will be allowed to expand to a maximum of 1 TB depending on the database blocksize and records per block. (See the chapter, "Progress Database Limits" in the "Database Administration Guide and Reference" for details.)
For databases that do not have large file processing enabled, extents will be restricted to a maximum of 2GB, or the size specified for it in a .st file, whichever is less.
The following files will be allowed to exceed 2GB in size when large file processing is enabled:
After Image Extents (.an)
Before Image Extents (.bn)
Control Area Extent (.db)
Data Extents (.dn)
Transaction Log File (.tn)
Please note the following:
- Other files, in particular those that are directly accessed by 4GL client code (such as Data Dictionary .d files), still have a 2GB size restriction.
- The file system(s) where the database resides must be enabled to support files larger than 2Gb. For some operating systems, file systems do not support large files by default and large files support must be enabled explicitly.
- Still at the OS level, make sure that the ulimit for the users who will access the database is set to 'unlimited', or anyway a limit higher than the expected size of the database files.
- Various operating systems have differing limits on the maximum file sizes they support. For example, the maximum size of files on IBM AIX is 64Gb.
- The Progress backup(PROBKUP), restore(PROREST), binary dump, and binary load were enhanced to support large files in version 9.1B (except for Linux, where this feature has been introduced in OpenEdge 10).
-As of 10.1C, the files mentioned in the ABL statements INPUT FROM and OUTPUT TO are no longer limited to 2 gigabytes in length. Also the lbi and srt temporary files for local before-imaging and sorting/result-listing are no longer subject to the 2 gigabyte limit.
These are the three ways to enable large file processing for a database:
1) prostrct create - When creating a new database, if the .st file specifies a fixed length extent size or a maximum size for a variable length extent that is greater than 2GB, large file processing will be enabled for that database. The following command will create a database with large file processing enabled:
prostrct create largedb largedb.st
where largedb.st contains, for example, the following:
#
# largedb.st to create database largedb wit.h large file
# processing enabled.
#
# a fixed length bi file of 1GB and a variable length
# bi file with a maximum size of 4GB
#
b tests/largedb.b1 f 1048576
b tests/largedb.b2 v 4194304
#
# SCHEMA AREA with a fixed length file of 3GB and a variable
# length file with a maximum size of 3GB
#
d "Schema Area":6,64 tests/largedb.d1 f 3145728
d "Schema Area":6,64 tests/largedb.d2 v 3145728
#
# TABLE AREA with a fixed length file of just over 2GB and
# a variable length file with a maximum size of 1TB
#
d "Table Area":7,64 tests/largedb_7.d1 f 2097280
d "Table Area":7,64 tests/largedb_7.d2
#
# a fixed length ai file of 2GB and a variable length
# file with a maximum size of 1TB
#
a tests/largedb.a1 f 2097152
a tests/largedb.a2
#
2) proutil - You might enable large file processing for a database by running a new proutil option. The syntax of the command is as follows:
proutil <dbname> -C EnableLargeFiles
where "<dbname>" is the name of the database. The database must be offline when enabling large file processing. There is no corresponding command to disable large file processing for a database. Once large file processing is enabled for a database, the database can not be accessed by Progress versions prior to 9.1C. In Progress versions 9.1E and later, the proutil EnableLargeFiles utility may be used to enable large file processing on a void database.
3) procopy/prorest - In Progress versions prior to 9.1E, if a database is created or replaced using procopy or prorest utilities and the source database has large file processing enabled, large file processing will be enabled for the target database. Similarly, if a database with large file processing enabled is copied to a void Progres