Wednesday, May 7, 2014

Steps for media recovery:

Steps for media recovery:


Restore and recover the whole database

 RMAN> STARTUP FORCE MOUNT;
 RMAN> RESTORE DATABASE;
 RMAN> RECOVER DATABASE;
 RMAN> ALTER DATABASE OPEN;
 
Restore and recover a tablespace

 RMAN> SQL 'ALTER TABLESPACE AXPERT OFFLINE';
 RMAN> RESTORE TABLESPACE AXPERT;
 RMAN> RECOVER TABLESPACE AXPERT;
 RMAN> SQL 'ALTER TABLESPACE AXPERT ONLINE';

Restore and recover a datafile

 RMAN> SQL 'ALTER DATABASE DATAFILE 8 OFFLINE';
 RMAN> RESTORE DATAFILE 8;
 RMAN> RECOVER DATAFILE 8;
 RMAN> SQL 'ALTER DATABASE DATAFILE 8 ONLINE';



Steps to be Performed for tablespace recovery:


1. Mount the database
2. Make the data file offline
3. Restore the data file
4. Recover the data file
5. Make the data file online
6. Open the database

Thanks...

Tuesday, April 29, 2014

ORA-12516: TNS:LISTENER COULD NOT FIND AVAILABLE HANDLER WITH MATCHING PROTOCOL STACK

Dear Friends,

Below are steps for ORA-12516: TNS:LISTENER COULD NOT FIND AVAILABLE HANDLER WITH MATCHING PROTOCOL STACK error

ERROR : ORA-12516: TNS:listener could not find available handler with matching protocol stack

CAUSE :
 Its Reached maximum process.

SOLUTION : 

Check maximum value for processes and sessions

select name, value from v$parameter where name in (‘processes’,’sessions’);

Check current process and session and maximum limitation

select * from v$resource_limit;

Increase your process and session, for example to 800

alter system set processes=800 scope=spfile;
alter system set sessions=885 scope=spfile;

Restart the Database with below commands,

shutdown immediate;

and 

startup;

or 

startup force ;

all changes will effected permanently.



Thursday, April 24, 2014

How do I enable SQL *Plus Up and down arrow keys on Linux ?

How do I enable SQL *Plus Up and down arrow keys on Linux ? 


Below are the steps are involved under root user.

1) Download gqlplus-1.15.tar.gz from below link.

http://gqlplus.sourceforge.net/

