Difference between revisions of "SUNScholar/Prepare Ubuntu/S06"

From Libopedia
Jump to navigation Jump to search
Line 37: Line 37:
 
==Step 6.4: Create the PostgreSQL 'dspace' database==
 
==Step 6.4: Create the PostgreSQL 'dspace' database==
 
Create the "dspace" database with the "dspace" database user as owner.
 
Create the "dspace" database with the "dspace" database user as owner.
  createdb -w -U dspace -E UNICODE dspace
+
  createdb -E UNICODE dspace
  
 
Set the dspace database user password.
 
Set the dspace database user password.
 
  psql -U postgres
 
  psql -U postgres
 
... and set the password:
 
... and set the password:
  alter role dspace with password 'XXXXXX';
+
  ALTER ROLE dspace WITH PASSWORD 'XXXXXX';
 
'''Note: Use your unique dspace database password for this on a production system !'''
 
'''Note: Use your unique dspace database password for this on a production system !'''
 +
 +
Let the dspace postgresql database user own the dspace database
 +
ALTER DATABASE postgres OWNER TO dspace;
  
 
Quit the database shell.
 
Quit the database shell.

Revision as of 10:47, 9 October 2012

Prepare Ubuntu - Index

Step 6. Install PostgreSQL

DSpace uses the PostgreSQL database server for the main catalog database. The following procedure installs the PostgreSQL server and creates the "dspace" database and "dspace" database user with the very secret dspace database user password.

Step 6.1: Install PostgreSQL

sudo apt-get install postgresql-8.4 libpg-java

Step 6.2: Setup PostgreSQL admin password

Change database user permissions to "trust" only.

sudo sed -i 's/ident/trust/' /etc/postgresql/8.4/main/pg_hba.conf
sudo sed -i 's/md5/trust/' /etc/postgresql/8.4/main/pg_hba.conf

Restart database server.

sudo /etc/init.d/postgresql-8.4 restart

Become the postgres user

sudo su postgres

Open a database shell...

psql -U postgres

... and set the password:

alter role postgres with password 'XXXXXX';

Note: Use your unique system admin password for this on a production system !

Quit the database shell.

\q

Step 6.3: Create the PostgreSQL "dspace" user

Create the "dspace" user with full privileges.

createuser -U postgres -d -A -P dspace

If asked the following:

Shall the new role be allowed to create more new roles? (y/n) y

Answer "y" for yes.

Step 6.4: Create the PostgreSQL 'dspace' database

Create the "dspace" database with the "dspace" database user as owner.

createdb -E UNICODE dspace

Set the dspace database user password.

psql -U postgres

... and set the password:

ALTER ROLE dspace WITH PASSWORD 'XXXXXX';

Note: Use your unique dspace database password for this on a production system !

Let the dspace postgresql database user own the dspace database

ALTER DATABASE postgres OWNER TO dspace;

Quit the database shell.

\q

We return to the dspace user

exit

Step 6.5: Setup database host and user access permissions

Type the following:

sudo echo "## DSpace user access">> /etc/postgresql/8.4/main/pg_hba.conf
sudo echo "host    dspace       dspace      127.0.0.1/32         md5">> /etc/postgresql/8.4/main/pg_hba.conf

Step 6.6: Setup number of client connections

Edit the postgresql config file:

sudo nano /etc/postgresql/8.4/main/postgresql.conf

Change the number of "max_connections" to 300.


NANO Editor Help
CTL+O = Save the file and then press Enter
CTL+X = Exit "nano"
CTL+K = Delete line
CTL+U = Undelete line
CTL+W = Search for %%string%%
CTL+\ = Search for %%string%% and replace with $$string$$
CTL+C = Show line numbers

More info = http://en.wikipedia.org/wiki/Nano_(text_editor)


Step 6.7: Increase the kernel shared memory for postgresql connections

Edit the "/etc/sysctl.conf" file:

sudo nano /etc/sysctl.conf

Copy and paste the following to the end of the file:

# Postgres connections
kernel.shmmax = 500000000
kernel.shmall = 500000000

NANO Editor Help
CTL+O = Save the file and then press Enter
CTL+X = Exit "nano"
CTL+K = Delete line
CTL+U = Undelete line
CTL+W = Search for %%string%%
CTL+\ = Search for %%string%% and replace with $$string$$
CTL+C = Show line numbers

More info = http://en.wikipedia.org/wiki/Nano_(text_editor)


Type the following in a terminal:

sudo sysctl -p

Step 6.8: Restart the PostgreSQL server

Type the following:

sudo /etc/init.d/postgresql-8.4 restart

Below is a screenshot of the yearly DB connections.

Sunscholar-postgres connections db-year.png

 PREVIOUS
 NEXT