Sunteți pe pagina 1din 41

eter. This should be set only at startup.

SGA_TARGET is a database initialization parameter (introduced in Oracle 10g) that


can be used for automatic SGA memory sizing.
SGA_TARGET provides the following:
§ Single parameter for total SGA size
§ Automatically sizes SGA components
§ Memory is transferred to where most needed
§ Uses workload information
§ Uses internal advisory predictions
§ STATISTICS_LEVEL must be set to TYPICAL
§ SGA_TARGET is dynamic
§ Can be increased till SGA_MAX_SIZE
§ Can be reduced till some component reaches minimum size
§ Change in value of SGA_TARGET affects only automatically sized components
If I keep SGA_TARGET =0 then what will happen ?
Disable automatic SGA tuning by setting sga_target=0
Disable ASMM by setting SGA_TARGET=0
http://www.orafaq.com/wiki/SGA_target
SGA_TARGET is a database initialization parameter (introduced in Oracle 10g) that
can be used for automatic SGA memory sizing.
Default value 0 (SGA auto tuning is disabled)
What happens when you run ALTER DATABASE OPEN RESETLOGS ?
The current online redo logs are archived, the log sequence number is reset to 1, new
database incarnation is created, and the online redo logs are given a new time stamp
and SCN.
The reason to do the open the database with the resetlogs is that after doing an
incomplete recovery , the data files and control files still don’t come to the same point
of the redo log files. And as long as the database is not consistent within all the three
file-data, redo and control, you can’t open the database. The resetlogs clause would
reset the log sequence numbers within the log files and would start them from 0 thus
enabling you to open the database but on the cost of losing all what was there in the
redo log files.
In what scenarios open resetlogs required ?
An ALTER DATABASE OPEN RESETLOGS statement is required,
1.after incomplete recovery (Point in Time Recovery) or
2.recovery with a backup control file.
3. recovery with a control file recreated with the reset logs option.
http://onlineappsdba.com/index.php/2009/09/11/oracle-database-incarnation-
open-resetlogs-scn/
http://web.njit.edu/info/limpid/DOC/backup.102/b14191/osrecov009.htm
Whenever you perform incomplete recovery or recovery with a backup control file,
you must reset the online logs when you open the database. The new version of the
reset database is called a new incarnation..
Difference between RESETLOGS and NORESETLOGS ?
http://oracleappstechnology.blogspot.in/2008/05/difference-between-resetlogs-
and.html
After recover database operation, open the database with: ALTER DATABASE OPEN
[NO]RESETLOGS
NORESETLOGS:
The NORESETLOGS option does not clear the redo log files during startup and the
online redo logs to be used for recovery. Only used in scenario where MANUAL
RECOVERY is started, CANCEL is used, and then RECOVER DATABASE is started.
RESETLOGS:
CAUTION: Never use RESETLOGS unless necessary.
Once RESETLOGS is used then the redo log files cannot be used and any completed
transactions in those redo logs are lost!!
Before using the RESETLOGS option take an offline backup of the database.
What is SCN (System Change Number) ?
The system change number (SCN) is an ever-increasing value that uniquely identifies
a committed version of the database at a point in time. Every time a user commits a
transaction Oracle records a new SCN in redo logs.
Oracle uses SCNs in control files datafile headers and redo records. Every redo log
file has both a log sequence number and low and high SCN. The low SCN records the
lowest SCN recorded in the log file while the high SCN records the highest SCN in the
log file.

What is Database Incarnation ?


Database incarnation is effectively a new “version” of the database that happens
when you reset the online redo logs using “alter database open resetlogs;”.
Database incarnation falls into following category Current, Parent, Ancestor and
Sibling
i) Current Incarnation : The database incarnation in which the database is currently
generating redo.
ii) Parent Incarnation : The database incarnation from which the current incarnation
branched following an OPEN RESETLOGS operation.
iii) Ancestor Incarnation : The parent of the parent incarnation is an ancestor
incarnation. Any parent of an ancestor incarnation is also an ancestor incarnation.
iv) Sibling Incarnation : Two incarnations that share a common ancestor are sibling
incarnations if neither one is an ancestor of the other.

How to view Database Incarnation history of Database ?


Using SQL> select * from v$database_incarnation;
Using RMAN>LIST INCARNATION;
However, you can use the RESET DATABASE TO INCARNATION command to
specify that SCNs are to be interpreted in the frame of reference of another
incarnation.
•For example my current database INCARNATION is 3 and now I have used
FLASHBACK DATABASE TO SCN 3000;then SCN 3000 will be search in current
incarnation which is 3. However if I want to get back to SCN 3000 of INCARNATION
2 then I have to use,
RMAN> RESET DATABASE TO INCARNATION 2;
RMAN> RECOVER DATABASE TO SCN 3000;

==========================================================
===============================================
==========================================================
===============================================

ORACLE BACKUP AND RECOVERY


#########################
How would you decide your backup strategy and timing for backup?In fact backup
strategy is purely depends upon your organization business need.
If no downtime then database must be run on archivelog mode and you have to take
frequently or daily backup.
If sufficient downtime is there and loss of data would not affect your business then
you can run your database in noarchivelog mode and backup can be taken in-
frequently or weekly or monthly.
In most of the case in an organization when no downtime then frequent inconsistent
backup needed (daily backup), multiplex online redo log files (multiple copies),
different location for redo log files, database must run in archivelog mode and
dataguard can be implemented for extra bit of protection.

What is difference between Restoring and Recovery of database?


Restoring means copying the database object from the backup media to the
destination where actually it is required where as recovery means to apply the
database object copied earlier (roll forward) in order to bring the database into
consistent state.

What is the difference between complete and incomplete recovery?An incomplete


database recovery is a recovery that it does not reach to the point of failure. The
recovery can be either point of time or particular SCN or Particular archive log
specially incase of missing archive log or redolog failure where as a complete
recovery recovers to the point of failure possibly when having all archive log backup.

What is the benefit of running the DB in archivelog mode over no archivelog mode?
When a database is in no archivelog mode whenever log switch happens there will be
a loss of some redoes log information in order to avoid this, redo logs must be
archived. This can be achieved by configuring the database in archivelog mode.

If an oracle database is crashed? How would you recover that transaction which is
not in backup?If the database is in archivelog we can recover that transaction
otherwise we cannot recover that transaction which is not in backup.

What is the difference between HOTBACKUP and RMAN backup?


For hotbackup we have to put database in begin backup mode, then take backup
where as RMAN would not put database in begin backup mode. RMAN is faster can
perform incremental (changes only) backup, and does not place tablespace in
hotbackup mode.

Can we use Same target database as Catalog database?


No, the recovery catalog should not reside in the target database (database to be
backed up) because the database can not be recovered in the mounted state.

Incremental backup levels:


Level 0 – full backup that can be used for subsequent incrementals
RMAN> backup incremental level 0 database;
Differential Level 1–only the blocks that have changed since the last backup (whether
it is level 0 or level 1)
RMAN> backup incremental level 1 differential database;
Cumulative Level 1 – all changes since the last level 0 incremental backup
RMAN> backup incremental level 1 cumulative database;
A full backup cannot be used for a cumulative level 1 backup.
A cumulative level 1 backup must be done on top of an incremental level 0 backup.

Why RMAN incremental backup fails even though full backup exists?If you have
taken the RMAN full backup using the command ‘Backup database’, where as a level
0 backup is physically identical to a full backup. The only difference is that the level 0
backup is recorded as an incremental backup in the RMAN repository so it can be
used as the parent for a level 1 backup. Simply the ‘full backup without level 0’ can
not be considered as a parent backup from which you can take level 1 backup.

Can we perform RMAN level 1 backup without level 0?If no level 0 is available, then
the behavior depends upon the compatibility mode setting (oracle version).
If the compatibility mode less than 10.0.0, RMAN generates a level 0 backup of files
contents at the time of backup.
If the compatibility is greater than 10.0.0, RMAN copies all block changes since the
file was created, and stores the results as level 1 backup.

How to put Manual/User managed backup in RMAN?In case of recovery catalog, you
can put by using catalog command:
RMAN> CATALOG START WITH ‘/oracle/backup.ctl’;

How to check RMAN version in oracle?If you want to check RMAN catalog version
then use the below query from SQL*plus
SQL> Select * from rcver;

