Wednesday, October 19, 2011

ORA-07445: exception encountered

You may get below error in your Oracle Alert logs..



Errors in file /u01/app/oracle/admin/s123/udump/s123_ora_27563.trc:
ORA-07445: exception encountered: core dump [qmxiManifestVArray()+4314] [SIGSEGV] [unknown code] [0x000000000] [] []


In general this kind of error is due to an OS or Hardware trouble or bug. 


Usually ORA-7445 messages should be reported to Oracle. There is most likely a patchset or a work-around that adresses the problem.

This error probably generated a trace file in your udump or bdump directory. 



And also this might be related to a previous SHUTDOWN ABORT that caused block corruption.

Monday, October 10, 2011

Transaction Control Language (TCL)

Transaction Control (TCL) statements are used to manage the changes made by DML statements(INSERT,UPDATE etc).

TCL Statements available in Oracle are:


COMMIT 
Make changes done in  transaction permanent.

ROLLBACK
Rollbacks the state of database to the last commit point.

SAVEPOINT 
Use to specify a point in transaction to which later you can rollback.


COMMIT
To make the changes done in a transaction permanent issue the COMMIT statement.

The syntax of COMMIT Statement is
COMMIT  [WORK]  [COMMENT ‘your comment’];

WORK is optional.

COMMENT is also optional, specify this if you want to identify this transaction in data dictionary DBA_2PC_PENDING.

Example :
insert into emp (empno,ename,sal) values (001,’Dayan’,25000);
commit;


ROLLBACK

To rollback the changes done in a transaction give rollback statement. Rollback restore the state of the database to the last commit point.


Example :
delete from emp_details;
rollback;         


SAVEPOINT

Specify a point in a transaction to which later you can roll back.

Example

insert into emp values (002,’Hirosh’,30000);
savepoint a;
insert into dept values (20,’IT’,’ITSD’);
savepoint b;
insert into salgrade values (‘A’,25000,45000);

Now if you give

rollback to a;

Then  row from salgrade table and dept will be roll backed. Now you can commit the row inserted into emp table or rollback the transaction.

If you give

rollback to b;

Then row inserted into salgrade table will be roll backed. Now you can commit the row inserted into dept table and emp table or rollback to savepoint a or completely roll backed the transaction.

If you give

rollback;

Then the whole transactions is roll backed.

If you give

commit;

Then the whole transaction is committed and all savepoints are removed.



Wednesday, October 5, 2011

Export / Import moving data between different Oracle versions


Different versions of the import utility are upwards compatible. This means that one can take an export file created from an old export version, and import it using a later version of the import utility.
Below grid is just a outline and there may be many considerations between YES and NO
Exp done with version:
7
8i
9i
10g
11g
Is compatible with Imp
7
YES
NO
NO
NO
NO
8i
YES
YES
NO
NO
NO
9i
YES
YES
YES
NO
NO
10g
YES
YES
YES
YES
NO
11g
YES
YES
YES
YES
YES

Create tablespace in Oracle

Permanent tablespace

create tablespace ts_something
logging
datafile '/dbf1/ts_sth.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;


create tablespace data datafile ' /u01/app/oracle/oradata/my/data.dbf'
size   10M
autoextend on maxsize      200M
extent management local uniform size  64K;


Temporary tablespace

create temporary tablespace temp_mtr
  tempfile '/dbf1/mtr_temp01.dbf'
  size 32m
  autoextend on
  next 32m maxsize 2048m
  extent management local;


Undo tablespace

create undo tablespace ts_undo
datafile '/dbf/undo.dbf'
size 100M;



Also more than one datafile can be created with a single create tablespace command:

create tablespace mytbs
  datafile ' /u01/app/oracle/oradata/my/mytbs _01.dbf' size 4M autoextend off,
              ' /u01/app/oracle/oradata/my/mytbs _02.dbf' size 4M autoextend off,
             '  /u01/app/oracle/oradata/my/mytbs _03.dbf' size 4M autoextend off
  logging
  extent management local;




In addition you can check tablespace details through below view..
SELECT * FROM DBA_TABLESPACES


You can drop a tablespace through below statement...
DROP TABLESPACE tbs_01
INCLUDING CONTENTS 
CASCADE CONSTRAINTS;