RMAN script çağırma, CHECKSYNTAX

Merhabalar,

RMAN çalışmalarına devam ediyorum.

Hazırlanan RMAN script-i terminalden çağırmak için;

1- Örneğin ” rmanscript ” adı altında bir dosya oluşturun.

2- İçine, ” BACKUP DATABASE PLUS ARCHIVELOG; ” komutunu yazın.

3- Terminalde klasörünüzün bulunduğu dizine gidin.

4- ” rman TARGET / @rmanscript ” yazdığınızda dosyanızın içi okunacak backup işlemi başlayacaktır.

Yazılan kodların doğruluğunu CHECKSYNTAX ile kontrol etmek;

Terminalde ” rman CHECKSYNTAX ” komutu ile girdiğiniz RMAN içerisinde kullanacağınız komutları yazarak doğru olup olmadığını görebilirsiniz. Örneğin;

RMAN> backup database;

The command has no syntax errors

RMAN> run [ backup database; ]

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01006: error signaled during parse
RMAN-02001: unrecognized punctuation symbol “[“

Renkli günler…

Kaynak: http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmintro.htm#i1005488

RMAN içinde gezinme

Merhabalar,

RMAN’da ufak bir gezintiye çıkıp ne var ne yok bir bakalım. Herşeyden önce “rman> ” satırında bu işlemleri yaptığımızı unutmayın.

RMAN ile database-e bağlanma;

connect target /

Database içinde ne zaman, hangi tipte, nelerin backup-ı alınmış;

list backup of database;

Datafile ve temp file raporlarını görmek;

report schema;

Hataları yoklama;

list failure;

Hata varsa Data Recovery Advisor-dan tavsiyeleri görme;

advise failure;

Alert log, trace files, health monitor adreslerini, aktif problemleri bulmak (SQLPLUS’ta yazılacak);

select name, value from V$DIAG_INFO;

Media recovery yapmak;

recover corruption list;

Renkli günler…

Kaynak: http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmintro.htm#i1005488

Backup Operasyonları

Merhabalar,

Bu makalemde backup almak için kullanılan komutlara hem bir giriş yapmak hem de komutları kolay bulabilmek için bloguma kaydetme amacıyla backup operasyonlarından bahsediyor olacağım.

Archivelog modda database backup alma

Eğer veritabanımız archievelog modda çalışıyorsa, veritabanı açık iken backup işlemi yapabiliriz. Ama bu backup işlemi uyumsuz bir backup olacaktır. Çünkü veritabanını tutarlı hale getirmek için redo gerekecektir.

Database açık iken terminalde “rman” yazar ve “RMAN>” satırında şu komutla backup alırız;

backup database;

Nonarcivelog modda database backup alma

Eğer veritabanı nonarchivelog-ta çalışıyorsa, en iyi yöntem tutarlı bir backup almaktır. Veritabanının tutarlı olması için, database shutdown yapıldıktan sonra “startup mount” modda açılmalıdır.

Bunun için target database ve rman açılır;

$ rman

Recovery Manager: Release 11.2.0.1.0 – Production on Sun Aug 12 08:34:04 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect target /

connected to target database: ORCL (DBID=1292452971)

(Benim veritabanımın ismi : orcl)

Database shutdown edilir ve mount olarak açılır;

RMAN> SHUTDOWN IMMEDIATE;

RMAN> STARTUP FORCE DBA;

RMAN> SHUTDOWN IMMEDIATE;

RMAN> STARTUP MOUNT;

Şimdi backup zamanı;

RMAN> BACKUP DATABASE;

İşlem bittikten sonra yedeği alınmış veritabanımızı açar normal işlemlerimize devam ederiz;

RMAN> ALTER DATABASE OPEN;

Incremental backup

Komple database yedeğini almaya göre daha hızlı bu backup çeşidi bloklardaki değişikliği kaydeder. Redo log dosyalarını kullanarak alınan backup işleminden daha hızlıdır. Yalnız bu işlemi yapabilmek için veritabanının archivelog modda olması gerekir.

Daha önce herhangi bir inremental backup alınmamışsa level 0 olarak backup işlemi gerçekleştirilir;

RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

 

Kendim için de bir kayıt altına aldığım backup komutları umarım sizlere de faydalı olur. Tüm bu işlemleri yaparken minik bir tavsiyem, trayıcıdan görsel olarak ta aldığınız yedekleri kontrol edip okumanız olacaktır.

Renkli günler…

Kaynak: http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmintro.htm#i1005488

Backup & Recovery Giriş

Merhabalar,

Bu kategori altında, bilgisayarlarla ilgilenenlerin en azından bir kere duymuş olduğu backup ve recovery kavramlarına değinip, Oracle’ın backup & recovery denizine doğru açılmayı planlıyorum.

Oracle's StorageTek SL150 Tape LibraryBackup & Recovery amacı nedir?

Backup adı üzerinde, hatta oyunlara meraklı iseniz mutlaka FPS tarzı oyunlarda sıklıkla duyarsınız bu kelimeyi: “Need backup!”. Backup destek demektir. Veritabanı mantığı ile düşünürsek neye destek isteriz? Tabiki verimize. Bizim en değerli varlığımız verimizdir. Onu kaybetmek istemeyiz. Bu yüzden onu başka yerlere yani disklere kaydederiz. Gerektiğinde de onu geri çağırırız, recovery yaparız, verimizi kurtarırız. Bir üst satırda belirttiğim gibi amacımız verimizi korumaktır.

 

Backup işlemlerinde şunlar göze çarpar;

  • Planlama ve farklı hatalar üzerinde sistemi test etme
  • Veritabanını backup & recovery-ye uygun konfigure etme
  • Backup & recovery ortamını izleme
  • Backup problerine karşı sorun giderme
  • Kaybolan veriyi geri getirme

 

Yukarıda backup işleminin kaça ayrıldığını ve nelerin bu işlemlere girdiğini anlatmaya çalıştım. Fiziksel yada mantıksal olarak backup alabiliriz.

Fiziksel aldığımızda biz data files, control files ve archived redo log dosyalarımızın yedeğini alırız. Bu yedekler fiziksel disklere, tape-lere kaydedilir. Normal veritabanı nereye kurulu ise bu fiziksel yedekleme farklı diske kaydedilmesi önerilir.

Mantıksal yedekleme ile de tables ve stored procedures-lar kayıt altına alınırlar.

Asıl yedekleme fiziksel olan yedeklemedir.

Ne zaman recovery?

  • Disklerdeki fiziksel bozulmalarda
  • Kullanıcı hatalarında
  • Yazılımsal hatalarda

Genel olarak bahsedilen bu hatalarda önceden yedeklenen veriler geri çağırılırlar.

Renkli günler…

Kaynak: http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmintro.htm#i1005488

Oracle tablolarını .dmp uzantılı almak

Merhabalar,

Oracle içinden tabloları çekip yazdığınız projede kullanmak istediğinizde, özellikle Java uygulamalarında “.dmp” uzantılı dosyaları kullanmak büyük kolaylık sağlıyor. Tabiki tablo çekme yöntemlerinden en performanslısı bu olmayabilir, benim karşılaştırmam geçenlerde aldığım “.sql” uzantılı dosyam ile şimdi aldığım “.dmp” uzantılı dosyam. Ee denemeden bilemeyiz, kolları sıvayıp denemeliyiz.

Benim ve çevremdekilerin yaptığı en büyük hatayı sana aktarmak isterim sevgili okuyucu. Ben her zaman komut satırından işlemleri yapma taraftarıyım. Zaten database içinden tablo çekmek, diğer bir adıyla export işlemi komut satırı ile yapılması gereken bir iş. Ama bu işi yaparken otomatik olarak SQL*Plus’a bağlanıp onunla işlem yapmaya çalışıyoruz. Ama SQL*Plus’ta export yapacak yetenek yok. 🙂 Bu iş için bize sadece sevgili terminal, Windows’ta isek sevgili cmd yardım edecek. Evet sadece bu kadar!

Terminali açıp;

EXP HELP=Y

yazarsak, bize gelen parametreler doğrultusunda istediğimiz şekilde export işlemini yapabiliriz. Hatta orada bir iki örnek kullanım bile göreceksiniz.

EXP SCOTT/TIGER TABLES(EMP,DEPT)

Bulunduğunuz dizinde “EXPDAT.DMP” şeklinde bir dosyaya istediğiniz tablo isimlerini girerek dosyanıza yazdırabilirsiniz.

Renkli günler…

SQL Developer ile Oracle database tablolarını alma

Merhabalar,

Oracle malum derya deniz. Tablespace-ler, tablolar, şemalar falan filan derken hem bilgisayarımızda hem de gerçek anlamda şirketlerde hem fiziksel olarak hemde sabit diskte çok yer kaplıyor. Ve database taşınması, kopyalanması işlemleri meşakatli oluyor. Yazılım grubumuzda geçen günkü problemimiz; oluşturduğum veritabanını nasıl başka bilgisayara atacağız? İşi senaryoya dökecek olursak, ben DBA olarak (hoşuma gitti :)) yazılımcı arkadaşlara tablolarımı iletmeliyim ki onlar yazdıkları programı veritabanı ile ilişkilendirsinler.