What happens actually in case of instance Recovery?While Oracle instance fails,


Oracle performs an Instance Recovery when the associated database is being re-
started. Instance recovery occurs in 2 steps:
Cache recovery: Changes being made to a database are recorded in the database
buffer cache as well as redo log files simultaneously. When there are enough data in
the database buffer cache, they are written to data files. If an Oracle instance fails
before these data are written to data files, Oracle uses online redo log files to recover
the lost data when the associated database is re-started. This process is called cache
recovery.
Transaction recovery: When a transaction modifies data in a database (the before
image of the modified data is stored in an undo segment which is used to restore the
original values in case the transaction is rolled back). At the time of an instance
failure, the database may have uncommitted transactions. It is possible that changes
made by these uncommitted transactions have gotten saved in data files. To maintain
read consistency, Oracle rolls back all uncommitted transactions when the associated
database is re-started. Oracle uses the undo data stored in undo segments to
accomplish this. This process is called transaction recovery.

==========================================================
===============================================
==========================================================
===============================================

Oracle Patching,Cloning and Upgrade


#############################

When you moved oracle binary files from one ORACLE_HOME server to another
server then which oracle utility will be used to make this new ORACLE_HOME
usable?
Relink all.

In which months oracle release CPU patches?


JAN, APR, JUL, OCT

When we applying single Patch, can you use opatch utility?


Yes, you can use Opatch incase of single patch. The only type of patch that cannot be
used with OPatch is a patchset.

Is it possible to apply OPATCH without downtime?


As you know for apply patch your database and listener must be down. When you
apply OPTACH it will update your current ORACLE_HOME. Thus coming to your
question to the point in fact it is not possible without or zero downtime in case of
single instance but in RAC you can Apply Opatch without downtime as there will be
more separate ORACLE_HOME and more separate instances (running once instance
on each ORACLE_HOME).

You have collection of patch (nearly 100 patches) or patchset. How can you apply
only one patch from it?
With Napply itself (by providing patch location and specific patch id) you can apply
only one patch from a collection of extracted patch. For more information check the
opatch util NApply –help. It will give you clear picture.
For Example:
opatch util napply <patch_location> -id 9 -skip_subset -skip_duplicate
This will apply only the patch id 9 from the patch location and will skip duplicate and
subset of patch installed in your ORACLE_HOME.

If both CPU and PSU are available for given version which one, you will prefer to
apply?
From the above discussion it is clear once you apply the PSU then the recommended
way is to apply the next PSU only. In fact, no need to apply CPU on the top of PSU as
PSU contain CPU (If you apply CPU over PSU will considered you are trying to
rollback the PSU and will require more effort in fact). So if you have not decided or
applied any of the patches then, I will suggest you to go to use PSU patches. For more
details refer: Oracle Products [ID 1430923.1], ID 1446582.1

PSU is superset of CPU then why someone choose to apply a CPU rather than a PSU?
CPUs are smaller and more focused than PSU and mostly deal with security issues. It
seems to be theoretically more consecutive approach and can cause less trouble than
PSU as it has less code changing in it. Thus any one who is concerned only with
security fixes and not functionality fixes, CPU may be good approach.

How to Download Patches, Patchset or Opatch from metalink?

If you are using latest support.oracle.com then after login to metalink Dashboard
- Click on “Patches & Updates” tab
- On the left sidebar click on “Latest Patchsets” under “Oracle Server/Tools”.
- A new window will appear.
- Just mouseover on your product in the “Latest Oracle Server/Tools Patchsets” page.
- Corresponding oracle platform version will appear. Then simply choose the
patchset version and click on that.
- You will go the download page. From the download page you can also change your
platform and patchset version.

REFERENCES:
http://docs.oracle.com/cd/E11857_01/em.111/e12255/e_oui_appendix.htm
Oracle® Universal Installer and OPatch User’s Guide
11g Release 2 (11.2) for Windows and UNIX
Part Number E12255-11
What is the recent Patch applied?
What is OPatch?

How to Apply Opatch in Oracle?

1. You MUST read the Readme.txt file included in opatch file, look for any prereq.
steps/ post installation steps or and DB related changes. Also, make sure that you
have the correct opatch version required by this patch.
2.Make sure you have a good backup of database.
3. Make a note of all Invalid objects in the database prior to the patch.
4. Shutdown All the Oracle Processes running from that Oracle Home , including the
Listener and Database instance, Management agent etc.
5. You MUST Backup your oracle Home and Inventory
tar -cvf $ORACLE_HOME $ORACLE_HOME/oraInventory | gzip >
Backup_Software_Version.tar.gz
6. Unzip the patch in $ORACLE_HOME/patches
7. cd to the patch direcory and do opatch -apply to apply the patch.
8. Read the output/log file to make sure there were no errors.

Patching Oracle Software with OPatch ?

opatch napply <patch_location> -skip_subset -skip_duplicate


OPatch skips duplicate patches and subset patches (patches under <patch_location>
that are subsets of patches installed in the Oracle home).

What is Opactch in Oracle?

OPATCH Utility (Oracle RDBMS Patching)

1. Download the required Patch from Metalink based on OS Bit Version and DB
Version.
2. Need to down the database before applying patch.
3. Unzip and Apply the Patch using ”opatch apply” command.On successfully applied
of patch you will see successful message “OPatch succeeded.“, Crosscheck your patch
is applied by using “opatch lsinventory” command .
4. Each patch has a unique ID, the command to rollback a patch is “opatch rollback -
id <patch no.>” command.On successfully applied of patch you will see successful
message “OPatch succeeded.“, Crosscheck your patch is applied by using “opatch
lsinventory” command .
5. Patch file format will be like, “p<patch no.>_<db version>_<os>.zip”
6. We can check the opatch version using “opatch -version” command.
7. Generally, takes 2 minutes to apply a patch.
8. To get latest Opatch version download “patch 6880880 – latest opatch tool”, it
contains OPatch directory.
9. Contents of downloaded patches will be like “etc,files directories and a README
file”
10. Log file for Opatch utility can be found at $ORACLE_HOME/cfgtoollogs/opatch
11. OPatch also maintains an index of the commands executed with OPatch and the
log files associated with it in the history.txt file located in the
<ORACLE_HOME>/cfgtoollogs/opatch directory.
12. Starting with the 11.2.0.2 patch set, Oracle Database patch sets are full
installations of the Oracle Database software. This means that you do not need to
install Oracle Database 11g Release 2 (11.2.0.1) before installing Oracle Database 11g
Release 2 (11.2.0.2).
13. Direct upgrade to Oracle 10g is only supported if your database is running one of
the following releases: 8.0.6, 8.1.7, 9.0.1, or 9.2.0. If not, you will have to upgrade the
database to one of these releases or use a different upgrade option (like export/
import).
14.Direct upgrades to 11g are possible from existing databases with versions 9.2.0.4+,
10.1.0.2+ or 10.2.0.1+. Upgrades from other versions are supported only via
intermediate upgrades to a supported upgrade version.

http://avdeo.com/2008/08/19/opatch-utility-oracle-rdbms-patching/
Oracle version 10.2.0.4.0 what does each number refers to?
Oracle version number refers:
10 – Major database release number
2 – Database Maintenance release number
0 – Application server release number
4 – Component Specific release number
0 – Platform specific release number

==========================================================
===============================================
==========================================================
===============================================

Oracle ASM
##########

What is ASM in Oracle?


Oracle ASM is Oracle’s volume manager specially designed for Oracle database data.
It is available since Oracle database version 10g and many improvements have been
made in versions 11g release 1 and 2.

ASM offers support for Oracle RAC clusters without the requirement to install 3rd
party software, such as cluster aware volume managers or filesystems.

ASM is shipped as part of the database server software (Enterprise and Standard
editions) and does not cost extra money to run.

ASM simplifies administration of Oracle related files by allowing the administrator to


reference disk groups
rather than individual disks and files, which are managed by ASM.

The ASM functionality is an extention of the Oracle Managed Files (OMF)


functionality that also includes striping and mirroring to provide balanced and
secure storage. The new ASM functionality can be used in combination with existing
raw and cooked file systems, along with OMF and manually managed files.

Advantages of ASM in Oracle?


Provides automatic load balancing over all the available disks, thus reducing hot
spots in the file system

Prevents fragmentation of disks, so you don’t need to manually relocate data to tune
I/O performance

