Pages

Popular Posts

Powered By Blogger

Saturday, March 18, 2023

SQL server Blocking sessions

 SQL server queries

To check blocking sessions

Dbcc OpenTran will give only newest blocking session not all blocking sessions .

For all blocking sessions below query will give you


SELECT

    [s_tst].[session_id],

    [s_es].[login_name] AS [Login Name],

    DB_NAME (s_tdt.database_id) AS [Database],

    [s_tdt].[database_transaction_begin_time] AS [Begin Time],

    [s_tdt].[database_transaction_log_bytes_used] AS [Log Bytes],

    [s_tdt].[database_transaction_log_bytes_reserved] AS [Log Rsvd],

    [s_est].text AS [Last T-SQL Text],

    [s_eqp].[query_plan] AS [Last Plan]

FROM

    sys.dm_tran_database_transactions [s_tdt]

JOIN

    sys.dm_tran_session_transactions [s_tst]

ON

    [s_tst].[transaction_id] = [s_tdt].[transaction_id]

JOIN

    sys.[dm_exec_sessions] [s_es]

ON

    [s_es].[session_id] = [s_tst].[session_id]

JOIN

    sys.dm_exec_connections [s_ec]

ON

    [s_ec].[session_id] = [s_tst].[session_id]

LEFT OUTER JOIN

    sys.dm_exec_requests [s_er]

ON

    [s_er].[session_id] = [s_tst].[session_id]

CROSS APPLY

    sys.dm_exec_sql_text ([s_ec].[most_recent_sql_handle]) AS [s_est]

OUTER APPLY

    sys.dm_exec_query_plan ([s_er].[plan_handle]) AS [s_eqp]

ORDER BY

    [Begin Time] ASC;

GO

https://oss.menaitechsystems.com/SejelTech/application/hrms/mename/index.php


Thursday, December 13, 2018

DBCA silent database creation.

Why we need silent feature of Database creation using DBCA?
  1. To achieve database creation on non graphical environment.
  2. This point is my environment : As you know SAP installation on Windows not support Oracle RAC on Windows ( those who work on SAP project they well known this matter). To achieve first we need to install SAP using single instance and migrate database from single to RAC.
And another main issue is SAP only support UTF-8 database characterset that you don't find in DBCA graphical database creation mode.
Below is the Command to achive silent database creation in non graphical environment:
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName PIB -sid PIB -sysPassword password123 -systemPassword password123 -sysmanPassword password123 -dbsnmpPassword password123 -emConfiguration NONE -storageType ASM -diskGroupName PIBDATA -datafile Destination PIBDATA,ARCH -datafileJarLocation D:\app\PIB\11.2.0.4\assistants\dbca\templates -nodeinfo proudsapdb01,proudsapdb02 -characterset UTF8 -nationalCharacterSet UTF8 -obfuscatedPasswords false -sampleSchema false -asmSysPassword password123 -totalMemory 20480 -redoLogFileSize 250

Monday, April 10, 2017

Powerful Command !!!

shutdown -i
This windows command is use to shutdown or restart Remote Desktop Server or Machine from your local laptop or Windows Desktop.
In my scenario this help's me to restart Windows server as I connected to a server using Remote Desktop when it hang's and I'm not in Data Centre to restart physically on the server using power on off or restart button.
When you type shutdown -i from cmd it'll open new window in that you'll find 2 main tabs 1. hostname or Ip of the server 2. Shutdown, Startup, Restart. Hope this will help you it might be a single shutdown -i. I believe sharing knowledge is getting knowledge more than helping.
Important Point is You should have Administrator Privilege to execute this command.

Why Resetlogs The Database When You Restore Old Or Restore From Autobackup Or Recreated Controlfile In Oracle?

Question: After creating a controlfile manually without any backup how the database goes to a consistent state? Because the newly created controlfile does not have the scn details as well as checkpoint information that the deleted controlfile had.
Also after restoring the controlfile is it needed to open the database in resetlogs mode? If not why?

Good question

I too was very focusing on this one when I restore controlfile and open the database with resetlogs and I try to open with noresetlogs but no luck.

With this point I clear my doubt and according to my understanding if you recreated controlfile or restore from autobackup the scn and ckpt information is different.

Anyway a control file restored from a backup has an SCN taken at that "remote" time, different compared with those currently available in the datafiles and redo logs and so they have to be resynchronized.

To resynchornized controlfile with redologs and datafiles we need to do resetlogs and you know resetlogs: "RESETLOGS will initialize the logs, reset your log sequence number, and start a new "incarnation" of the database."

Tuesday, March 7, 2017

Instance with status BLOCKED and RMAN-04006, ORA-12528, Instance "testdb", status BLOCKED, has 1 handler(s) for this service...

Instance "testdb", status BLOCKED, has 1 handler(s) for this service...

Instance with status BLOCKED and RMAN-04006, ORA-12528 dont be panic or worry with this error:


Solution: Solution is very simple.

When an instance within open mode: NOMOUNT, 
you see on Listener status the associated instance is listed as follow:
Instance "testdb", status BLOCKED, has 1 handler(s) for this service...
when db will become in open mode you'll not find furhter this error.
..other case, when you use RMAN to duplicate the database and try this connect:
rman target sys/password@source_db auxiliary sys/password@duplicated_db

RMAN-04006: error from auxiliary database:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
Solution here: Don’t try connect auxiliary duplicated_db over listener. 
Try with this:
set oracle_sid=duplicated_db
rman target sys/password@source_db auxiliary /


Monday, February 27, 2017

tns-12560 tns-00530 protocal adapter error windows

error: tns-12560 tns-00530 protocal adapter error on windows server.

solution: I received this error when I put new database entry in listener.ora file and restart listener. Listener throws this error tns-12560 tns-00530 protocal adapter error.

I tried many times with so many changes in listener.ora file but unable to start listener. Finally I get idea to start listener service from windows services , there I get hint. When I try to start services of listener it throws login failed error, it means some one change password of oracle user or Administrator user. 

I changed Administrator password in properties of listener service it resolve error and able to start listener services.

To change password and start listener service: From windows run give services.msc it'll redirect you to services, right click on listener service --> properties --> go to log on tab and change the password.
servicename example : OracleTNSListener

After change password right click on service and click on start to start listener service.

Tuesday, October 4, 2016

After upgrading to Oracle 12c database, I start getting ORA-28040: No matching authentication protocol.

  1. In 12.1, the default value for the SQLNET.ALLOWED_LOGON_VERSION parameter has been updated to 11. This means that database clients using pre-11g JDBC thin drivers cannot authenticate to 12.1 database servers unless theSQLNET.ALLOWED_LOGON_VERSION parameter is set to the old default of 8.
  2. This will cause a 10.2.0.5 Oracle RAC database creation using DBCA to fail with the ORA-28040: No matching authentication protocol error in 12.1 Oracle ASM and Oracle Grid Infrastructure environments.
  3. Workaround: Set SQLNET.ALLOWED_LOGON_VERSION=8 in the oracle/network/admin/sqlnet.ora file.

Sunday, February 17, 2013

Oracle Data Guard: Calculating Network Bandwidth

QUERY:
SELECT DT,
SUM(RB*8/3600000000*1.3) Mbps_REQ_A_DAY,
MIN(RB*8/3600000000*1.3) MIN_Mbps_REQ_AN_HOUR,
MAX(RB*8/3600000000*1.3) MAX_Mbps_REQ_AN_HOUR ,
AVG(RB*8/3600000000*1.3) AVG_Mbps_REQ_AN_HOUR
FROM(
SELECT TRUNC (COMPLETION_TIME) DT,
TO_CHAR (COMPLETION_TIME,’HH24′) HH,
SUM(BLOCKS*BLOCK_SIZE) RB
FROM
V$ARCHIVED_LOG
WHERE COMPLETION_TIME > SYSDATE-5
AND DEST_ID=1
GROUP BY TRUNC(COMPLETION_TIME),
TO_CHAR (COMPLETION_TIME, ‘HH24′)
)
GROUP BY DT
order by DT;



——————————————————————————————–
OUTPUT:
========================================================================
DT        ||MBPS_REQ_A_DAY||MIN_MBPS_REQ_AN_HOUR||MAX_MBPS_REQ_AN_HOUR|| AVG_MBPS_REQ_AN_HOUR
————— ———————— ———————— ———————— ————————
20-JUL-12         1.40667756    .092599751               .757330034            .281335512
21-JUL-12         1.36889367    .092398592               .379794318            .136889367
22-JUL-12          .940478009   .072797412               .104935538            .094047801
23-JUL-12         3.23766921    .02369536                .855787065            .202354325
24-JUL-12         2.82066193    .067503673               .848231765            .176291371
25-JUL-12          .845672903   .045166137               .178660352            .08456729

