PL SQL Mail Gönderme

CREATE OR REPLACE PROCEDURE MAIL_GONDER (p_to        IN VARCHAR2,
                                       p_subject   IN VARCHAR2,
                                       p_message   IN VARCHAR2)
AS
   l_mail_conn   UTL_SMTP.connection;
   p_from        VARCHAR2 (30) := 'Gonderici Bilgisi';
   p_smtp_host   VARCHAR2 (30) := 'mail server bilgisi';
   p_smtp_port   NUMBER := 25;
BEGIN
   l_mail_conn := UTL_SMTP.open_connection (p_smtp_host, p_smtp_port);
   UTL_SMTP.helo (l_mail_conn, p_smtp_host);
   UTL_SMTP.mail (l_mail_conn, p_from);
   UTL_SMTP.rcpt (l_mail_conn, p_to);

   UTL_SMTP.open_data (l_mail_conn);

   UTL_SMTP.write_data (l_mail_conn,'Date: ' || TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || UTL_TCP.crlf);
   UTL_SMTP.write_data (l_mail_conn, 'To: ' || p_to || UTL_TCP.crlf);
   UTL_SMTP.write_data (l_mail_conn, 'From: ' || 'Database Report Mail' || UTL_TCP.crlf);
   UTL_SMTP.write_data (l_mail_conn,'Subject: ' || p_subject || UTL_TCP.crlf);
   UTL_SMTP.write_data (l_mail_conn,'Reply-To: ' || p_from || UTL_TCP.crlf || UTL_TCP.crlf);

   UTL_SMTP.write_data (l_mail_conn,p_message || UTL_TCP.crlf || UTL_TCP.crlf);
   
   UTL_SMTP.close_data (l_mail_conn);

   UTL_SMTP.quit (l_mail_conn);
END;
/
begin
  dbms_network_acl_admin.create_acl (
    acl         => 'utl_mail.xml',
    description => 'Allow mail to be send',
    principal   => 'Mail Gonderecek Username',
    is_grant    => TRUE,
    privilege   => 'connect'
    );
    commit;
end;


BEGIN
  DBMS_NETWORK_ACL_ADMIN.assign_acl (
  acl => 'utl_mail.xml',
  host => 'mail server', 
  lower_port => '25',
  upper_port => '25');
  COMMIT;
END;
/
Begin
MAIL_GONDER('Gonderilen mail adresi','Konu','Deneme mesajı');
End;
/

exec MAIL_GONDER('Gonderilen mail adresi','Konu','Deneme mesajı');

Loading


Bonding nedir? Linux İşletim Sistemlerinde Nic Bonding Yapılandırması

Bugünkü yazımda, Linux İşletim Sisteminde Network yedekliliği (redundant links, fault tolerance) olarak bilinen Linux Bonding konusu hakkında bilgilendirme yapacağım.

Bonding Linux için kullanılan terimdir. Diğer işletim sistemlerinde Teaming (Windows), Network dünyasındaTrunking olarak bilinmektedir.
Linux bonding
Bonding birden fazla Network interface (NIC)’in bir mantıksal gurup olarak tek bir interface olarak kullanablmemize olanak sağlar.

Bonding yedeklilik sağladığı gibi, band genişliğini (load balancing networks) artırmak için de kullanılabilmektedir.
Linux interface bonding
Bu işlemleri Windows altında donanım üreticileri tarafından sağlanan yazılımlarla yapmak mümkün. Bir takım kısıtlarla birlikte sorunsuz denilebilecek seviyede çalışabilmektedir. Aslen araya bir balancer koymadığınız takdirde yazılım bile olsa tam olarak yük dengelemesi yapılamamaktadır. Donanım üreticilerinin bu konudaki yazılımlarınada ihtiyaç duymamaktayız. Linux bunu kendi yeteneği ile yapabilmektedir.

Bonding modülü Linux işletim sistemi çekirdeği desteği ile gelir. Ethernet kartı standartı olarak IEEE 802 kullanılır.

Bonding modülünün 7 farklı şekilde çalışma yapısı bulunur, Kullanılan Mod’a bağlı olarak Bonding Layer 2 veya Layer 3 OSI Network katmanında kullanılmakta. (devamı..)

Loading


Openfiler Nedir? Nasıl kurulur? Nasıl Kullanılır?

Openfiler Nedir?