Adding disks is straight forward – ASM automatically performs online disk


reorganization when you add or remove storage

Uses redundancy features available in intelligent storage arrays

The storage system can store all types of database files

Using disk group makes configuration easier, as files are placed into disk groups
ASM provides stripping and mirroring (fine and coarse gain – see below)

ASM and non-ASM oracle files can coexist

Striping—ASM spreads data evenly across all disks in a disk group to optimize
performance and utilization. This even distribution of database files eliminates the
need for regular monitoring and I/O performance tuning.

For example, if there are six disks in a disk group, pieces of each ASM file are written
to all six disks. These pieces come in 1 MB chunks known as extents. When a
database file is created, it is striped (divided into extents and distributed) across the
six disks, and allocated disk space on all six disks grows evenly. When reading the
file, file extents are read from all six disks in parallel, greatly increasing performance.

Mirroring—ASM can increase availability by optionally mirroring any file. ASM


mirrors at the file level, unlike operating system mirroring, which mirrors at the disk
level. Mirroring means keeping redundant copies, or mirrored copies, of each extent
of the file, to help avoid data loss caused by disk failures. The mirrored copy of each
file extent is always kept on a different disk from the original copy. If a disk fails,
ASM can continue to access affected files by accessing mirrored copies on the
surviving disks in the disk group.

ASM supports 2-way mirroring, where each file extent gets one mirrored copy, and 3-
way mirroring, where each file extent gets two mirrored copies.

Online storage reconfiguration and dynamic rebalancing—ASM permits you to add


or remove disks from your disk storage system while the database is operating. When
you add a disk, ASM automatically redistributes the data so that it is evenly spread
across all disks in the disk group, including the new disk. This redistribution is
known as rebalancing. It is done in the background and with minimal impact to
database performance. When you request to remove a disk, ASM first rebalances by
evenly relocating all file extents from the disk being removed to the other disks in the
disk group.

Managed file creation and deletion—ASM further reduces administration tasks by


enabling files stored in ASM disk groups to be Oracle-managed files. ASM
automatically assigns filenames when files are created, and automatically deletes
files when they are no longer needed.
What is ASM instance in Oracle?
The ASM functionality is controlled by an ASM instance. This is not a full database
instance, just the memory structures and as such is very small and lightweight.

Characteristics of Oracle ASM instance


————————————–
1. do not have controlfile and datafiles, do not have online redo logs

2. do have init.ora and a passwordfile


3. for connecting remotely, create passwordfile and set following in init.ora
remote_login_passwordfile=exclusive
create a password file:
$ORACLE_HOME/bin/orapwd file=orapw+ASM1 password=yourpw entries=10
4. ASM instance can not be in open status as there are not datafiles. Can be in mount
(although
there is no controlfile) and nomount status. When in mount status, database can use
the
diskgroup. The mount status actually means mount disk groups.

What are ASM Background Processes in Oracle?Both an Oracle ASM instance and an
Oracle Database instance are built on the same technology. Like a database instance,
an Oracle ASM instance has memory structures (System Global Area) and
background processes. Besides, Oracle ASM has a minimal performance impact on a
server. Rather than mounting a database, Oracle ASM instances mount disk groups
to make Oracle ASM files available to database instances.

There are at least two new background processes added for an ASM instance:

ASM Instance Background Processes:


———————————
ARBx (ASM) Rebalance working processARBn performs the actual rebalance data
extent movements in an Automatic Storage Management instance. There can be
many of these processes running at a time, named ARB0, ARB1, and so on.These
processes are managed by the RBAL process. The number of ARBx processes invoked
is directly influenced by the asm_power_limit parameter.

RBAL (Re-balancer) RBAL runs in both database and ASM instances. In the database
instance, it does a global open of ASM disks. In an ASM instance, it also coordinates
rebalance activity for disk groups.RBAL, which coordinates rebalance activities
for disk resources controlled by ASM.

Database Instance ASM Background Processes:


——————————————In the database instances, there are three background
process to support ASM, namely:

ASMB, this process contact CSS using the group name and acquires the associated
ASM connect string. The connect string is subsequently used to connect to the ASM
instance.

RBAL, which performs global opens on all disks in the disk group.A global open
means that more than one database instance can be accessing the ASM disks at a
time.

O00x, a group slave processes, with a numeric sequence starting at 000.

What are the components of components of ASM are disk groups?


The main components of ASM are disk groups, each of which comprise of several
physical disks that are controlled as a single unit. The physical disks are known as
ASM disks, while the files that reside on the disks are know as ASM files. The
locations and names for the files are controlled by ASM, but user-friendly aliases and
directory structures can be defined for ease of reference.

Failure groups are defined within a disk group to support the required level of
redundancy. For two-way mirroring you would expect a disk group to contain two
failure groups so individual files are written to two locations.

What are ASM instance initialization parameters?


INSTANCE_TYPE – Set to ASM or RDBMS depending on the instance type. The
default is RDBMS.

DB_UNIQUE_NAME – Specifies a globally unique name for the database. This


defaults to +ASM but must be altered if you intend to run multiple ASM instances.

ASM_POWER_LIMIT -The maximum power for a rebalancing operation on an ASM


instance. The valid values range from 1 to 11, with 1 being the default. The higher the
limit the more resources are allocated resulting in faster rebalancing operations. This
value is also used as the default when the POWER clause is omitted from a rebalance
operation.

ASM_DISKGROUPS – The list of disk groups that should be mounted by an ASM


instance during instance startup, or by the ALTER DISKGROUP ALL MOUNT
statement. ASM configuration changes are automatically reflected in this parameter.

ASM_DISKSTRING – Specifies a value that can be used to limit the disks considered
for discovery. Altering the default value may improve the speed of disk group mount
time and the speed of adding a disk to a disk group. Changing the parameter to a
value which prevents the discovery of already mounted disks results in an error. The
default value is NULL allowing all suitable disks to be considered.

Advantages of ASM in Oracle?


Provides automatic load balancing over all the available disks, thus reducing hot
spots in the file system

Prevents fragmentation of disks, so you don’t need to manually relocate data to tune
I/O performance

Adding disks is straight forward – ASM automatically performs online disk


reorganization when you add or remove storage

Uses redundancy features available in intelligent storage arrays

The storage system can store all types of database files

Using disk group makes configuration easier, as files are placed into disk groups

ASM provides stripping and mirroring (fine and coarse gain – see below)

ASM and non-ASM oracle files can coexist

Striping—ASM spreads data evenly across all disks in a disk group to optimize
performance and utilization. This even distribution of database files eliminates the
need for regular monitoring and I/O performance tuning.
For example, if there are six disks in a disk group, pieces of each ASM file are written
to all six disks. These pieces come in 1 MB chunks known as extents. When a
database file is created, it is striped (divided into extents and distributed) across the
six disks, and allocated disk space on all six disks grows evenly. When reading the
file, file extents are read from all six disks in parallel, greatly increasing performance.

Mirroring—ASM can increase availability by optionally mirroring any file. ASM


mirrors at the file level, unlike operating system mirroring, which mirrors at the disk
level. Mirroring means keeping redundant copies, or mirrored copies, of each extent
of the file, to help avoid data loss caused by disk failures. The mirrored copy of each
file extent is always kept on a different disk from the original copy. If a disk fails,
ASM can continue to access affected files by accessing mirrored copies on the
surviving disks in the disk group.

ASM supports 2-way mirroring, where each file extent gets one mirrored copy, and 3-
way mirroring, where each file extent gets two mirrored copies.

Online storage reconfiguration and dynamic rebalancing—ASM permits you to add


or remove disks from your disk storage system while the database is operating. When
you add a disk, ASM automatically redistributes the data so that it is evenly spread
across all disks in the disk group, including the new disk. This redistribution is
known as rebalancing. It is done in the background and with minimal impact to
database performance. When you request to remove a disk, ASM first rebalances by
evenly relocating all file extents from the disk being removed to the other disks in the
disk group.

Managed file creation and deletion—ASM further reduces administration tasks by


enabling files stored in ASM disk groups to be Oracle-managed files. ASM
automatically assigns filenames when files are created, and automatically deletes
files when they are no longer needed.

Why should we use separate ASM home?


ASM should be installed separately from the database software in its own
ORACLE_HOME directory. This will allow you the flexibility to patch and upgrade
ASM and the database software independently.

