oracle migrare

This commit is contained in:
Marius
2025-10-01 16:08:13 +03:00
parent b414b3c338
commit 02ef8775ab
19 changed files with 4832 additions and 1864 deletions

View File

@@ -0,0 +1,173 @@
#!/bin/bash
#==============================================================================
# Script: 04-import-to-oracle21c.sh
# Descriere: Import SYS objects + CONTAFIN_ORACLE + schema secundara în Oracle 21c
# Data: 30 Septembrie 2025
# Rulare: bash 04-import-to-oracle21c.sh
#==============================================================================
set -e
echo "=========================================="
echo "IMPORT IN ORACLE 21c XE - PDB ROA"
echo "=========================================="
echo ""
ORACLE_PWD="OraclePass123"
PDB_CONNECT="sys/${ORACLE_PWD}@localhost:1521/roa as sysdba"
# Detectare schema secundara (din variabila exportata de 01-setup sau master)
if [ -z "$SCHEMA2_NAME" ]; then
SCHEMA2_NAME="MARIUSM_AUTO"
echo "Schema secundara (default): MARIUSM_AUTO"
else
echo "Schema secundara (custom): $SCHEMA2_NAME"
fi
echo "[1/5] Import SYS objects custom..."
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe sqlplus -s ${PDB_CONNECT}" <<'EOF'
SET SERVEROUTPUT ON
WHENEVER SQLERROR CONTINUE
-- Verificare conexiune PDB ROA
SELECT 'Connected to: ' || name || ' (CDB=' || cdb || ')' FROM v$database;
-- Import SYS objects
@/tmp/SYS_OBJECTS.sql
-- Verificare obiecte create
SELECT object_name, object_type, status
FROM dba_objects
WHERE owner='SYS'
AND object_name IN ('AUTH_PACK','NEWSCHEMA','NEWSCHEMAJOB','NEWSCHEMAPROGRESS','VAUTH_SERII','AUTH_SERII','AUTH_DETALII')
ORDER BY object_type, object_name;
EXIT;
EOF
echo "✓ SYS objects importat"
echo ""
echo "[2/5] Grant-uri SYS → CONTAFIN_ORACLE..."
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe sqlplus -s ${PDB_CONNECT}" <<'EOF'
WHENEVER SQLERROR CONTINUE
GRANT SELECT ON SYS.AUTH_SERII TO CONTAFIN_ORACLE;
GRANT SELECT ON SYS.AUTH_DETALII TO CONTAFIN_ORACLE;
GRANT SELECT ON SYS.VAUTH_SERII TO CONTAFIN_ORACLE;
GRANT EXECUTE ON SYS.AUTH_PACK TO CONTAFIN_ORACLE;
GRANT EXECUTE ON SYS.NEWSCHEMA TO CONTAFIN_ORACLE;
GRANT EXECUTE ON SYS.NEWSCHEMAJOB TO CONTAFIN_ORACLE;
GRANT EXECUTE ON SYS.NEWSCHEMAPROGRESS TO CONTAFIN_ORACLE;
GRANT EXECUTE ON SYS.UPDATESQLPLUS TO CONTAFIN_ORACLE;
GRANT EXECUTE ON SYS.EXECUTESCRIPTOS TO CONTAFIN_ORACLE;
EXIT;
EOF
echo "✓ Grant-uri SYS acordate"
echo ""
echo "[3/5] Import CONTAFIN_ORACLE..."
echo "Durată estimată: 10-15 minute"
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe bash -c '
CONTAFIN_DMP=\$(ls /tmp/CONTAFIN_ORACLE*.dmp | head -1)
imp system/${ORACLE_PWD}@localhost:1521/roa \
FILE=\$CONTAFIN_DMP \
LOG=/tmp/contafin_import.log \
FROMUSER=CONTAFIN_ORACLE \
TOUSER=CONTAFIN_ORACLE \
IGNORE=Y \
COMMIT=Y \
BUFFER=10485760 \
FEEDBACK=10000
echo ""
echo "Verificare obiecte importate:"
sqlplus -s system/${ORACLE_PWD}@localhost:1521/roa <<EOSQL
SET PAGESIZE 50
SELECT object_type, COUNT(*) as total
FROM dba_objects
WHERE owner='"'CONTAFIN_ORACLE'"'
GROUP BY object_type
ORDER BY object_type;
EXIT;
EOSQL
'"
echo "✓ CONTAFIN_ORACLE importat"
echo ""
echo "[4/5] Import ${SCHEMA2_NAME}..."
if [ "$SCHEMA2_NAME" = "MARIUSM_AUTO" ]; then
echo "Durată estimată: 45-90 minute (707 tabele!)"
else
echo "Durată estimată: variabilă (depinde de dimensiune DMP)"
fi
# Determinare fisier DMP (MARIUSM_AUTO*.dmp sau schema custom)
if [ "$SCHEMA2_NAME" = "MARIUSM_AUTO" ]; then
DMP_PATTERN="MARIUSM_AUTO*.dmp"
FROMUSER="MARIUSM_AUTO"
else
# Pentru schema custom, cautam fisierul specificat in SCHEMA2_TEMPLATE
DMP_PATTERN="${SCHEMA2_TEMPLATE:-*${SCHEMA2_NAME}*.dmp}"
FROMUSER="${SCHEMA2_NAME}"
fi
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe bash -c '
SCHEMA2_DMP=\$(ls /tmp/${DMP_PATTERN} | head -1)
if [ -z \"\$SCHEMA2_DMP\" ]; then
echo \"ERROR: Nu gasesc fisier DMP pentru ${SCHEMA2_NAME}!\"
exit 1
fi
echo \"Import DMP: \$SCHEMA2_DMP\"
imp system/${ORACLE_PWD}@localhost:1521/roa \
FILE=\$SCHEMA2_DMP \
LOG=/tmp/${SCHEMA2_NAME}_import.log \
FROMUSER=${FROMUSER} \
TOUSER=${SCHEMA2_NAME} \
IGNORE=Y \
COMMIT=Y \
BUFFER=10485760 \
FEEDBACK=10000
echo \"\"
echo \"Verificare obiecte importate:\"
sqlplus -s system/${ORACLE_PWD}@localhost:1521/roa <<EOSQL
SET PAGESIZE 50
SELECT object_type, COUNT(*) as total
FROM dba_objects
WHERE owner='"'${SCHEMA2_NAME}'"'
GROUP BY object_type
ORDER BY object_type;
EXIT;
EOSQL
'"
echo "${SCHEMA2_NAME} importat"
echo ""
echo "[5/5] Verificare finală import..."
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe sqlplus -s ${PDB_CONNECT}" <<EOF
SET PAGESIZE 50
SELECT owner, COUNT(*) as total_objects,
SUM(CASE WHEN status='VALID' THEN 1 ELSE 0 END) as valid,
SUM(CASE WHEN status='INVALID' THEN 1 ELSE 0 END) as invalid
FROM dba_objects
WHERE owner IN ('CONTAFIN_ORACLE','${SCHEMA2_NAME}')
GROUP BY owner
ORDER BY owner;
EXIT;
EOF
echo ""
echo "=========================================="
echo "✅ IMPORT COMPLET!"
echo "=========================================="
echo ""
echo "Log-uri import:"
echo " - /tmp/contafin_import.log"
echo " - /tmp/${SCHEMA2_NAME}_import.log"
echo ""
echo "Următorul pas: 05-create-synonyms-grants.sh"
echo ""