Oracle Database Express
come abilitare la modalità ARCHIVELOG
se durante il backup dei dati di Oracle Database Express Edition in modalità Shell (prompt dei comandi) avviata attraverso lo script presente nelle applicazioni installate di Oracle Database Express Edition dovesse comaprire il seguente messaggio:
Warning: Log archiving (ARCHIVELOG mode) is currently disabled. If you restore the database from this backup, any transactions that take place between this backup and the next backup will be lost. It is recommended that you enable ARCHIVELOG mode before proceeding so that all transactions can be recovered upon restore. See the section ‘Enabling ARCHIVELOG Mode…’ in the online help for instructions.
Backup with log archiving disabled will shut down and restart the database. Are you sure [Y/N]?
Attenzione: Log di archiviazione (modalità ARCHIVELOG) è attualmente disabilitata. Se si ripristina il database da questo backup, tutte le transazioni che avvengono tra il backup e il successivo backup verranno persi. Si consiglia di attivare la modalità ARCHIVELOG prima di procedere in modo che tutte le transazioni possono essere recuperate sul ripristino. Vedere la sezione ‘Attivazione della modalità ARCHIVELOG …’ nella guida in linea per le istruzioni.
Il backup con modalità ARCHIVELOG disabilitata FARà chiudere e riavviare il database. Sei sicuro [Y / N]?
è bene non procedere e abilitare la modalità ARCHIVELOG
Nella modalità ARCHIVELOG tutti i registri archiviati necessari per il ripristino dei media sia da backup vengono mantenute..
Procediamo ad attivare la modalità ARCHIVELOG
dalla shell del prompt dei comandi digitiamo:
sqlplus / as sysdba
entriamo così nella gestione di Oracle Database Express Edition da riga di comando, ad esempio:
SQL*Plus: Release 11.2.0.2.0 Production on Sun Nov 10 13:30:30 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 – ProductionSQL>
digitiamo il seguente comando che ci permetterà di visualizzare lo stato della madalità ARCHIVELOG
SQL> archive log list
ci dovrebbe comaprire una schermata come segue (esempio):
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 90
Current log sequence 91
Dove possiamo osservare che alla voce “Database log mode” riporta “No Archive Mode”
Notare inolotre la voce “Archive destination” che riporta “USE_DB_RECOVERY_FILE_DEST”, possiamo anche ritrovare il percorso di destinazione dei pacchetti di backup digitando questo comando, sempre dalla shell:
SQL> show parameter recover
che come risposta ci drà i seguenti parametri (per esempio)
NAME TYPE VALUE
———————————— ———– ——————————
db_recovery_file_dest string C:\oraclexe\app\oracle\fast_recovery_area
db_recovery_file_dest_size big integer 10G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
alla voce “db_recovery_file_dest_ string” leggiamo il percorso di destinazione del baclup, in questo caso “C:\oraclexe\app\oracle\fast_recovery_area”
Se vogliamo possiamo cambiare la destinazione dei pacchetti di backup con questo comando
SQL> alter system set db_recovery_file_dest=’D:\archivelog’ scope=both;
il sistema risponderà:
System altered.
In questo modo abbiamo modificato il percorso di destinazione dei file di baclup su “D:\archivelog”
Ora fermiamo il database e lo riavviamo in modalità “mount” (montata) eseguiamo questo comando per fermare il database
SQL> shutdown immediate;
riceveremo in risposta
Database closed.
Database dismounted.
ORACLE instance shut down.
riavviamo in modalità montata con questo comando
SQL> startup mount
riceveremo in risposta un messaggio simile a questo:
ORACLE instance started.
Total System Global Area 1071769376 bytes
Fixed Size 1339352 bytes
Variable Size 626295792 bytes
Database Buffers 435767616 bytes
Redo Buffers 4981616 bytes
Database mounted.
Ora diamo i comandi per attivare la modalità ARCHIVELOG
SQL> alter database archivelog;
la risposta sarà
Database altered.
digitiamo
SQL> alter database open;
la risposta sarà
Database altered.
controlliamo gli esiti digitando
SQL> archive log list;
la risposta sarà simile a questa:
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 90
Next log sequence to archive 91
Current log sequence 91
Qui si può vedere che il database è in modalità di registro archivio e archiviazione automatica abilitata.
Se volete verificare se funziona o no, è possibile passare al file di registro per vedere che un archivio viene scritto nella posizione log di archiviazione.
digitiamo
SQL> alter system switch logfile;
la risposta sarà
System altered.
digitiamo
SQL> show parameter recover
la risposta sarà simile a questa
NAME TYPE VALUE
———————————— ———– —————————–
db_recovery_file_dest string D:\test\archivelog
db_recovery_file_dest_size big integer 10G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
usciamo pure dalla riga di comando di Oracle Database Express con il comando
SQL> exit
Chiudiamo ora il terminale