Tuesday, October 4, 2011

Setup your Oracle Rac using Open Filer...Copy and Paste Post

Install openfiler O/S,it works like NAS and SAN
Install oracle enterprise linux on both rac nodes
Edit hosts file on both nodes and put entries and remove hostname from first line
vi /etc/hosts
172.22.0.175 rac1
172.22.0.176 rac2
172.22.0.178 rac1-vip
172.22.0.179 rac2-vip
172.22.0.177 openfiler
10.0.0.101 rac1-priv
10.0.0.102 rac2-priv
:wq (save and exit)

Oracle group and user add on both nodes
#groupadd dba
#groupadd oinstall
#useradd -c "Oracle software owner" -G dba -g oinstall oracle
#passwd oracle

Both the group and userid same on both rac nodes
issue the below command to check
#cat /etc/group (for groupid)
#cat /etc/passwd (for userid)
if not change this with below commands
#groupadd -g 1001 oinstall
#groupadd -g 1002 dba
#useradd -u 1001 -g 1001 -G 1002 -d /home/oracle -m oracle

setup sysctl.conf file for configuring kernel parameters on both nodes
kernel.shmmax=2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem=250 32000 100 128
fs.file-max=65536

net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack =1
net.ipv4.tcp_window_scaling = 1

sysctl -p

Download and run compat packages according to system 32bit or 64bit on both nodes
compat-gcc-7.3-2.96.128.i386.rpm
compat-gcc-c++-7.3-2.96.128.i386.rpm
compat-libcwait-2.1-1.i386.rpm
compat-libstdc++-7.3-2.96.128.i386.rpm
compat-libstdc++-devel-7.3-2.96.128.i386.rpm
compat-oracle-rhel4-1.0-5.i386.rpm
issue below command to run compat packages on both nodes
#rpm -ivh compat* --force --aid

Run below package on both nodes to check post installation of oracle RAC using cluvfy later,this package u will get in oracle clusterware software
#rpm -ivh cvuqdisk-1.0.6-1.rpm --force --aid

Create user-equivalence on both nodes
#su - oracle
$ssh-keygen -t rsa
enter
enter
enter
$cd .ssh/
$cat id_rsa.pub >>authorized_keys
$scp authorized_keys to node 2 on same location example:/home/oracle/.ssh
like this create user-equivalence on 2nd node

Check the time on both nodes it should be same if not give below command to make time synchronise
#date 102812542009.35 (the time format is like this monthdatehourminyear.second)

After installing openfiler you get the url like this https://openfiler:446/ or https://172.22.0.177:446/
Copy and paste this url to open storage graphically
First step click on system and configure network access configuration
hostname ipaddress subnetmask share
rac1 172.22.0.175 255.255.0.0 share
rac2 172.22.0.176 255.255.0.0 share
and click on update

Second step click on services and modify
servicename status modification
iscsi disable enable
click on enable in modification column to make status enable
like this enable all services except UPS server

Third step click on block devices
click on edit disk
/dev/hdc
now you will get new screen create primary and logical space
mode
primary extended create
click on create
again you will get
mode
logical physical create
click on create

Fourth step click on volume groups
give volume group name
click on add volume group
click on create

Fifth step click on add volume
give volume name
give volume Description
give Required space(MB)
give File system iscsi
click on create

Sixth step click on ISCSI targets
click on Target IQN and click on add
click on LAN mapping and click on map
click on Network ACL and click allow on access column and finally click on update to complete configuration

Add parameter on both nodes in iscsi.conf file
#vi /etc/iscsi.conf
add this line
DiscoveryAddress=openfiler

After configuration openfiler and add line in iscsi.conf you will get sharing disk on both nodes issue below command as a root user to check

#fdisk -l
(the output shows sharing disk as contains not a valid partition)

Partitions creating on sharing disk

#service iscsi restart
#fdisk -l
#fdisk /dev/sdb
p (type p to print partition)
n (to create new partition)
p (to create primary partition)
1
enter
enter
+2048m (give size and enter this partition is for ocr information)
n
p
2
enter
enter
+2048m (give size and enter this partition is for voting disk information)
n
p
3
enter
enter
+14000M (give size and enter this partition is for data)
n
e (this is extended partition)
enter
enter
n
enter
+25000m (give full remaining space is for data)
:w (save and exit)
#partprobe /dev/sdb (is for update kernel)
#fdisk -l (here you will get mount points)
#mkfs.ext3 /dev/sdb1 (make ocr and voting disk in ext3 format)
#mkfs.ext3 /dev/sdb2

Give this entry and reboot system once to create logical disk on follwing location on both nodes)
#vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2
/dev/raw/raw3 /dev/sdb3
/dev/raw/raw4 /dev/sdb4
:wq
#services iscsi restart
#services rawdevices restart
#chown root.oinstall /dev/raw/raw1 (give permissions to all logical devices for raw1 give root.oinstall because here information of ocr)
#chown oracle.oinstall /dev/raw/raw2
#chown oracle.oinstall /dev/raw/raw3
#chown oracle.oinstall /dev/raw/raw4

login as oracle user and check pre and post installation using cluvfy
$/home/oracle/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose (for pre installation)
$/home/oracle/clusterware/cluvfy/runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose (for post installation)
output shows preinstallation checking successfully completed so we can continue installing clusterware software,if it show unsuccessfully check the errors.
If u get error like user equivalence failed again create keygen and copy on both nodes.If u get error like couldn't find a suitable interfaces for vips.We
can ignore this error and create vip manually using vipca.This error gets due to:-
CVU checks for the following criteria before considering set of interface:
-the interfaces should have the same name across nodes.
-they should belong to the same subnet and same netmask
-they should be on public (and routable) network
Oftentimes,the interfaces planned for the vip's are configured on 10.*.m172.16.*,172.31.*or192.168.* networks which are not routable.Hence CVU does not
consider them as suitable for vip's.If name of the available interfaces satistfy this criteria,cvu complain "error-couldn't find a suitable set of interfaces
for vip's.It is worth nothing that,such addresses will actually work if things are public but cvu just things they're private and reports accordingly.To
invoke vipca go to $ORA_CRS_HOME/bin and run the following command as root user after *.sh scripts are run on both nodes at cluster software installation.
#./vipca
1)click on next button
2)select eth0 and click on next button.
3)Type in the IP alias name for the vip and IP address and click on next
4)lastly click on finish
This will configure startup the vip.Now you can go back to the first screen (means last screen of clusterware software) and click ok.
http://www.idevelopment.into/data/Oracle/DBA_tips/Oracle10gRAC/CLUSTER_18.shtml

Installation clusterware software:
$cd /home/oracle/cluster/
$./runInstaller
u will get window like specify cluster configuration
click on add
public node name (give in bracket(rac2))
private node name (give in bracket(rac2-priv))
virtual host name (give in bracket(rac2-vip))
and click on ok to continue
u will get next window like specify oracle cluster registry(ocr) location
select on external redundancy and on next line give location
specify ocr location /dev/raw/raw1 and click on next to continue
u will get next window specify voting disk location
select on external redundancy and on next line give location
voting disk location /dev/raw/raw2 and click on next to continue
u will get next window click on install to start installation
At the end u will get window to run root.sh and Orainstroot.sh on both nodes with root user
After running this scripts if u r getting error in pre requistion like couldn't find a suitable interfaces for vip's so configure vip using vipca it resides
in clusterware software bin folder and configure vip's as explain above in this note.
Finally u will get window installation completed successfully
OCR :- keeps information of number of rac nodes
Voting Disk :- Cluster processes vote we are alive.It ups another nodes background process if existing nodes fails.

Installation of ASM:
Using normal 10g software install asm
$/home/oracle/oracle10gsoftware/runInstaller
u will get first window select enterprise edition and click on next
u will get second window specify the location of asm to install ex:/home/oracle/product/10.2/asm
u will get next window specify hardware cluster installation mode
select cluster installation,click on rac2 and finally click on next to continue
u will get next window select configure automatic storage management(ASM)
give password specify asm sys password (sys)
give conform password (sys) and finally click on next to continue
u will get next window select on external
on same window select candidates and also select 1st and 2nd point and click on next to continue
u will get next window to run root.sh on both nodes as root user
finally u will get installation completed successfully click on exit to complete installation

