12 Eylül 2014 Cuma

OEL 5.5 üzerinde Apex 4.1 'den 4.2' ye upgrade

1) Apex 4.2, aşağıdaki adresten download edilir.

http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

2) Download edilen apex4.2.5.zip istenilen bir klasöre açılır.

3) Zip dosyanın açıldığı klasörde apexins.sql dosyası çalıştırılır.

sqlplus ile sys user kullanılarak bağlanılmalıdır.
apexins.sql dışarıdan 4 parametre alır : APEX user için kullanılacak tablaspace, FLOWS_FILES user için kullanılacak tablespace,TEMP tablespace, image klasörünün ismi.

$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Thu Jan 3 11:21:39 2013
 
Copyright (c) 1982, 2011, Oracle. All rights reserved.
 
SQL> @apexins.sql APEX APEX TEMP /i/

Benim makinemde komutun tamamlanması 16 dk. sürdü.
Sonrasında “APEX_040200″ kullanıcısının oluştuğunu görebilirsiniz.

4) Upgrade sonrası kontrol

Kurulum sonrası aşağıdaki query sonucu "VALID" olmalıdır.

$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Thu Jan 3 11:21:39 2013
 
Copyright (c) 1982, 2011, Oracle. All rights reserved.
 
SQL> select status from dba_registry where comp_id='APEX';
 
STATUS
-------------------------------------------------------
VALID

5) Image klasörünün ayarlanması

Kurulum sonrası, eski apex kurulumunuzun bulunduğu klasörün ismini değiştirin ve
yeni apex klasörünüzü buraya taşıyarak aynı ismi verin.
Sonrasında eski apex/images klasörünüzde bulunan manual yüklediğiniz resim dosyalarınızı
yeni apex/images klasörünüze kopyalayın.

6) Eğer Oracle 11g kullanıyorsanız ve mail atma gibi aksiyonlarınız varsa
ilgili network yetkileri “APEX_040200″ user için verilmelidir.

Aşağıdaki sql scripti sys user ile çalıştırılmalıdır.

DECLARE
ACL_PATH VARCHAR2(4000);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_040200
-- the "connect" privilege if APEX_040200 does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_040200', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_040200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;

Bu blog yazısını hazırlarken gerçekleştirdiğim upgrade
deneyimi yanısıra aşağıdaki adresten yararlandım.
İncelemeniz faydalı olabilir. 

https://matthiashoys.wordpress.com/tag/apexins-sql/



10 Eylül 2014 Çarşamba

Oracle Enterprise Linux 5.5 üzerine Oracle Glassfish 4 Application Server kurulumu

1) Aşağıdaki adresten glassfish-4.1.zip dosyası download edilir.

https://glassfish.java.net/download.html

2) download edilen zip dosya mesela masaüstüne açılır.

3) Yeni oluşan glassfish4 klasöründe aşağıdaki komut "root" user ile çalıştırılarak glassfish çalıştırılır.

[root@apex bin]# cd glassfish4/bin/
[root@apex bin]# ./asadmin start-domain


[root@apex bin]# ./asadmin start-domain
Waiting for domain1 to start ....
Successfully started the domain : domain1
domain  Location: /u01/app/oracle/Desktop/glassfish4/glassfish/domains/domain1
Log File: /u01/app/oracle/Desktop/glassfish4/glassfish/domains/domain1/logs/server.log
Admin Port: 4848

Command start-domain executed successfully.


aşağıdaki komut ile glassfish durdurulabilir.

[root@apex bin]# ./asadmin stop-domain

Yönetim web arayüzüne aşağıdaki gibi ulaşılır. 

Default user : admin
Şifre: Başlagıçta yok. Sadece enter tuşuna basın. 






Oracle Enterprise Linux 5.5 üzerinde java 1.4 versiyonundan son versiyona upgrade nasıl yapılır?

Rehdat 5.5 64 bit için java update adımları aşağıdaki gibidir..

1) Şu anki Java versiyonunun kontrol edilmesi.

[root@localhost ~]# java --version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-48)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


2) En son versiyon JDK kurulum dosyasının download edilmesi

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Ben update ettiğim sıradaki güncel versiyon 8'di.
Pkg name : jdk-8u20-linux-x64.rpm