[root@production ~]# tar -xvf gqlplus-1.15.tar.gz ---  It will create gqlplus-1.15 folder
'
'
'
'
gqlplus-1.15/readline/support/mkdirs
gqlplus-1.15/readline/rltty.h
gqlplus-1.15/readline/tilde.c
gqlplus-1.15/readline/display.c
gqlplus-1.15/readline/rlshell.h
gqlplus-1.15/readline/nls.c
gqlplus-1.15/readline/rlmbutil.h
gqlplus-1.15/readline/aclocal.m4
gqlplus-1.15/readline/compat.c
gqlplus-1.15/readline/complete.c
gqlplus-1.15/readline/USAGE
gqlplus-1.15/readline/rlwinsize.h
gqlplus-1.15/readline/keymaps.c
gqlplus-1.15/readline/vi_keymap.c
gqlplus-1.15/readline/MANIFEST
gqlplus-1.15/readline/rlconf.h
gqlplus-1.15/readline/chardefs.h
gqlplus-1.15/readline/xmalloc.h
gqlplus-1.15/readline/search.c
gqlplus-1.15/readline/posixjmp.h
gqlplus-1.15/readline/input.c
gqlplus-1.15/readline/Makefile.in
gqlplus-1.15/readline/shell.c
gqlplus-1.15/readline/configure.in
gqlplus-1.15/readline/readline.c
gqlplus-1.15/readline/funmap.c
gqlplus-1.15/readline/histsearch.c
gqlplus-1.15/readline/rlprivate.h
gqlplus-1.15/readline/util.c
gqlplus-1.15/readline/README
gqlplus-1.15/readline/terminal.c
gqlplus-1.15/readline/history.c
gqlplus-1.15/readline/configure
gqlplus-1.15/readline/rlstdc.h
gqlplus-1.15/readline/CHANGELOG
gqlplus-1.15/readline/callback.c
gqlplus-1.15/readline/tilde.h
gqlplus-1.15/readline/rldefs.h
gqlplus-1.15/readline/rltty.c
gqlplus-1.15/readline/doc/
gqlplus-1.15/readline/doc/history.0
gqlplus-1.15/readline/doc/readline.html
gqlplus-1.15/readline/doc/rluserman.texinfo
gqlplus-1.15/readline/doc/rluserman.html
gqlplus-1.15/readline/doc/history.dvi
gqlplus-1.15/readline/doc/readline.ps
gqlplus-1.15/readline/doc/readline.dvi
gqlplus-1.15/readline/doc/hsuser.texinfo
gqlplus-1.15/readline/doc/texi2html
gqlplus-1.15/readline/doc/rluserman.info
gqlplus-1.15/readline/doc/rltech.texinfo
gqlplus-1.15/readline/doc/history_3.ps
gqlplus-1.15/readline/doc/readline_3.ps
gqlplus-1.15/readline/doc/rluserman.ps
gqlplus-1.15/readline/doc/manvers.texinfo
gqlplus-1.15/readline/doc/texi2dvi
gqlplus-1.15/readline/doc/history.html
gqlplus-1.15/readline/doc/Makefile.in
gqlplus-1.15/readline/doc/rluser.texinfo
gqlplus-1.15/readline/doc/readline.3
gqlplus-1.15/readline/doc/history.3
gqlplus-1.15/readline/doc/readline.0
gqlplus-1.15/readline/doc/readline.info
gqlplus-1.15/readline/doc/texinfo.tex
gqlplus-1.15/readline/doc/rlman.texinfo
gqlplus-1.15/readline/doc/history.info
gqlplus-1.15/readline/doc/hist.texinfo
gqlplus-1.15/readline/doc/history.ps
gqlplus-1.15/readline/doc/hstech.texinfo
gqlplus-1.15/readline/doc/rluserman.dvi
gqlplus-1.15/readline/histfile.c
gqlplus-1.15/readline/misc.c
gqlplus-1.15/readline/examples/
gqlplus-1.15/readline/examples/manexamp.c
gqlplus-1.15/readline/examples/rlcat.c
gqlplus-1.15/readline/examples/excallback.c
gqlplus-1.15/readline/examples/readlinebuf.h
gqlplus-1.15/readline/examples/rlversion.c
gqlplus-1.15/readline/examples/Makefile.in
gqlplus-1.15/readline/examples/rlfe.c
gqlplus-1.15/readline/examples/fileman.c
gqlplus-1.15/readline/examples/rl.c
gqlplus-1.15/readline/examples/Inputrc
gqlplus-1.15/readline/examples/histexamp.c
gqlplus-1.15/readline/examples/rltest.c
gqlplus-1.15/readline/parens.c
gqlplus-1.15/readline/COPYING
gqlplus-1.15/readline/savestring.c
gqlplus-1.15/readline/rltypedefs.h
gqlplus-1.15/readline/config.h.in
gqlplus-1.15/readline/kill.c
gqlplus-1.15/readline/shlib/
gqlplus-1.15/readline/shlib/Makefile.in
gqlplus-1.15/readline/ansi_stdlib.h
gqlplus-1.15/readline/isearch.c
gqlplus-1.15/readline/mbutil.c
gqlplus-1.15/readline/histexpand.c
gqlplus-1.15/readline/tcap.h
gqlplus-1.15/readline/xmalloc.c
gqlplus-1.15/readline/text.c
gqlplus-1.15/readline/bind.c
gqlplus-1.15/readline/vi_mode.c
gqlplus-1.15/Makefile.am
gqlplus-1.15/missing
gqlplus-1.15/ChangeLog


[root@production ~]# cd gqlplus-1.15

[root@production gqlplus-1.15]# ls

ChangeLog     depcomp     LICENSE      missing        README
configure     gqlplus.c   Makefile.am  mkinstalldirs
configure.ac  install-sh  Makefile.in  readline

[root@production gqlplus-1.15]# ./configure

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for ranlib... ranlib
checking for tgetnum in -lncurses... yes
checking for tputs in -lreadline... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands

[root@production gqlplus-1.15]# make

CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /u02/DATAPUMP/gqlplus-1.15/missing                                                                                         --run aclocal-1.11
 cd . && /bin/sh /u02/DATAPUMP/gqlplus-1.15/missing --run automake-1.11 --foreig                                                                                        n
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /u02/DATAPUMP/gqlplus-1.15/missing                                                                                         --run autoconf
/bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for tgetnum in -lncurses... yes
checking for tputs in -lreadline... yes
configure: creating ./config.status
 /bin/sh ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