Creating ASM database
$export PATH
$export CLASS_PATH
$export LD_LIBRARY
$dbca if not works go to $ORACLE_ASM/bin and run
u will get 1st window select cluset Real Application and click on next
u will get next window select configure automatic storage management
the output shows rac1 and rac2 on same window and click on select all to continue
u will get next window give password:sys and click on next to continue
u will get next window in that u will get by default Disk group name DATA
in the same window select external
in the same window select show candidates it will give output of third and fourth logical derives like /dev/raw/raw3 /dev/raw/raw4
By default i think selected if not select on both and click on ok to continue
u will get next window click on finish to complete asm instance creation.

Installation of Normal Oracle 10g software
$/home/oracle/oracle10gsoftware/runInstaller
u will get window Specify Hardware Cluster Installation Mode select on cluster installation
in the same window u will get rac1 and rac2 by default it is selected if not select both rac1 and rac2 and click on select all to continue
u will get next window click on next to continue
u will get next window click on next to continue
u will get next window select configuration option select install database software only and click on next to continue
u will get next window click on install to complete installations

Creation of database
$export ORACLE_HOME=/home/oracle/product/10.2/db_1
$export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
$dbca
u will get first window select oracle RAC and click on next to continue
u will get next window select on create database and click on next ot continue
u will get next window in that u will get by default rac1 and rac2 and click on select all to continue
u will get next window select general purpose and click on next to continue
u will get next window write dbname and click on next to continue
u will get next window click on next to continue
u will get next window give password and click on next to continue
u will get next window select automatic storage management and click on next to continue
u will get next window specify sys password specific to asm give password and click on next to continue
u will get next window select DATA and click on next to continue
u will get next window select on use common location +DATA and click on next to continue
u will get final window db creation completed successfully
u will get prod1 instance on rac1 and prod2 instance name on rac2
u will get dbname prod on both nodes
put the instance entries in /etc/oratab on both nodes
for ex:prod1:/home/oracle/product/10.2/db_1

to check status of resources
#/home/oracle/product/10.2/crs/bin/crs_stat -t

to stop all resources
#/home/oracle/product/10.2/crs/bin/crs_stop -all

to check daemons
#/home/oracle/product/10.2/crs/bin/crsctl check crs

to stop daemons
#/home/oracle/product/10.2/crs/bin/crsctl stop crs

to stop services
#service iscsi stop
#service rawdevices stop

to start services
#service iscsi start
#service rawdevices start
#chown root.oinstall /dev/raw/raw1
#chown oracle.oinstall /dev/raw/raw2
#chown oracle.oinstall /dev/raw/raw3
#chown oracle.oinstall /dev/raw/raw4

vi editor to change from existing to new
:%s/stop/start/g or
:1,$s /stop/start

To uninstall RAC
1)stop crs on both nodes
2)#/home/oracle/product/10.2/crs/install/rootdelete.sh local nosharedvar nosharedhome on bothnodes
3)rm -rf /etc/ora* on both nodes
4)rm -rf /var/tmp/.oracle on both nodes
5)rm -rf /crs /db_1 /asm
6)rm -rf /etc/inittab.no*
7)rm -rf /home/oracle/oraInventory
8)ps -ef|grep pmon
crs
init.d
oracle
$kill -9
9)dd if=/dev/o of=/dev/raw/raw1 bs=8192 count=5000
10)remove if available .crs .cssd .ocmd in /etc/rco.d

To check performance of i/o harddisk.
$dd if=/dev/zero of=/pyrosan/eastdata/santest bs=1024k count=10000 (it copied 10gb file)

Thursday, December 30, 2010

Analyze Statement and Transferring Statistics.

Analyze Statement

The ANALYZE statement can be used to gather statistics for a specific table, index or cluster. The statistics can be computed exactly, or estimated based on a specific number of rows, or a percentage of rows:

ANALYZE TABLE employees COMPUTE STATISTICS;
ANALYZE INDEX employees_pk COMPUTE STATISTICS;

ANALYZE TABLE employees ESTIMATE STATISTICS SAMPLE 100 ROWS;
ANALYZE TABLE employees ESTIMATE STATISTICS SAMPLE 15 PERCENT;



DBMS_STATS

The DBMS_STATS package was introduced in Oracle 8i and is Oracles preferred method of gathering object statistics. Oracle list a number of benefits to using it including parallel execution, long term storage of statistics and transfer of statistics between servers. Once again, it follows a similar format to the other methods:

EXEC DBMS_STATS.gather_database_stats;
EXEC DBMS_STATS.gather_database_stats(estimate_percent => 15);

EXEC DBMS_STATS.gather_schema_stats('SCOTT');
EXEC DBMS_STATS.gather_schema_stats('SCOTT', estimate_percent => 15);

EXEC DBMS_STATS.gather_table_stats('SCOTT', 'EMPLOYEES');
EXEC DBMS_STATS.gather_table_stats('SCOTT', 'EMPLOYEES', estimate_percent => 15);

EXEC DBMS_STATS.gather_index_stats('SCOTT', 'EMPLOYEES_PK');
EXEC DBMS_STATS.gather_index_stats('SCOTT', 'EMPLOYEES_PK', estimate_percent => 15);
This package also gives you the ability to delete statistics:

EXEC DBMS_STATS.delete_database_stats;
EXEC DBMS_STATS.delete_schema_stats('SCOTT');
EXEC DBMS_STATS.delete_table_stats('SCOTT', 'EMPLOYEES');
EXEC DBMS_STATS.delete_index_stats('SCOTT', 'EMPLOYEES_PK');






Transfering Stats
=================

First the statistics must be collected into a statistics table. In the following examples the statistics for the APPS user are collected into a new table, STATS_TABLE, which is owned by scott:


SQL> EXEC DBMS_STATS.create_stat_table('SCOTT','STATS_TABLE');
SQL> EXEC DBMS_STATS.export_schema_stats('APPS','STATS_TABLE',NULL,'SCOTT');

This table can then be transfered to another server using your preferred method (Export/Import ) and the stats imported into the data dictionary as follows:

SQL> EXEC DBMS_STATS.import_schema_stats('APPS','STATS_TABLE',NULL,'SCOTT');
SQL> EXEC DBMS_STATS.drop_stat_table('APPS','STATS_TABLE');

TSM for ORACLE Installation

TSM for ORACLE Installation :-

On TSM server :-

1. Create Policy domain and backup copy group ( vere=1, verd=0, retain extra=0, retain only=0)
2. Register TDP for Oracle node

On TSM client :-

1. Install TDP for oracle fileset

2. Configure dsm.opt file in /usr/tivoli/tsm/client/api/bin64/dsm.opt
example :-
SErvername tsmserv (provide tsm server name)

3. Configure dsm.sys file in /usr/tivoli/tsm/client/api/bin64/dsm.sys
example :-
SErvername tsmserv (provide tsm server name)
COMMmethod TCPip
TCPPort 1500
TCPServeraddress 192.168.13.104 (provide tsm server IP)
compression no
errorlogname /tmp/dsmerror_erpdev_ora.log (provide error log path)
nodename erpdev_ora (provide node name)

4. Configure tdpo.opt file in /usr/tivoli/tsm/client/oracle/bin64/tdpo.opt
example :-
DSMI_ORC_CONFIG /usr/tivoli/tsm/client/api/bin64/dsm.opt (provide option file path)
DSMI_LOG /tmp/ (provide error log directory)

TDPO_FS orc9_db
TDPO_NODE erpdev_ora (provide node name)
*TDPO_OWNER
*TDPO_PSWDPATH /usr/tivoli/tsm/client/oracle/bin64

*TDPO_DATE_FMT 1
*TDPO_NUM_FMT 1
*TDPO_TIME_FMT 1

*TDPO_MGMT_CLASS_2 mgmtclass2
*TDPO_MGMT_CLASS_3 mgmtclass3
*TDPO_MGMT_CLASS_4 mgmtclass4

5. Go to /usr/tivoli/tsm/client/oracle/bin64 and run
./tdpoconf password

6. Put the node password and confirm with same password and you can oracle environment by giving ./tdpoconf showenv in the same path

7. Then give permission to
dsmerror_erpprod_ora.log in /tmp (path of error log file)

8. Link the "TSM for DB" library file within oracle
-Shutdown oracle instance
-Change directory to oracle's lib directory
# cd /
# cd lib
-Check presence of original libobk.a file
# ls -l libobk.a
-If found rename it
# ln libobk.a libobk.a.org
-Link to TSM library
# ln –s /usr/lib/libobk64.a libobk.a
-Start oracle instance

