oracle migrare
This commit is contained in:
162
oracle/migration-scripts/06-finalize-migration.sh
Normal file
162
oracle/migration-scripts/06-finalize-migration.sh
Normal file
@@ -0,0 +1,162 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user