Merhabalar bu yazımda sırasıyla openfiler’ın ne olduğundan, kurulumundan ve openfiler üzerinde iscsi depolama alanı yapılandırıp daha sonra  başka bir linux sunucuya bağlayıp kullanacağız.

Openfiler, SAN/NAS hizmeti için hazırlanmış açık kaynak kodlu network depolama işletim sistemidir.

Openfiler’da fileserver, share disk, sanal harddisk ve türlü amaçlar için alanlar oluşturabilir ve yönetimini yapabiliriz. Openfiler, disklerimizden oluşmuş toplam kapasitemizi ihtiyacımıza göre alanlara ayırıp kullanmamızı sağlar.

Web tabanlı kolay kullanımlı arayüzü üzerinden kullanıcı hesaplarını, disk hacimlerini, disk kullanım kotalarını kısacası oldukça kapsamlı bir şekilde ağ depolama hizmetini her yönüyle kolayca kullanabilir ve ayarlayabilirsiniz.

Kısa bir tanıtımdan sonra openfiler kurulumuna gelecek olursak;

Openfiler’ı herhangi bir sunucuya kurabileceğiniz gibi vmware veya benzeri sanal araçlarada kurabilirsiniz.

Openfiler kurulumu için gerekli minumum kaynaklar aşağıdaki gibi.

Openfiler 0
(devamı..)

Loading


Multipath Nedir? Linux İşletim Sistemlerinde Multipath Yapılandırması

Multipath genellikle hostların (fiziksel sunucu) storage ile olan bağlantısını yedeklemek amacı ile kullanılır, fiziksel sunucu ile storage arasındaki fiber kablolardan birisi kopması, zarar görmesi v.b. durumunda storage olan erişimi kaybetmeden sisteminize erişilebilirliği sağlar. Yani Multipath SAN (Storage Area Network) ortamlarında sunucular HBA (Host Bus Adaptor) kartı, SAN switch, Storage controller gibi bileşenlerden biri arızalansa bile SAN disklere erişimin devam etmesini sağlayan teknolojidir.
Multipath genellikle Storage vendorlar tarafından sağlanmaktadır ancak güncel işletim sistemleri Native yani kendi multipath driverları ile gelmekte.

NOT : Tüm dağıtımlarda Linux kernel 2.6.x ile genel olarak Native Linux Multipath kullanılmaya baslamıstır. Yani CentOS/RedHat 6, Oracle Linux 6 ile native olarak desteklemektedir.

NOT : Eski sürüm Linux dağıtımlarında MPIO için HP, Hitachi, EMC, NetApp gibi Vendorların Multipath (MPIO) yazılımı ile gelmektedir.

multipath

Görselden de anlaşılacağı gibi Sunucular üzerinde bulunan HBA kartları SAN aracılığı ile storage lara bağlanmaktadır.
HBA lardan birisinde veya SAN ların birisinde problem olması durumunda ikinci hba veya san üzerinden veri akışı devam etmekte ve problem yaşanmamaktadır.

SAN : Sunucular ve depolama üniteleri arasında hızlı, güvenilir bağlantı sağlayan özelleştirilmiş bir ağ türüdür. SAN uygulamasında bir depolama ünitesi herhangi tek bir sunucunun özel malı olmak yerine, depolama birimleri ağdaki sunucu ve diğer depolama ünitelerinin ortak malıdır. Kısacası SAN; sunucuları depolama birimlerine, depolama birimlerini birbirlerine ve sunucuları birbirine bağlamaktadır. San iletim teknolojileri dediğimizde üç farklı temel teknolojiden bahsedebiliriz; Fibre Channel, iSCSi, FCIP.
Multipath konusunun daha iyi anlaşılması için SAN ile ilgili birkaç kavramın daha bilinmesi gerek.

SAN Switch : Üzerinde HBA kartı olan cihazlarımızı GBIC modül ve fiber optic kablolar kullanarak 2, 4, 8, 16 GB hızında, network katmanı haricinde güvenli bir şekilde birbirleri ile haberleştirmek için kullanılan bir teknolojidir. SAN Swithleri günümüzde daha çok sunucuları, storage ve tape cihazlarını haberleştirmek için kullanıyoruz.

