SQLPlus output to csv file

SQLPLUS araci ile excel çıktısı alabilmek için örnek;

set term off
set echo off
set underline off
set colsep “;”
set linesize 100
set pagesize 0
set sqlprompt ”
set lines 1000 pages 1000
set trimspool on
set feedback off
set heading on
set newpage 0
set headsep off

spool myFile.csv
select * from locations;
spool off;
exit;
/

Loading


Linux İşletim Sisteminde Çalışan Weblogic Sunucular ve Node Manager lerin Listesi

#!/bin/bash

DOMAIN_DIRECTORY="domains"

echo "################################################################################"
echo "# WebLogic Servers"
echo "# <owner>  <domain>  <server>  <pid>  <ports>"
echo "################################################################################"
ps -ef | grep "[D]weblogic.Name="|while read tmp
do
  owner=`echo $tmp | awk '{ print $1 }'`
  webLogicServer=`echo $tmp | grep -oP "(?<=Dweblogic.Name=)[^ ]+"`
  pid=`echo $tmp | awk '{ print $2 }'`
  port=`echo $tmp | netstat -tlpn 2>/dev/null | grep $pid | awk '{ print $4 }' | tr '\n' ',' | tr ' ' ',' | grep -o ":....," | sort -u | tr -d '\n' | tr -d ':' | sed 's/,$//'`
  if [ -z "$port" ]; then
    port="null"
  fi
  domain=`echo $tmp | grep -oP "(?<=BootIdentityFile=)[^ ]+"`
  domain=`echo $domain | grep -oP "(?<=$DOMAIN_DIRECTORY/)[^ ]+" | cut -d/ -f1`
  if [ -n "$1" ]; then
    echo "$owner $domain $webLogicServer $pid $port kill -9 $pid"
  else  
    echo "$owner $domain $webLogicServer $pid $port"
  fi
done|sort|column -t

echo
echo "################################################################################"
echo "# Node Managers"
echo "# <owner>  <mw_home>  <pid>  <port>"
echo "################################################################################"
ps -ef | grep "[w]eblogic.NodeManager"|while read tmp
do
  owner=`echo $tmp | awk '{ print $1 }'`
  pid=`echo $tmp | awk '{ print $2 }'`
  port=`echo $tmp | netstat -tlpn 2>/dev/null | grep $pid | awk '{ print $4 }' | tr '\n' ',' | tr ' ' ',' | grep -o ":....," | sort -u | tr -d '\n' | tr -d ':' | sed 's/,$//'`
  if [ -z "$port" ]; then
    port="null"
  fi
  mw_home=`echo $tmp | grep -oP "(?<=bea.home=)[^ ]+"`
  if [ -n "$1" ]; then
    echo "$owner $mw_home $pid $port kill -9 $pid"
  else  
    echo "$owner $mw_home $pid $port"
  fi
done|sort|column -t

İyi Çalışmalar

Loading

Yorum yap devamı...

Oracle Sistemler İçin Storage Performansını Ölçme

Performans testleri sırasında, sonuçları etkileyen birçok parametre vardır. Hardware özellikleri, (varsa) network hızı, işletim sistemi vs. Bir bütün olarak bütün bu parametreler önem kazanıyor.
İşte, bunlardan biri de harddisk okuma/yazma(disk I/O) hızıdır. Sonuçları iyi yorumlayabilmek adına, normal şartlarda diskin I/O değerlerini bilmemiz önemlidir.

Depolama satıcıları, ürünleri üzerinde sonsuz miktarda performans verisi sunar, ancak bilgiler, bir Oracle veritabanı tarafından kullanıldığında, depolamanın nasıl performans göstereceğini yansıtmaz. Burada, işletim sistemi seviyesinde ve Oracle tarafından sağlanan bazı yardımcı programlar da dahil olmak üzere depolama sistemlerinizin performansını test etmek için birkaç yoldan bahsedeceğiz.

NOT : Oracle araçları (utilities), Oracle veritabanı tarafından gerçekleştirilen işlem türlerini taklit etmek için benzetilmiş bir yük kullanır. Uygulamalarınızın ürettikleri performans seviyesini başarabileceklerinin garantisi yoktur.

