Software: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g. PHP/5.2.4-2ubuntu5.12 uname -a: Linux forum.circlefusion.com 2.6.24-19-server #1 SMP Wed Jun 18 15:18:00 UTC 2008 i686 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/share/doc/postgresql-common/ drwxr-xr-x |
Viewing file: architecture.html (8.43 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | Multi-Version/Multi-Cluster PostgreSQL architectureSolving a problemWhen a new major version of PostgreSQL is released, it is necessary to dump and reload the database. The old software must be used for the dump, and the new software for the reload. This was a major problem for Red Hat and Debian, because a dump and reload was not required by every upgrade and by the time the need for a dump is realised, the old software might have been deleted. Debian had certain rather unreliable procedures to save the old software and use it to do a dump, but these procedures often went wrong. Red Hat's installation environment is so rigid that it is not practicable for the Red Hat packages to attempt an automatic upgrade. Debian offered a debconf choice for whether to attempt automatic upgrading; if it failed or was not allowed, a manual upgrade had to be done, either from a pre-existing dump or by manual invocation of the postgresql-dump script. There was once an upstream program called pg_upgrade which could be used for in-place upgrading. This does not currently work and does not seem to be a high priority with upstream developers. It is possible to run different versions of PostgreSQL simultaneously, and indeed to run the same version on separate database clusters simultaneously. To do so, each postmaster must listen on a different port, so each client must specify the correct port. By having two separate versions of the PostgreSQL packages installed simultaneously, it is simple to do database upgrades by dumping from the old version and uploading to the new. The PostgreSQL client wrapper is designed to permit this. General Architecture ideaThe Debian packaging has been changed to create a new package for each major
version. The criterion for creating a new package is that initdb is required
when upgrading from the previous version. Thus, there are now source packages
The legacy postgresql and the other existing binary package names have become dummy packages depending on one of the versioned equivalents. Their only purpose is now to ensure a smooth upgrade and to register the existing database cluster to the new architecture. These packages will be removed from the archive as soon as the next Debian release after Sarge (Etch) is released. Each versioned package installs into
This architecture also allows separate database clusters to be maintained for the use of different groups of users; these clusters need not all be of the same major version. This allows much greater flexibility for those people who need to make application software changes consequent on a PostgreSQL upgrade. Detailed structureConfiguration hierarchy
Per-version files and programs
Common programs
psqlWe have abandoned the old non-standard error abort if a connection database
is not specified; psql is not expected to be run directly and all
connection parameters should be provided by pg_wrapper as specified above. In
addition, if no explicit default database is specified in
/etc/init.d/postgresql-versionThis script now handles the postmaster server processes for each
cluster. However, most of the actual work is done by the new
pg_upgradeclusterThis new program replaces postgresql-dump (a Debian specific program). It is used to migrate a cluster from one major version to another. Usage:
|
:: Command execute :: | |
--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0067 ]-- |