Docker ile Oracle XE Veritabanı Kurulumu
Veri yönetimi ve iş süreçlerinde güvenilir, yüksek performanslı bir veritabanı çözümüne ihtiyaç duyduğunuzda, Oracle Database, dünya genelinde en çok tercih edilen seçeneklerden biridir. Oracle, büyük ölçekli veritabanı ihtiyaçlarına cevap veren, güvenilirliği ve esnekliği ile bilinen bir platformdur.
Ancak, Oracle Veritabanı’nın klasik yöntemlerle kurulumu ve yapılandırılması oldukça karmaşık olabilir. Bu noktada Docker, işleri kolaylaştıran önemli bir araç olarak devreye giriyor. Docker kullanarak, Oracle Veritabanı’nı hızlı ve verimli bir şekilde kurmak, test etmek ve yönetmek mümkün. Üstelik bu yöntem, geleneksel kurulum süreçlerindeki karmaşıklığı ortadan kaldırarak daha pratik bir çözüm sunar.
Bu yazıda, Docker ile Oracle Veritabanı’nı nasıl kolayca kurabileceğinizi adım adım inceleyeceğiz. Kurulum sürecinin sonunda, temel bir Oracle Database ortamına sahip olacağız.
Oracle XE Nedir?
Oracle XE (Express Edition), Oracle Corporation tarafından sunulan, geliştiricilere ve küçük işletmelere yönelik ücretsiz bir veritabanı yönetim sistemidir. Oracle XE, sınırlı kaynaklarla yüksek performans sunarak uygulama geliştirmeyi kolaylaştırır. Aşağıdaki özelliklerle dikkat çeker:
- Tek Veritabanı Örneği: Oracle XE, yalnızca bir veritabanı örneği oluşturmanıza izin verir. Bu veritabanı, sistemin kendisi ve üzerinde barındırılan tüm verileri içerir.
- Kullanıcı ve Şema Yönetimi: Tek bir veritabanı içinde birden fazla kullanıcı oluşturabilir ve her kullanıcı kendi şemasına sahip olur. Bu sayede, farklı kullanıcılar aynı veritabanı üzerinde bağımsız olarak çalışabilir.
- Özgür ve Ücretsiz: Oracle XE, herhangi bir lisans ücreti olmadan kullanılabilir ve geliştirme, test ve production aşamalarında tercih edilebilir.
- Sınırlı Kaynak Kullanımı: Oracle XE, belirli sınırlar içinde (RAM, CPU ve depolama alanı gibi) çalışır, bu da onu küçük projeler ve uygulamalar için ideal bir seçim haline getirir.
Ön Gereksinimler:
- Docker kurulu bir bilgisayar
- İnternet bağlantısı
1. Çalışma Dizini Oluşturma
Öncelikle, Oracle veritabanı için bir çalışma dizini oluşturalım. Bu dizin, Docker Compose dosyasını ve veritabanı verilerinizi saklamak için kullanılacaktır.
mkdir oracle-database cd oracle-database
2. Docker Compose Dosyası Oluşturma
Çalışma dizininde docker-compose.yml
adında bir dosya oluşturalım ve aşağıdaki içeriği ekleyelim. Bu dosya, Oracle veritabanı konteynerini tanımlayacaktır.
Docker Compose dosyası
services: oracle-xe: container_name: oracle-xe image: container-registry.oracle.com/database/express:21.3.0-xe environment: - ORACLE_PWD=YourPassword123 - ORACLE_CHARACTERSET=AL32UTF8 volumes: - oradata:/opt/oracle/oradata ports: - "1521:1521" - "5500:5500" volumes: oradata:
Docker Compose dosyasını oluşturduktan sonra, Oracle veritabanı konteynerini başlatmak için aşağıdaki komutu çalıştıralım:
docker-compose up -d
-d
bayrağı, konteynerin arka planda çalışmasını sağlar.
Oracle veritabanı konteynerinin düzgün bir şekilde çalıştığından emin olmak için konteyner durumunu kontrol edelim:
docker ps
- Bu komut, çalışan konteynerleri listeleyecektir.
oracle-xe
konteynerinin durumunun “Up” olduğunu görmelisiniz.
3. SQL Plus ile Veritabanına Bağlanma
3.1. SQL Plus Nedir?
SQL Plus, Oracle veritabanı ile etkileşimde bulunmak için kullanılan bir komut satırı aracıdır. Kullanıcılara SQL sorguları yazma, çalıştırma ve veritabanı yönetimi ile ilgili komutlar uygulama imkanı sunar. Oracle veritabanı ile birlikte otomatik olarak gelen bu araç, SQL komutlarını yazmak ve çalıştırmak için yaygın olarak kullanılmaktadır.
3.2. SQL Plus Kurulumu
SQL Plus, Docker ile başlattığınız Oracle veritabanı konteynerinin içinde otomatik olarak bulunmaktadır. Oracle veritabanı ile birlikte yüklenen bu araç, konteyneri başlattığınızda otomatik olarak kullanılabilir hale gelir.
3.3. SQL Plus Aracını Kullanma
Oracle konteyner içinde sqlplus’ı başlatalım:
docker exec -it oracle-xe sqlplus sys/YourPassword123@//localhost:1521/XE as sysdba
3.3.1. SQL Plus Komutunun Açıklaması
docker exec -it oracle-xe sqlplus sys/YourPassword123@//localhost:1521/XE as sysdba
komutunu parçalarına ayırarak açıklayalım:
- sys/YourPassword123:
- sys kullanıcısı, Oracle’ın en yetkili yönetici hesabıdır. Bu kullanıcı ile veritabanı yönetimi ve kritik işlemler yapılabilir.
- YourPassword123 burada SYS kullanıcısının parolasını temsil eder. Kurulum sırasında belirlenen parola burada kullanılır.
- @//localhost:1521/XE:
- Bu bağlantı dizesi, hangi sunucu, port ve veritabanına bağlanılacağını belirtir:
- @//localhost: Bağlanılacak sunucu olarak
localhost
seçilmiştir, yani veritabanı konteyner içinde çalışıyor. Eğer veritabanı farklı bir sunucuda olsaydı, burada IP adresi veya sunucu adı belirtilirdi. - :1521: Oracle veritabanının dinleme yaptığı porttur. Oracle varsayılan olarak
1521
portunu kullanır. Farklı bir port ayarlanmışsa burada o port belirtilmelidir. - /XE: Bu kısım veritabanı kimliğini (SID) belirtir. Oracle XE (Express Edition) varsayılan olarak
XE
SID’i kullanır. Başka bir SID ile çalışıyorsanız, bu kısmı değiştirmeniz gerekir.
- @//localhost: Bağlanılacak sunucu olarak
- Bu bağlantı dizesi, hangi sunucu, port ve veritabanına bağlanılacağını belirtir:
- as sysdba:
- SYS kullanıcısına SYSDBA yetkisi tanımlanır. Bu yetki, veritabanını açma/kapama, yedekleme ve diğer yönetimsel işlemleri yapma yetkisi sağlar.
4. Kullanıcı Oluşturma ve Yetkilendirme
SQL Plus’ta aşağıdaki komutlarla yeni bir kullanıcı oluşturabilir ve bu kullanıcıya yetkiler atayabiliriz:
CREATE USER myuser IDENTIFIED BY mypassword; GRANT ALL PRIVILEGES TO myuser;
- Burada
myuser
vemypassword
kısmını istediğiniz kullanıcı adı ve şifre ile değiştirebilirsiniz. - Burada
myuser
vemypassword
, oluşturulacak kullanıcının adı ve şifresidir. Bu işlem, Oracle veritabanı içinde yeni bir kullanıcı ve şema oluşturur. Ancak bu işlem, bir veritabanı oluşturma işlemi değildir. Oracle’ın şema tabanlı yapısı nedeniyle kullanıcı oluşturma işlemi bazen “veritabanı oluşturma” gibi algılanabilir.
GRANT ALL PRIVILEGES TO myuser;
Bu komut, myuser adlı kullanıcıya Oracle veritabanı üzerinde tüm yetkileri verir.
- GRANT: Yetki verme işlemidir.
- ALL PRIVILEGES: Kullanıcıya tüm temel işlemleri yapma yetkisi tanır (tablo oluşturma, veri ekleme/silme gibi).
- TO myuser: Yetkilerin atanacağı kullanıcıdır.
Kim Yetki Veriyor?
Bu komut genellikle SYS veya SYSTEM gibi yüksek yetkili bir kullanıcı tarafından çalıştırılır.
4.2. Kullanıcıyı Doğrulama
Kullanıcı oluşturulduktan sonra aşağıdaki komutla kullanıcıyı kontrol edebilirsiniz:
SELECT * FROM all_users WHERE username = 'MYUSER';
5. Yetkilendirme İşlemleri
5.1. Kullanıcıya Yetki Verme
Oluşturduğumuz kullanıcıya ek yetkiler vermek için şu komutları kullanabiliriz:
GRANT CREATE SESSION TO myuser; GRANT CREATE TABLE TO myuser;
CREATE SESSION
: Kullanıcının oturum açmasına izin verir.CREATE TABLE
: Kullanıcının tablo oluşturmasına izin verir.
5.2. Yetkilerin Kontrolü
Yetkilerimizi kontrol etmek için aşağıdaki sorguyu kullanabiliriz:
SELECT * FROM user_sys_privs;
6. Veritabanına Bağlantı Testi
Yeni kullanıcı ile bağlantı kurmak için SQL*Plus aracını tekrar kullanalım:
docker exec -it oracle-xe sqlplus myuser/mypassword@//localhost:1521/XE
- Eğer kullanıcı adı ve şifre doğruysa, başarılı bir şekilde bağlanmalısınız.
myuser/mypassword
: Yeni oluşturulan kullanıcı adı ve şifresi.@//localhost:1521/XE
: Veritabanının bağlantı dizesidir.
7. Veritabanı Yönetimi
7.1. Veritabanını Durdurma
Konteyneri durdurmak için aşağıdaki komutu kullanabilirsiniz:
docker-compose down
7.2. Konteyner ve Veri Silme
Eğer konteyneri ve ona ait verileri tamamen silmek isterseniz, aşağıdaki komutları kullanabilirsiniz:
docker-compose down -v
Bu komut, konteyneri ve oradata
hacmini siler.
Kurulumunuzu başarıyla tamamladınız, yazımız da burada son buluyor!
Docker ile Oracle XE’yi hızlıca kurup temel kullanıcı yönetimini nasıl yapabileceğinizi öğrendik. Oracle XE, özellikle küçük projelerde veya geliştirme ortamlarında işinizi fazlasıyla görebilecek güçlü bir veritabanı çözümü. Docker ise tüm bu kurulumu oldukça basit ve hızlı bir hale getiriyor.Bu süreçten sonra, uygulamalarınızı geliştirebilir, test edebilir ve veritabanınızı daha verimli bir şekilde kullanabilirsiniz. Eğer takıldığınız bir nokta olursa, Oracle’ın dökümantasyonuna göz atabilir ya da topluluklardan yardım alabilirsiniz.
Kurulum aşamasında öğrendiklerinizin işinize yaraması dileğiyle! Yardıma ihtiyacınız olursa buradayız. İyi çalışmalar!