Disk performans testleri, buffer ve gerçek disk hızı olarak ayrılmaktadır. Buffer ön belleğin verdiği tepki süresidir. Gerçek disk hızı ise, diskinizin fiziksel olarak yazma / okuma işlemlerine verdiği tepki süresidir. İşleme başlangıç süresi, işlemi bitirme süresi ve işlemin disk boyutu olarak kriterler bulunmaktadır.

Biz bu yazımızda disk performansını ölçmek için aşağıdaki araçları sırayla kullanacağız.

  • dd
  • hdparm
  • ORION
  • CALIBRATE_IO

(devamı..)

Loading


Veritabanındaki Archivelog İstatistikleri

Script 1 : Günlük çıkan archivelog ile ilgili istatistikler.

SELECT A.*, ROUND (A.Count# * B.AVG# / 1024 / 1024 / 1024) Daily_Avg_Gb
  FROM (  SELECT TO_CHAR (First_Time, 'YYYY-MM-DD') DAY,
                 COUNT (1) Count#,
                 MIN (RECID) Min#,
                 MAX (RECID) Max#
            FROM v$log_history
        GROUP BY TO_CHAR (First_Time, 'YYYY-MM-DD')
        ORDER BY 1) A,
       (SELECT AVG (BYTES) AVG#,
               COUNT (1) Count#,
               MAX (BYTES) Max_Bytes,
               MIN (BYTES) Min_Bytes
          FROM v$log) B;

Script 2 : Saatlik olarak çıkan archivelog sayısı.

set lines 130;
set pages 1050;

  SELECT TO_CHAR (first_time, 'YYYY-MM-DD') day,
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '00', 1, 0)),'999')"00",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '01', 1, 0)),'999')"01",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '02', 1, 0)),'999')"02",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '03', 1, 0)),'999')"03",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '04', 1, 0)),'999')"04",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '05', 1, 0)),'999')"05",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '06', 1, 0)),'999')"06",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '07', 1, 0)),'999')"07",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '08', 1, 0)),'999')"08",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '09', 1, 0)),'999')"09",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '10', 1, 0)),'999')"10",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '11', 1, 0)),'999')"11",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '12', 1, 0)),'999')"12",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '13', 1, 0)),'999')"13",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '14', 1, 0)),'999')"14",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '15', 1, 0)),'999')"15",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '16', 1, 0)),'999')"16",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '17', 1, 0)),'999')"17",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '18', 1, 0)),'999')"18",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '19', 1, 0)),'999')"19",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '20', 1, 0)),'999')"20",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '21', 1, 0)),'999')"21",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '22', 1, 0)),'999')"22",
         TO_CHAR (SUM (DECODE (TO_CHAR (first_time, 'HH24'), '23', 1, 0)),'999')"23"
    FROM v$log_history
GROUP BY TO_CHAR (first_time, 'YYYY-MM-DD')
ORDER BY 1;

Yararlı olması Dilegiyle…
Yazar : Mustafa Bektaş Tepe

Loading


Oracle OSWatcher Aracı

OSWatcher aracı belirli aralıklarla top, iostat,vmstat, netstat gibi komutlar ile üretilen verilerin analiz edilip saklanılıp raporlanması için geliştirilmiş bir araçtır.İçinde barındırdığı OSWg aracı ile analiz edilen verileri grafik olarak sunar.

