Premessa
Quando si ha a che fare con procedure di backup o di ripristino del Data Base conviene sempre avere a portata di mano una procedura che sappiamo essere infallibile.
Il mio consiglio personale è quello di realizzare un wiki (eventualmente installando un modulo MediaWiki personale insieme ad un sistema di CI come descritto in precedente articolo) dove riportare tutte quelle procedure standard che vengono eseguite in caso di errore o manutenzione dei sistemi che abbiamo in gestione.
Procedura di backup del DataBase
expdp "user_system/password_system" SCHEMAS=SCHEMA_NAME directory=DATA_PUMP_DIR DUMPFILE=BACKUP_DD_MM_YYYY.dmp logfile=export_backup_DD_MM_YYY.log job_name=export_BACKUP_DD_MM_YYYY
Procedura di ripristino del DataBase
Come prima cosa occorre copiare il file BACKUP_DD_MM_YYYY.dmp creato nel punto precedente nella directory di dump di Oracle
C:\app\Oracle\admin\orasrv\dpdump
Accedere dal prompt dei comandi (cmd per Windows) ed eseguire il comando seguente per accedere al DB come admin:
sqlplus / AS SYSDBA
Una volta entrati nel DB eseguire in sequenza i seguenti comandi:
drop user DATA_BASE cascade;
drop TABLESPACE TABSPACEDB_XP INCLUDING CONTENTS AND DATAFILES;
create tablespace TABSPACEDB_XP datafile 'E:\oracle\DBNAME\oradata\DBNAME\TABSPACEDB_XP.dbf' SIZE 512M AUTOEXTEND ON NEXT 10M MAXSIZE 10240M EXTENT MANAGEMENT LOCAL;
create user "USER_DB" IDENTIFIED BY USER_DB default tablespace TABSPACEDB_XP account unlock;
alter user USER_DB quota unlimited on TABSPACEDB_XP;
grant resource on USER_DB ;
grant connect to USER_DB ;
grant create session to USER_DB ;
grant read, write on directory data_pump_dir to USER_DB;
Accedere dal prompt dei comandi (cmd per Windows) ed eseguire il seguente comando
impdp system/system01 directory=data_pump_dir logfile=IMPORT_BACKUP_DD_MM_YYYY.log dumpfile=BACKUP_DD_MM_YYYY.DMP
Accedere nuovamente al DB come admin ed eseguire il seguente comando:
EXEC DBMS_UTILITY.compile_schema(schema => 'USER_DB');
A questo punto è possibile acceder al Data BAse con utenza USER_DB/USER_DB . Per cambiare password possiamo eseguire il seguente comando
ALTER USER user_name IDENTIFIED BY new_password;