Goldengate ile Replike Edilen Tabloların Db İçerisinden Listelenmesi

Oracle goldengate ile source ve target dbler arasında tablo replikasyonu yapıldığında hangi tablonun replike edildiği bilgisini dirprm dizini içerisinden aramak gerekmektedir. Bu zahmetten kurtulmak için bash scripti ile parametre dosyalarını her gece okuyup db içerisine anlaşılır bir şekilde kaydedebiliriz.

İşlemi tamamlandıktan sonra aşağıdaki şekilde bir yapıya sahip olacağız.

Continue reading Goldengate ile Replike Edilen Tabloların Db İçerisinden Listelenmesi

PostgreSQL Tablo Yetki Problemi – ERROR: permission denied for schema “schema_name”

Postgresql de kullanıcıların owneri olmadıkları tablolara select çekebilmesi için verilen “grant select on tbl_name to user” tek başına yeterli olmamaktadır. Bu yetki tanımlandığı halde aşağıdaki hatayı alıyorsanız çözümü bu yazıda bulabilirsiniz.,

ERROR:  permission denied for schema "schema_name"
SQL state: 42501

Bu örnekte db create edip farklı kullanıcılardan o db de bulunan tablolara select yetkisi tanımlama işlemi yapacağım.

Continue reading PostgreSQL Tablo Yetki Problemi – ERROR: permission denied for schema “schema_name”

Procedure İçerisinden Dictionary Viewlere Erişim

Oracle db içerisinde procedure oluşturup scheduler job içerisinden çağırıldığı durumlarda yetki hatası ile karşılaşılabilir. (Eğer procedure içerisinden v$session gibi dictionary viewlere select çekiliyorsa)

Procedure içerisinden dictionary objelere ulaşmak istiyorsanız aşağıdaki yetkinin ilgili kullanıcıya tanımlanması gerekmektedir.

Kullanıcı DBA rolüne sahip olsa bile bu yetkilerin verilmesi gerekmektedir.

Continue reading Procedure İçerisinden Dictionary Viewlere Erişim

Oracle Snapshot Standby Oluşturma

Oracle’nin flashback teknolojisi sayesinde pyhsical standby olarak ayarlanmış db lerin read/write modda açmak mümkün. Bilindiği üzere pyhsical standby db leri en fazla read only modda açıp sadece select komutlarını çalıştırabilir konuma getirebiliriz. Bu durumda varolan data üzerinde herhangi bir değişikliğe izin verilmeyecektir.

Snapshot standby olarak ayarlanan bir physical standby db; read/write moda geçerek production makinesinin o andaki verileri üzerinde istenilen tüm islemleri yapmayı mümkün kılacaktır.

Örneğin t anında snyc olan bir pyhsical standby dbsi snapshot standby durumuna alındığında t1 anında production makinesinde yapılan bir değişiklik standby tarafında görünmeyecektir.

Continue reading Oracle Snapshot Standby Oluşturma

Tablespace İçerisindeki Objelerin Taşınması

Tablespace içerisinden büyük objelerin silinmesi durumunda disk üzerinde alan kazanımı olmadığı için tablespace’i recreate etme yoluna gidebiliriz. Bu durumda diskten alan kazanmanın yanında tablespace içerisinde bulunan objeler defragmente olup db üzerinde performans artışlarını beraberinde getirecektir. Tablespaceyi recreate etmenin aşamaları şu şekildedir:

  1. Yeni tablespace create etmek (bundan sonra TS_DATA_NEW olarak adlandırılacaktır)
  2. default_tablespace’i TS_DATA olan schemaların alter edilmesi ve gerekli quota ayarlarının yapılması.
  3. Varolan tablespace (TS_DATA olarak adlandırılacaktır) içerisindeki tüm objelerin move edilmesi.
    1. Tablo partition ve subpartitionların taşınması
    2. Lobların taşınması
    3. Lob partitionların taşınması
    4. İndexlerin taşınması
    5. Partitionlu indexlerin taşınması
  4. TS_DATA’yı offline konumuna almak
  5. Gerekli olması durumunda modify default attributes yapmak
  6. TS_DATA’yı drop etmek
  7. TS_DATA_NEW’i rename edip TS_DATA olarak değiştirmek.
  8. İndexlerin kontrolü
Continue reading Tablespace İçerisindeki Objelerin Taşınması