Add scripts/pg_restore01.sh
This commit is contained in:
@@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
DB_HOST="localhost"
|
||||||
|
DB_PORT="5432"
|
||||||
|
DB_USER="postgres"
|
||||||
|
DB_OWNER="eds"
|
||||||
|
DUMP_BASE_PATH="/pgbkp/20260730"
|
||||||
|
|
||||||
|
# Список баз
|
||||||
|
databases=("db01" "db02" "db03")
|
||||||
|
|
||||||
|
|
||||||
|
# Создаем базы
|
||||||
|
for db in "${databases[@]}"; do
|
||||||
|
echo "Creating: $db"
|
||||||
|
psql -p "$DB_PORT" -U "$DB_USER" -c "DROP DATABASE IF EXISTS $db WITH (FORCE)" -q
|
||||||
|
|
||||||
|
psql -p "$DB_PORT" -U "$DB_USER" -v ON_ERROR_STOP=1 << EOF
|
||||||
|
CREATE DATABASE $db
|
||||||
|
WITH
|
||||||
|
OWNER = $DB_OWNER
|
||||||
|
ENCODING = 'UTF8'
|
||||||
|
LC_COLLATE = 'en_US.UTF-8'
|
||||||
|
LC_CTYPE = 'en_US.UTF-8'
|
||||||
|
ICU_LOCALE = 'en-US'
|
||||||
|
LOCALE_PROVIDER = 'icu'
|
||||||
|
TABLESPACE = pg_default
|
||||||
|
CONNECTION LIMIT = -1
|
||||||
|
IS_TEMPLATE = False;
|
||||||
|
ALTER DATABASE $db
|
||||||
|
SET log_statement TO 'ddl';
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Database $db created with owner $DB_OWNER"
|
||||||
|
else
|
||||||
|
echo "Failed to create database $db"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
export PGPASSWORD=""
|
||||||
|
|
||||||
|
# Восстанавливаем
|
||||||
|
for db in "${databases[@]}"; do
|
||||||
|
echo "Restoring: $db"
|
||||||
|
if pg_restore -h "$DB_HOST" -p "$DB_PORT" -U "$DB_OWNER" -d "$db" -F d -j 4 --no-owner --no-privileges --no-tablespaces "$DUMP_BASE_PATH/${db}_dir"; then
|
||||||
|
echo "Restore $db Done"
|
||||||
|
else
|
||||||
|
echo "Restore $db Failed"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "All done"
|
||||||
|
|
||||||
|
unset PGPASSWORD
|
||||||
Reference in New Issue
Block a user