Bunun için SQL Developer güzel bir araç. (Bu çalışmaların hepsi Windows ortamında yapılmıştır.) Şuradan indirdiğim SQL Developer ve şuradan indirdiğim JDK bu iş için gerekli programımız. Önerim, önce SQL Developer indirme ile işe başlamanız eğer sisteminizde JDK yoksa bunun üzerine JDK indirmeniz. Ve yönergeleri mutlaka okuyun derim ben.

Kurulum işlemi bitince SQL Developer programını açın. Sıra veritabanımıza bağlanmaya geldi. “New Connection” seçeneği ile yeni bir bağlantı açıyoruz. “Connection name” olarak kendinize göre bir ad verin, altında “Username” ve “Password” kısımlarına veritabanınızda hangi kullanıcı ile bağlantı açacağınızı yazın. “Hostname” olarak localhost, “Port” olarak 1521 otomatik gelecektir. Radio button-seçimi ile “Service name” seçeneğini aktifleştirip database-imin ismi olan “orcl”‘yi girdim. Altta “Connect” butonu ile veritabanı bağlantınızı gerçekleştirin.
Capture1

 

Bağlantı sağlanınca sol taraftaki sidebar-da veritabanı bağlantınız gözükecektir. Buradan işlem yapacağınız tabloya sağ tıklayarak “export” seçeneğini kullanabilirsiniz. Böylece belirttiğiniz bir yere .sql uzantılı olarak bir dosya oluşacak ve bunun içeriğinde sizin tablo bilgileriniz yer alacaktır. İsterseniz “Ctrl” ile tablo seçimi yapıp tüm tablolarınızı da tek bir sql dosyasına aktarabilirsiniz.

