40 lines
1.1 KiB
Bash
Executable File
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}"
|