#!/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}"