OSWatcher aracı Oracle tarafından geliştirilmiştir ve metalink üzerinden (support.oracle.com) ücretsiz indirip kullanabilirsiniz. Metalink üzerinden (https://support.oracle.com) “OS Watcher Black Box User Guide [ID 301137.1]” isimli dokümanda bulunan oswbb733.tar isimli dosyayı indirelim.

1.Bu dosyayı WinSCP tarzı bir program ile Linux sunucumuza “oracle” kullanıcısı ile kopyalayalım.

2.tar dosyasını “oracle” kullanıcısı ile açalım.

[oracle@test-rac1 oswatcher]$ tar xvf /home/oracle/oswatcher/oswbb733.tar
oswbb/
oswbb/docs/
oswbb/docs/The_Analyzer/
oswbb/docs/The_Analyzer/OSWatcherAnalyzerOverview.pdf
oswbb/docs/The_Analyzer/oswbbaUserGuide.pdf
oswbb/docs/The_Analyzer/oswbba_README.txt
oswbb/docs/OSWatcher/
oswbb/docs/OSWatcher/oswbb_README.txt
oswbb/docs/OSWatcher/OSWatcherUserGuide.pdf
oswbb/Exampleprivate.net
oswbb/nfssub.sh
oswbb/stopOSWbb.sh
oswbb/call_du.sh
oswbb/iosub.sh
oswbb/OSWatcherFM.sh
oswbb/ifconfigsub.sh
oswbb/ltop.sh
oswbb/mpsub.sh
owbb/call_uptime.sh
oswbb/psmemsub.sh
oswbb/tar_up_partial_archive.sh
oswbb/oswnet.sh
oswbb/vmsub.sh
oswbb/call_sar.sh
oswbb/oswib.sh
oswbb/startOSWbb.sh
oswbb/Example_extras.txt
oswbb/oswsub.sh
oswbb/oswbba.jar
oswbb/OSWatcher.sh
oswbb/tarupfiles.sh
oswbb/xtop.sh
oswbb/src/
oswbb/src/Thumbs.db
oswbb/src/OSW_profile.htm
oswbb/src/tombody.gif
oswbb/src/missing_graphic.gif
oswbb/src/coe_logo.gif
oswbb/src/watch.gif
oswbb/src/oswbba_input.txt
oswbb/oswrds.sh
[oracle@test-rac1 oswatcher]$

NOT : OSWatcher ksh kabuğunda(shell) yazıldığı için sistemimizde ksh olması gerekmektedir. ksh olup olmadıgını anlamak için aşagıdaki komutdan yararlanabiliriz.

[root@test-rac1 ~]# rpm -qa | grep ksh
ksh-20100621-19.el6.x86_64

(devamı..)

Loading


PL/SQL Transactions

Bir transaction; birden çok SQL sorgularının çalıştırıldığı ama Oracle’ın, bu sorguların tamamını bir ünite(set) olarak algıladığı mantıksal sorgu bloğudur. Bu blok rollback ya da commit ile parçalanabilir veya sonlandırılabilir. Yani begin yada herhangi bir SQL cümlesi ile başladığımız ve COMMIT, ROLLBACK veya işlemleri sonlandıracak bir söz deyimi ile karşılaşmamız arasında yapılan tüm aksiyonlardır. Transaction işlemi başlar ve bitirilir. Transaction’nın başlaması için;

  • Veri tabanına bağlanıp ilk SQL cümlesinin çalışması
  • Her transaction bitiminden sonra sonra yeni bir SQL’in çalışması ile

Bir transaction’ın  bitmesi için aşağıdaki işlemlerden birinin olması yeterlidir.

  • COMMIT veya ROLLBACK işlemlerinden birinin yapılması
  • DDL işlemlerinden birinin(CREATE ,DROP,ALTER ve RENAME) yapılıyor olması. Bunun nedeni ise hatırlayacağınız gibi DDL işlemleri AUTO COMMIT ‘dir. Yani sizin commit etmenize gerek yoktur direk commitler.
  • DCL işlemlerininden birinin yapılması GRANT,REVOKE gibi. Bunun nedeni de yine AUTO COMMIT olmasıdır.
  • Kullanıcının veri tabanından bağlantısının kesilmesi.

COMMIT :  Çalışmasını dışardan vereceğimiz komut ile tetiklebilmek için 2 farklı komut çalıştırabiliriz. Bunlar COMMIT ve COMMIT WORK’tür. Commit transaction’ı sonlandırarak tüm yapılan değişikliklerin kalıcı olmasını sağlamaktadır. Bu sayede yapılan tüm değişiklikler tüm sessionlar tarafından görünür olabilecektir.Örneşin aşağıdaki işlem bir transactiondır ve işlemin sonunda herhangi bir problem olmadığında  COMMIT işlemi ile transactionımız son bulur.

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );
COMMIT;

(devamı..)

Loading


  • Sertifikasyon



  • Etiketler

  • Topluluklar

                     
                     
  • Copyright © 1996-2010 Mustafa Bektaş Tepe. All rights reserved.
    Türkçeleştirme Blogizma | AltyapıWordPress