For Linux
hdparm -I /dev/dsk/c3t2d0s0
For Windows
form my computer > Manage > Device manager > HDD > Model no
Having 17 year of experince in variety of field including 14 year as IT and As a Oracle DBA Having 7 year of Experince With PT , Backup and Recovery , Database Migration (sql to ORACLE ),Creating Stand By Database. New Projects Installation. Have experice in any kind of Trouble shooting in Database. Knowledge of RAC and Dataguard. Financial prospective of projects and cost reduction
Wednesday, December 2, 2009
Tuesday, October 13, 2009
sql on '&' character in Oracle
Escape ampersand (&) characters in SQL*Plus
When using SQL*Plus, the DEFINE setting can be changed to allow &'s (ampersands) to be used in text:
SET DEFINE ~
SELECT 'Lorel & Hardy' FROM dual;
Other methods:
Define an escape character:
SET ESCAPE '\'
SELECT '\&abc' FROM dual;
Don't scan for substitution variables:
SET SCAN OFF
SELECT '&ABC' x FROM dual;
When using SQL*Plus, the DEFINE setting can be changed to allow &'s (ampersands) to be used in text:
SET DEFINE ~
SELECT 'Lorel & Hardy' FROM dual;
Other methods:
Define an escape character:
SET ESCAPE '\'
SELECT '\&abc' FROM dual;
Don't scan for substitution variables:
SET SCAN OFF
SELECT '&ABC' x FROM dual;
Wednesday, September 16, 2009
to convert systimestamp to Any other time zone
The fuction is from_tz
SELECT FROM_TZ(to_timestamp(to_char(systimestamp,'DD-MON-YYYY HH:MI:SS PM')) ,'+05:30') AT TIME ZONE '-06:00',systimestamp from dual;
and one more fn.
select LOCALTIMESTAMP AT TIME ZONE '-6:00' from dual;
SELECT FROM_TZ(to_timestamp(to_char(systimestamp,'DD-MON-YYYY HH:MI:SS PM')) ,'+05:30') AT TIME ZONE '-06:00',systimestamp from dual;
and one more fn.
select LOCALTIMESTAMP AT TIME ZONE '-6:00' from dual;
Monday, September 14, 2009
ORA-31626 - ORA-31650
Error is as below:-
/*****************************************************************/
-bash-3.00$ expdp "'/ as sysdba'" directory=backup dumpfile=full_expor_1.dmp
logfile=full_export_1.log schemas=scoot
Export: Release 10.2.0.1.0 - Production on Monday, 14 September, 2009 11:04:37
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-31626: job does not exist
ORA-31650: timeout waiting for master process response
/****************************************************************************/
solution :-
select Table_name from dba_tables where table_name like '%EXPORT%' and owner='SYS';
Delete all the Table Created by Export Utility while Creating the Metadata.
/*****************************************************************/
-bash-3.00$ expdp "'/ as sysdba'" directory=backup dumpfile=full_expor_1.dmp
logfile=full_export_1.log schemas=scoot
Export: Release 10.2.0.1.0 - Production on Monday, 14 September, 2009 11:04:37
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-31626: job does not exist
ORA-31650: timeout waiting for master process response
/****************************************************************************/
solution :-
select Table_name from dba_tables where table_name like '%EXPORT%' and owner='SYS';
Delete all the Table Created by Export Utility while Creating the Metadata.
Friday, September 11, 2009
Oracle Table OUTPUT to CSV
(1st Method)
set colsep ','
set pagesize 0
set feedback off
set trimspool on
set linesize 1000
spool myfile.csv
select * from mytable;
spool off
(2nd Method)
create or replace function dump_csv( p_query in varchar2,
p_separator in varchar2
default ',',
p_dir in varchar2 ,
p_filename in varchar2 )
return number
AUTHID CURRENT_USER
is
l_output utl_file.file_type;
l_theCursor integer default dbms_sql.open_cursor;
l_columnValue varchar2(2000);
l_status integer;
l_colCnt number default 0;
l_separator varchar2(10) default '';
l_cnt number default 0;
begin
l_output := utl_file.fopen( p_dir, p_filename, 'w' );
dbms_sql.parse( l_theCursor, p_query, dbms_sql.native );
for i in 1 .. 255 loop
begin
dbms_sql.define_column( l_theCursor, i,
l_columnValue, 2000 );
l_colCnt := i;
exception
when others then
if ( sqlcode = -1007 ) then exit;
else
raise;
end if;
end;
end loop;
dbms_sql.define_column( l_theCursor, 1, l_columnValue,
2000 );
l_status := dbms_sql.execute(l_theCursor);
loop
exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 );
l_separator := '';
for i in 1 .. l_colCnt loop
dbms_sql.column_value( l_theCursor, i,
l_columnValue );
utl_file.put( l_output, l_separator ||
l_columnValue );
l_separator := p_separator;
end loop;
utl_file.new_line( l_output );
l_cnt := l_cnt+1;
end loop;
dbms_sql.close_cursor(l_theCursor);
utl_file.fclose( l_output );
return l_cnt;
end dump_csv;
/
You would use that for example like this:
create or replace procedure test_dump_csv
as
l_rows number;
begin
l_rows := dump_csv( 'select *
from all_users
where rownum < 25',
',', '/tmp', 'test.dat' );
end;
/
set colsep ','
set pagesize 0
set feedback off
set trimspool on
set linesize 1000
spool myfile.csv
select * from mytable;
spool off
(2nd Method)
create or replace function dump_csv( p_query in varchar2,
p_separator in varchar2
default ',',
p_dir in varchar2 ,
p_filename in varchar2 )
return number
AUTHID CURRENT_USER
is
l_output utl_file.file_type;
l_theCursor integer default dbms_sql.open_cursor;
l_columnValue varchar2(2000);
l_status integer;
l_colCnt number default 0;
l_separator varchar2(10) default '';
l_cnt number default 0;
begin
l_output := utl_file.fopen( p_dir, p_filename, 'w' );
dbms_sql.parse( l_theCursor, p_query, dbms_sql.native );
for i in 1 .. 255 loop
begin
dbms_sql.define_column( l_theCursor, i,
l_columnValue, 2000 );
l_colCnt := i;
exception
when others then
if ( sqlcode = -1007 ) then exit;
else
raise;
end if;
end;
end loop;
dbms_sql.define_column( l_theCursor, 1, l_columnValue,
2000 );
l_status := dbms_sql.execute(l_theCursor);
loop
exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 );
l_separator := '';
for i in 1 .. l_colCnt loop
dbms_sql.column_value( l_theCursor, i,
l_columnValue );
utl_file.put( l_output, l_separator ||
l_columnValue );
l_separator := p_separator;
end loop;
utl_file.new_line( l_output );
l_cnt := l_cnt+1;
end loop;
dbms_sql.close_cursor(l_theCursor);
utl_file.fclose( l_output );
return l_cnt;
end dump_csv;
/
You would use that for example like this:
create or replace procedure test_dump_csv
as
l_rows number;
begin
l_rows := dump_csv( 'select *
from all_users
where rownum < 25',
',', '/tmp', 'test.dat' );
end;
/
Wednesday, June 24, 2009
To Calculate Diff. Shared memory by Oracle Process
SELECT
'PGA: pid '||p.spid pid,p.pga_alloc_mem bytes,
p.username ps_user,p.program ps_program,
s.logon_time,s.sid,s.serial#,s.username,s.machine,s.osuser,s.program
FROM v$session s ,v$sesstat pcur,v$process p WHERE pcur.statistic#=20 AND s.paddr=p.addr AND pcur.sid=s.sid
UNION ALL SELECT 'SGA: '||name pid,value bytes,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL FROM v$sga
ORDER BY 2 DESC
'PGA: pid '||p.spid pid,p.pga_alloc_mem bytes,
p.username ps_user,p.program ps_program,
s.logon_time,s.sid,s.serial#,s.username,s.machine,s.osuser,s.program
FROM v$session s ,v$sesstat pcur,v$process p WHERE pcur.statistic#=20 AND s.paddr=p.addr AND pcur.sid=s.sid
UNION ALL SELECT 'SGA: '||name pid,value bytes,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL FROM v$sga
ORDER BY 2 DESC
Thursday, April 23, 2009
How to Create RMAN Catalog
To create the recovery catalog schema in the recovery catalog database:
Start SQL*Plus and then connect with administrator privileges to the database containing the recovery catalog. For example, enter:
1) sql> CONNECT SYS/oracle@catdb AS SYSDBA
Create a user and schema for the recovery catalog. For example, enter:
sql > CREATE USER rman IDENTIFIED BY cat
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE tools
QUOTA UNLIMITED ON tools;
*************************************
Grant the Permission as mention below.
**************************************
sql> GRANT RECOVERY_CATALOG_OWNER TO rman;
sql> grant connect , resource to rman;
**************************************
Now Create Catalog
**************************************
RMAN> CONNECT CATALOG rman/cat@catdb
RMAN> CREATE CATALOG TABLESPACE cat_ts;
**************************************
SQL> SELECT TABLE_NAME FROM USER_TABLES;
Start SQL*Plus and then connect with administrator privileges to the database containing the recovery catalog. For example, enter:
1) sql> CONNECT SYS/oracle@catdb AS SYSDBA
Create a user and schema for the recovery catalog. For example, enter:
sql > CREATE USER rman IDENTIFIED BY cat
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE tools
QUOTA UNLIMITED ON tools;
*************************************
Grant the Permission as mention below.
**************************************
sql> GRANT RECOVERY_CATALOG_OWNER TO rman;
sql> grant connect , resource to rman;
**************************************
Now Create Catalog
**************************************
RMAN> CONNECT CATALOG rman/cat@catdb
RMAN> CREATE CATALOG TABLESPACE cat_ts;
**************************************
SQL> SELECT TABLE_NAME FROM USER_TABLES;
Thursday, April 9, 2009
Oracle Database Upgrade Path Reference List
Note ID = 730365.1
https://metalink.oracle.com/CSP/main/article?cmd=show&type=NOT&id=730365.1#aref43
https://metalink.oracle.com/CSP/main/article?cmd=show&type=NOT&id=730365.1#aref43
Thursday, March 19, 2009
Window Backup Deletion script will delete when Database is open only
test.sql=
spool test.txt
set head off
set term off
set feed off
select status from v$instance;
spool off
exit
=
test.bat=
sqlplus/********@DBNAME @test.sql
TIMEOUT 4
IF EXIST test.txt (
FOR /F " skip=1 delims== " %%i in (test.txt) do (set t1=%%i)
del test.txt
SET DIRPATH=I:\TEST_BACKUP
) ELSE (exit)
IF %t1% EQU OPEN (
I:
cd %DIRPATH%
del DB_NAME_export_old.dmp
del DB_NAME_export_old.log
rename DB_NAME_export.dmp DB_NAME_export_old.dmp
rename DB_NAME_export.log DB_NAME_export_old.log
exp/********@DBNAME file=%DIRPATH%\DB_NAME_export.dmp log=%DIRPATH%\DB_NAME_export.log owner=ABC
)
=
spool test.txt
set head off
set term off
set feed off
select status from v$instance;
spool off
exit
=
test.bat=
sqlplus
TIMEOUT 4
IF EXIST test.txt (
FOR /F " skip=1 delims== " %%i in (test.txt) do (set t1=%%i)
del test.txt
SET DIRPATH=I:\TEST_BACKUP
) ELSE (exit)
IF %t1% EQU OPEN (
I:
cd %DIRPATH%
del DB_NAME_export_old.dmp
del DB_NAME_export_old.log
rename DB_NAME_export.dmp DB_NAME_export_old.dmp
rename DB_NAME_export.log DB_NAME_export_old.log
exp
)
=
Monday, February 9, 2009
Spfile & pfile lost : How to recreate this
1) show spfile will give if you started with a spfile or a init.ora file. You can't know which init.ora was used.
2) Here's a script:
Set linesize 1000
Set feedback off
Set pagesize 0
Col instance_name noprint new_value inst_
Set termout off
Select instance_name from v$instance;
Set termout on
Spool init&inst_..ora
select '
'||'######################################################################
'||'#
'||'# file : init&inst_..ora
'||'# date : '||to_char(sysdate,'DD/MM/YYYY HH24:MI:SS')||'
'||'#
'||'######################################################################
'||'
' from dual
/
Select '# '||name||': '||description||'
'||decode(update_comment,NULL,'','# '||update_comment||'
')||name||' = '||decode(sign(instr(value,' ')),
1,'("'||replace(value,', ','", "')||'")',
value)||'
'||'
'
from v$system_parameter
where isdefault = 'FALSE'
order by name
/
Spool off
2) Here's a script:
Set linesize 1000
Set feedback off
Set pagesize 0
Col instance_name noprint new_value inst_
Set termout off
Select instance_name from v$instance;
Set termout on
Spool init&inst_..ora
select '
'||'######################################################################
'||'#
'||'# file : init&inst_..ora
'||'# date : '||to_char(sysdate,'DD/MM/YYYY HH24:MI:SS')||'
'||'#
'||'######################################################################
'||'
' from dual
/
Select '# '||name||': '||description||'
'||decode(update_comment,NULL,'','# '||update_comment||'
')||name||' = '||decode(sign(instr(value,' ')),
1,'("'||replace(value,', ','", "')||'")',
value)||'
'||'
'
from v$system_parameter
where isdefault = 'FALSE'
order by name
/
Spool off
Wednesday, February 4, 2009
Audit Trail
Auidt trail details from drop any table .
and
Audit table;
http://www.dbasupport.com/forums/showthread.php?t=20054
and
Audit table;
http://www.dbasupport.com/forums/showthread.php?t=20054
Tuesday, January 27, 2009
Oracle Instalation On Linux
Configure the kernel.
Edit /etc/sysctl.conf.
Add the following to the file:
# Kernel parameters required by Oracle 11gR1 / 10g
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
************************************************************************
sysctl -p
************************************************************************
Edit /etc/security/limits.conf
Add these lines:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
************************************************************************
Edit /etc/pam.d/login
Add these lines:
session required /lib/security/pam_limits.so
session required pam_limits.so
************************************************************************
Edit /etc/profile
Add these lines:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
************************************************************************
groupadd oinstall
groupadd dba
groupadd oper
useradd oracle
usermod -g oinstall -G dba,oper,oracle oracle
passwd oracle
*************************************************************************
Edit /home/oracle/.bash_profile
Add these lines:
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
export PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID
************************************************************************
mkdir -p /u01/app
chown root:oinstall /u01/app
chmod 775 /u01/app
************************************************************************
Edit /etc/sysctl.conf.
Add the following to the file:
# Kernel parameters required by Oracle 11gR1 / 10g
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
************************************************************************
sysctl -p
************************************************************************
Edit /etc/security/limits.conf
Add these lines:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
************************************************************************
Edit /etc/pam.d/login
Add these lines:
session required /lib/security/pam_limits.so
session required pam_limits.so
************************************************************************
Edit /etc/profile
Add these lines:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
************************************************************************
groupadd oinstall
groupadd dba
groupadd oper
useradd oracle
usermod -g oinstall -G dba,oper,oracle oracle
passwd oracle
*************************************************************************
Edit /home/oracle/.bash_profile
Add these lines:
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
export PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID
************************************************************************
mkdir -p /u01/app
chown root:oinstall /u01/app
chmod 775 /u01/app
************************************************************************
Tuesday, January 13, 2009
Sample Control file + sqlldr
SQLLDR USERID=account_data/account_data@test CONTROL=D:\share\vivek\test.CTL ERRORS=5000 log=d:\abc.log
test.CTL=
load data
infile 'data_daily1.csv'
infile 'data_daily2.csv'
infile 'data_daily3.csv'
append
into table daily_upload
fields terminated by ","
optionally enclosed by '"'
trailing nullcols
(
col1,
col2,
col3,
col4,
col5
)
test.CTL=
load data
infile 'data_daily1.csv'
infile 'data_daily2.csv'
infile 'data_daily3.csv'
append
into table daily_upload
fields terminated by ","
optionally enclosed by '"'
trailing nullcols
(
col1,
col2,
col3,
col4,
col5
)
Subscribe to:
Comments (Atom)