Burada x64, 64 bit versiyon demek.

3) root user ile bağlanarak aşağıdaki paketi kuruyoruz. 

#rpm -Uvh jdk-8u20-linux-x64.rpm

4) root user ile sembolik link güncellenerek kurulum tamamlanır.


Then just create symbolic link which point to new java installation.

[root@localhost bin]# rm /usr/bin/java
[root@localhost bin]# ln -s /usr/java/jdk1.8.0_20/bin/java /usr/bin/java

Şimdi java versiyonumuzu test edelim.

[root@localhost bin]# java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
[root@localhost bin]# 

işlem tamam.
Bir sonraki yazı Oracle Glassfish application server version 4 kurulumu hakkında.

28 Ağustos 2013 Çarşamba

select sql çıktısını html olarak almak.

Select statement sonucunu, html sayfası olarak döndürür.
(Bu prosedür 'ü aşağıdaki adreste bulduğum kodu değiştirerek oluşturdum. Buradan teşekkür ediyorum. )


http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1035431863958


Test
---------------------------
DECLARE
   gecici   VARCHAR2 (32000);
BEGIN
   get_table2html ('select 1001 baslik1,1002 baslik2 from dual
union
select 1003,1004 from dual', gecici);
   DBMS_OUTPUT.put_line (gecici);
END;

kaynak kod
--------------------------
http://pastebin.com/download.php?i=QbBthK6s




15 Ağustos 2013 Perşembe

Rman ile backup başlattım. Ne kadar sürecek?

select SID, START_TIME,TOTALWORK, sofar, (sofar/totalwork) * 100 done, sysdate + TIME_REMAINING/3600/24 end_at from v$session_longops where totalwork > sofar AND opname NOT LIKE '%aggregate%' AND opname like 'RMAN%'

12 Nisan 2012 Perşembe

Ne zaman Goldengate, Ne zaman Dataguard?

Goldengate, CEO 'su Türk bir şirket olarak, gelişmiş replikasyon teknolojileri
ile pazar lideri konumunda iken 2009 senesinde Oracle tarafından satın alınan
şirketin ismidir.

Peki ne işe yarar bu Goldengate?
--------------------------------

Goldengate, pek çok veritabanını(Oracle, DB2, Mysql, Sql) destekleyen bir
veritabanları arası veri aktarım çözümüdür. Primary veritabanınızdan
sizin belirlediğin tablo datalarını ve hatta DDL işlemlerini ikinci bir ayrı
veritabanına eş zamanlıya çok yakın bir şekilde işler.

Peki buna ne gerek var?
-----------------------

1) Yüksek kaynak tüketen sorgulardaki kaynak datayı barındıran
tablolar, Goldengate kullanılarak eş zamanlı olarak diğer bir veritabanına
kaydedilebilir ve burada rapor sorguları çalıştırılır. Böylece ana sistem üzerindeki
yük önemli ölçüde azalabilir.
2) Oracle BI veya benzeri bir çözüm kullanıyorsanız, raporlarınız önceki
gün datası ile değil şu anki data ile çalışabilir.
3) Önemli tablolarınızı Goldengate ile eş zamanlı olarak ikinci bir veritabanına
kaydederek backup politikanızı güçlendirebilirsiniz.
4) Bu çözümü kullanarak hiç ana veritabanınızı kapatmadan upgrade/migration mümkün olabilir.

Disaster Recovery(DR) ve Goldengate
-------------------------------------

DR durumuna kısaca veritabanınızı bir şekilde kaybetmek ve verilerimize
ulaşamaz hale gelmemiz diyebiliriz.(Donanım sorunu, kullanıcı hatası vs.)
Oracle Goldengate, DR konusunda Oracle Dataguard' ı tamamlayıcı veya destekleyici bir ürün olmakla
birlikte bana göre tek başına bu görevi üstlenmek için yeterli değil.

