Line 1: |
Line 1: |
− | {{Note box|Software Collections is '''only''' available for SME Server '''9, 64-bit!'''}}
| + | <blockquote style="float: right;"> |
| + | [[File:softwarecollections.png|100px]] |
| + | |
| + | </blockquote> |
| <blockquote style="float: right;"> | | <blockquote style="float: right;"> |
| [[File:postgresql.png|250px]] | | [[File:postgresql.png|250px]] |
| </blockquote> | | </blockquote> |
− | | + | __TOC__ |
| '''Installing and running PostgreSQL via [[Software collections]]''' | | '''Installing and running PostgreSQL via [[Software collections]]''' |
| | | |
Line 9: |
Line 12: |
| | | |
| Software Collections applications can be started at boot as a system service, manually or in a specific shell. | | Software Collections applications can be started at boot as a system service, manually or in a specific shell. |
| + | |
| | | |
| ==PostgreSQL== | | ==PostgreSQL== |
Line 21: |
Line 25: |
| ====Install application==== | | ====Install application==== |
| After installing the scl-postgresql92 repository, PostgreSQL can be installed by issuing the following command: | | After installing the scl-postgresql92 repository, PostgreSQL can be installed by issuing the following command: |
− | yum install postgresql92 --enablrepo=scl-postgresql | + | yum install postgresql92 --enablerepo=scl-postgresql92 |
| Once installed, the application is installed on your SME Server at '''/opt/rh/postgresql92''' as an isolated environment for the application. | | Once installed, the application is installed on your SME Server at '''/opt/rh/postgresql92''' as an isolated environment for the application. |
| | | |
Line 37: |
Line 41: |
| | | |
| | | |
− | ====Initialize database==== | + | === Database location === |
− | PostgreSQL requires the initialization of t's database environment. This can be done by the following command:
| + | By default postgresql stores it's data in the environment under /opt/rh/postgresql92. We want a different location for the data, for we want to make sure the data is being backed up by the default backup mechanisms of SME Server. The chosen location is '''/home/e-smith/files/pgsql/data''' |
− | service postgresql92-postgresql initdb | + | |
| + | To be able to do this, we need to create a file as described below, which is the postgresql way of settings variables: |
| + | mkdir -p /opt/rh/rh-postgresql92/root/etc/sysconfig/pgsql |
| + | echo PGDATA=/home/e-smith/files/pgsql/data > /opt/rh/rh-postgresql92/root/etc/sysconfig/pgsql/postgresql92-postgresql |
| | | |
| + | {{Note box|Just like MySQL, Postgresql needs pre-backup and pre-restore actions. New actions have to developed to make this possible. Once this is the case, the databases location will have to change to the default /var/lib/pgsql}} |
| | | |
− | ===Start/Stop the application===
| |
− | PostgreSQL is now installed and initialized, and can be started and stopped via:
| |
− | /etc/rc.d/init.d/postgresql92-postgres start
| |
− | and
| |
− | /etc/rc.d/init.d/postgresql92-postgres start
| |
| | | |
| + | ====Initialize database==== |
| + | PostgreSQL requires the initialization of the database environment. This can be done by the following command: |
| + | /etc/rc.d/init.d/rh-postgresql92-postgresql initdb |
| | | |
| ====Start/Stop PostgreSQL as a system service==== | | ====Start/Stop PostgreSQL as a system service==== |
| Issue the following commands as root: | | Issue the following commands as root: |
− | ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S99postgresql92-postgresql | + | ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S64postgresql92-postgresql |
| chkconfig postgresql92-postgresql on | | chkconfig postgresql92-postgresql on |
| config set postgresql92-postgresql service | | config set postgresql92-postgresql service |
Line 66: |
Line 72: |
| signal-event remoteaccess-update | | signal-event remoteaccess-update |
| You can toggle between private and public access followed by the remoteaccess-update command. | | You can toggle between private and public access followed by the remoteaccess-update command. |
| + | |
| + | ===Enable the postgresql92 environment at boot time=== |
| + | The preferred way to enable scl postgresql environment permanently at logout or (re)boot is to add a custom script called 'enablepostgresql92.sh' to /etc/profile.d/ directory with the following content and make it executable. |
| + | |
| + | #!/bin/sh |
| + | source /opt/rh/postgresql92/enable |
| + | export X_SCLS="`scl enable postgresql92 'echo $X_SCLS'`" |
| + | |
| + | This will take effect after a logout/login as root or reboot. The simplest way is to log out from the console at this time and login again as root. |
| + | |
| + | |
| + | ===Possible bug and solution=== |
| + | It seems that the scl-postgresql92 pckages do not create 2 additional directories within the postgresql92 environment. We need to create them manually: |
| + | mkdir -p /opt/rh/postgresql92/root/var/lock/subsys/ |
| + | mkdir -p /opt/rh/postgresql92/root/var/run/ |
| + | |
| + | |
| + | ===Start/Stop PostgreSQL manually=== |
| + | PostgreSQL is now installed and initialized, and can be started and stopped manually via: |
| + | /etc/rc.d/init.d/postgresql92-postgresql start |
| + | and |
| + | /etc/rc.d/init.d/postgresql92-postgresql stop |
| + | |
| + | |
| + | == Wrap up == |
| + | From here you will have a working PostgreSQL environment that is based on Software Collection and fully transparent with your SME Server. Further PostgreSQL configuration and usage is beyond this how-to, so please refer to the '''[http://www.postgresql.org/docs/9.2/interactive/index.html official PostgreSQL documentation]'''. |
| + | |
| + | The user postgres has been automatically created with the following credentials: |
| + | postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash |
| + | |
| + | So to start using PostgreSQL command line: |
| + | su postgres |
| + | psql |
| + | |
| + | |
| + | == Uninstall == |
| + | To remove the scl postgresql92 environment: |
| + | /etc/rc.d/init.d/postgresql92-postgresql stop |
| + | yum remove \ |
| + | postgresql92* audit-libs-python libcgroup \ |
| + | libselinux-python libsemanage-python \ |
| + | policycoreutils-python setools libs setools-libs-python |
| + | config delete postgresql92-postgresql |
| + | rm -f /etc/profile.d/enablepostgresql92.sh |
| + | rm -f /etc/rc7.d/S64postgresql92-postgresql |
| + | All data will still be present in /home/e-smith/files/pgsql/data and can be transferred to another machine, archived or deleted manually. When re-used with another instance of scl-postgresql92, the step regarding initdb can be ommited for the data structure and data is already available. |
| + | |
| + | |
| + | == TO DO == |
| + | * Re-direct PostgreSQL log file to /var/log/ |
| + | |
| + | |
| + | ==Other articles in this category== |
| + | {{#ask: [[Category:Software Collections]]}} |
| | | |
| | | |
| | | |
| [[Category:Software Collections]] | | [[Category:Software Collections]] |
| + | [[Category:Howto]] |