HOW TO TURN ON AND OFF THE ARCHIVELOG MODE IN ORACLE?

1. Turning on ARCHIVELOG mode:

We consider a database that is not in ARCHIVELOG mode and also automatic archival is not enabled. To see the status of the database we can use of the following SQL commands:

SQL> select log_mode from v$database;

LOG_MODE
————
NOARCHIVELOG

SQL> show parameter log_archive_start

NAME TYPE VALUE
—————– ——- —–
log_archive_start boolean FALSE
SQL>

Or

SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /archivelog
Oldest online log sequence 7193
Current log sequence 7194
SQL>

We can bring this database to ARCHIVELOG mode by using the following SQL commands:

SQL> shutdown immediate;
SQL> startup mount exclusive;
SQL> alter database archivelog;
SQL> alter database open;

Now we can see that this database is in ARCHIVELOG mode:

SQL> select log_mode from v$database;

LOG_MODE
———-
ARCHIVELOG

SQL>

But automatic archival is disabled yet and DBA must do manual archival by commands like the followings:

SQL> alter system archive log current;
SQL> alter system archive log all;

For enabling automatic archival we can use the following SQL commands:

SQL> alter system archive log start;

Or

SQL> archive log start;

Now we can see that automatic archival is enabled:

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 7194
Next log sequence to archive 7195
Current log sequence 7195
SQL>

But this solution is not permanent and automatic archival will be disabled again after restarting the database; so for permanent change we must set parameter ‘log_archive_start’ to ‘TRUE’:

SQL> alter system set log_archive_start=TRUE scope=spfile;

And then restart the database.

Now the database is in ARCHIVELOG mode and also automatic archival is enabled.

Note1: We must take baseline backup right after enabling ARCHIVELOG mode.

Note2: After enabling ARCHIVELOG mode, it is better if we set the following init.ora parameters: log_archive_dest, log_archive_dest_1, log_archive_format.

2. Turning off ARCHIVELOG mode:

To see the status of the database we can use of the following SQL commands:

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 7194
Next log sequence to archive 7195
Current log sequence 7195
SQL>

To disabling ARCHIVELOG mode we must run the following commands:

SQL> alter system set log_archive_start=False scope=spfile;
SQL> create pfile from spfile;
SQL> shutdown immediate;

SQL> startup mount excluseve;
SQL> alter database noarchivelog;
SQL> alter database open;

Now we can check the status of ARCHIVELOG mode:

SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /archivelog
Oldest online log sequence 7194
Current log sequence 7195
SQL>

Note1: After disabling ARCHIVELOG mode, all the un backed up archived log files are unusable and can be deleted.