Bundan sonra .sql uzantılı dosyanızı projenizde kullanabilirsiniz.

Renkli günler…

Kitap – Teoman Dinçel’in Oracle 11g kitabı hakkında

Oracle-11g-Kurun-Calistirin-Kullanin-Yonetin__30820853_0Merhabalar,

1 aydır zevkli uğraşım olan Teoman Dinçel’in Oracle 11g kitabını bitirdim. Kitap Oracle’a başlangıç için güzel bir giriş yapmış diyebilirim. Aldığım workshop I eğitimi ardından bu kitabı kurcalamaya başladığımda tüm anlatılanları anladım. Ve kitap içerisindeki verilen minik örnekleri rahatça gerçekleyebildim.

Kitabın ilk amacı, Oracle veritabanı yönetim sistemine giriş ve onu diğer veritabanı yönetim sistemlerinden ayıran özellikleri göstermek. Sonrasında SQL konusuna giriş yapılıyor ve örneklerle sürekli kullanılan SQL komutları açıklanıyor. Kitabın en arkasındaki “Bir Sonraki Adım” başlıklı kısmı da ayrıca çok beğendiğimi söyleyebilirim.

İlk amacı yol göstermek, sonrasında biraz SQL ile boğuşmamızı sağlayan ve Oracle veritabanı mimarisini anlatan bu kitabı okumanızı tavsiye ederim.

Türkiye’de Oracle ile ilgili Türkçe bir kitap bulmak zor. Ve artık İngilizce’nin zamanı! Bugün sipariş verdiğim kitabın ismi Oracle Database 11g – Underground Advice for Database Administrators. Bu kitabı da başarıyla bitirirsem mutlaka blogumda incelemesini yazacağım.

Renkli günler…

Defterimden Notlar I – Oracle Instance

Merhabalar,

Bu yazı dizisinde sizlere Oracle mimarisi, işlemleri ve yönetimi ile ilgili okuduğum makalelerden, yazılardan aldığım notları paylaşacağım. Bu yazdıklarımın hem size bir yol olmasını hem de bana hatırlatıcı ufak anektotlar olmasını isterim.

Bazen anlaya anlaya saatlerce okuyoruz ama okuduklarımıza şöyle bir tepeden bakıp onları tablolaştırmıyoruz. Bu yazımda ayrıntılara girmeden Oracle Instance nedir ve neler içerir onları anlatacağım.