gcc -DPACKAGE_NAME=\"gqlplus\" -DPACKAGE_TARNAME=\"gqlplus\" -DPACKAGE_VERSION=\                                                                                        "1.14\" -DPACKAGE_STRING=\"gqlplus\ 1.14\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"                                                                                        gqlplus\" -DVERSION=\"1.14\" -DHAVE_LIBNCURSES=1 -DHAVE_LIBREADLINE=1 -I. -I.                                                                                            -g -O2 -MT gqlplus.o -MD -MP -MF .deps/gqlplus.Tpo -c -o gqlplus.o gqlplus.c
gqlplus.c:413:1: warning: "VERSION" redefined
<command-line>: warning: this is the location of the previous definition
gqlplus.c: In function âget_sql_promptâ:
gqlplus.c:2479: warning: assignment from incompatible pointer type
mv -f .deps/gqlplus.Tpo .deps/gqlplus.Po
gcc  -g -O2   -o gqlplus gqlplus.o  -lreadline -lncurses

[root@production gqlplus-1.15]# make install

make[1]: Entering directory `/u02/DATAPUMP/gqlplus-1.15'
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /usr/bin/install -c gqlplus '/usr/local/bin'
make[1]: Nothing to be done for `install-data-am'.
make[1]: Leaving directory `/u02/DATAPUMP/gqlplus-1.15'

[root@production gqlplus-1.15]# su - oracle

[oracle@production ~]$ gqlplus

SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 24 23:04:43 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: sys as sysdba
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options


Thank you.......

Wednesday, April 23, 2014

ora-00275 media recovery already started

ora-00275 media recovery already started

Below are the steps to recover the ora-00275 error :

1 ) Shutdown immediate;

2 ) startup mount

3 ) alter database recover until cancel using backup controlfile;

If it is prompting redo log file then apply the redo logs or if thrown error like below


Errors with log D:\APP\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_04_23\O1_MF_1_505_%U_.ARC
Errors in file d:\app\princefarma\diag\rdbms\orcl\orcl\trace\orcl_pr00_5832.trc:
ORA-00308: cannot open archived log 'D:\APP\ORCL\ARCHIVELOG\2014_04_23\O1_MF_1_505_%U_.ARC'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.
ORA-308 signalled during: alter database recover continue default

Then,

4 )  alter database recover continue default;

5 ) alter database recover cancel;

6 ) alter database open resetlogs;

Database opened.


Thank you.....


Monday, April 21, 2014

How To Install Winrar in Linux

Dear friends,
                      Below are steps to install Winrar in Linux environment. Download rarlinux-x64-3.8.0.tar.gz below link and save in local system. then tar the downloaded file.

http://www.rarlab.com/rar/rarlinux-x64-3.8.0.tar.gz

1)  tar -xvf  rarlinux-x64-3.8.0.tar.gz
2 ) cd rar
3) make


[root@production Oracle11gR2]# tar -xvf rarlinux-x64-3.8.0.tar.gz
rar/
rar/unrar
rar/rarfiles.lst
rar/default.sfx
rar/rar.txt
rar/file_id.diz
rar/readme.txt
rar/whatsnew.txt
rar/Makefile
rar/rar
rar/technote.txt
rar/rar_static
rar/order.htm
rar/license.txt

[root@production Oracle11gR2]# cd rar

[root@production rar]# ls
default.sfx  Makefile   rarfiles.lst  readme.txt    whatsnew.txt
file_id.diz  order.htm  rar_static    technote.txt
license.txt  rar        rar.txt       unrar

[root@production rar]# make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp Makefile /etc
[root@production rar]#

Then Make the files to rar

Thank you ....

Wednesday, April 2, 2014

ORA-01078: failure in processing system parameters

ORA-01078: failure in processing system parameters


Below are steps for ORA-01078

[test@linux ~]$ sqlplus

SQL*Plus: Release 11.2.0.3.0 Production on Wed Apr 2 09:21:55 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: sys as sysdba
Enter password:
Connected to an idle instance.

SQL> startup

ORA-01078: failure in processing systemparameters
LRM-00109: could not open parameter file'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initORCL.ora'
SQL> exit
Disconnected

/u01/app/oracle/oradata/orcl/axpert01.dbf

[test@linux pfile]$/u01/app/oracle/product/11.2.0/dbhome_1/dbs/sqlplus

SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun21 09:28:58 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: sys as sysdba
Enter password:
Connected to an idle instance.

SQL> startup nomount pfile=/u01/app/oracle/admin/ORCL/pfile/init.ora
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size                  2232960 bytes
Variable Size             490737024 bytes
Database Buffers          335544320 bytes
Redo Buffers                6590464 bytes


SQL> create spfile from pfile;

create spfile from pfile
*
ERROR at line 1:
ORA-01078: failure in processing systemparameters
LRM-00109: could not open parameter file
'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initORCL.ora'

SQL> create spfile frompfile='/u01/app/oracle/admin/ORCL/pfile/init.ora';

File created.

SQL> create pfile from spfile;

File created.

SQL> EXIT
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


Check whether new Spfile & Pfile created ot not with recent time stamp.

[test@linux pfile]$ ls -ltr $ORACLE_HOME/dbs

[test@linux pfile]$ sqlplus

SQL*Plus: Release 11.2.0.3.0 Production on Wed Apr 2 09:46:23 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: sys as sysdba
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name from v$database;
select name from v$database
*
ERROR at line 1:
ORA-01507: database not mounted


SQL> startup
ORA-01081: cannot start already-running ORACLE -shut it down first
SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size                  2232960 bytes
Variable Size             490737024 bytes
Database Buffers          335544320 bytes
Redo Buffers                6590464 bytes
Database mounted.
Database opened.
SQL> select name from v$database;

NAME
---------
ORCL

SQL>







pfile

Friday, March 21, 2014

Background Processes

Background Processes


The relationship between the physical and memory structures is maintained and enforced by Oracle’s background processes.

• Mandatory background processes
DBWn PMON CKPT
LGWR SMON RECO

• Optional background processes
ARCn LMON Snnn
QMNn LMDn
CJQ0 Pnnn
LCKn Dnnn


Background Processes

The Oracle architecture has five mandatory background processes that are discussed further in this lesson. In addition to the mandatory list, Oracle has many optional background process that are started when their option is being used. These optional processes are not within the scope of this course, with the exception of the ARCn background process. Following is a list of some optional background processes:

• RECO: Recoverer
• QMNn: Advanced Queuing
• ARCn: Archiver
• LCKn: RAC Lock Manager—Instance Locks
• LMON: RAC DLM Monitor—Global Locks
• LMDn: RAC DLM Monitor—Remote Locks
• CJQ0: Snapshot Refresh
• Dnnn: Dispatcher
• Snnn: Shared Server

• Pnnn: Parallel Query Slaves



Database Writer (DBWn)


DBWn writes when:
• Checkpoint
• Dirty buffers threshold reached
• No free buffers
• Timeout
• RAC ping request
• Tablespace offline
• Tablespace read only
• Table DROP or TRUNCATE
• Tablespace BEGIN

BACKUP


Database Writer:

The server process records changes to rollback and data blocks in the buffer cache. Database Writer (DBWn) writes the dirty buffers from the database buffer cache to the data files. It ensures that a sufficient number of free buffers—buffers that can be overwritten when server processes need to read in blocks from the data files—are available in the database buffer cache. Database performance is improved because server processes make changes only in the buffer cache.

DBWn defers writing to the data files until one of the following events occurs:

• Incremental or normal checkpoint
• The number of dirty buffers reaches a threshold value
• A process scans a specified number of blocks when scanning for free buffers and cannot fine any.
• Timeout occurs.
• A ping request in Real Application Clusters environment.
• Placing a normal or temporary tablespace offline.
• Placing a tablespace in read only mode.
• Dropping or Truncating a table.

• ALTER TABLESPACE tablespace name BEGIN BACKUP


Log Writer (LGWR)


LGWR writes:
• At commit
• When one-third full
• When there is 1 MB of redo
• Every 3 seconds
• Before DBWn writes

LOG Writer

LGWR performs sequential writes from the redo log buffer cache to the redo log file under
the following situations:
• When a transaction commits
• When the redo log buffer cache is one-third full
• When there is more than a megabyte of changes records in the redo log buffer cache
• Before DBWn writes modified blocks in the database buffer cache to the data files
• Every 3 seconds.
Because the redo is needed for recovery, LGWR confirms the commit only after the redo is
written to disk.
LGWR can also call on DBWn to write to the data files.

Note: DBWn does not write to the online redo logs.


System Monitor (SMON)

Responsibilities:
• Instance recovery:
– Rolls forward 
changes in the 
redo logs
– Opens the 
database for 
user access
– Rolls back 
uncommitted 
transactions
• Coalesces free 
space ever 3 sec
• Deallocates 
temporary segments

System Monitor

If the Oracle instance fails, any information in the SGA that has not been written to disk is lost. For example, the failure of the operating system causes an instance failure. After the loss of the instance, the background process SMON automatically performs instance recovery when the database is reopened. Instance recovery consists of the following steps:

1. Rolling forward to recover data that has not been recorded in the data files but that has been recorded in the online redo log. This data has not been written to disk because of the loss of the SGA during instance failure. During this process, SMON reads the redo log files and applies the changes recorded in the redo log to the data blocks. Because all committed transactions have been written to the redo logs, this process completely recovers these transactions.
2. Opening the database so that users can log on. Any data that is not locked by unrecovered transactions is immediately available.
3. Rolling back uncommitted transactions. They are rolled back by SMON or by the individual server processes as they access locked data.

SMON also performs some space maintenance functions:

• It combines, or coalesces, adjacent areas of free space in the data files.
• It deallocates temporary segments to return them as free space in data files. Temporary

segments are used to store data during SQL statement processing.


Process Monitor (PMON)


Cleans up after 
failed processes by:
• Rolling back the 
transaction
• Releasing locks
• Releasing other 
resources
• Restarts dead
 dispatchers

Process Monitor
The background process PMON cleans up after failed processes by:
• Rolling back the user’s current transaction
• Releasing all currently held table or row locks
• Freeing other resources currently reserved by the user
• Restarts dead dispatchers

Checkpoint (CKPT)

Responsible for:
• Signalling DBWn 
at checkpoints
• Updating datafile 
headers with 
checkpoint 
information
• Updating control 
files with 
checkpoint 
information

Checkpoint:

An event called a checkpoint occurs when the Oracle background process DBWn writes all the modified database buffers in the SGA, including both committed and uncommitted data, to the data files.

Checkpoints are implemented for the following reasons:
• Checkpoints ensure that data blocks in memory that change frequently are written to data files regularly. Because of the least recently used algorithm of DBWn, a data block that changes frequently might never qualify as the least recently used block and thus might never be written to disk if checkpoints did not occur.
• Because all database changes up to the checkpoint have been recorded in the data files, redo log entries before the checkpoint no longer need to be applied to the data files if instance recovery is required. Therefore, checkpoints are useful because they can expedite instance recovery.

Checkpoint(continued):
At a checkpoint, the following information is written:
• Checkpoint number into the data file headers
• Checkpoint number, log sequence number, archived log names, and system change 
numbers into the control file.
CKPT does not write data blocks to disk or redo blocks to the online redo logs.


Archiver (ARCn)

• Optional background process
• Automatically archives online redo logs when 
ARCHIVELOG mode is set
• Preserves the record of all changes made to the 
database

The Archiver Process:

All other background processes are optional, depending on the configuration of the database;however, one of them, ARCn, is crucial to recovering a database after the loss of a disk. As online redo log files fill, the Oracle server begins writing to the next online redo log file. The process of switching from one redo log to another is called a log switch. The ARCn process initiates backing up, or archiving, of the filled log group at every log switch. It automatically archives the online redo log before the log can be reused, so that all of the changes made to the database are preserved. This enables the DBA to recover the database to the point of
failure, even if a disk drive is damaged.

Archiving Redo Log Files
One of the important decisions that a DBA has to make is whether to configure the database
to operate in ARCHIVELOG or in NOARCHIVELOG mode.

NOARCHIVELOG Mode: In NOARCHIVELOG mode, the online redo log files are overwritten each time a log switch occurs. LGWR does not overwrite a redo log group until the checkpoint for that group is complete. This ensures that committed data can be recovered if there is an instance crash. During the instance crash, only the SGA is lost. There is no loss of disks, only memory. For example, an operating system crash causes an instance crash.

Archiving Redo Log Files (continued):

ARCHIVELOG Mode: If the database is configured to run in ARCHIVELOG mode, inactive groups of filled online redo log files must be archived before they can be used again. Since changes made to the database are recorded in the online redo log files, the database administrator can use the physical backup of the data files and the archived online redo log files to recover the database without losing any committed data because of any single point of failure, including the loss of a disk. Usually, a production database is configured to run in ARCHIVELOG mode.