How many ASM instances should one have?


Several databases can share a single ASM instance. So, although one can create
multiple ASM instances on a single system, normal configurations should have one
and only one ASM instance per system.

For clustered systems, create one ASM instance per node (called +ASM1, +ASM2,
etc).

How many diskgroups should one have?


Generally speaking one should have only one disk group for all database files – and,
optionally a second for recovery files (see FRA).

Data with different storage characteristics should be stored in different disk groups.
Each disk group can have different redundancy (mirroring) settings (high, normal
and external), different fail-groups, etc. However, it is generally not necessary to
create many disk groups with the same storage characteristics (i.e. +DATA1,
+DATA2, etc. all on the same type of disks).

To get started, create 2 disk groups – one for data and one for recovery files. Here is
an example:

CREATE DISKGROUP data EXTERNAL REDUNDANCY DISK ‘/dev/d1′, ‘/dev/d2′,


‘/dev/d3′, ….;
CREATE DISKGROUP recover EXTERNAL REDUNDANCY DISK ‘/dev/d10′,
‘/dev/d11′, ‘/dev/d12′, ….;

Here is an example how you can enable automatic file management with such a
setup:

ALTER SYSTEM SET db_create_file_dest = ‘+DATA’ SCOPE=SPFILE;


ALTER SYSTEM SET db_recovery_file_dest = ‘+RECOVER’ SCOPE=SPFILE;

You may also decide to introduce additional disk groups – for example, if you decide
to put historic data on low cost disks, or if you want ASM to mirror critical data
across 2 storage cabinets.

What is ASM Rebalancing?


The rebalancing speed is controlled by the ASM_POWER_LIMIT initialization
parameter. Setting it to 0 will disable disk rebalancing.
ALTER DISKGROUP data REBALANCE POWER 11;

What happens when an Oracle ASM diskgroup is created?


When an ASM diskgroup is created, a hierarchialfilesystem structure is created.

How does this filesystem structure appear?


Oracle ASM diskgroup’sfilesystem structure is similar to UNIX filesystem hierarchy
or Windows filesystem hierarchy.

Where are the Oracle ASM files stored?


Oracle ASM files are stored within the Oracle ASM diskgroup. If we dig into
internals, oracle ASM files are stored within the Oracle ASM filesystem structures.

How are the Oracle ASM files stored within the Oracle ASM filesystem structure?
Oralce ASM files are stored within the Oracle ASM filesystem structures as objects
that RDBMS instances/Oracle database instance access. RDBMS/Oracle instance
treats the Oracle ASM files as standard filesystem files.

What are the Oracle ASM files that are stored within the Oracle ASM file hierarchy?
Files stored in Oracle ASM diskgroup/Oracl ASM filestructures include:
1) Datafile
2) Controlfiles
3) Server Parameter Files(SPFILE)
4) Redo Log files

What happens when you create a file/database file in ASM?What commands do you
use to create database files?
Some common commands used for creating database files are :
1) Create tabespace
2) Add Datafile
3) Add Logfile
For example,
SQL> CREATE TABLESPACE TS1 DATAFILE ‘+DATA1′ SIZE 10GB;
Above command creates a datafile in DATA1 diskgroup

How can you access a databasefile in ASM diskgroup under RDBMS?


Once the ASM file is created in ASM diskgroup, a filename is generated. This file is
now visible to the user via the standard RDBMS view V$DATAFILE.
What will be the syntax of ASM filenames?
ASM filename syntax is as follows:
+diskgroup_name/database_name/database_file_type/tag_name.file_number.inca
rnation
where,
+diskgroup_name – Name of the diskgroup that contains this file
database_name – Name of the database that contains this file
datafile – Can be one among 20 different ASM file types
tag_name – corresponds to tablespace name for datafiles, groupnumber for redo log
files
file_number – file_number in ASM instance is used to correlate filenames in
database instance
incarnation_number – It is derived from the timestamp. IT is used to provide
uniqueness

What is an incarnation number?


An incarnation number is a part of ASM filename syntax. It is derived from the
timestamp. Once the file is created, its incarnation number doesnot change.

What is the use of an incarnation number in Oracle ASM filename?


Incarnation number distinguishes between a new file that has been created using the
same file number and another file that has been deleted

ASM’s SPFile will be residing inside ASM itself. This could be found out in number of
ways, looking at the alert log of ASM when ASM starts
Machine: x86_64
Using parameter settings in server-side spfile
+DATA/asm/asmparameterfile/registry.253.766260991
System parameters with non-default values:
large_pool_size = 12M
instance_type = “asm”
remote_login_passwordfile= “EXCLUSIVE”
asm_diskgroups = “FLASH”
asm_diskgroups = “DATA”
asm_power_limit = 1
diagnostic_dest = “/opt/app/oracle”
Or using the asmcmd’s spget command which shows the spfile location registered
with GnP profile
ASMCMD> spget
+DATA/asm/asmparameterfile/registry.253.766260991

==========================================================
===============================================
==========================================================
===============================================

Oracle RAC
##########
What is RAC? What is the benefit of RAC over single instance database?
In Real Application Clusters environments, all nodes concurrently execute
transactions against the same database. Real Application Clusters coordinates each
node’s access to the shared data to provide consistency and integrity.
Benefits:
Improve response time
Improve throughput
High availability
Transparency

What is Oracle RAC One Node?


Oracle RAC one Node is a single instance running on one node of the cluster while
the 2nd node is in cold standby mode. If the instance fails for some reason then RAC
one node detect it and restart the instance on the same node or the instance is
relocate to the 2nd node incase there is failure or fault in 1st node. The benefit of this
feature is that it provides a cold failover solution and it automates the instance
relocation without any downtime and does not need a manual intervention. Oracle
introduced this feature with the release of 11gR2 (available with Enterprise Edition).

Real Application Clusters


Oracle RAC is a cluster database with a shared cache architecture that overcomes the
limitations of traditional shared-nothing and shared-disk approaches to provide a
highly scalable and available database solution for all your business applications.
Oracle RAC provides the foundation for enterprise grid computing.

Oracle’s Real Application Clusters (RAC) option supports the transparent


deployment of a single database across a cluster of servers, providing fault tolerance
from hardware failures or planned outages. Oracle RAC running on clusters provides
Oracle’s highest level of capability in terms of availability, scalability, and low-cost
computing.

One DB opened by multipe instances so the the db ll be Highly Available if an


instance crashes.
Cluster Software. Oracles Clusterware or products like Veritas Volume Manager are
required to provide the cluster support and allow each node to know which nodes
belong to the cluster and are available and with Oracle Cluterware to know which
nodes have failed and to eject then from the cluster, so that errors on that node can
be cleared.

Oracle Clusterware has two key components Cluster Registry OCR and Voting Disk.

The cluster registry holds all information about nodes, instances, services and ASM
storage if used, it also contains state information ie they are available and up or
similar.

The voting disk is used to determine if a node has failed, i.e. become separated from
the majority. If a node is deemed to no longer belong to the majority then it is
forcibly rebooted and will after the reboot add itself again the the surviving cluster
nodes.

Advantages of RAC (Real Application Clusters)

Reliability – if one node fails, the database won’t fail


Availability – nodes can be added or replaced without having to shutdown the
database
Scalability – more nodes can be added to the cluster as the workload increases

What is a virtual IP address or VIP?

A virtual IP address or VIP is an alternate IP address that the client connections use
instead of the standard public IP address. To configure VIP address, we need to
reserve a spare IP address for each node, and the IP addresses must use the same
subnet as the public network.

What is the use of VIP?


If a node fails, then the node’s VIP address fails over to another node on which the
VIP address can accept TCP connections but it cannot accept Oracle connections.
Give situations under which VIP address failover happens:-
VIP addresses failover happens when the node on which the VIP address runs fails,
all interfaces for the VIP address fails, all interfaces for the VIP address are
disconnected from the network.
Using virtual IP we can save our TCP/IP timeout problem because Oracle
notification service maintains communication between each nodes and listeners.

What is the significance of VIP address failover?


When a VIP address failover happens, Clients that attempt to connect to the VIP
address receive a rapid connection refused error .They don’t have to wait for TCP
connection timeout messages.

What is voting disk?