HBA : HBA (Host Bus Adaptor) disk erişimi için kullanılan fiber hızda bağlanmasını sağlayan SCSI-3 protokolünü dönüştüren bir PCI karttır. NIC (Network Interface Card)/Ethernet gibi çalışan ama fiber kablolar aracılığıyla internete değil de storagelara bağlanan kartlardır. HBA, ethernet kartının sahip olduğu MAC adresi gibi üzerinde WWN (World Wide Name)’e sahiptir. Host Bus Adapter SCSI ve FC (Fibre Channel) olarak iki şekilde bulunur, günümüzde Fibre Channel kullanan HBA kartlarını daha çok kullanmaktayız ve görmekteyiz. (devamı..)

Loading


strace komutu ile sistem çağrılarını ve sinyalleri izleme

Linux üzerinde çalışan programlar işletim sisteminin yönettiği kaynakları kullanmak istediğinde (dosya okuma, proses yaratmak, vb) işletim sistemine sistem çağrıları yapar.
Sistem çağrıları, çekirdek seviyesinde çalışıp gerekli işlemleri gerçekleştirerek kontrolü tekrar kendisini çağıran programa bırakır.
Anlaşılacağı üzere sistem çağrıları (System Calls) programlarla işletim sistemi arasında bir arayüz sağlamaktadır. Sistem çağrılarına örnek olarak open, read, close, fork, recvfrom, signal, mprotect verilebilir.
Bir program strace ile başlatılırsa veya çalışırken strace programa bağlanırsa (attach) ilgili programın yaptığı bütün sistem çağrıları takip edilebilir. Aşağıdaki ekran çıktısında ls komutu strace ile başlatılmış ve yaptığı sistem çağrıları gösterilmiştir.

linux strace 1
strace, sergilediği sistem çağrılarıyla programların davranışlarının izlenebilmesini sağlamakta, problemlerin tespit edilmesinde ve programların karakteristiğini göstermekte çok önemli bir rol oynamaktadır.
Örneğin aşağıda test.txt dosyası yokken strace ile çalıştırılmıştır. Görüldüğü üzere open sistem çağrısı ile test.txt dosyasını açmaya çalışmış ancak dosya bulunmadığı için ENOENT hatası alarak ekrana default mesajı bastırmıştır.
(devamı..)

Loading


Linux Program Kurmak – Paket Yönetim Sistemleri(RPM) – YUM – Yerel Depo (Local Repository) Oluşturmak

Linux Program Kurmak

Windows’tan, Linux’a geçen kullanıcıların büyük çoğunluğu program yüklemekte sorun yaşarlar. Windows kullanırken, program yüklemek son derece basit bir iştir. Yükleyeceğiniz kurulum (Setup) dosyasına çift tıkladığınızda, bir ekran çıkar ve sadece İleri tuşuna basarak bir programı yükleyebilirsiniz.

Linux dünyasında işler ne yazık ki biraz daha karmaşıktır. Program kurmaya kalktığınızda, deb, apt, rpm, make, config, package vb. onlarca terim karşınıza çıkar. Karşılaşacağınız sorunlar bunlarla da bitmez; bağımlılık (dependency) ve eksik kütüphane dosyaları başınızı ağrıtır. Dağıtımınıza uygun kurulum paketlerinin olmayışı can sıkıcı bir konudur.

Neden bu kadar zor?

Bunu açıklamak için konunun başına dönmek gerekiyor. İnsanlar, Linux’u Windows XP veya Windows 2000 gibi bir işletim sistemi olarak düşünmekteler. Aslında Linux bir işletim sistemi değil; işletim sistemi çekirdeğidir. Firmalar veya şahıslar, bu çekirdeği alır ve bunu kullanarak bir dağıtım hazırlar. Yani SuSE, Ubuntu, Pardus veya Redhat yüklediğinizde, yüklediğiniz şey aslında Linux çekirdeği üzerine kurulmuş bir işletim sistemidir.

Bütün dağıtımlar, elbette ki, birbirlerine az çok benzerler ama bu onların farklı olduğu gerçeğini değiştirmez. Dünya genelinde, 300 üzerinde Linux dağıtımı ­bir başka değişle 300 üzerinde Linux tabanlı işletim sistemi­ bulunuyor. İşte sorunda buradan kaynaklanmakta. Yeni geliştirilmiş bir programın, her dağıtımda kolayca kurulup, çalışabilmesi oldukça zor bir konu. Var olan çeşitliliği düşününce, zaman zaman uyumsuzlukların olması ve sorunların çıkması gayet olağan bir durum. Windows XP için hazırlanmış bir kurulum dosyasını, Windows ME’de çalıştırmaya kalkarsanız, uyumsuzluk sorunları yine olabilir. Program yüklemenin sıkıntısı, çeşitliliğin bir sonucudur; hatayı Linux’ta aramamak lâzım

