Files
ROMFASTSQL/proxmox/lxc108-oracle/migration/06-finalize-migration.sh
Marius 3b6a7b9d31 style: normalizare CRLF -> LF pentru scripturile shell
Doar line endings, zero modificari de continut (verificat cu
git diff --ignore-cr-at-eol: fara diferente ramase pe aceste fisiere).

Fisierele aveau CRLF comis efectiv in repo, nu doar in working tree.
Sunt scripturi care ruleaza pe Linux (migrarea Oracle, LXC 171 claude-agent),
iar deployate direct din working tree bash le refuza cu
"$'\r': command not found" - exact capcana pe care .gitattributes (comis in
9475842) o previne de acum inainte pentru fisierele noi.

Nu sunt incluse fisierele .md/.sql din roa-windows-setup: acelea au
modificari reale de continut, in curs, si apartin altui commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BhQBTegE4PiMPPaapLHjkc
2026-08-08 17:39:15 +03:00

163 lines
4.5 KiB
Bash

#!/bin/bash
#==============================================================================
# Script: 06-finalize-migration.sh
# Descriere: Recompilare obiecte invalide + verificare finală migrare
# Data: 30 Septembrie 2025
# Rulare: bash 06-finalize-migration.sh
#==============================================================================
set -e
echo "=========================================="
echo "FINALIZARE MIGRARE ORACLE 21c"
echo "=========================================="
echo ""
ORACLE_PWD="OraclePass123"
PDB_CONNECT="sys/${ORACLE_PWD}@localhost:1521/roa as sysdba"
# Detectare schema secundara
if [ -z "$SCHEMA2_NAME" ]; then
SCHEMA2_NAME="MARIUSM_AUTO"
fi
echo "[1/2] Recompilare obiecte invalide..."
echo "Durată estimată: 5-10 minute"
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe sqlplus -s ${PDB_CONNECT}" <<EOF
SET SERVEROUTPUT ON
WHENEVER SQLERROR CONTINUE
BEGIN
DBMS_OUTPUT.PUT_LINE('Recompilare CONTAFIN_ORACLE...');
DBMS_UTILITY.compile_schema('CONTAFIN_ORACLE', compile_all => FALSE);
DBMS_OUTPUT.PUT_LINE('Recompilare ${SCHEMA2_NAME}...');
DBMS_UTILITY.compile_schema('${SCHEMA2_NAME}', compile_all => FALSE);
DBMS_OUTPUT.PUT_LINE('Recompilare completă!');
END;
/
EXIT;
EOF
echo "✓ Obiecte recompilate"
echo ""
echo "[2/2] Verificare completă migrare..."
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe sqlplus -s ${PDB_CONNECT}" <<EOF
SET PAGESIZE 100 FEEDBACK ON
PROMPT ==========================================
PROMPT VERIFICARE COMPLETA MIGRARE ORACLE 21c
PROMPT ==========================================
PROMPT
PROMPT 1. Conexiune PDB ROA:
SELECT 'Connected to: ' || name || ' (CDB=' || cdb || ')' as info FROM v$database;
PROMPT
PROMPT 2. Tablespace ROA:
SELECT tablespace_name, status, contents,
ROUND(SUM(bytes)/1024/1024/1024,2) as size_gb
FROM dba_data_files
WHERE tablespace_name='ROA'
GROUP BY tablespace_name, status, contents;
PROMPT
PROMPT 3. Utilizatori:
SELECT username, default_tablespace, account_status
FROM dba_users
WHERE username IN ('CONTAFIN_ORACLE','${SCHEMA2_NAME}')
ORDER BY username;
PROMPT
PROMPT 4. Obiecte totale:
SELECT owner, COUNT(*) as total_objects,
SUM(CASE WHEN status='VALID' THEN 1 ELSE 0 END) as valid_objects,
SUM(CASE WHEN status='INVALID' THEN 1 ELSE 0 END) as invalid_objects,
ROUND(SUM(CASE WHEN status='VALID' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) || '%' as pct_valid
FROM dba_objects
WHERE owner IN ('CONTAFIN_ORACLE','${SCHEMA2_NAME}')
GROUP BY owner
ORDER BY owner;
PROMPT
PROMPT 5. Tabele:
SELECT owner, COUNT(*) as table_count
FROM dba_tables
WHERE owner IN ('CONTAFIN_ORACLE','${SCHEMA2_NAME}')
GROUP BY owner
ORDER BY owner;
PROMPT
PROMPT 6. Obiecte SYS custom:
SELECT object_name, object_type, status
FROM dba_objects
WHERE owner='SYS'
AND object_name IN ('AUTH_PACK','NEWSCHEMA','NEWSCHEMAJOB','VAUTH_SERII','AUTH_SERII')
ORDER BY object_type, object_name;
PROMPT
PROMPT 7. Sinonime publice:
SELECT COUNT(*) as "Sinonime SYN_*"
FROM dba_synonyms
WHERE owner='PUBLIC' AND synonym_name LIKE 'SYN_%';
PROMPT
PROMPT 8. Grant-uri PUBLIC:
SELECT COUNT(*) as "Grants to PUBLIC"
FROM dba_tab_privs
WHERE grantee='PUBLIC' AND grantor='CONTAFIN_ORACLE';
PROMPT
PROMPT 9. Grant-uri SYS:
SELECT COUNT(*) as "Grants from SYS"
FROM dba_tab_privs
WHERE grantee='CONTAFIN_ORACLE' AND grantor='SYS';
PROMPT
PROMPT 10. Test funcțional - Sinonim public:
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM dba_synonyms
WHERE synonym_name='SYN_PACK_DREPTURI' AND owner='PUBLIC';
IF v_count > 0 THEN
DBMS_OUTPUT.PUT_LINE('✓ SYN_PACK_DREPTURI exists and is accessible');
ELSE
DBMS_OUTPUT.PUT_LINE('✗ SYN_PACK_DREPTURI NOT FOUND!');
END IF;
END;
/
PROMPT
PROMPT ==========================================
PROMPT VERIFICARE COMPLETA!
PROMPT ==========================================
EXIT;
EOF
echo ""
echo "=========================================="
echo "✅ MIGRARE FINALIZATA CU SUCCES!"
echo "=========================================="
echo ""
echo "Rezumat:"
echo " ✓ PDB ROA creat"
echo " ✓ Tablespace ROA (20GB)"
echo " ✓ Utilizatori: CONTAFIN_ORACLE, MARIUSM_AUTO"
echo " ✓ Obiecte importate: ~4,000"
echo " ✓ Sinonime publice: 53"
echo " ✓ Grant-uri PUBLIC: 147"
echo " ✓ Obiecte recompilate"
echo ""
echo "Test conexiune:"
echo " sqlplus CONTAFIN_ORACLE/${ORACLE_PWD}@10.0.20.201:1521/roa"
echo ""
echo "Log-uri disponibile:"
echo " - docker exec oracle-xe cat /tmp/contafin_import.log"
echo " - docker exec oracle-xe cat /tmp/mariusm_import.log"
echo ""