Files
ROMFASTSQL/clienti/oracle-xe-21c/import/export_pdb_complet.sql
Claude Agent 6410339196 feat(clienti): add Oracle XE PDB recreare scripts and audit cleanup
- Complete PDB export/import workflow (16 scripts in clienti/oracle-xe-21c/import/)
- Recreare PDB script with step-by-step guide (recreare_pdb.sql)
- Universal audit cleanup script for Oracle XE 11g-21c (cleanup_audit.sql)
- Troubleshooting guide with all lessons learned (depanare-ora-12954-spatiu.md)
- Fixed: DIRECTORY grant syntax, DBMS_LOCK grant, remap_tablespace USERS:ROA,
  impdp quoted AS SYSDBA for Windows, AWR retention 8 days, datafile full path
- Updated roa-windows-setup docs with XE prevention steps and gotchas table

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:31:17 +00:00

237 lines
7.6 KiB
SQL

-- ============================================================
-- EXPORT COMPLET PDB XEPDB1 - Oracle XE 21c
-- Scop: backup inainte de recreare PDB pentru recuperare spatiu
-- Rulat ca SYS AS SYSDBA conectat la PDB (XEPDB1)
-- ============================================================
-- NOTA: Inainte de rulare, asigura-te ca directorul C:\DMPDIR exista
-- si ca DMPDIR e definit: CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
-- ============================================================
SET ECHO ON
SET FEEDBACK ON
SET LONG 100000
SET LONGCHUNKSIZE 100000
SET PAGESIZE 0
SET LINESIZE 300
SET TRIMSPOOL ON
SET HEADING OFF
SET VERIFY OFF
SET SERVEROUTPUT ON SIZE UNLIMITED
-- ============================================================
-- PASUL 1: Export scheme cu Data Pump (ruleaza separat din CMD)
-- ============================================================
-- expdp \"sys/parola@XEPDB1 AS SYSDBA\" schemas=CONTAFIN_ORACLE,FIRMA directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_export.log
-- expdp \"sys/parola@XEPDB1 AS SYSDBA\" tables=SYS.AUTH_SERII,SYS.AUTH_DETALII,SYS.INFO directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_export.log
-- ============================================================
-- PASUL 2: Export sinonime publice
-- ============================================================
SPOOL C:\DMPDIR\02_sinonime_publice.sql
SELECT 'CREATE PUBLIC SYNONYM ' || synonym_name || ' FOR ' ||
table_owner || '.' || table_name || ';'
FROM dba_synonyms
WHERE owner = 'PUBLIC'
AND table_owner IN ('CONTAFIN_ORACLE', 'FIRMA')
ORDER BY synonym_name;
SPOOL OFF
-- ============================================================
-- PASUL 3: Export grant-uri
-- ============================================================
SPOOL C:\DMPDIR\03_granturi.sql
-- 3a. Grant-uri pe obiecte SYS catre schemele aplicatiei
SELECT 'GRANT ' || privilege || ' ON ' || owner || '.' || table_name ||
' TO ' || grantee || ';'
FROM dba_tab_privs
WHERE (grantee IN ('CONTAFIN_ORACLE', 'FIRMA')
AND owner = 'SYS')
ORDER BY grantee, table_name;
-- 3b. Grant-uri de la schemele aplicatiei catre PUBLIC
SELECT 'GRANT ' || privilege || ' ON ' || owner || '.' || table_name ||
' TO ' || grantee || ';'
FROM dba_tab_privs
WHERE grantor IN ('CONTAFIN_ORACLE', 'FIRMA')
ORDER BY grantee, owner, table_name;
-- 3c. System privileges
SELECT 'GRANT ' || privilege || ' TO ' || grantee || ';'
FROM dba_sys_privs
WHERE grantee IN ('CONTAFIN_ORACLE', 'FIRMA')
ORDER BY grantee, privilege;
-- 3d. Role privileges
SELECT 'GRANT ' || granted_role || ' TO ' || grantee || ';'
FROM dba_role_privs
WHERE grantee IN ('CONTAFIN_ORACLE', 'FIRMA')
ORDER BY grantee, granted_role;
SPOOL OFF
-- ============================================================
-- PASUL 4: Export DIRECTORY-uri custom
-- ============================================================
SPOOL C:\DMPDIR\04_directories.sql
SELECT 'CREATE OR REPLACE DIRECTORY ' || directory_name ||
' AS ''' || directory_path || ''';'
FROM dba_directories
WHERE origin_con_id != 1
ORDER BY directory_name;
SPOOL OFF
-- ============================================================
-- PASUL 5: Export proceduri, functii, pachete SYS custom
-- ============================================================
SPOOL C:\DMPDIR\05_sys_code_objects.sql
-- Packages (include si body automat)
PROMPT -- PACKAGES
SELECT DBMS_METADATA.GET_DDL('PACKAGE', object_name, 'SYS')
FROM dba_objects
WHERE owner = 'SYS' AND oracle_maintained = 'N'
AND object_type = 'PACKAGE'
AND object_name NOT LIKE 'KUPC%'
AND object_name NOT LIKE 'AQ$%';
SELECT '/' FROM dual;
-- Proceduri
PROMPT -- PROCEDURES
SELECT DBMS_METADATA.GET_DDL('PROCEDURE', object_name, 'SYS')
FROM dba_objects
WHERE owner = 'SYS' AND oracle_maintained = 'N'
AND object_type = 'PROCEDURE'
AND object_name NOT LIKE 'KUPC%'
AND object_name NOT LIKE 'AQ$%';
SELECT '/' FROM dual;
-- Functii
PROMPT -- FUNCTIONS
SELECT DBMS_METADATA.GET_DDL('FUNCTION', object_name, 'SYS')
FROM dba_objects
WHERE owner = 'SYS' AND oracle_maintained = 'N'
AND object_type = 'FUNCTION'
AND object_name NOT LIKE 'KUPC%'
AND object_name NOT LIKE 'AQ$%';
SELECT '/' FROM dual;
SPOOL OFF
-- ============================================================
-- PASUL 6: Export tabele custom SYS (structura)
-- ============================================================
SPOOL C:\DMPDIR\06_sys_tables.sql
SELECT DBMS_METADATA.GET_DDL('TABLE', object_name, 'SYS')
FROM dba_objects
WHERE owner = 'SYS' AND oracle_maintained = 'N'
AND object_type = 'TABLE'
AND object_name IN ('AUTH_SERII', 'AUTH_DETALII', 'INFO');
SELECT '/' FROM dual;
-- Sequence
SELECT DBMS_METADATA.GET_DDL('SEQUENCE', 'SEQ_AUTH_SERII', 'SYS') FROM dual;
SELECT '/' FROM dual;
-- Index custom
SELECT DBMS_METADATA.GET_DDL('INDEX', 'PK_AUTH_SERII', 'SYS') FROM dual;
SELECT '/' FROM dual;
SPOOL OFF
-- ============================================================
-- PASUL 7: Export VIEW-uri custom SYS
-- ============================================================
SPOOL C:\DMPDIR\07_sys_views.sql
SELECT DBMS_METADATA.GET_DDL('VIEW', 'VAUTH_SERII', 'SYS') FROM dual;
SELECT '/' FROM dual;
SPOOL OFF
-- ============================================================
-- PASUL 8: Export TRIGGER-uri custom SYS
-- ============================================================
SPOOL C:\DMPDIR\08_sys_triggers.sql
SELECT DBMS_METADATA.GET_DDL('TRIGGER', 'LOGON_AUDIT_TRIGGER', 'SYS') FROM dual;
SELECT '/' FROM dual;
SPOOL OFF
-- ============================================================
-- PASUL 9: Export CONTEXT
-- ============================================================
SPOOL C:\DMPDIR\09_context.sql
SELECT DBMS_METADATA.GET_DDL('CONTEXT', 'SESIUNE') FROM dual;
SELECT '/' FROM dual;
SPOOL OFF
-- ============================================================
-- PASUL 10: Export useri si profile
-- ============================================================
SPOOL C:\DMPDIR\10_useri.sql
SELECT DBMS_METADATA.GET_DDL('USER', username)
FROM dba_users
WHERE oracle_maintained = 'N'
AND username NOT IN ('PDBADMIN')
ORDER BY username;
SELECT '/' FROM dual;
SPOOL OFF
-- ============================================================
-- PASUL 11: Export tablespace-uri custom
-- ============================================================
SPOOL C:\DMPDIR\11_tablespaces.sql
SELECT 'CREATE TABLESPACE ' || tablespace_name ||
' DATAFILE SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 4G;'
FROM dba_tablespaces
WHERE tablespace_name NOT IN ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS')
AND contents = 'PERMANENT';
SPOOL OFF
-- ============================================================
-- REZUMAT FISIERE GENERATE
-- ============================================================
PROMPT
PROMPT =============================================
PROMPT EXPORT COMPLET - FISIERE GENERATE
PROMPT =============================================
PROMPT C:\DMPDIR\02_sinonime_publice.sql
PROMPT C:\DMPDIR\03_granturi.sql
PROMPT C:\DMPDIR\04_directories.sql
PROMPT C:\DMPDIR\05_sys_code_objects.sql
PROMPT C:\DMPDIR\06_sys_tables.sql
PROMPT C:\DMPDIR\07_sys_views.sql
PROMPT C:\DMPDIR\08_sys_triggers.sql
PROMPT C:\DMPDIR\09_context.sql
PROMPT C:\DMPDIR\10_useri.sql
PROMPT C:\DMPDIR\11_tablespaces.sql
PROMPT =============================================
PROMPT
PROMPT NU UITA sa rulezi si Data Pump SEPARAT:
PROMPT expdp \"sys/parola@XEPDB1 AS SYSDBA\" schemas=CONTAFIN_ORACLE,FIRMA directory=DMPDIR dumpfile=schemas_export.dmp logfile=schemas_export.log
PROMPT expdp \"sys/parola@XEPDB1 AS SYSDBA\" tables=SYS.AUTH_SERII,SYS.AUTH_DETALII,SYS.INFO directory=DMPDIR dumpfile=sys_tables.dmp logfile=sys_tables_export.log
PROMPT =============================================