Voting Disk is a file that sits in the shared storage area and must be accessible by all
nodes in the cluster. All nodes in the cluster registers their heart-beat information in
the voting disk, so as to confirm that they are all operational. If heart-beat
information of any node in the voting disk is not available that node will be evicted
from the cluster. The CSS (Cluster Synchronization Service) daemon in the
clusterware maintains the heart beat of all nodes to the voting disk. When any node
is not able to send heartbeat to voting disk, then it will reboot itself, thus help
avoiding the split-brain syndrome.

For high availability, Oracle recommends that you have a minimum of three or odd
number (3 or greater) of votingdisks.

Voting Disk – is file that resides on shared storage and Manages cluster members.
Voting disk reassigns cluster ownership between the nodes in case of failure.

The Voting Disk Files are used by Oracle Clusterware to determine which nodes are
currently members of the cluster. The voting disk files are also used in concert with
other Cluster components such as CRS to maintain the clusters integrity.

Oracle Database 11g Release 2 provides the ability to store the voting disks in ASM
along with the OCR. Oracle Clusterware can access the OCR and the voting disks
present in ASM even if the ASM instance is down. As a result CSS can continue to
maintain the Oracle cluster even if the ASM instance has failed.
How many voting disks are you maintaining ?

http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/T
opicID/RACR2ARC6/Default.aspx
By default Oracle will create 3 voting disk files in ASM.

Oracle expects that you will configure at least 3 voting disks for redundancy
purposes. You should always configure an odd number of voting disks >= 3. This is
because loss of more than half your voting disks will cause the entire cluster to fail.

You should plan on allocating 280MB for each voting disk file. For example, if you
are using ASM and external redundancy then you will need to allocate 280MB of disk
for the voting disk. If you are using ASM and normal redundancy you will need
560MB.

Why we need to keep odd number of voting disks ?


Oracle expects that you will configure at least 3 voting disks for redundancy
purposes. You should always configure an odd number of voting disks >= 3. This is
because loss of more than half your voting disks will cause the entire cluster to fail.

What are Oracle RAC software components?


Oracle RAC is composed of two or more database instances. They are composed of
Memory structures and background processes same as the single instance
database.Oracle RAC instances use two processes GES(Global Enqueue Service),
GCS(Global Cache Service) that enable cache fusion.Oracle RAC instances are
composed of following background processes:
ACMS—Atomic Controlfile to Memory Service (ACMS)
GTX0-j—Global Transaction Process
LMON—Global Enqueue Service Monitor
LMD—Global Enqueue Service Daemon
LMS—Global Cache Service Process
LCK0—Instance Enqueue Process
RMSn—Oracle RAC Management Processes (RMSn)
RSMN—Remote Slave Monitor

What are Oracle Clusterware processes for 10g ?


Cluster Synchronization Services (ocssd) — Manages cluster node membership and
runs as the oracle user; failure of this process results in cluster restart.
Cluster Ready Services (crsd) — The crs process manages cluster resources (which
could be a database, an instance, a service, a Listener, a virtual IP (VIP) address, an
application process, and so on) based on the resource’s configuration information
that is stored in the OCR. This includes start, stop, monitor and failover operations.
This process runs as the root user
Event manager daemon (evmd) —A background process that publishes events that
crs creates.
Process Monitor Daemon (OPROCD) —This process monitor the cluster and provide
I/O fencing. OPROCD performs its check, stops running, and if the wake up is
beyond the expected time, then OPROCD resets the processor and reboots the node.
An OPROCD failure results in Oracle Clusterware restarting the node. OPROCD uses
the hangcheck timer on Linux platforms.
RACG (racgmain, racgimon) —Extends clusterware to support Oracle-specific
requirements and complex resources. Runs server callout scripts when FAN events
occur.

What are Oracle database background processes specific to RAC?


LMS—Global Cache Service Process
LMD—Global Enqueue Service Daemon
LMON—Global Enqueue Service Monitor
LCK0—Instance Enqueue Process
Oracle RAC instances use two processes, the Global Cache Service (GCS) and the
Global Enqueue Service (GES). The GCS and GES maintain records of the statuses of
each data file and each cached block using a Global Resource Directory (GRD). The
GRD contents are distributed across all of the active instances.

What is Cache Fusion?


Transfor of data across instances through private interconnect is called
cachefusion.Oracle RAC is composed of two or more instances. When a block of data
is read from datafile by an instance within the cluster and another instance is in need
of the same block,it is easy to get the block image from the insatnce which has the
block in its SGA rather than reading from the disk. To enable inter instance
communication Oracle RAC makes use of interconnects. The Global Enqueue
Service(GES) monitors and Instance enqueue process manages the cahce fusion

What is SCAN? (11gR2 feature)


Single Client Access Name (SCAN) is s a new Oracle Real Application Clusters (RAC)
11g Release 2 feature that provides a single name for clients to access an Oracle
Database running in a cluster. The benefit is clients using SCAN do not need to
change if you add or remove nodes in the cluster.

SCAN provides a single domain name via (DNS), allowing and-users to address a
RAC cluster as-if it were a single IP address. SCAN works by replacing a hostname or
IP list with virtual IP addresses (VIP).

Single client access name (SCAN) is meant to facilitate single name for all Oracle
clients to connect to the cluster database, irrespective of number of nodes and node
location. Until now, we have to keep adding multiple address records in all clients
tnsnames.ora, when a new node gets added to or deleted from the cluster.

Single Client Access Name (SCAN) eliminates the need to change TNSNAMES entry
when nodes are added to or removed from the Cluster. RAC instances register to
SCAN listeners as remote listeners. Oracle recommends assigning 3 addresses to
SCAN, which will create 3 SCAN listeners, though the cluster has got dozens of
nodes.. SCAN is a domain name registered to at least one and up to three IP
addresses, either in DNS (Domain Name Service) or GNS (Grid Naming Service). The
SCAN must resolve to at least one address on the public network. For high
availability and scalability, Oracle recommends configuring the SCAN to resolve to
three addresses.
http://www.freeoraclehelp.com/2011/12/scan-setup-for-oracle-11g-
release211gr2.html
What are SCAN components in a cluster?
1.SCAN Name
2.SCAN IPs (3)
3.SCAN Listeners (3)
What is FAN?
Fast application Notification as it abbreviates to FAN relates to the events related to
instances,services and nodes.This is a notification mechanism that Oracle RAc uses
to notify other processes about the configuration and service level information that
includes service status changes such as,UP or DOWN events.Applications can
respond to FAN events and take immediate action.
What is TAF?
TAF (Transparent Application Failover) is a configuration that allows session fail-
over between different nodes of a RAC database cluster.
Transparent Application Failover (TAF). If a communication link failure occurs after
a connection is established, the connection fails over to another active node. Any
disrupted transactions are rolled back, and session properties and server-side
program variables are lost. In some cases, if the statement executing at the time of
the failover is a Select statement, that statement may be automatically re-executed on
the new connection with the cursor positioned on the row on which it was positioned
prior to the failover.

After an Oracle RAC node crashes—usually from a hardware failure—all new


application transactions are automatically rerouted to a specified backup node. The
challenge in rerouting is to not lose transactions that were “in flight” at the exact
moment of the crash. One of the requirements of continuous availability is the ability
to restart in-flight application transactions, allowing a failed node to resume
processing on another server without interruption. Oracle’s answer to application
failover is a new Oracle Net mechanism dubbed Transparent Application Failover.
TAF allows the DBA to configure the type and method of failover for each Oracle Net
client.
TAF architecture offers the ability to restart transactions at either the transaction
(SELECT) or session level.

What are the requirements for Oracle Clusterware?


1. External Shared Disk to store Oracle Cluster ware file (Voting Disk and Oracle
Cluster Registry – OCR)
2. Two netwrok cards on each cluster ware node (and three set of IP address) -
Network Card 1 (with IP address set 1) for public network
Network Card 2 (with IP address set 2) for private network (for inter node
communication between rac nodes used by clusterware and rac database)
IP address set 3 for Virtual IP (VIP) (used as Virtual IP address for client connection
and for connection failover)
3. Storage Option for OCR and Voting Disk – RAW, OCFS2 (Oracle Cluster File
System), NFS, …..
Which enable the load balancing of applications in RAC?
Oracle Net Services enable the load balancing of application connections across all of
the instances in an Oracle RAC database.

How to find location of OCR file when CRS is down?


