mirror of
https://github.com/ditkrg/db-backup-s3.git
synced 2026-01-22 22:06:45 +00:00
Rename MSSQL_BACKUP_DIR to MSSQL_DATA_DIR across configuration files and scripts for consistency. Update README and test scripts to reflect the new variable name. This change ensures clarity in the purpose of the directory used for MSSQL data and backups.
Signed-off-by: Shakar Bakr <5h4k4r.b4kr@gmail.com>
This commit is contained in:
parent
845507c728
commit
a9c7cc4be3
@ -35,7 +35,7 @@ ENV PGDUMP_EXTRA_OPTS ''
|
||||
ENV MARIADB_DUMP_EXTRA_OPTS ''
|
||||
ENV MARIADB_EXTRA_OPTS ''
|
||||
ENV MSSQL_EXTRA_OPTS ''
|
||||
ENV MSSQL_BACKUP_DIR '/var/opt/mssql/data'
|
||||
ENV MSSQL_DATA_DIR '/var/opt/mssql/data'
|
||||
ENV S3_ACCESS_KEY_ID ''
|
||||
ENV S3_SECRET_ACCESS_KEY ''
|
||||
ENV S3_BUCKET ''
|
||||
|
||||
@ -67,7 +67,7 @@ services:
|
||||
DATABASE_USER: sa
|
||||
DATABASE_PASSWORD: YourStrong@Passw0rd
|
||||
DATABASE_SERVER: mssql
|
||||
MSSQL_BACKUP_DIR: /var/opt/mssql/data # Path where backups are stored
|
||||
MSSQL_DATA_DIR: /var/opt/mssql/data # MSSQL data directory (where backups are temporarily stored)
|
||||
|
||||
volumes:
|
||||
mssql-data: # Shared volume for MSSQL data and backups
|
||||
@ -185,7 +185,7 @@ spec:
|
||||
secretKeyRef:
|
||||
name: db-credentials
|
||||
key: password
|
||||
- name: MSSQL_BACKUP_DIR
|
||||
- name: MSSQL_DATA_DIR
|
||||
value: "/var/opt/mssql/data"
|
||||
- name: S3_REGION
|
||||
value: "us-east-1"
|
||||
@ -264,7 +264,7 @@ spec:
|
||||
value: "localhost" # Same pod
|
||||
- name: DATABASE_PORT
|
||||
value: "1433"
|
||||
- name: MSSQL_BACKUP_DIR
|
||||
- name: MSSQL_DATA_DIR
|
||||
value: "/var/opt/mssql/data"
|
||||
# ... (S3 and DB credentials from secrets)
|
||||
volumeMounts:
|
||||
@ -274,7 +274,7 @@ spec:
|
||||
|
||||
**Key Configuration:**
|
||||
- `DATABASE_HOST: "localhost"` - Both containers are in the same pod
|
||||
- `MSSQL_BACKUP_DIR: "/var/opt/mssql/data"` - Must match MSSQL's data directory
|
||||
- `MSSQL_DATA_DIR: "/var/opt/mssql/data"` - MSSQL's data directory (where backup files are temporarily stored)
|
||||
- Both containers mount the same volume at `/var/opt/mssql/data`
|
||||
- Set `SCHEDULE` env var for automated backups (cron format)
|
||||
|
||||
|
||||
@ -108,7 +108,7 @@ services:
|
||||
DATABASE_PORT: 1433
|
||||
DATABASE_SERVER: mssql
|
||||
DATABASE_PASSWORD: YourStrong@Passw0rd
|
||||
MSSQL_BACKUP_DIR: /var/opt/mssql/data # Path where MSSQL backups are stored (must match volume mount)
|
||||
MSSQL_DATA_DIR: /var/opt/mssql/data # Path where MSSQL backups are stored (must match volume mount)
|
||||
volumes:
|
||||
mssql-data: # MSSQL database storage
|
||||
minio-data: # MinIO object storage
|
||||
|
||||
@ -24,7 +24,7 @@ data:
|
||||
# ============================================
|
||||
# MSSQL Specific Configuration
|
||||
# ============================================
|
||||
MSSQL_BACKUP_DIR: "/var/opt/mssql/data"
|
||||
MSSQL_DATA_DIR: "/var/opt/mssql/data"
|
||||
# MSSQL_EXTRA_OPTS: "" # Additional sqlcmd options if needed
|
||||
|
||||
# ============================================
|
||||
@ -87,7 +87,7 @@ data:
|
||||
# --from-literal=DATABASE_HOST='mssql-service' \
|
||||
# --from-literal=DATABASE_NAME='MyDatabase' \
|
||||
# --from-literal=DATABASE_PORT='1433' \
|
||||
# --from-literal=MSSQL_BACKUP_DIR='/var/opt/mssql/data' \
|
||||
# --from-literal=MSSQL_DATA_DIR='/var/opt/mssql/data' \
|
||||
# --from-literal=SCHEDULE='0 2 * * *' \
|
||||
# --from-literal=BACKUP_KEEP_DAYS='7' \
|
||||
# --from-literal=S3_BUCKET='my-backups' \
|
||||
|
||||
@ -118,7 +118,7 @@ spec:
|
||||
#
|
||||
# ConfigMap (mssql-config) - See k8s-mssql-configmap-example.yaml
|
||||
# - DATABASE_SERVER, DATABASE_HOST, DATABASE_NAME, DATABASE_PORT
|
||||
# - MSSQL_BACKUP_DIR, MSSQL_EXTRA_OPTS
|
||||
# - MSSQL_DATA_DIR, MSSQL_EXTRA_OPTS
|
||||
# - SCHEDULE, BACKUP_KEEP_DAYS
|
||||
# - S3_BUCKET, S3_PREFIX, S3_REGION, S3_ENDPOINT, S3_S3V4
|
||||
# Note: DATABASE_HOST is overridden to "localhost" in the StatefulSet for sidecar pattern
|
||||
|
||||
@ -13,7 +13,7 @@ timestamp=$(date +"%Y-%m-%dT%H:%M:%S")
|
||||
|
||||
# MSSQL uses .bak extension, other databases use .dump
|
||||
if [ "$DATABASE_SERVER" = "mssql" ]; then
|
||||
local_file="${MSSQL_BACKUP_DIR}/db.bak"
|
||||
local_file="${MSSQL_DATA_DIR}/db.bak"
|
||||
s3_uri_base="s3://${S3_BUCKET}/${S3_PREFIX}/${DATABASE_NAME}_${timestamp}.bak"
|
||||
else
|
||||
local_file="db.dump"
|
||||
|
||||
@ -62,12 +62,12 @@ restore_mariadb() {
|
||||
|
||||
backup_mssql() {
|
||||
# Use native BACKUP DATABASE command
|
||||
# Note: Requires shared volume mounted at MSSQL_BACKUP_DIR
|
||||
# Note: Requires shared volume mounted at MSSQL_DATA_DIR
|
||||
sqlcmd -S ${DATABASE_HOST},${DATABASE_PORT} \
|
||||
-U ${DATABASE_USER} \
|
||||
-P "${DATABASE_PASSWORD}" \
|
||||
-C \
|
||||
-Q "BACKUP DATABASE [${DATABASE_NAME}] TO DISK = N'${MSSQL_BACKUP_DIR}/db.bak' WITH INIT;" \
|
||||
-Q "BACKUP DATABASE [${DATABASE_NAME}] TO DISK = N'${MSSQL_DATA_DIR}/db.bak' WITH INIT;" \
|
||||
$MSSQL_EXTRA_OPTS
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ restore_mssql() {
|
||||
-U ${DATABASE_USER} \
|
||||
-P "${DATABASE_PASSWORD}" \
|
||||
-C -W \
|
||||
-Q "SET NOCOUNT ON; RESTORE FILELISTONLY FROM DISK = N'${MSSQL_BACKUP_DIR}/db.bak';" \
|
||||
-Q "SET NOCOUNT ON; RESTORE FILELISTONLY FROM DISK = N'${MSSQL_DATA_DIR}/db.bak';" \
|
||||
| grep -v '^$' | awk '{print $1}' | tail -n +3)
|
||||
|
||||
# Parse logical names (first two lines after headers)
|
||||
@ -90,9 +90,9 @@ restore_mssql() {
|
||||
-U ${DATABASE_USER} \
|
||||
-P "${DATABASE_PASSWORD}" \
|
||||
-C \
|
||||
-Q "RESTORE DATABASE [${DATABASE_NAME}] FROM DISK = N'${MSSQL_BACKUP_DIR}/db.bak' WITH REPLACE, MOVE N'${data_file}' TO N'${MSSQL_BACKUP_DIR}/${DATABASE_NAME}.mdf', MOVE N'${log_file}' TO N'${MSSQL_BACKUP_DIR}/${DATABASE_NAME}_log.ldf';" \
|
||||
-Q "RESTORE DATABASE [${DATABASE_NAME}] FROM DISK = N'${MSSQL_DATA_DIR}/db.bak' WITH REPLACE, MOVE N'${data_file}' TO N'${MSSQL_DATA_DIR}/${DATABASE_NAME}.mdf', MOVE N'${log_file}' TO N'${MSSQL_DATA_DIR}/${DATABASE_NAME}_log.ldf';" \
|
||||
$MSSQL_EXTRA_OPTS
|
||||
|
||||
# Clean up backup file
|
||||
rm "${MSSQL_BACKUP_DIR}/db.bak"
|
||||
rm "${MSSQL_DATA_DIR}/db.bak"
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ s3_uri_base="s3://${S3_BUCKET}/${S3_PREFIX}"
|
||||
|
||||
# MSSQL uses .bak extension, other databases use .dump
|
||||
if [ "$DATABASE_SERVER" = "mssql" ]; then
|
||||
backup_file="${MSSQL_BACKUP_DIR}/db.bak"
|
||||
backup_file="${MSSQL_DATA_DIR}/db.bak"
|
||||
if [ -z "$PASSPHRASE" ]; then
|
||||
file_type=".bak"
|
||||
else
|
||||
@ -52,7 +52,7 @@ echo "Restoring from backup..."
|
||||
restore
|
||||
|
||||
# Clean up backup file
|
||||
# Note: For MSSQL, the file is in MSSQL_BACKUP_DIR and cleanup happens in restore_mssql()
|
||||
# Note: For MSSQL, the file is in MSSQL_DATA_DIR and cleanup happens in restore_mssql()
|
||||
if [ "$DATABASE_SERVER" != "mssql" ]; then
|
||||
rm "${backup_file}"
|
||||
fi
|
||||
|
||||
@ -119,7 +119,7 @@ spec:
|
||||
#
|
||||
# ConfigMap (mssql-config) - See k8s-mssql-configmap-example.yaml
|
||||
# - DATABASE_SERVER, DATABASE_HOST, DATABASE_NAME, DATABASE_PORT
|
||||
# - MSSQL_BACKUP_DIR, MSSQL_EXTRA_OPTS
|
||||
# - MSSQL_DATA_DIR, MSSQL_EXTRA_OPTS
|
||||
# - SCHEDULE, BACKUP_KEEP_DAYS
|
||||
# - S3_BUCKET, S3_PREFIX, S3_REGION, S3_ENDPOINT, S3_S3V4
|
||||
# Note: DATABASE_HOST is overridden to "localhost" in the StatefulSet for sidecar pattern
|
||||
|
||||
@ -16,7 +16,7 @@ STATEFULSET_NAME="mssql"
|
||||
POD_NAME="mssql-0"
|
||||
MSSQL_PASSWORD="YourStrong@Passw0rd"
|
||||
DATABASE_NAME="TestDB"
|
||||
MSSQL_BACKUP_DIR="${MSSQL_BACKUP_DIR:-/var/opt/mssql/data}"
|
||||
MSSQL_DATA_DIR="${MSSQL_DATA_DIR:-/var/opt/mssql/data}"
|
||||
S3_BUCKET="${S3_BUCKET:-test-backups}"
|
||||
S3_ENDPOINT="${S3_ENDPOINT:-}" # Set this if using MinIO or other S3-compatible storage
|
||||
STATEFULSET_FILE="${STATEFULSET_FILE:-$(dirname "$0")/../k8s-statefulset-with-sidecar.yaml}"
|
||||
@ -66,7 +66,7 @@ kubectl create configmap mssql-config -n $NAMESPACE \
|
||||
--from-literal=DATABASE_HOST='mssql-service' \
|
||||
--from-literal=DATABASE_NAME="$DATABASE_NAME" \
|
||||
--from-literal=DATABASE_PORT='1433' \
|
||||
--from-literal=MSSQL_BACKUP_DIR='/var/opt/mssql/data' \
|
||||
--from-literal=MSSQL_DATA_DIR='/var/opt/mssql/data' \
|
||||
--from-literal=SCHEDULE='*/5 * * * *' \
|
||||
--from-literal=BACKUP_KEEP_DAYS='7' \
|
||||
--from-literal=S3_BUCKET="$S3_BUCKET" \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user