9. Oracle administrator role is to create RMAN script for backup and set environment variable path for tdpo.opt file as " /usr/tivoli/tsm/client/oracle/bin64/tdpo.opt"

ora-01555 snapshot too old error.

Now that we understand why the ORA-1555 occurs and some aspects about how they can occur we need to examine the following:

How can we logically determine and resolve what has occurred to cause the ORA-1555?

1) Determine if UNDO_MANAGEMENT is MANUAL or AUTO

If set to MANUAL, it is best to move to AUM. If it is not feasible to switch to AUM see

Note 69464.1 Rollback Segment Configuration & Tips

to attempt to tune around the ORA-1555 using V$ROLLSTAT

If set to AUTO, proceed to #2

2) Gather the basic data

a) Acquire both the error message from the user / client ... and the message in the alert log

User / Client session example:

ORA-01555: snapshot too old: rollback segment number 9 with name "_SYSSMU1$" too small

Alert log example

ORA-01555 caused by SQL statement below (Query Duration=9999 sec, SCN:0x000.008a7c2d)

b) Determine the QUERY DURATION from the message in the alert log

From our example above ... this would be 9999

c) Determine the undo segment name from the user / client message

From our example above ... this would be _SYSSMU1$

d) Determine the UNDO_RETENTION of the undo tablespace

show parameter undo_retention

3) Determine if the ORA-1555 is occurring with an UNDO or a LOB segment

If the undo segment name is null ...

ORA-01555: snapshot too old: rollback segment number with name "" too small

or the undo segment is unknown

ORA-01555: snapshot too old: rollback segment number # with name "???" too small

then this means this is a read consistent failure on a LOB segment

If the segment_name or the undo segment is known the error is occurring with an UNDO segment.

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

What to do if an ORA-1555 is occurring with an UNDO segment
-------------------------------------------------------------------------------------------------

1) QUERY DURATION > UNDO_RETENTION

There are no guarantees that read consistency can be maintained after the transaction slot for the
committed row has expired (exceeded UNDO_RETENTION)

Why would one think that the transaction slot's time has exceeded UNDO_RETENTION?

Lets answer this with an example

If UNDO_RETENTION = 900 seconds ... but our QUERY DURATION is 2000 seconds ...

This says that our query has most likely encountered a row that was committed more than 900
seconds ago ... and has been overwritten as we KNOW that the transaction slot being examined
no longer matches the row we are looking for

The reason we say "most likely" is that it is possible that an unexpired committed transaction slot was
overwritten due to either space pressure on the undo segment or this is a bug

SOLUTION:

The best solution is to tune the query can to reduce its duration. If that cannot be done then increase
UNDO_RETENTION based on QUERY DURATION to allow it to protect the committed
transaction slots for a longer period of time

NOTE: Increasing UNDO_RETENTION requires additional space in the UNDO tablespace. Make
sure to accommodate for this space. One method of doing this is to set AUTOEXTEND on one or
more of the UNDO tablespace datafiles for a period of time to allow for the increased space. Once the
size has stabilized, AUTOEXTEND can be removed.

See the solution for #2 below for more options

2) QUERY DURATION <= UNDO_RETENTION

This case is most often due to the UNDO tablespace becoming full sometime during the time when the
query was running

How do we tell if the UNDO tablespace has become full during the query?

Examine V$UNDOSTAT.UNXPSTEALCNT for the period while the query that generated the
ORA-1555 occurred.

This column shows committed transaction slots that have not exceeded UNDO_RETENTION but
were overwritten due to space pressure on the undo tablespace (IE became full).

If UNEXPSTEACNT > 0 for the time period during which the query was running then this shows
that the undo tablespace was too small to be able to maintain UNDO_RETENTION. Unexpired
blocks were over written, thus ending read consistency for those blocks for that time period.
set pagesize 25
set linesize 120

select inst_id,
to_char(begin_time,'MM/DD/YYYY HH24:MI') begin_time,
UNXPSTEALCNT "# Unexpired|Stolen",
EXPSTEALCNT "# Expired|Reused",
SSOLDERRCNT "ORA-1555|Error",
NOSPACEERRCNT "Out-Of-space|Error",
MAXQUERYLEN "Max Query|Length"
from gv$undostat
where begin_time between
to_date('','MM/DD/YYYY HH24:MI:SS')
and
to_date('

Tuesday, September 14, 2010

Points_2_Resolve the ORA-12705 error

Below are the points to fix the issue on your oracle client machine.

Cause: There are two possible causes: Either an attempt was made to issue an ALTER SESSION statement with an invalid NLS parameter or value; or the NLS_LANG environment variable contains an invalid language, territory, or character set.

Action: Check the syntax of the ALTER SESSION command and the NLS parameter, correct the syntax and retry the statement, or specify correct values in the NLS_LANG environment variable.

Points to fix the issue:


1.simply set it with the below command
C:>set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252. (if not fix,try with below procedure)


2.From start-->Run--->Type regedit--->HKEY_LOCAL_MACHINE-->SOFTWARE-->ORACLE-->HOME folder has a key
NLS_LANG as AMERICAN_AMERICA.WE8MSWIN1252.
change to AMERICAN_AMERICA.WE8ISO8859P15 may fix your connectivity issue. (Permanent fix, even if not fix try with below procedure)


3.Try this...
check if exist into windows registry (regedit) the oracle_home
Example
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
ORACLE_HOME= (for ex: D:\Appls\Oracle)
if not create one.
and add the path into the windows variable PATH adding bin folder
example D:\Appls\Oracle\bin
Control Panel -> System -> Advanced Options -> Environment variables - > system variables -> path


4. Still not resolve
Just go regedit -->Oracle Home--and delete the NLS entries from there..You should be fine.


5. Final point if not solve with above points, uninstall and install Oracle client software.

Sunday, August 29, 2010

WHEN TO REORGANIZE TABLES AND REBUILD INDEXES.

When to reorganize tables and rebuild indexes:

Table fragmentation:When rows are not stored contiguously or if rows are split auto more than one block,performance decrease because these rows required additional block accesses.
Note that table fragmentation is different from file fragmentation.When a lot of DML operations are applied on a table,the table will become fragmentation because DML does not release free space from the table below the HWM.
HWM is an indicator of used blocks in the database.Blocks below the high water mark (used blocks) have at least once contained data.This data might have been deleted.Since oracle knows that blocks before the high water mark didn't have data,it only reads block up to the high water when doing a full table scan.
*DDL statements always resets the HWM.

Table size (with fragmentation)
Sql>exec dbms_stat.gather_table_stats('SCOTT','BIG1');
Sql>select table_name,round((blocks*8),2)||'kb' "size" from user_tables where table_name='BIG1'
output of the command:
table_name size
BIG1 72952 kb

Actual data in table
Sql>select table_name,round((num_rows*avg_row_len/1024),||'kb' "size" from user_tables where table_name='BIG1';
output
table_name size
BIG1 30604.2 kb

72952-30604=42348 kb is wasted space in table
The difference between two values is 60% and pct free 10%(default)-so,the table has 50% extra space which is wasted becuase there is no data.
How to reset HWM/remove fragmentation ?
4 options:
1)alter table .. move to another tablespace.
2)export,truncate or drop import.
3)CTAS method
4)dbms_redifinition

To check indexes
sql>select status,index_name from user_indexes where table_name='BIG1';
output
status index_name
unusable bigidx
sql>alter index bigidx rebuild;
select del_lf_rows*100/decode(lf_rows,0,1,lf_rows) from index_stats where name='';
you may decide that index should be rebuilt if more than 20% of its rows are deleted.

How can you determine if an index needs to be dropped and rebuilt?
Level: Intermediate
Expected answer: Run the ANALYZE INDEX command on the index to validate its structure and then calculate the ratio of LF_BLK_LEN/LF_BLK_LEN+BR_BLK_LEN and if it isn?t near 1.0 (i.e. greater than 0.7 or so) then the index should be rebuilt. Or if the ratio
BR_BLK_LEN/ LF_BLK_LEN+BR_BLK_LEN is nearing 0.3

To check the compress or not compress mode:
Sql>select compression from dba_tables where table_name in <'tablename'>;
If some times show actual size is greater than the table size it is due to in compress mode of table
If table is compress make this to no compress mode
Sql>alter table move nocompress;

MYSQL_DBA_BEGINNER.

MYSQL DOCUMENTATION

To install Mysql
#rpm -ivh mysql-server-community_x86-64.rpm