If you need to find the location of OCR (Oracle Cluster Registry) but your CRS is
down.
When the CRS is down:
Look into “ocr.loc” file, location of this file changes depending on the OS:
On Linux: /etc/oracle/ocr.loc
On Solaris: /var/opt/oracle/ocr.loc
When CRS is UP:
Set ASM environment or CRS environment then run the below command:
ocrcheck

In 2 node RAC, how many NIC’s are r using ?


2 network cards on each clusterware node
Network Card 1 (with IP address set 1) for public network
Network Card 2 (with IP address set 2) for private network (for inter node
communication between rac nodes used by clusterware and rac database)

In 2 node RAC, how many IP’s are r using ?


6 – 3 set of IP address
## eth1-Public: 2
## eth0-Private: 2
## VIP: 2

How to find IP’s information in RAC ?


Edit the /etc/hosts file as shown below:
# Do not remove the following line, or various programs
# that requires network functionality will fail.
127.0.0.1 localhost.localdomain localhost
## Public Node names
192.168.10.11 node1-pub.hingu.net node1-pub
192.168.10.22 node2-pub.hingu.net node2-pub
## Private Network (Interconnect)
192.168.0.11 node1-prv node1-prv
192.168.0.22 node2-prv node2-prv
## Private Network (Network Area storage)
192.168.1.11 node1-nas node1-nas
192.168.1.22 node2-nas node2-nas
192.168.1.33 nas-server nas-server
## Virtual IPs
192.168.10.111 node1-vip.hingu.net node1-vip
192.168.10.222 node2-vip.hingu.net node2-vip
What is difference between RAC ip addresses ?
Public IP adress is the normal IP address typically used by DBA and SA to manage
storage, system and database. Public IP addresses are reserved for the Internet.
Private IP address is used only for internal clustering processing (Cache Fusion) (aka
as interconnect). Private IP addresses are reserved for private networks.
VIP is used by database applications to enable fail over when one cluster node fails.
The purpose for having VIP is so client connection can be failover to surviving nodes
in case there is failure

Can application developer access the private ip ?


No. private IP address is used only for internal clustering processing (Cache Fusion)
(aka as interconnect)

==========================================================
===============================================
==========================================================
===============================================

Oracle Data Guard


##############
What is Dataguard?

Data Guard provides a comprehensive set of services that create, maintain, manage,
and monitor one or more standby databases to enable production Oracle databases
to survive disasters and data corruptions. Data Guard maintains these standby
databases as copies of the production database. Data Guard can be used with
traditional backup, restoration, and cluster techniques to provide a high level of data
protection and data availability.

What is DG Broker?
DG Broker “it is the management and monitoring tool”.
Oracle dataguard broker is a distributed management framework that automates and
centralizes the creation , maintenance and monitoring of DG configuration.
All management operations can be performed either through OEM, which uses the
broker (or) broker specified command-line tool interface “DGMGRL”.

What is the difference between Dataguard and Standby?


Dataguard :
Dataguard is mechanism/tool to maintain standby database.
The dataguard is set up between primary and standby instance .
Data Guard is only available on Enterprise Edition.

Standby Database :
Physical standby database provides a physically identical copy of the primary
database, with on disk database structures that are identical to the primary database
on a block-for-block basis.
Standby capability is available on Standard Edition.

REFERENCE:
http://neeraj-dba.blogspot.in/2011/06/difference-between-dataguard-and.html
What are the differences between Physical/Logical standby databases? How would
you decide which one is best suited for your environment?
Physical standby DB:
As the name, it is physically (datafiles, schema, other physical identity) same copy of
the primary database.
It synchronized with the primary database with Apply Redo to the standby DB.
Logical Standby DB:
As the name logical information is the same as the production database, it may be
physical structure can be different.
It synchronized with primary database though SQL Apply, Redo received from the
primary database into SQL statements and then executing these SQL statements on
the standby DB.
We can open “physical stand by DB to “read only” and make it available to the
applications users (Only select is allowed during this period). we can not apply redo
logs received from primary database at this time.
We do not see such issues with logical standby database. We can open the database
in normal mode and make it available to the users. At the same time, we can apply
archived logs received from primary database.

For OLTP large transaction database it is better to choose logical standby database.

Explain Active Dataguard?

11g Active Data Guard


Oracle Active Data Guard enables read-only access to a physical standby database for
queries, sorting, reporting, web-based access, etc., while continuously applying
changes received from the production database.
Oracle Active Data Guard also enables the use of fast incremental backups when
offloading backups to a standby database, and can provide additional benefits of high
availability and disaster protection against planned or unplanned outages at the
production site.

What is a Snapshot Standby Database?


11g Snapshot Standby Database
Oracle 11g introduces the Snapshot Standby database which essentially is an
updateable standby database which has been created from a physical standby
database.
We can convert a physical standby database to a snapshot standby database, do some
kind of testing on a database which is a read write copy of the current primary or
production database and then finally revert it to it’s earlier state as a physical standby
database.
While the snapshot standby database is open in read-write mode, redo is being
received from the primary database, but is not applied.
After converting it back to a physical standby database, it is resynchronized with the
primary by applying the accumalated redo data which was earlier shipped from the
primary database but not applied.
Using a snapshot standby, we are able to do real time application testing using near
real time production data. Very often we are required to do production clones for the
purpose of testing. But using snapshot standby databases we can meet the same
requirement sparing the effort,time,resources and disk space.

REFERENCE:
http://gavinsoorma.com/2009/07/11g-snapshot-standby-database/
Snapshot Standby Database (UPDATEABLE SNAPSHOT FOR TESTING)
A snapshot standby database is a fully updatable standby database that is created by
converting a physical standby database into a snapshot standby database.

Like a physical or logical standby database, a snapshot standby database receives and
archives redo data from a primary database. Unlike a physical or logical standby
database, a snapshot standby database does not apply the redo data that it receives.
The redo data received by a snapshot standby database is not applied until the
snapshot standby is converted back into a physical standby database, after first
discarding any local updates made to the snapshot standby database.
REFERENCE:
http://docs.oracle.com/cd/B28359_01/server.111/b28294/title.htm
What is the Default mode will the Standby will be, either SYNC or ASYNC?
ASYNC

Dataguard Architechture?
Data Guard Configurations:
A Data Guard configuration consists of one production database and one or more
standby databases. The databases in a Data Guard configuration are connected by
Oracle Net and may be dispersed geographically. There are no restrictions on where
the databases are located, provided they can communicate with each other.

Dataguard Architecture
The Oracle 9i Data Guard architecture incorporates the following items:

• Primary Database – A production database that is used to create standby databases.


The archive logs from the primary database are transfered and applied to standby
databases. Each standby can only be associated with a single primary database, but a
single primary database can be associated with multiple standby databases.
• Standby Database – A replica of the primary database.
• Log Transport Services – Control the automatic transfer of archive redo log files
from the primary database to one or more standby destinations.
• Network Configuration – The primary database is connected to one or more
standby databases using Oracle Net.
• Log Apply Services – Apply the archived redo logs to the standby database. The
Managed Recovery Process (MRP) actually does the work of maintaining and
applying the archived redo logs.
• Role Management Services – Control the changing of database roles from primary
to standby. The services include switchover, switchback and failover.
• Data Guard Broker – Controls the creation and monitoring of Data Guard. It comes
with a GUI and command line interface.

Primary Database:
A Data Guard configuration contains one production database, also referred to as the
primary database, that functions in the primary role. This is the database that is
accessed by most of your applications.
Standby Database:
A standby database is a transactionally consistent copy of the primary database.
Using a backup copy of the primary database, you can create up to nine standby
databases and incorporate them in a Data Guard configuration. Once created, Data
Guard automatically maintains each standby database by transmitting redo data
from the primary database and then applying the redo to the standby database.
The types of standby databases are as follows:

Physical standby database:


Provides a physically identical copy of the primary database, with on disk database
structures that are identical to the primary database on a block-for-block basis. The
database schema, including indexes, are the same. A physical standby database is
kept synchronized with the primary database, through Redo Apply, which recovers
the redo data received from the primary database and applies the redo to the physical
standby database.

Logical standby database:


Contains the same logical information as the production database, although the
physical organization and structure of the data can be different. The logical standby
database is kept synchronized with the primary database through SQL Apply, which
transforms the data in the redo received from the primary database into SQL
statements and then executes the SQL statements on the standby database.

