Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Die folgenden Scripts wurden unter openSuSE 13.1 mit PostreSQL 9.3 geschrieben.

Datenbank sichern (Postgres 9.3)

Die Postgres-Datenbank kann mit nachfolgendem Script gesichert werden. Dabei wird die in der Tabelle t_ad_relase abgelegte Nuclosversion als Dateiname für das Backup übernommenScript gesichert werden. Dabei wird die in der Tabelle t_ad_relase abgelegte Nuclosversion als Dateiname für das Backup übernommen.

Codeblock
#!/bin/bash
# ----------------------------------------------------------------------
# /usr/local/bin/pgdump - backup nuclos pgsql database to file
# max@kalhammer.com 2014-02-14
# ----------------------------------------------------------------------

pghost=localhost
pgname=$(hostname)
pgport=5432
pgbase=nuclosdb
pguser=postgres
pgpass=ds011$SK
pgpath=/data/backup
pgpsql=/opt/PostgreSQL/9.3/bin/psql
nuclos=`sudo -u postgres $pgpsql -d $pgbase -c "select strrelease from
       nuclos.t_ad_release order by datinstalled desc limit 1;
       " | tail -n 3 | head -n 1`
pgfile=$pgpath/$pgname\_nuclos\_$nuclos\_$(date +%Y-%m-%d)_$(date +%H-%M).pgdump
pgfile=`echo $pgfile | tr -d " "`
pgdump=/opt/PostgreSQL/9.3/bin/pg_dump
pgopts='--no-password --format tar --blobs --create'
echo $pghost:$pgport:$pgbase:$pguser:$pgpass > ~/.pgpass
chmod 600 ~/.pgpass
$pgdump --host $pghost --port $pgport --username $pguser $pgopts --file $pgfile $pgbase
echo "PostgreSQL Backup to file="$pgfile

# ----------------------------------------------------------------------

Datenbank sichern (Postgres 10)

Das folgende Script wurden unter Ubuntu 18.04.2 LTS mit PostreSQL 10 geschrieben.

Codeblock
#!/bin/bash
# ----------------------------------------------------------------------
# /usr/local/bin/pgdump - backup nuclos pgsql 10 database to file
# based on version from max@kalhammer.com
# 20142019-0208-1418
# ----------------------------------------------------------------------
 
pghost=localhost
pgname=$(hostname)
pgport=5432
pgbase=nuclosdb
pguser=postgres
pgpass=ds011$SKYourPwd
pgpath=/data/backup
pgpsql=/optusr/lib/PostgreSQLpostgresql/9.310/bin/psql
nuclos=`sudo -u postgres $pgpsql -d $pgbase -c "select strrelease from
       nuclos.t_ad_release order by datinstalled desc limit 1;
       " | tail -n 3 | head -n 1`
pgfile=$pgpath/$pgname\_nuclos\_$nuclos\_$(date +%Y-%m-%d)_$(date +%H-%M).pgdump
pgfile=`echo $pgfile | tr -d " "`
pgdump=/optusr/lib/PostgreSQLpostgresql/9.310/bin/pg_dump
pgopts='--no-password --format tar --blobs --create'
echo $pghost:$pgport:$pgbase:$pguser:$pgpass > ~/.pgpass
chmod 600 ~/.pgpass
$pgdump --host $pghost --port $pgport --username $pguser $pgopts --file $pgfile $pgbase
echo "PostgreSQL Backup to file="$pgfile
 
# ----------------------------------------------------------------------

...

Codeblock
#!/bin/bash
# ----------------------------------------------------------------------
# /usr/local/bin/pgprep - prepare nuclos pgsql database
# max@kalhammer.com 2014-02-09
# ----------------------------------------------------------------------

pghost=localhost
pgport=5432
pguser=postgres
pgpass=ds011$SKnuclos
pgnusr=nuclos
pgnpwd=ds011$SKnuclos
pgbase=nuclosdb
pgscma=nuclos
pgopts=--no-password
pgpath=/data/pgsql
pgtemp=/var/tmp/pgprep.sql
pgpsql=/opt/PostgreSQL/9.3/bin/psql

echo $pghost:$pgport:$pgbase:$pguser:$pgpass > ~/.pgpass
chmod 600 ~/.pgpass
echo "-- Postgres Database Preparation for Nuclos"                                                             > $pgtemp
echo "-- ========================================"                                                            >> $pgtemp
if [ "$1" = "init" ]; then
 echo "-- Create Role $pgnusr"                                                                                >> $pgtemp
 echo "CREATE ROLE $pgnusr LOGIN UNENCRYPTED PASSWORD '$pgnpwd' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;" >> $pgtemp
fi
#cho "CREATE TABLESPACE $pgnusr WITH OWNER = $pgnusr LOCATION = '$pgpath';"                                   >> $pgtemp
echo "-- Create Database $pgbase with owner $pguser"                                                          >> $pgtemp
echo "CREATE DATABASE $pgbase WITH OWNER = $pgnusr TEMPLATE = template1 ENCODING = 'UTF8';"                   >> $pgtemp
echo "\c $pgbase"                                                                                             >> $pgtemp
echo "-- Create Schema $pgscma for $pgnusr"                                                                   >> $pgtemp
echo "CREATE SCHEMA $pgscma AUTHORIZATION $pgnusr;"                                                           >> $pgtemp
if [ "$1" = "init" ]; then
 echo "-- Create Language plpgsgl"                                                                            >> $pgtemp
 echo "CREATE LANGUAGE plpgsql;"                                                                              >> $pgtemp
fi
chmod 666 $pgtemp
su - $pguser -c "$pgpsql -a --file=$pgtemp"
rm $pgtemp

# ----------------------------------------------------------------------

...

Die folgenden Batchdateien wurden auf Windows XP mit PostreSQL 9.2 geschrieben.

Datenbank sichern

Die Postgres-Datenbank kann mit nachfolgender Batchdatei gesichert werden. Die in der Tabelle t_ad_relase abgelegte Nuclosversion wird nicht ausgelesen.

...