Çünkü;
1) Standby database Read-Write operasyonlarına açık olduğundan
birinin gidip bir şekilde verinizi değiştirme ihtimali vardır.
2) Karmaşık konfigürasyonu uzun sürer, her tablo için tek tek uğraşmak gerekebilir.
3) Oracle Dataguard gibi stabil ve bakım gerektirmeyen bir yapıya sahip değildir.
Örneğin konfigurasyonunuza bağlı olarak, primary database üzerinde
replike ettiğiniz tablolardan birisine bir alan eklersiniz ve replikasyonunuz duruverir.
Yeni bir tablo ekleyeceğiniz zaman yeniden konfigurasyon sürecine girersiniz.
4) Her türlü veri tipini ve tüm şemalardaki veriyi replike etmeyi desteklemez.
Yani database' inizin bire bir aynısını yedeklemiş olmazsınız aslında.
5) Ana veritabanınızı kaybetmeniz durumunda veritabanınızı hızlı bir şekilde
açmanız mümkün olmayabilir. (Örneğin performans ve aktarım sorunları nedeniyle constrait'leri
kapatmış olabilirsiniz veya triggerlarınız kapalı durumda olabilir.)

Buna karşın Dataguard,
1) Oracle' ın yıllardır kendini kanıtlamış, çok stabil çalışan DR çözümüdür.
2) Yukarıdaki Goldengate 'te bulunan DR dez avantajlarının hiç birisini içermez.
3) Goldengate ile kıyaslandığında çok daha performanslı çalışır çünkü aktarılan veri SQl
deyimleri değil değişen veri bloklarıdır.
4) Birkaç sql komutu çalıştırılarak standby database saniyeler içerisinde açılabilir.

Raporlama ve Dataguard
--------------------------

Oracle 11g' ye kadar, dataguard kullanılarak oluşturulan standby veritabanları kapalı durumdaydılar.
Yani primary database üzerinden değişiklikler anlık olarak geliyor ve uygulanıyordu ancak
siz standby database üzerinde sorgu çalıştıramıyordunuz. 11g ile gelen Active Dataguard özelliği,
aynı anda primary veritabanından gelen değişikler kaydedilirken, sorgulama yapmaya izin vermektedir.
Ancak Goldengate 'te olduğu gibi mesela yeni tablolar ekleyemezsiniz.


Özet;

Hem Oracle Goldengate hem de Oracle Dataguard çok güçlü özellikler barındıran ürünlerdir.
Fakat iyi sonuçlar almak için doğru ürünü doğru noktada kullanmalısınız.

Real time veri transferi konusunda GoldenGate çok başarılı bir çözüm sunmaktadır ve
DR konusunda bana göre vasat bir çözümdür. Dataguard ise Oracle to Oracle DR konusunda
çok başarılı bir çözümken raporlama konusunda ortalama bir çözümdür bence.

Goldengate kullanan arkadaşların yorumlarını bekliyorum.

İyi çalışmalar.

5 Haziran 2011 Pazar

Sık kullandığım linux komutları -1


 

Linux komutlarının pek çok parametresi vardır.Burada benim sık kullandığım şekilleri yer alıyor.

df -h

Disk partition 'ları için doluluk oranlarını gösterir.


df komutunun -h parametresi, çıktının daha kolay okunabilir şekilde olmasını sağlar.
Büyüklük değerleri MB ,GB cinsinden görüntülenir. Eğer -h parametresi kullanılmaz ise
çıktıdaki büyüklükler kb cinsinden olacaktır.

Çıktıdaki sütunların açıklamaları aşağıdaki gibidir.

Filesystem : Dosya sistemi
Size : Toplam kullanılabilir alan
Used : Toplan kullanılan alan
Avail : Toplam boş alan
Use % : Kullanılan alan yüzdesi
Mounted on : Mount edildiği yer

du -hs *

Bir klasörün büyüklüğünü, alt dizinleri ile beraber hesaplar.

Bu komut bulunulan klasör altındaki tüm klasör büyüklüklerini hesaplayarak görüntüleyecektir.


find . -size +100M *

Bulunulan dizin içerisinde, alt dizinlerle beraber 100Mb 'dan büyük
dosyaları görüntüler. Tabi burada komutta değişiklik yaparak mesela 50MB' dan büyük dosyalarda
görüntülenebilir.