What are the services required on the primary and standby database ?
The services required on the primary database are:
• Log Writer Process (LGWR) – Collects redo information and updates the online
redo logs. It can also create local archived redo logs and transmit online redo to
standby databases.
• Archiver Process (ARCn) – One or more archiver processes make copies of online
redo logs either locally or remotely for standby databases.
• Fetch Archive Log (FAL) Server – Services requests for archive redo logs from FAL
clients running on multiple standby databases. Multiple FAL servers can be run on a
primary database, one for each FAL request. .
The services required on the standby database are:
• Fetch Archive Log (FAL) Client – Pulls archived redo log files from the primary site.
Initiates transfer of archived redo logs when it detects a gap sequence.
• Remote File Server (RFS) – Receives archived and/or standby redo logs from the
primary database.
• Archiver (ARCn) Processes – Archives the standby redo logs applied by the
managed recovery process (MRP).
• Managed Recovery Process (MRP) – Applies archive redo log information to the
standby database.

What is RTS (Redo Transport Services) in Dataguard?


It controls the automated transfer of redo data from the production database to one
or more archival destinations. The redo transport services perform the following
tasks:
a) Transmit redo data from the primary system to the standby systems in the
configuration.
b) Manage the process of resolving any gaps in the archived redo log files due to a
network failure.
c) Automatically detect missing or corrupted archived redo log files on a standby
system and automatically retrieve replacement archived redo log files from the
primary database or another standby database.

What are the Protection Modes in Dataguard?

Data Guard Protection Modes


This section describes the Data Guard protection modes.
In these descriptions, a synchronized standby database is meant to be one that meets
the minimum requirements of the configured data protection mode and that does not
have a redo gap. Redo gaps are discussed in Section 6.3.3.

Maximum Availability
This protectionmode provides the highest level of data protection that is possible
without compromising the availability of a primary database. Transactions do not
commit until all redo data needed to recover those transactions has been written to
the online redo log and to at least one synchronized standby database. If the primary
database cannot write its redo stream to at least one synchronized standby database,
it operates as if it were in maximum performance mode to preserve primary database
availability until it is again able to write its redo stream to a synchronized standby
database.
This mode ensures that no data loss will occur if the primary database fails, but only
if a second fault does not prevent a complete set of redo data from being sent from
the primary database to at least one standby database.
Maximum Performance
This protectionmode provides the highest level of data protection that is possible
without affecting the performance of a primary database. This is accomplished by
allowing transactions to commit as soon as all redo data generated by those
transactions has been written to the online log. Redo data is also written to one or
more standby databases, but this is done asynchronously with respect to transaction
commitment, so primary database performance is unaffected by delays in writing
redo data to the standby database(s).
This protection mode offers slightly less data protection than maximum availability
mode and has minimal impact on primary database performance.
This is the default protection mode.

Maximum Protection
This protection mode ensures that zero data loss occurs if a primary database fails.
To provide this level of protection, the redo data needed to recover a transaction
must be written to both the online redo log and to at least one synchronized standby
database before the transaction commits. To ensure that data loss cannot occur, the
primary database will shut down, rather than continue processing transactions, if it
cannot write its redo stream to at least one synchronized standby database.
Because this data protection mode prioritizes data protection over primary database
availability, Oracle recommends that a minimum of two standby databases be used
to protect a primary database that runs in maximum protection mode to prevent a
single standby database failure from causing the primary database to shut down.

How to delay the application of logs to a physical standby?

A standby database automatically applies redo logs when they arrive from the
primary database. But in some cases, we want to create a time lag between the
archiving of a redo log at the primary site, and the application of the log at the
standby site.

Modify the LOG_ARCHIVE_DEST_n initialization parameter on the primary


database to set a delay for the standby database.

Example: For 60min Delay:


ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’SERVICE=stdby_srvc
DELAY=60′;
The DELAY attribute is expressed in minutes.
The archived redo logs are still automatically copied from the primary site to the
standby site, but the logs are not immediately applied to the standby database. The
logs are applied when the specified time interval expires.

Steps to create Physical Standby database?

1.Take a full hot backup of Primary database


2.Create standby control file
3.Transfer full backup, init.ora, standby control file to standby node.
4.Modify init.ora file on standby node.
5.Restore database
6.Recover Standby database
(Alternatively, RMAN DUPLICATE DATABASE FOR STANDBY DO RECOVERY can
be also used)
7.Setup FAL_CLIENT and FAL_SERVER parameters on both sides
8.Put Standby database in Managed Recover mode

What are the DATAGUARD PARAMETERS in Oracle?


Set Primary Database Initialization Parameters
———————————————-
On the primary database, you define initialization parameters that control redo
transport services while the database is in the primary role. There are additional
parameters you need to add that control the receipt of the redo data and log apply
services when the primary database is transitioned to the standby role.

DB_NAME=chicago
DB_UNIQUE_NAME=chicago
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(chicago,boston)’
CONTROL_FILES=’/arch1/chicago/control1.ctl’, ‘/arch2/chicago/control2.ctl’
LOG_ARCHIVE_DEST_1=
‘LOCATION=/arch1/chicago/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=chicago’
LOG_ARCHIVE_DEST_2=
‘SERVICE=boston LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=boston’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30

Primary Database: Standby Role Initialization Parameters


FAL_SERVER=boston
FAL_CLIENT=chicago
DB_FILE_NAME_CONVERT=’boston’,'chicago’
LOG_FILE_NAME_CONVERT=
‘/arch1/boston/’,'/arch1/chicago/’,'/arch2/boston/’,'/arch2/chicago/’
STANDBY_FILE_MANAGEMENT=AUTO

Prepare an Initialization Parameter File for the Standby Database


—————————————————————–
Create a text initialization parameter file (PFILE) from the server parameter file
(SPFILE) used by the primary database; a text initialization parameter file can be
copied to the standby location and modified. For example:
CREATE PFILE=’/tmp/initboston.ora’ FROM SPFILE;

Modifying Initialization Parameters for a Physical Standby Database.

DB_NAME=chicago
DB_UNIQUE_NAME=boston
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(chicago,boston)’
CONTROL_FILES=’/arch1/boston/control1.ctl’, ‘/arch2/boston/control2.ctl’
DB_FILE_NAME_CONVERT=’chicago’,'boston’
LOG_FILE_NAME_CONVERT=
‘/arch1/chicago/’,'/arch1/boston/’,'/arch2/chicago/’,'/arch2/boston/’
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
LOG_ARCHIVE_DEST_1= ‘LOCATION=/arch1/boston/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=boston’
LOG_ARCHIVE_DEST_2= ‘SERVICE=chicago LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=chicago’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=chicago
FAL_CLIENT=boston

==========================================================
===============================================
==========================================================
===============================================

Oracle Performance Tuning


#####################
Application user is complaining the database is slow.How would you find the
performance issue of SQL queries?
High performance is common expectation for end user, in fact the database is never
slow or fast in most of the case session connected to the database slow down when
they receives unexpected hit. Thus to solve this issue you need to find those
unexpected hit. To know exactly what the session is doing join your query v$session
with v$session_wait.
SELECT NVL(s.username,’(oracle)’) as
username,s.sid,s.serial#,sw.event,sw.wait_time, sw.seconds_in_wait, sw.state
FROM v$session_wait sw,v$session s
WHERE s.sid=sw.sid and s.username= ‘&username’ORDER BY sw.seconds_in_wait
DESC;

1.Check the events that are waiting for something.


2.Try to find out the objects locks for that particular session.
3.Locking is not only the cause to effects the performance. Disk I/O contention is
another case. When a session retrieves data from the database datafiles on disk to the
buffer cache, it has to wait until the disk sends the data. The wait event shows up for
the session as “db file sequential read” (for index scan) or “db file scattered read” (for
full table scan).When you see the event, you know that the session is waiting for I/O
from the disk to complete. To improve session performance, you have to reduce that
waiting period. The exact step depends on specific situation, but the first technique
“reducing the number of blocks retrieved by a SQL statement” almost always
works.Reduce the number of blocks retrieved by the SQL statement. Examine the
SQL statement to see if it is doing a full-table scan when it should be using an index,
if it is using a wrong index, or if it can be rewritten to reduce the amount of data it
retrieves.
4.Run SQL Tuning Advisor (@$ORACLE_HOME/rdbms/admin/sqltrpt.sql) by
providing SQL_ID as the input for generating the findings and recommendations.
SQL Tuning Advisor seems to be doing logical optimization mainly by checking your
SQL structure and statistics.
SQL Tuning Advisor suggests indexes that might be very useful.
SQL Tuning Advisor suggests query rewrites.
SQL Tuning Advisor suggests SQL profile.