Program Derlemek…

Açık yazılım dünyasında geliştirilmiş çoğu programın, başka ortamlara taşınabilirliği yüksektir. Yazılımın kodu ortadadır ve sizin yapmanız gereken bu kodu derlemektir. Bu sayede, dağıtım bağımsız bir yapıda programı kurup, kullanma fırsatınız olur. Üstelik bunun için programlama bilmeniz gerekmez.

Her programın uyacağı belirli bir standart yok. Ancak çoğunluğun sahip olduğu, genel kurallar bulunuyor. Hemen hemen hepsinde, README ve INSTALL adında okunabilir metin (text) dosyalarını bulabilirsiniz. Bu iki dosya, programın ne olduğunu, yüklemek için nelere ihtiyacınız olduğunu içerir. Bir programı derlemek için yapacağınız ilk iş shell’de, programı açtığınız (extract) yere gelip, “./configure” yazmaktır. ./configure yazdığınızda karşınıza çıkacak ekran, gerekli programlardan hangilerinin sizde olup olmadığını yes/no ifadeleriyle gösterir.

Şayet her şey yolunda gider ve ./configure işlemi başarılı olursa, ikinci yapacağımız işlem konsolda “make” yazmaktır. Bunu yaptığınız takdirde, program yüklenmeye hazır olur. Son aşamada programı yüklemek için “make install” yazarız. Programımız yüklenir ve biz de kullanabiliriz.

tar zxvf paket-vxx.tgz
./configure
./make
./make install

NOT : Eğer programı kaldırmak isterseniz, aynı klasörde “make uninstall” yazabilirsiniz.

Programları derleyerek kurmak oldukça zahmetli bir uğraş. Açıkçası Linux’a yeni başlayanlara, bu yöntemi kesinlikle tavsiye etmem. Dosya bağımlılıkları ve derleyici sorunlarıyla boğuşmak, yorucu bir mücadele gerektiriyor. Sorunlarla boğuşmak yerine, daha önce derlenmiş ve çalıştırılmaya hazır paketleri (packages) kullanmak çok daha kolaydır.

Linux Paketler

Windows’ta program kurmak için, çoğu zaman bir şeylerin Setup.exe dosyasına tıklarsınız. Setup.exe önceden derlenmiş ve bu nedenle sizi uğraştırmayan bir yapıdır. Size sadece kurulumu yönetmek kalır.

Benzer bir imkan, Linux dağıtımlarında da bulunur. Daha önce birileri kaynak kodlardan, yazılımı derlemiş ve kullanıma hazır hâle getirmiştir. Siz programın paket dosyasını indirir ve aynı Windows’taki gibi üzerine tıklarsınız. Karşınıza bir ekran çıkar ve onay vermeniz durumunda, program kurulumu başlar. İşlem son derece basittir ve bir iki tıklamayla tamamlanır.

Şimdi yukarıda anlatınlanları kısaca özetleyecek olursak.

Linux de program kurulumu 2 şekilde gerçekleştirilebilir;

  1. Kaynak kodunu derleyerek kurmak.
  2. Önceden derlenerek oluşturulmuş pakedi bir paket yöneticisi ile kurmak.

İlk yöntem bazı avantajlarına rağmen fazla tercih edilmemektedir. Bir pakedi kaynak kodundan derlerken, derleyici parametrelerini değiştirip eldeki işlemciye özel, daha hızlı çalışabilir, ikili (binary) programlar oluşturulabilir veya özel isteklere göre  yapılandırılıp derlenebilir. Ancak derleyerek kod kurmanın dezavantajlarıda vardır;

  • Kod derlemek, yeni başlayanlar için zor bir işlem olabilir.
  • Kurulum öncesi düzenleme sıkıntıları (paket.conf, conf.h vs)
  • Kurulum sonrası dosyalar ve dokümanların dağılımı (/usr, /usr/local, /opt, /bin)
  • Kaldırma problemleri
  • Her paket için farklı ayarlamalar ve kurulum yöntemleri

Linux Paket Yönetim Sistemi

İkinci yöntem olan Paket ise programın (yazılımsal araç veya uygulamaların) derlenmiş kodu olarak tanımlanabilir.
(devamı..)

Loading


  • Sertifikasyon



  • Etiketler

  • Topluluklar

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