After installing immediately give password
#/usr/bin/mysqladmin -u root -p password "root123"

To start and stop mysql server

#/etc/init.d/mysql start
#/etc/init.d/mysql stop

To connect mysql
#mysql -u root -p

To check databases and use database
Mysql>show databases;
Mysql>use ;

To check tables and its contents and its use
Mysql>show tables;
Mysql>desc ;
Mysql>select * from ;

To create user
Mysql>create user 'khan'@'localhost' identified by 'khan';

To give Privileges
Mysql>grant select,insert,update,delete on *.* to 'khan';

To drop user
Mysql>drop user 'khan'@'localhost';

To check which database to connected
Mysql>select database ();

To check which user is connected
Mysql>select user ();

To check how many users have
Mysql>select distinct grantee from user_privileges;

Global privileges are administrative or apply to all databases on a given server. To assign global privileges, use ON *.* syntax:

GRANT ALL ON *.* TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';

Only two rows information need give limit 2 in your query

In mysql by default database create in /var/lib/mysql

To create table
Mysql>create table oolaala(name varchar(20));

To check mysql version
#rpm -qa|grep -i mysql

Try this after relocating files if errors getting
#setsebool -p mysqld_disable_trans=1

Note:If not available my.cnf file or removed or '/home/oracle/data/three/redo01a.log' size 20m,lost we can copy the same file available in /usr/share/mysql (my_large.cnf)

MYISAM INNODB (engines of mysql)

By default tables create in MYISAM