More:
1.Run TOP command in Linux to check CPU usage.
2.Run VMSTAT, SAR, PRSTAT command to get more information on CPU, memory
usage and possible blocking.
3.Enable the trace file before running your queries,then check the trace file using
tkprof create output file.
According to explain plan check the elapsed time for each query,then tune them
respectively.

What is the use of iostat/vmstat/netstat command in Linux?


Iostat – reports on terminal, disk and tape I/O activity.
Vmstat – reports on virtual memory statistics for processes, disk, tape and CPU
activity.
Netstat – reports on the contents of network data structures.

If you are getting high “Busy Buffer waits”, how can you find the reason behind it?
Buffer busy wait means that the queries are waiting for the blocks to be read into the
db cache. There could be the reason when the block may be busy in the cache and
session is waiting for it. It could be undo/data block or segment header wait.
Run the below two query to find out the P1, P2 and P3 of a session causing buffer
busy wait
then after another query by putting the above P1, P2 and P3 values.
SQL> Select p1 “File #”,p2 “Block #”,p3 “Reason Code” from v$session_wait Where
event = ‘buffer busy waits’;
SQL> Select owner, segment_name, segment_type from dba_extents
Where file_id = &P1 and &P2 between block_id and block_id + blocks -1;

What to Look for in AWR Report and STATSPACK Report?


Many DBAs already know how to use STATSPACK but are not always sure what to
check regularly.
Remember to separate OLTP and Batch activity when you run STATSPACK, since
they usually
generate different types of waits. The SQL script “spauto.sql” can be used to run
STATSPACK
every hour on the hour. See the script in
$ORACLE_HOME/rdbms/admin/spauto.sql for more
information (note that JOB_QUEUE_PROCESSES must be set > 0). Since every
system is different,
this is only a general list of things you should regularly check in your STATSPACK
output:
¦ Top 5 wait events (timed events)
¦ Load profile
¦ Instance efficiency hit ratios
¦ Wait events

¦ Latch waits
¦ Top SQL
¦ Instance activity
¦ File I/O and segment statistics
¦ Memory allocation
¦ Buffer waits

What is the difference between DB file sequential read and DB File Scattered Read?
DB file sequential read is associated with index read where as DB File Scattered Read
has to do with full table scan.
The DB file sequential read, reads block into contiguous memory and DB File
scattered read gets from multiple block and scattered them into buffer cache.

Which factors are to be considered for creating index on Table? How to select column
for index?
Creation of index on table depends on size of table, volume of data. If size of table is
large and we need only few data for selecting or in report then we need to create
index. There are some basic reason of selecting column for indexing like cardinality
and frequent usage in where condition of select query. Business rule is also forcing to
create index like primary key, because configuring primary key or unique key
automatically create unique index.
It is important to note that creation of so many indexes would affect the performance
of DML on table because in single transaction should need to perform on various
index segments and table simultaneously.

Is creating index online possible?


YES. You can create and rebuild indexes online. This enables you to update base
tables at the same time you are building or rebuilding indexes on that table. You can
perform DML operations while the index building is taking place, but DDL
operations are not allowed. Parallel execution is not supported when creating or
rebuilding an index online.
CREATE INDEX emp_name ON emp (mgr, emp1, emp2, emp3) ONLINE;

How to recover password in oracle 10g?


You can query with the table user_history$. The password history is store in this
table.

How can you track the password change for a user in oracle?
Oracle only tracks the date that the password will expire based on when it was latest
changed. Thus listing the view DBA_USERS.EXPIRY_DATE and subtracting
PASSWORD_LIFE_TIME you can determine when password was last changed. You
can also check the last password change time directly from the PTIME column in
USER$ table (on which DBA_USERS view is based). But If you have
PASSWORD_REUSE_TIME and/or PASSWORD_REUSE_MAX set in a profile
assigned to a user account then you can reference dictionary table USER_HISTORY$
for when the password was changed for this account.
SELECT user$.NAME, user$.PASSWORD, user$.ptime,
user_history$.password_date
FROM SYS.user_history$, SYS.user$
WHERE user_history$.user# = user$.user#;

What is Secure External password Store (SEPS)?


Through the use of SEPS you can store password credentials for connecting to
database by using a client side oracle wallet, this wallet stores signing credentials.
This feature introduced since oracle 10g. Thus the application code, scheduled job,
scripts no longer needed embedded username and passwords. This reduces risk
because the passwords are no longer exposed and password management policies are
more easily enforced without changing application code whenever username and
password change.
Why we need CASCADE option with DROP USER command whenever dropping a
user and why “DROP USER” commands fails when we don’t use it?
If a user having any object then ‘YES’ in that case you are not able to drop that user
without using CASCADE option. The DROP USER with CASCADE option command
drops user along with its all associated objects. Remember it is a DDL command
after the execution of this command rollback cannot be performed.

What is the difference between Redo,Rollback and Undo?


I find there is always some confusion when talking about Redo, Rollback and Undo.
They all sound like pretty much the same thing or at least pretty close.
Redo: Every Oracle database has a set of (two or more) redo log files. The redo log
records all changes made to data, including both uncommitted and committed
changes. In addition to the online redo logs Oracle also stores archive redo logs. All
redo logs are used in recovery situations.
Rollback: More specifically rollback segments. Rollback segments store the data as it
was before changes were made. This is in contrast to the redo log which is a record of
the insert/update/deletes.
Undo: Rollback segments. They both are really one in the same. Undo data is stored
in the undo tablespace. Undo is helpful in building a read consistent view of data.

You have more than 3 instances running on the Linux server? How can you
determine which shared memory and semaphores are associated with which
instance?
Oradebug is undocumented oracle supplied utility by oracle. The oradebug help
command list the command available with oracle.
SQL>oradebug setmypid
SQL>oradebug ipc
SQL>oradebug tracfile_name

Why drop table is not going into Recycle bin?


If you are using SYS user to drop any table then user’s object will not go to the
recyclebin as there is no recyclebin for SYSTEM tablespace, even we have already
SET recycle bin parameter TRUE.
Select * from v$parameter where name = ‘recyclebin’;
Show parameter recyclebin;

Temp Tablespace is 100% FULL and there is no space available to add datafiles to
increase temp tablespace. What can you do in that case to free up TEMP tablespace?
Try to close some of the idle sessions connected to the database will help you to free
some TEMP space. Otherwise you can also use ‘Alter Tablespace PCTINCREASE 1’
followed by ‘Alter Tablespace PCTINCREASE 0’

What is Row Chaning and Row Migration?


Row Migration:
A row migrates when an update to that row would cause it to not fit on the block
anymore (with all of the other data that exists there currently). A migration means
that the entire row will move and we just leave behind the «forwarding address». So,
the original block just has the rowid of the new block and the entire row is moved.

Row Chaining:
A row is too large to fit into a single database block. For example, if you use a 4KB
blocksize for your database, and you need to insert a row of 8KB into it, Oracle will
use 3 blocks and store the row in pieces.
Some conditions that will cause row chaining are: Tables whose rowsize exceeds the
blocksize. Tables with LONG and LONG RAW columns are prone to having chained
rows. Tables with more then 255 columns will have chained rows as Oracle break
wide tables up into pieces.
So, instead of just having a forwarding address on one block and the data on another
we have data on two or more blocks.

How to find out background processes ?


SQL> select SID,PROGRAM from v$session where TYPE=’BACKGROUND’;
SQL> select name,description from V$bgprocess;

How to findout background processes from OS:


$ ps -ef|grep ora_|grep SID
To Find and Delete bigger size and older files in Linux
–To find out files size more than 5MB
find . -size +5000 -exec ls -ltr {} \;
– To **Remove** files size more than 5MB
find . -size +5000k -exec rm -rf {} \;
–To find out files older than 30days
find . -mtime +30 -exec ls -ltr {} \;
–To find **Remove** files older than 30days
find . -mtime +30 -exec rm -rf {} \;

S-ar putea să vă placă și