oracle migrare
This commit is contained in:
209
oracle/migration-scripts/01-setup-oracle21c.sh
Normal file
209
oracle/migration-scripts/01-setup-oracle21c.sh
Normal file
@@ -0,0 +1,209 @@
|
||||
#!/bin/bash
|
||||
#==============================================================================
|
||||
# Script: 01-setup-oracle21c.sh
|
||||
# Descriere: Pregătire Oracle 21c XE - Creare PDB ROA, Tablespace ROA, Useri
|
||||
# Data: 30 Septembrie 2025
|
||||
# Rulare: bash 01-setup-oracle21c.sh
|
||||
#==============================================================================
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
echo "=========================================="
|
||||
echo "ORACLE 21c XE - SETUP PDB ROA"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Configurare
|
||||
ORACLE_PWD="OraclePass123"
|
||||
CDB_CONNECT="sys/${ORACLE_PWD}@localhost:1521/XE as sysdba"
|
||||
PDB_CONNECT="sys/${ORACLE_PWD}@localhost:1521/roa as sysdba"
|
||||
LXC_ID="108"
|
||||
CONTAINER_NAME="oracle-xe"
|
||||
|
||||
echo "[1/5] Verificare container Oracle XE..."
|
||||
|
||||
# Detectare dacă rulează în LXC sau pe Proxmox
|
||||
if [ -f "/etc/pve/.version" ]; then
|
||||
# Rulează pe Proxmox host
|
||||
CMD_PREFIX="pct exec ${LXC_ID} --"
|
||||
else
|
||||
# Rulează direct în LXC
|
||||
CMD_PREFIX=""
|
||||
fi
|
||||
|
||||
if ! ${CMD_PREFIX} docker ps | grep -q ${CONTAINER_NAME}; then
|
||||
echo "ERROR: Container ${CONTAINER_NAME} nu rulează!"
|
||||
echo ""
|
||||
echo "Opțiuni:"
|
||||
echo " 1. Rulează: bash 00-install-oracle21c-xe.sh"
|
||||
echo " 2. Sau pornește manual: docker start ${CONTAINER_NAME}"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Container ${CONTAINER_NAME} activ"
|
||||
echo ""
|
||||
|
||||
echo "[2/5] Verificare PDB ROA există..."
|
||||
PDB_EXISTS=$(${CMD_PREFIX} docker exec ${CONTAINER_NAME} sqlplus -s ${CDB_CONNECT} <<'EOF'
|
||||
SET PAGESIZE 0 FEEDBACK OFF HEADING OFF
|
||||
SELECT COUNT(*) FROM v$pdbs WHERE name='ROA';
|
||||
EXIT;
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ "$PDB_EXISTS" = "0" ] || [ -z "$PDB_EXISTS" ]; then
|
||||
echo "ERROR: PDB ROA nu există!"
|
||||
echo ""
|
||||
echo "Rulează mai întâi: bash 00-install-oracle21c-xe.sh"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ PDB ROA există"
|
||||
echo ""
|
||||
|
||||
echo "[3/5] Creare Tablespace ROA..."
|
||||
${CMD_PREFIX} docker exec ${CONTAINER_NAME} sqlplus -s ${PDB_CONNECT} <<EOF
|
||||
SET SERVEROUTPUT ON
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
-- Verificare că suntem în PDB ROA
|
||||
SELECT 'Connected to: ' || name || ' (CDB=' || cdb || ')' FROM v\$database;
|
||||
|
||||
-- Creare tablespace ROA (ca în Oracle 10g)
|
||||
CREATE TABLESPACE ROA
|
||||
DATAFILE '/opt/oracle/oradata/XE/roa/roa_data01.dbf'
|
||||
SIZE 20G AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED
|
||||
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
|
||||
SEGMENT SPACE MANAGEMENT AUTO;
|
||||
|
||||
-- Verificare
|
||||
SELECT tablespace_name, status, contents FROM dba_tablespaces WHERE tablespace_name='ROA';
|
||||
|
||||
EXIT;
|
||||
EOF
|
||||
echo "✓ Tablespace ROA creat (20GB, autoextend)"
|
||||
echo ""
|
||||
|
||||
echo "[4/5] Creare utilizatori CONTAFIN_ORACLE și schema secundara..."
|
||||
|
||||
# Detectare mod migrare (daca exista variabila exportata din master script)
|
||||
if [ "$MIGRATION_MODE" = "NEW_INSTALL" ]; then
|
||||
echo ""
|
||||
echo "Mod: INSTALARE NOUA"
|
||||
read -p "Introdu numele schemei secundare (ex: FIRMANOUA): " SCHEMA2_NAME
|
||||
SCHEMA2_NAME=$(echo "$SCHEMA2_NAME" | tr '[:lower:]' '[:upper:]')
|
||||
echo "Schema secundara: $SCHEMA2_NAME"
|
||||
export SCHEMA2_NAME
|
||||
else
|
||||
SCHEMA2_NAME="MARIUSM_AUTO"
|
||||
echo "Mod: MIGRARE (schema secundara: MARIUSM_AUTO)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
${CMD_PREFIX} docker exec ${CONTAINER_NAME} sqlplus -s ${PDB_CONNECT} <<EOF
|
||||
SET SERVEROUTPUT ON
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
-- User CONTAFIN_ORACLE
|
||||
CREATE USER CONTAFIN_ORACLE IDENTIFIED BY ${ORACLE_PWD}
|
||||
DEFAULT TABLESPACE ROA
|
||||
TEMPORARY TABLESPACE TEMP
|
||||
QUOTA UNLIMITED ON ROA;
|
||||
|
||||
-- User schema secundara (MARIUSM_AUTO sau custom)
|
||||
CREATE USER ${SCHEMA2_NAME} IDENTIFIED BY ${ORACLE_PWD}
|
||||
DEFAULT TABLESPACE ROA
|
||||
TEMPORARY TABLESPACE TEMP
|
||||
QUOTA UNLIMITED ON ROA;
|
||||
|
||||
-- Verificare
|
||||
SELECT username, default_tablespace, account_status
|
||||
FROM dba_users
|
||||
WHERE username IN ('CONTAFIN_ORACLE','${SCHEMA2_NAME}')
|
||||
ORDER BY username;
|
||||
|
||||
EXIT;
|
||||
EOF
|
||||
echo "✓ Utilizatori creați (parola: ${ORACLE_PWD})"
|
||||
echo ""
|
||||
|
||||
echo "[5/5] Acordare System Privileges + DBMS Packages..."
|
||||
${CMD_PREFIX} docker exec ${CONTAINER_NAME} sqlplus -s ${PDB_CONNECT} <<EOF
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
-- CONTAFIN_ORACLE - Privilegii COMPLETE (ca în 10g)
|
||||
GRANT CONNECT, RESOURCE, DBA TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE SESSION TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE VIEW TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE SEQUENCE TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE PROCEDURE TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE TRIGGER TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE TYPE TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE SYNONYM TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE PUBLIC SYNONYM TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE DATABASE LINK TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE JOB TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE ANY DIRECTORY TO CONTAFIN_ORACLE;
|
||||
GRANT SELECT ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT INSERT ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT UPDATE ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT DELETE ANY TABLE TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ANY PROCEDURE TO CONTAFIN_ORACLE;
|
||||
GRANT CREATE EXTERNAL JOB TO CONTAFIN_ORACLE;
|
||||
GRANT EXP_FULL_DATABASE TO CONTAFIN_ORACLE;
|
||||
GRANT IMP_FULL_DATABASE TO CONTAFIN_ORACLE;
|
||||
GRANT UNLIMITED TABLESPACE TO CONTAFIN_ORACLE;
|
||||
|
||||
-- Schema secundara - Privilegii Standard
|
||||
GRANT CONNECT, RESOURCE TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE SESSION TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE TABLE TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE VIEW TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE SEQUENCE TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE PROCEDURE TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE TRIGGER TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE TYPE TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE SYNONYM TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE DATABASE LINK TO ${SCHEMA2_NAME};
|
||||
GRANT CREATE JOB TO ${SCHEMA2_NAME};
|
||||
GRANT UNLIMITED TABLESPACE TO ${SCHEMA2_NAME};
|
||||
|
||||
-- Grant-uri DBMS packages
|
||||
GRANT EXECUTE ON DBMS_LOCK TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_SQL TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_UTILITY TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_OUTPUT TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_JOB TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_SCHEDULER TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_LOB TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_XMLGEN TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON DBMS_METADATA TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON UTL_FILE TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON UTL_HTTP TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON UTL_SMTP TO CONTAFIN_ORACLE;
|
||||
GRANT EXECUTE ON UTL_TCP TO CONTAFIN_ORACLE;
|
||||
|
||||
EXIT;
|
||||
EOF
|
||||
echo "✓ System privileges + DBMS packages acordate"
|
||||
echo ""
|
||||
|
||||
echo "=========================================="
|
||||
echo "✅ SETUP COMPLET!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "PDB ROA creat și configurat:"
|
||||
echo " - Tablespace: ROA (20GB, autoextend)"
|
||||
echo " - User CONTAFIN_ORACLE (parola: ${ORACLE_PWD})"
|
||||
echo " - User ${SCHEMA2_NAME} (parola: ${ORACLE_PWD})"
|
||||
echo " - System privileges: ✓"
|
||||
echo " - DBMS grants: ✓"
|
||||
echo ""
|
||||
echo "Conexiune test:"
|
||||
echo " sqlplus CONTAFIN_ORACLE/${ORACLE_PWD}@localhost:1521/roa"
|
||||
echo ""
|
||||
if [ "$MIGRATION_MODE" = "NEW_INSTALL" ]; then
|
||||
echo "Următorul pas: 03-transfer-to-oracle21c.sh (transfer template-uri)"
|
||||
else
|
||||
echo "Următorul pas: 02-export-oracle10g.bat (pe VM 107 Windows)"
|
||||
fi
|
||||
echo ""
|
||||
Reference in New Issue
Block a user