To create tables in INNODB
set in my.cnf (uncomment#innodb parameter)

Mysql>create table pepsi(name varchar(10)) engine=innodb;

MYISAM is for OLAP and INNODB is for OLTP

To check connection errors or any errors
#/var/log/messages or /var/log/sys/logs of /var/lib/mysql/mysqld.log

How to rename and relocate on datafiles
1.Stop service
2.copy data directory on another mount point
3.vi /etc/my.cnf
#The MySQL server
[mysqld]
datadir=/home/mysql/data (five here different mount point)
user=mysql

To migrate from Oracle to Mysql
1.PhpAdmin tool use or
2.$mysql -u -p < abc.sql 3.mysql>source abc.sql

It helps to migrate from oracle to mysql

To create tables in oracle
set echo off
set heading off
spool t1_insert.txt
create table t1 (c1 number, c2 varchar2(10), c3 date);
insert into t1 values (1,'one', sysdate);
insert into t1 values (2,'two', sysdate);
commit;
select 'insert into t1 (c1, c2, c3) values (' || c1 || ', ' || c2 || ', ' || c3 || ');' from t1;
select 'insert into t1 (c1, c2, c3) values (' || c1 || ', ''' || c2 || ''', ''' || to_char(c3,'yyyy-mm-dd hh24:mi:ss') || ''');' from t1;
spool off

To create tables in Mysql
create table t1 (c1 int, c2 varchar(10), c3 datetime);
select '' || c1 || ', ''' || c2 || ''', ''' || to_char(c3,'yyyy-mm-dd hh24:mi:ss') || '''' from t1;

make t1_insert.txt to t1_insert.sql

to migrate
mysql>source t1_insert.sql

To take logical backup dump of mysql

#mysqldump -uroot -padmin --all-database >testmysql.sql
it generates file that we can read for import on mysql or oracle. For oracle change the data format and import by running sql file.

site to download mysql software
http://dev.mysql.com/

Sunday, June 6, 2010

ORACLE_11G_NEW_FEATURES

ORACLE 11G NEW FEATURES:

Installation, Database Upgrades and Change Management
Installation New Features Support
Role and Privilege Changes
Deprecated Components
New Initialization Parameters Affecting Database Creation
DBCA Enhancements
Upgrading to Oracle Database 11g
Database Replay
The SQL Performance Analyzer
Patching in Oracle Database Control
Database Diagnosis and Repair
Introducing Automatic Diagnostic Repository (ADR)
Configuring the ADR
Using adrci Tool
Using The Support Workbench in the OEM
Database Health Monitor
Data Recovery Advisor
SQL Test Case Builder
Data Block Corruption Parameters
Database Administration
Automatic Memory Management
Automatic Maintenance Tasks
Oracle Flashback-Related New Features
LogMiner Interface in Oracle Enterprise Manager
Oracle Flashback Transaction Backout
Flashback Data Archive
Virtual Columns
New Data Partitioning Schemes
DDL Lock Timeout
Explicit Locking of Tables
Invisible Indexes
Read-Only Tables
Shrinking Temporary Tablespaces and Tempfiles
Creating an Initialization Parameter File from Memory
Restore Point Enhancements
Database Resident Connection Pooling
Comparing and Synchronizing Database Objects
SQL*Plus New Features

Oracle 11g New Features for Administrators:-

Online Application Maintenance
Oracle Advanced Compression Option
Oracle Scheduler New Features
Lightweight Jobs
Remote External Jobs
Finer-grained Dependency Management
Enhancements in Oracle Database Resource Manager
Performance Tuning
PL/SQL Native Compilation
Server Result Cache
Client Side Result Cache
Enhanced Oracle Process Monitoring
Subprogram Inlining
SQL Tuning Automation
SQL Access Advisor Enhancements
Changing Statistics Preferences
Enhanced Statistics Maintenance
SQL Plan Management
ADDM New Features
AWR New Features
Setting Metric Thresholds for Baselines
Performance-Related Changes in Database Control
Miscellaneous New Performance Tuning Features
Real-Time SQL Monitoring
Adaptive Cursor Sharing
Database Security
Stronger Password Hash Algorithm
Security Out of the Box
Anti Network Attacks Parameters
Tablespace Encryption
Fine-Grained Access Control for UTL_* Packages
Further Security New Features
Backup and Recovery New Features
Enhanced Block Media Recovery
RMAN Substitution Variables
New RMAN Configuration Parameters
The Multisection Backups
Creating Archival Backups
VALIDATE Command
Configuring an Archived Redo Log Deletion Policy

Oracle 11g New Features for Administrators:-

Active Database Duplication
Importing and Moving Recovery Catalogs
Virtual Private Catalogs
Miscellaneous New Features in RMAN
Data Pump Utilities
Compression Enhancement
Encryption Enhancements
Reusing a Dump File
Remapping Data
Renaming Tables During Export or Import
Data Pump and Partitioned Tables
Ignoring Nondeferred Constraints
External Tables Based on Data Pump Driver
Enhancement in the Transportable Parameter
Automatic Storage Management (ASM)
SYSASM Privilege and OSASM Group
Upgrading ASM using DBUA
Upgrading ASM Manually
ASM Restricted Mode
Diskgroup Attributes
Checking Diskgroup
asmcmd Utility Commands
Fast Rebalance
The FORCE option with Drop Diskgroup Command
Miscellaneous ASM New Features
PL/SQL New Features
PL/SQL New Features
Data Warehousing
SecureFiles
Accessing a LOB Using SQL and PL/SQL
Online Redefinition
Partition Change Tracking (PCT)
Generating SQL Crosstab Report using PIVOT Operator
Partitioning Improvements

Below Topics Not covered:-

Oracle Streams
Data Guard
Oracle RAC
Oracle XML DB

Wednesday, December 23, 2009

PARALLEL PROCESS

PARALLEL PROCESS:

DEFINITION - In computers, parallel processing is the processing of program instructions by dividing them among multiple processors with the objective of running a program in less time. In the earliest computers, only one program ran at a time. A computation-intensive program that took one hour to run and a tape copying program that took one hour to run would take a total of two hours to run. An early form of parallel processing allowed the interleaved execution of both programs together. The computer would start an I/O operation, and while it was waiting for the operation to complete, it would execute the processor-intensive program. The total execution time for the two jobs would be a little over one hour.


The Oracle Parallel Query Option

Introduced in later versions of Oracle7 the parallel query option (PQO) allows multiple processes to simultaneously fetch records and perform sorting operations. This parallelization of operations can lead to impressive speed improvements in a properly set up parallel environment.

The most important item to specify in a parallel environment is the number of parallel query slaves. Too few and you don’t get the full benefits, too many and they end up competing with each other for resources. Of course parallel operations are of little or no benefit if your system doesn’t have parallel processors and your tables aren’t spread across multiple disks in a stripe set or partitioned. Along with the number of parallel query slaves the degree of parallel (DOP) for the tables and indexes needs to be set properly.

The maximum number of parallel query slaves should generally be set to at least twice the number of CPUs or to twice the number of disks that he object was spread across. The DOP can be determined by forcing a full table scan for tables (use a where 1=2 in a select count(*) from the table) and then timing the response for different DOP settings. These numbers are then adjusted up or down depending on performance.

Parallel query settings

There are several initialization parameters that pertain to parallel query:

parallel_adaptive_multi_user

TRUE or FALSE, defaults to FALSE, when set to TRUE, enables an adaptive algorithm designed to improve performance in multi-user environments that use Parallel Query(PQ). It does this by automatically reducing the requested degree of parallelism based on the current number of active PQ users on the system. The effective degree of parallelism will be based on the degree of parallelism from the table or hint divided by the total number of PQ users. The algorithm assumes that the degree of parallelism provided has been tuned for optimal performance in a single user environment.

At Oracle Openworld 2007, Oracle recommends never to turn-on the parallel_adaptive_multi_user parameter.

optimizer_percent_parallel

Specifies the amount of parallelism that the optimizer uses in its cost functions. The default of 0 means that the optimizer chooses the best serial plan. A value of 100 means that the optimizer uses each object's degree of parallelism in computing the cost of a full table scan operation. Low values favor indexes, and high values favor table scans.

Cost-based optimization will always be used for any query that references an object with a nonzero degree of parallelism. For such queries a RULE hint or optimizer mode or goal will be ignored. Use of a FIRST_ROWS hint or optimizer mode will override a nonzero setting of OPTIMIZER_PERCENT_PARALLEL.

parallel_min_percent

This specifies the minimum percent of threads required for parallel query. Setting this parameter ensures that a parallel query will not be executed sequentially if adequate resources are not available. The default value of 0 means that this parameter is not used.

If too few query slaves are available, an error message is displayed and the query is not executed. Consider the following settings:

PARALLEL_MIN_PERCENT = 50
PARALLEL_MIN_SERVERS = 5
PARALLEL_MAX_SERVERS = 10

In a system with 20 instances up and running, the system would have a maximum of 200 query slaves available. If 190 slaves are already in use and a new user wants to run a query with 40 slaves (for example, degree 2 instances 20), an error message would be returned because 20 instances (that is, 50% of 40) are not available.

parallel_min_servers

This specifies the minimum number of query server processes for an instance. This is also the number of query server processes Oracle creates when the instance is started.

parallel_max_servers

Parallel_max_servers specifies the maximum number of parallel query servers or parallel recovery processes for an instance. Oracle will increase the number of query servers as demand requires from the number created at instance startup up to this value. The same value should be used for all instances in a parallel server environment.

Proper setting of the PARALLEL_MAX_SERVERS parameter ensures that the number of query servers in use will not cause a memory resource shortage during periods of peak database use.

If PARALLEL_MAX_SERVERS is set too low, some queries may not have a query server available to them during query processing.

Setting PARALLEL_MAX_SERVERS too high leads to memory resource shortages during peak periods, which can degrade performance. For each instance to which you do not want to apply the parallel query option, set this initialization parameter to zero.

If you have reached the limit of PARALLEL_MAX_SERVERS on an instance and you attempt to query a GV$ view, one additional parallel server process will be spawned for this purpose. This extra process will serve any subsequent GV$ queries until expiration of the PARALLEL_SERVER_IDLE_TIME, at which point the process will terminate. The extra process is not available for any parallel operation other than GV$ queries.

Note that if PARALLEL_MAX_SERVERS is set to zero for an instance, then no additional parallel server process will be allocated to accommodate a GV$ query.

parallel_server_idle_time

Specifies the amount of idle time after which Oracle terminates a process for parallel operations (parallel query, parallel DML, or parallel DDL). This value is expressed in minutes. The parameter must be set to 1 or greater for the query processes to terminate. 0 means the processes are never terminated.

parallel_execution_message_size


Specifies the size of messages for parallel execution (Parallel Query, PDML, Parallel Recovery, replication). The default value should be adequate for most applications. Typical values are 2148 or 4096 bytes. Larger values would require a larger shared pool.

parallel_min_message_pool

The parallel_min_message_pool parameter defaults to (cpus*parallel_max_servers*1.5*(OS message buffer size) or cpus*5*1.5*(OS message size)). Specifies the minimum permanent amount of memory which will be allocated from the SHARED POOL, to be used for messages in parallel execution.

This memory is allocated at startup time if PARALLEL_MIN_SERVERS is set to a non-zero value, or when the server is first allocated. Setting this parameter is most effective when PARALLEL_MIN_SERVERS is set to a non-zero value, because the memory will be allocated in a contiguous section.

This parameter should only be set if the default formula is known to be significantly inaccurate. setting this parameter too high will lead to a shortage of memory for the shared pool; setting it too low will lead to costlier memory allocation when doing parallel execution. This parameter cannot be set to a number higher than 90% of the shared pool.

parallel_broadcast_enabled

This defaults to FALSE and allows you to improve performance in certain cases involving hash and merge joins. When set to TRUE, if you are joining a very large join result set with a very small result set (size being measured in bytes, rather than number of rows), the optimizer has the option of broadcasting the row sources of the small result set, such that a single table queue will send all of the small set's rows to each of the parallel servers which are processing the rows of the larger set. The result is enhanced performance.

shared_pool_size

The shared pool will have to be increased in size to accommodate the parallel query message areas and IO queues. I suggest that the LARGE POOL be designated to prevent PQO from causing shared pool problems.

large_pool_size


The large pool will automatically be configured at a minimum size of 600k if certain initialization parameters are set in Oracle8. I suggest manually setting the size.


Oracle Parallel Automatic tuning parameter:


Oracle parallel query (OPQ) is a great way to speed full full-scan operations, but Oracle parallelism can be problematic if it is not implemented properly.

Oracle provides a general method for implementing parallelism with the parallel_automatic_tuning=true parameter setting, but there are cases when using PAT can actually degrade your Oracle performance. The Oracle docs note:

"With parallel automatic tuning enabled, Oracle determines parameter settings for each environment based on the number of CPUs on your system and the value set for PARALLEL_THREADS_PER_CPU.

The default values Oracle sets for parallel execution processing when PARALLEL_AUTOMATIC_TUNING is TRUE are usually optimal for most environments. In most cases, Oracle's automatically derived settings are at least as effective as manually derived settings."

I disagree.

The parallel_automatic_tuning parameter feature was created for DSS and Data Warehouse environments using the all_rows optimizer mode on servers with many CPU processors to ensure that the common full table scans are parallelized to an optimal DEGREE.

However, parallel_automatic_tuning is not always appropriate for OLTP and online systems, where setting parallel_automatic_tuning may change the SQL optimizers perception of the costs of full scan operations, causing indexes not to be used.

For non-warehouse environments, I do not recommend setting parallel_automatic_tuning, or turning on parallel query at the system or table level. I get the best performance my manually adding the "parallel" hint to query where I want the full can to be done in parallel.


PARALLEL_THREADS_PER_CPU specifies the default degree of parallelism for the instance and determines the parallel adaptive and load balancing algorithms. The parameter describes the number of parallel execution processes or threads that a CPU can handle during parallel execution.

The default is platform-dependent and is adequate in most cases. You should decrease the value of this parameter if the machine appears to be overloaded when a representative parallel query is executed. You should increase the value if the system is I/O bound.

* Parallel query. The ability to break up the execution of a SELECT statement into multiple tasks, and then to execute those tasks in parallel using multiple processors.
* Parallel data loading. The ability to run multiple SQL*Loader sessions in parallel, which all load data into the same table.
* Parallel DML (Data Manipulation Language). The ability to parallelize INSERT, UPDATE, and DELETE statements.
* Parallel DDL (object creation). The ability to parallelize DDL statements such as CREATE TABLE, CREATE INDEX, and ALTER INDEX.
* Parallel recovery. The ability to use multiple processes to perform instance and media recovery.
* Parallel replication propagation. The ability to propagate changes from one database to another using multiple processes working together in parallel.

Tuesday, December 22, 2009

ORACLE HISTORY (CORPORATE,TECHNICAL,VERSION,EDITIONS,PLATFORMS,FEATURES,TOOLS,SUPPORT,CERTIFICATION etc)

Corporate/technical timeline

* 1977: Larry Ellison and friends founded Software Development Laboratories.
* 1979: SDL changed its company-name to "Relational Software, Inc." (RSI) and introduced its product Oracle V2 as an early commercially-available relational database system. The version did not support transactions, but implemented the basic SQL functionality of queries and joins. (RSI never released a version 1 - instead calling the first version version 2 as a marketing gimmick.)
* 1982: RSI in its turn changed its name, becoming known as "Oracle Corporation",to align itself more closely with its flagship product.
* 1983: The company released Oracle version 3, which it had re-written using the C programming language and which supported COMMIT and ROLLBACK functionality for transactions. Version 3 extended platform support from the existing Digital VAX/VMS systems to include Unix environments.
* 1984: Oracle Corporation released Oracle version 4, which supported read-consistency.
* 1985: Oracle Corporation released Oracle version 5, which supported the client-server model—a sign of networks becoming more widely available in the mid-1980s.
* 1986: Oracle version 5.1 started supporting distributed queries.
* 1988: Oracle RDBMS version 6 came out with support for PL/SQL embedded within Oracle Forms v3 (version 6 could not store PL/SQL in the database proper), row-level locking and hot backups.
* 1989: Oracle Corporation entered the application products market and developed its ERP product, (later to become part of the Oracle E-Business Suite), based on the Oracle relational database.
* 1990: the release of Oracle Applications release 8
* 1992: Oracle version 7 appeared with support for referential integrity, stored procedures and triggers.
* 1997: Oracle Corporation released version 8, which supported object-oriented development and multimedia applications.
* 1999: The release of Oracle8i aimed to provide a database inter-operating better with the Internet (the i in the name stands for "Internet"). The Oracle 8i database incorporated a native Java virtual machine (Oracle JVM).
* 2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software
* 2001: Oracle9i went into release with 400 new features, including the ability to read and write XML documents. 9i also provided an option for Oracle RAC, or "Real Application Clusters", a computer-cluster database, as a replacement for the Oracle Parallel Server (OPS) option.
* 2003: Oracle Corporation released Oracle Database 10g. (The g stands for "grid"; emphasizing a marketing thrust of presenting 10g as "grid-computing ready".)
* 2005: Oracle Database 10.2.0.1—also known as Oracle Database 10g Release 2 (10gR2)—appeared.
* 2006: Oracle Corporation announces Unbreakable Linux
* 2007: Oracle Database 10g release 2 sets a new world record TPC-H 3000 GB benchmark result
* 2007: Oracle Corporation released Oracle Database 11g for Linux and for Microsoft Windows.
* 2008: Oracle Corporation acquires BEA Systems.
* 2009: Oracle Corporation acquires Sun Microsystems. Note: as of November 2009 the acquisition awaits approval from the European Commission.


Version numbering

Oracle products have historically followed their own release-numbering and naming conventions. With the Oracle RDBMS 10g release, Oracle Corporation started standardizing all current versions of its major products using the "10g" label, although some sources continued to refer to Oracle Applications Release 11i as Oracle 11i. Major database-related products and some of their versions include:

* Oracle Application Server 10g (also known as "Oracle AS 10g"): a middleware product;
* Oracle Applications Release 11i (aka Oracle e-Business Suite, Oracle Financials or Oracle 11i): a suite of business applications;
* Oracle Developer Suite 10g (9.0.4);
* Oracle JDeveloper 10g: a Java integrated development environment;

Since version 5, Oracle's RDBMS release numbering has used the following codes:

* Oracle5
* Oracle6
* Oracle7: 7.0.16—7.3.4
* Oracle8 Database: 8.0.3—8.0.6
* Oracle8i Database Release 1: 8.1.5.0—8.1.5.1
* Oracle8i Database Release 2: 8.1.6.0—8.1.6.3
* Oracle8i Database Release 3: 8.1.7.0—8.1.7.4
* Oracle9i Database Release 1: 9.0.1.0—9.0.1.5 (patchset as of December 2003)
* Oracle9i Database Release 2: 9.2.0.1—9.2.0.8 (patchset as of April 2007)
* Oracle Database 10g Release 1: 10.1.0.2—10.1.0.5 (patchset as of February 2006)
* Oracle Database 10g Release 2: 10.2.0.1—10.2.0.4 (patchset as of April 2008)
* Oracle Database 11g Release 1: 11.1.0.6—11.1.0.7 (patchset as of September 2008)
* Oracle Database 11g Release 2: 11.2.0.1 (released 2009-09-01)

The version-numbering syntax within each release follows the pattern: major.maintenance.application-server.component-specific.platform-specific.

For example, "10.2.0.1 for 64-bit Solaris" means: 10th major version of Oracle, maintenance level 2, Oracle Application Server (OracleAS) 0, level 1 for Solaris 64-bit.


List of claimed firsts

Oracle Corporation claims to have provided:

* the first commercially-available SQL-based database (1979)
* the first database to support symmetric multiprocessing (SMP) (1983)
* the first distributed database (1986)
* the first database product tested to comply with the ANSI SQL standard (1993)
* the first 64-bit database (1995)
* the first database to incorporate a native JRE (1998)
* the first proprietary RDBMS to become available on Linux (1998)
* the first database to support XML (1999)


Editions

Over and above the different versions of the Oracle database management software, Oracle Corporation subdivides its product into varying "editions" - apparently for marketing and license-tracking reasons. In approximate order of decreasing scale, we find:

* Enterprise Edition (EE) includes more features than the 'Standard Edition', especially in the areas of performance and security. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running 4 or more CPUs. EE has no memory limits, and can utilize clustering using Oracle RAC software.
* Standard Edition (SE) contains base database functionality. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running from one to four CPUs. If the number of CPUs exceeds 4 CPUs, the user must convert to an Enterprise license. SE has no memory limits, and can utilize clustering with Oracle RAC at no additional charge.
* Standard Edition One, introduced with Oracle 10g, has some additional feature-restrictions. Oracle Corporation markets it for use on systems with one or two CPUs. It has no memory limitations.
* Express Edition ('Oracle Database XE'), introduced in 2005, offers Oracle 10g free to distribute on Windows and Linux platforms. It has a footprint of only 150 MB and is restricted to the use of a single CPU, a maximum of 4 GB of user data. Although it can install on a server with any amount of memory, it uses a maximum of 1 GB. Support for this version comes exclusively through on-line forums and not through Oracle support.
* Oracle Database Lite, intended for running on mobile devices. The database located on the mobile device can synchronize with a server-based installation.


Host platforms

Prior to releasing Oracle9i in 2001, Oracle Corporation ported its database product to a wide variety of platforms. More recently Oracle Corporation has consolidated on a smaller range of operating-system platforms.

As of October 2006, Oracle Corporation supported the following operating systems and hardware platforms for Oracle Database 10g:

* Apple Mac OS X Server: PowerPC
* HP HP-UX: PA-RISC, Itanium
* HP Tru64 UNIX: Alpha
* HP OpenVMS: Alpha, Itanium
* IBM AIX5L: IBM POWER
* IBM z/OS: zSeries
* Linux: x86, x86-64, PowerPC, zSeries, Itanium
* Microsoft Windows: x86, x86-64, Itanium
* Sun Solaris: SPARC, x86, x86-64


Database options

Oracle Corporation refers to some extensions to the core functionality of the Oracle database as "database options". As of 2008 such options include:

* Active Data Guard (extends Oracle Data Guard physical standby functionality in 11g)
* Advanced Security (adds data encryption methods)
* Content database (provides a centralized repository for unstructured information)
* Database Vault (enforces extra security on data access)
* Data Mining (ODM) (mines for patterns in existing data)
* In-Memory Database Cache (utilizes TimesTen technology)
* Label Security (enforces row-level security)
* Management Packs (various)
* Oracle Answers (for ad-hoc analysis and reporting)
* Oracle OLAP (adds analytical processing)
* Oracle Programmer (provides programmatic access to Oracle databases via precompilers, interfaces and bindings)
* Partitioning (granularizes tables and indexes for efficiency)
* Real Application Clusters (RAC) (coordinates multiple database servers, together accessing the same database)
* Oracle Real Application Testing (new at version 11g)—including Database Replay (for testing workloads) and SQL Performance Analyzer (SPA) (for preserving SQL efficiency in changing environments)
* Records database (a records management application)
* Oracle Spatial (integrates relational data with geographic information systems (GIS))
* Transparent Gateway for connecting to non-Oracle systems. Offers optimized solution, with more functionality and better performance than Oracle Generic Connectivity.
* Total Recall (optimizes long-term storage of historical data)
* Oracle Warehouse Builder (in various forms and sub-options)

This list is incomplete; you can help by expanding it.

In most cases, using these options entails extra licensing costs.


Suites

In addition to its RDBMS, Oracle Corporation has released several related suites of tools and applications relating to implementations of Oracle databases. For example:

* Oracle Application Server, a J2EE-based application server, aids in developing and deploying applications which utilise Internet technologies and a browser.
* Oracle Collaboration Suite contains messaging, groupware and collaboration applications.
* Oracle Developer Suite contains software development tools, including JDeveloper.
* Oracle E-Business Suite collects together applications for enterprise resource planning (including Oracle Financials), customer relationship management and human resources management (Oracle HR).
* Oracle Enterprise Manager (OEM) used by database administrators (DBAs) to manage the DBMS, and recently in version 10g, a web-based rewrite of OEM called "Oracle Enterprise Manager Database Control". Oracle Corporation has dubbed the super-Enterprise-Manager used to manage a grid of multiple DBMS and Application Servers "Oracle Enterprise Manager Grid Control".
* Oracle Programmer/2000, a bundling of interfaces for 3GL programming languages, marketed with Oracle7 and Oracle8.


Database "features"

Apart from the clearly-defined database options, Oracle databases may include many semi-autonomous software sub-systems, which Oracle Corporation sometimes refers to as "features" in a sense subtly different from the normal usage of the word. For example, Oracle Data Guard counts officially as a "feature", but the command-stack within SQL*Plus, though a usability feature, does not appear in the list of "features" in Oracle's list. Such "features" may include (for example):

* Active Session History (ASH), the collection of data for immediate monitoring of very recent database activity.
* Automatic Workload Repository (AWR), providing monitoring services to Oracle database installations from Oracle version 10. Prior to the release of Oracle version 10, the Statspack facility provided similar functionality.
* Clusterware
* Data Aggregation and Consolidation
* Data Guard for high availability
* Generic Connectivity for connecting to non-Oracle systems.
* Data Pump utilities, which aid in importing and exporting data and metadata between databases
* Database Resource Manager (DRM), which controls the use of computing resources.
* Fine-grained auditing (FGA) (in Oracle Enterprise Edition) supplements standard security-auditing features
* Flashback for selective data recovery and reconstruction
* iSQL*Plus, a web-browser-based graphical user interface (GUI) for Oracle database data-manipulation (compare SQL*Plus)
* Oracle Data Access Components (ODAC), tools which consist of:
o Oracle Data Provider for .NET (ODP.NET)
o Oracle Developer Tools (ODT) for Visual Studio
o Oracle Providers for ASP.NET
o Oracle Database Extensions for .NET
o Oracle Provider for OLE DB
o Oracle Objects for OLE
o Oracle Services for Microsoft Transaction Server
* Oracle-managed files (OMF) -- a feature allowing automated naming, creation and deletion of datafiles at the operating-system level.
* Recovery Manager (rman) for database backup, restoration and recovery
* SQL*Plus, a program that allows users to interact with Oracle database(s) via SQL and PL/SQL commands on a command-line. Compare iSQL*Plus.

This list is incomplete; you can help by expanding it.


Standalone tools

Users can develop applications in Java and PL/SQL using tools such as Oracle JDeveloper, Oracle Forms, or Oracle Reports. Oracle Corporation has started a drive toward 'wizard'-driven environments with a view to enabling non-programmers to produce simple data-driven applications.

Oracle SQL Developer, a free graphical tool for database development, allows developers to browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. It incorporates standard and customized reporting.


Other databases marketed by Oracle Corporation

By acquiring other technology in the database field, Oracle Corporation has taken over:

* TimesTen, a memory-resident database that can cache transactions and synchronize data with a centralized Oracle database server. It functions as a real-time infrastructure software product intended for the management of low-latency, high-volume data, of events and of transactions.
* BerkeleyDB, a simple, high-performance, embedded database
* Oracle Rdb, a legacy relational database for the OpenVMS operating system
* MySQL a relational database purchased as part of its immediate previous owner, Sun Microsystems


Use

The Oracle RDBMS has had a reputation among novice users as difficult to install on Linux systems. Oracle Corporation has packaged recent versions for several popular Linux distributions in an attempt to minimize installation challenges beyond the level of technical expertise required to install a database server.


Official support

Users who have Oracle support contracts can use Oracle's MetaLink web site. MetaLink provides users of Oracle Corporation products with a repository of reported problems, diagnostic scripts and solutions. It also integrates with the provision of support tools, patches and upgrades.

The Remote Diagnostic Agent or RDA can operate as a command-line diagnostic tool executing a script. The data captured provides an overview of the Oracle Database environment intended for diagnostic and trouble-shooting. Within RDA, the HCVE (Health Check Validation Engine) can verify and isolate host system environmental issues that may affect the performance of Oracle software.


Database-related guidelines

Oracle Corporation also endorses certain practices and conventions as enhancing the use of its database products. These include:

* Oracle Maximum Availability Architecture (MAA), guidelines on developing high-availability systems
* Optimal Flexible Architecture (OFA), blueprints for mapping Oracle-database objects to file-systems


Oracle Certification Program

Main article: Oracle Certification Program

The Oracle Certification Program, a professional certification program, includes the administration of Oracle Databases as one of its main certification paths. It contains three levels not upto limits.

1. Oracle Certified Associate (OCA)
2. Oracle Certified Professional (OCP)
3. Oracle Certified Master (OCM)


User groups

A variety of official (Oracle-sponsored) and unofficial Oracle User Groups has grown up of users and developers of Oracle databases. They include:

* Oracle Technology Network
* Independent Oracle Users Group
* Geographical/regional user groups
* Product-centric user groups
* Industry-centric user groups
* The Oak Table Network
* Usenet newsgroups


Market position

In the market for relational databases, Oracle Database competes against commercial products such as IBM's DB2 UDB and Microsoft SQL Server. Oracle and IBM tend to battle for the mid-range database market on UNIX and Linux platforms, while Microsoft dominates the mid-range database market on Microsoft Windows platforms. However, since they share many of the same customers, Oracle and IBM tend to support each other's products in many middleware and application categories (for example: WebSphere, PeopleSoft, and Siebel Systems CRM), and IBM's hardware divisions work closely with Oracle on performance-optimizing server-technologies (for example, Linux on zSeries). The two companies have a relationship perhaps best described as "coopetition". Niche commercial competitors include Teradata (in data warehousing and business intelligence), Software AG's ADABAS, Sybase, and IBM's Informix, among many others.

Increasingly, the Oracle database products compete against open-source relational database systems, particularly PostgreSQL, Firebird, and MySQL. Oracle acquired Innobase, supplier of the InnoDB codebase to MySQL, in part to compete better in the open source market. Database products developed on the basis of the open-source model generally cost significantly less to acquire than Oracle systems.

In 2007, competition with SAP AG occasioned litigation from Oracle Corporation.


Pricing

Oracle Corporation offers term licensing for all Oracle products. It bases the list price for a term-license on a specific percentage of the perpetual license price.

Enterprise Edition
As of March 2006, the database that costs the most per machine-processor among Oracle database editions.
Standard Edition
Cheaper: it can run on up to four processors but has fewer features than Enterprise Edition—it lacks proper parallelization,etc; but remains quite suitable for running medium-sized applications.
Standard ONE
Sells even more cheaply, but remains limited to two CPUs. Standard Edition ONE sells on a per-seat basis with a five-user minimum. Oracle Corporation usually sells the licenses with an extra 22% cost for support and upgrades (access to MetaLink—Oracle Corporation's support site) which customers need to renew annually.
Oracle Express Edition (Oracle XE)
An addition to the Oracle database product family (beta version released in 2005, production version released in February 2006), offers a free version of the Oracle RDBMS, but one limited to 4 GB of user data and to 1 GB of RAM (SGA+PGA). XE will use no more than one CPU and lacks an internal JVM. XE runs only on Windows and on Linux, not on AIX, Solaris, HP-UX and the other operating systems available for other editions.

As computers running Oracle often have eight or more processors, the software price can rise into the hundreds of thousands of dollars. The total cost of ownership often exceeds this, as large Oracle installations usually require experienced and trained database administrators to do the set-up properly. Because of the product's large installed base and available training courses, Oracle specialists in some areas have become a more abundant resource than those for more exotic databases. Oracle frequently provides special training offers for database-administrators.

On Linux, Oracle's certified configurations include mostly commercial Linux distributions (Red Hat Enterprise Linux 3 and 4, SuSE SLES8 and 9, Asianux) which can cost in a range from a few hundred to a few thousand USD per year (depending on processor architecture and the support package purchased).

The Oracle database system can also install and run on freely-available Linux distributions such as the Red Hat-based Centos,or Debian-based systems.