Changes

From SME Server
Jump to navigationJump to search
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'''
  /etc/rc.d/init.d/postgresql92-postgres 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]]

Navigation menu