Instance, çalışan veritabanımızdaki SGA, PGA ve arka plan işlemlerinin bir araya gelmesi ile oluşan yapıdır. Oracle veritabanı başlayınca instance başlar.

SGA ( System Global Area ) RAM üzerinde tahsis edilen sistem çalışma alanı.

PGA ( Program Global Area ) SGA içinde kullanıcılara tahsis edilen yer.

Hemen genel tablomuzu yapalım.

oracleInstance

Renkli günler.

Oracle Sohbetleri V – Oturum içinde Türkçe dil desteği

Merhabalar,

Bir çok uzmanın önerdiği gibi Oracle’ı İngilizce kullanmak onu öyle anlamak gerekir. Piyasaya bakınca sadece bir iki kitabın Türkçe olması da bunu doğrular nitelikte. Ama bazen alacağınız hatalarda siz de benim gibi çaylaksanız, sizin de Türkçe desteğine ihtiyacınız var demektir.

Oracle’da işlemlerimizi yaptığımız yer “session” diye tabir edilen Türkçe’si “oturum” olan birimdir. Session üzerinde yaptığımız değişiklikler de sadece session içinde kalır ve sistemi tekrardan başlattığımızda tekrar eski haline geri döner. Bu bize kendi oturumumuzda oynama imkanı sunar.

Çalışırken aldığım bazı hataları yorumlamakta güçlük çekiyorum. Buna karşı savaşacak silahım Türkçe dil desteği. Bunu nasıl mı yapıyorum? SQLPlus satırımda;

ALTER SESSION SET NLS_LANGUAGE = ‘TURKISH’;

komutu ile bana gelen uyarıları kendi dilimde değerlendirip araştırıyorum.

Kişisel olarak gördüğüm oturum işlemlerinde “ALTER SESSION” ibaresi kullanılmakta ve daha sonra değiştirilecek parametre yazılmaktadır. Bu ibareyi aklımda tutmak yararıma olacaktır.

Umarım Oracle Sohbetleri yarar sağlıyordur. Ben gördüklerimi, öğrendiklerimi buradan yazmaya devam ediyor olacağım.

Renkli günler…

Oracle Sohbetleri IV – User lock/unlock İşlemleri

Merhabalar,

Oracle 11g sürümünde terminalden veritabanını karıştırırken, başlangıçta yüklü olan hr kullanıcısına girmek istememle bu konuyu öğrendim.

İşe önce kullanıcıyı kilitleme işlemiyle başlayacağım, sonra ise kilitli bir kullanıcıyı açmakla devam edeceğim.

Lock/unlock işlemlerini yapacağımız yer sysdba ile bağlandığımız sqlplus satırı olacak. Sizin veritabanı yönetici isminiz farklı ise onunla giriş yapınız. O zaman bağlanalım:

$ sqlplus / as sysdba

Yönetici olarak girişimi gerçekleştirdikten sonra şu komutu kullanarak kullanıcılarımı ve hesap bilgilerini alıyorum. Aşağıdaki ekran görüntüsünü inceleyelim.

SQL> SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;

 

 

1

Benim önceden oluşturduğum “KUTUPHANECI” isimli bir kullanıcı var baştan 8. sırada. İşlemlerimi bu kullanıcı üzerinden gerçekleştireceğim.

Şimdi bu kullanıcımızı kilitleyelim:

SQL> ALTER USER KUTUPHANECI ACCOUNT LOCK;

2

Bu işlemden sonra bakalım gerçekten kullanıcı kilitlendi mi? Hemen account_status kontrol etmek için dba_users içinde görüntüleme yapıyorum.

3

Üstteki ekran görüntüsünden “KUTUPHANECI” karşılığını bulursanız “LOCKED” yazdığını göreceksiniz.

Kilitleme işlemi tamamlandığına göre artık kullanıcımızı açalım. Tahmin edeceğiniz üzere “unlock” kelimesi bize yardım edecek:

SQL> ALTER USER KUTUPHANECI ACCOUNT UNLOCK;

Bu kodu yazdıktan sonra tekrardan sıralama yaptırarak kullanıcınızı kontrol edebilirsiniz. Hemen sıralama yaptırdığımız kodu ben size hatırlatayım:

SQL> SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;

İşte herşey  bu kadar. Unutmamamız gereken kural tüm bu işlemler sysdba adı altında açtığımız (ya da sizin veritabanı yönetici isminiz ne ise) alanda yapılıyor olması.

Renkli günler…