Files
sisvietnamvn_01/sisvietnamvn_main/backup_db.sh
T

40 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Exit on any error
set -e
CONTAINER_NAME="sisvietnam-oracle-sisvietnam-oracle-1"
DUMP_FILE="sisvietnam_backup.dmp"
LOG_FILE="sisvietnam_backup.log"
echo "=== Starting Database Backup ==="
echo "Running expdp inside container: ${CONTAINER_NAME}..."
# Run expdp inside the container
docker exec ${CONTAINER_NAME} expdp sisvietnam/sisvietnam@//localhost:1521/sisvietnam \
schemas=sisvietnam \
directory=DATA_PUMP_DIR \
dumpfile=${DUMP_FILE} \
logfile=${LOG_FILE} \
reuse_dumpfiles=y
echo "=== Export Completed ==="
echo "Locating the backup file inside the container..."
# Find the file dynamically because the directory path contains a dynamic GUID
CONTAINER_PATH=$(docker exec ${CONTAINER_NAME} find /opt/oracle/admin/FREE/dpdump/ -name ${DUMP_FILE} | tr -d '\r')
if [ -z "${CONTAINER_PATH}" ]; then
echo "Error: Could not locate ${DUMP_FILE} inside the container."
exit 1
fi
echo "Found backup file at: ${CONTAINER_PATH}"
echo "Copying backup to local directory..."
# Copy to host
docker cp "${CONTAINER_NAME}:${CONTAINER_PATH}" "./${DUMP_FILE}"
echo "=== Backup Successfully Created ==="
echo "Saved to: ./${DUMP_FILE}"