SlideShare a Scribd company logo
1 of 6
Download to read offline
Yeni Başlayanlar İçin Oracle 12c
Her ne kadar yayınlanma süresi üzerinden epey bir zaman geçmiş olsa da Oracle 12c olarak
kullanımında olan sistem sayısı pek fazla değildir. Bunun sebebi olarak alışkanlıklar, işleyen sistemde
yeni bir yapıya geçmeme isteği, mali konular vb… sebepler olsa da Oracle12c biz veritabanı yöneticileri
için gelen yeni özellikler ile kullanıma hazır bir şekilde bizleri beklemektedir.
Bu yazıda yeni başlayanlar için Oracle 12c hakkında temel bilgiler ve ufak örneklerle kafalarındaki soru
işaretlerine ışık tutmaya çalışacağım.
Oracle 12c Nedir ?
Oracle’ın bu zamana kadar olan gelişim hikayesinide Oracle 9i ile gelen RAC özelliğini kendimize
başlangıç noktası olarak alabiliriz. Sonrasın 10g ile gelen Grid Computing ile bize farklı noktalardaki
hardware ve storage’leri kullanarak düşük maliyet hedeflenmesi ve 11g ile bu özelliklerin yönetim
kısmında yapılan değişiklikleriyle veritabanı yöneticilerinin elinibiraz daha rahatladı. Ancak Oracle 12c
ile Cloud yapısına geçerek hem mimari hem de mantıksal olarak yeni bir ürün olarak karşımıza çıktı.
Artık karşımızda tek instance üzerinde birden fazla veritabanı yönetebildiğimiz ve bunları rahatlıkla
taşıyabildiğimiz bir yapı sunuldu.
Bu yapının içinde bize yabancı farklı kavramlarda yer aldı. Bunları inceleyecek olursak ;
CDB : Container Veritabanı (Super Database). Sistemin çalışmasında en altta yer alan ana veri tabanı
olarak nitelendirebiliriz.
PDB : Pluggable Veritabanı (Sub Database). Sistemde üzerinde günlük OLTP olarak canlı veya standby
olarak kullandığımız veritabanları. Taşınabilir özelliğine sahiptir.
Oracle white paperlarda bu kavramları anlatırken birden fazla veritabanının tek bir super database
(multitenant container database) içinde yer alması olarak tanımlamakta.
NON-PDB : Oracle 12c içinde taşınabilir özellikte olmayan veri tabanlarıdır.
PDB$SEED : Container Veritabanı üzerinde Pluggable Veritabanlarının kurulum aşamasında şablon
olarak kullanılan yapıdır.
Container Database :
Super Database olarak adlandırdığımız ve içinde farklı veritabanlarını barındıran sistemdir. İlk bakışta
bakacağımız temel farklılıklar aşağıdaki gibidir.
• ROOT yapısı altında ‘Oracle System Metada’ ve işlemlerinin yapıldığı alandır.
• ‘Common Users’ yani kullnıcı yönetiminin yapıldığı alandır.
• Instance mantığında memory ve proses yönetiminin yapıldığı alandır.
• 1’den 255’ e kadar olan PDB’leri tutabileceğimiz Ana veritabanımızdır.
• PDB’ler üzerinde yönetimi sağlayacak ve hakları verebileceğimiz alandır.
CDB$ROOT / Root Dosyaları
Oracle Container yapının altında CDB$ROOT olarak adlandırılan ve içinde veritabanı dosyalarının yer
aldığı bir yapı mevcuttur.
Buradaki en büyük yenilikler ise ;
- Oracle 12c’de mevcut PDB’lerin ortak CF ve REDOLOGları kullanmasıdır.
- Bu alan içinde Flashback Logs , Archive Log yer almaktadır.
- Pluggable veritabanlarına ait System, SYSAUX, Users, Tempfiles, Undo yer almaktadır.
Pluggable Database (PDB)
Oracle 12c ile gelen yapı değişikliğinin en temel taşıdır diyebiliriz. Artık veri tabanlarımızı başka bir
yapıya rahatlıkla taşıyabilir, isteğimiz gibi sayısını arttırabiliriz. Bu yapıya ait olan ve yönetiminde olan
bileşenler şöyledir.
- Uygulamaya ait ve TEMP (sadece kendi içinde kullanmak için) Tablespaceleri
- PDB kullanıcılar ve hakları
- PDB Sistem Metadatası
- Çalışan uygulamanın verileri
- Resource Plan
Kullanıcılar ve Roller
SYSTEM SYSAUX
Users
Temp
OBJ$
Resource
PlanLocal
Privilege
Common
Local
Common
Users
Local
Users
Oracle 12c’ye ait olan kullanıcıları ve bu kullanıcılara ait hakları Container veritabanı ve Pluggable
veritabanı olarak ayrı ayrı incelemeliyiz.
- Container Veritabanı :
Yazının başında da yer aldığı üzere sistemin temelinde yer alan bu yapı diğer veri tabanlarındaki
kullanıcı ve haklarını düzenlemekle de yetkilidir. Bu yapıdaki kullanıcılar “Common Users” olarak
geçmektedir. Bu kullanıcıların özelliklerini inceleyecek olursak ;
 Kullanıcılar Root Container’dan yönetilir
 Her kullanıcı C## ön adıyla başlamak zorundadır.
 Container üzerindeki her kullanıcı Pluggable içinde geçerlidir.
 Tekil kullanıcılardır.
 Komut satırında kullanıcı oluştururken CONTAINER=ALL parametresi ile yetkilendirme
yapabiliriz.
Container veri tabanı üzerinde bulunan roller ise “Common Role” olarak adlandırılmaktadır. Bu yapıyı
incelersek;
 Root Container’dan yönetilir
 CREATE ROLE – SET CONTAINER parameteleri kullanılır
 C## ön adıyla başlamak zorundadır.
- Pluggable Veritabanı :
Bu yapıyı Oracle 12c öncesinde yer alan veritabanı mantığı olarak düşünebiliriz. Kullanıcılarımız da bu
mantıkda sadece kullanıldığı veritabanı üzerinde yetkilendirilip oluşturulabilir. Temel olarak
özelliklerini inceleyecek olursak;
 Pre – Oracle 12c
 Pluggable kullanıcısıdır
 Aynı isimde farklı Pluggable veri tabanları üzerinde olabilir.
Pluggable veri tabanı üzerinde bulunan roller ise “Local Role” olarak adlandırılmaktadır. Bu yapıyı
incelersek;
 Pluggable veri tabanından yönetilir.
 CREATE ROLE syntax’ı kullanırız
 Oluşturulduğu Pluggable veri tabanı üzerinde geçerlidir.
Yukarıdaki akışı izleyecek olursak kullanıcılar konusu hakkında bizlere açıklayıcı olacaktır. Şeklin sol
tarafında yer alan SYS ve C##DBA kullanıcılarımız CDB$ROOT üzerinden yönetilmekte olup Container
yapı üzerinde yer alan bütün Pluggable veritabanlarında işlem yapabilmektedir. Diğer taraftan
Container üzerinde bulunan pdbtst1 ve pdbts2 Pluggable veritabanları kendi içerisinde HR ve NAT
kullanıcıları bulundurmaktadır. Ancak aynı isimde olan kullanıcılar sadece kendi veri tabanlarında işlem
yapabilmektedir.
Komut satırında kullanıcı oluşturma ve haklarını inceleyecek olursak ;
Create user c##dba identified by test1 container=ALL;
Grant create session to c##dba container=ALL;
Grant select any table to c##dba container=ALL;
Pluggable veri tabanlarına bağlanırken kullanım aşağıdaki gibidir;
sqlplus sys/*******@pdbtst1 as sysdba;
sqlplus sys/*******@pdbtst2 as sysdba;
Pluggable Veritabanı Oluşturma
Sistemde kullanacağımız Pluggable veritabnalarını Container yapısı üzerinde oluşturalım. Bu oluşturma
işleminde farklı yöntemlerle Pluggable veri tabanı oluşturabiliriz. İşlemlerin öncesinde ;
- CBD$ROOT’da olmamız gerektiğinden nerede olduğumuzu kontrol edelim
SQL> show con_name
CON_NAME
CDB$ROOT
- v$database’i de sorgulayarak açılış modumuzu görelim.
NOT: CDB her zaman READ-WRITE modda olur PDB$SEED her zaman READ ONLY modda yer alır.
1. FILE_NAME_CONVERT olmadan PDB oluşturma
Bu yöntemde mevcuttaki şablona ait olarak Container veri tabanının kendi içinde oluşturacağı dizin
yapısı kullanılarak gerekli oluşturma yapılır.
CREATE PLUGGABLE DATABASE PDBTST1 ADMIN USER PDBTST1_ADMIN IDENTIFIED BY
oracle ROLES = (connect,resource);
*** Bu konutun öncesinde bağlandığımız session için pdb_file_name_convert parametresini set
ederiz.
alter session set pdb_file_name_convert='pdb',' PDBTST1';
NOT: Create komutu sonrasında alert.log’da şöyle bir bilgi görünecektir. Unusable ve NEW modunda
oluşturulmuştur.
2. FILE_NAME_CONVERT ile PDB oluşturma
Oluşturacağımız veritabanını FILE_NAME_CONVERT parametresini kullanarak kendi belirleyeceğimiz
dizin içinde oluşturma imkanı sağlayacaktır.
CREATE PLUGGABLE DATABASE PDBTST1
ADMIN USER PDBTST1_ADMIN IDENTIFIED BY oracle
FILE_NAME_CONVERT = ('/disk2/app/oracle/oradata/orcl/pdbseed','/disk2/dbf');
Son olarak Container veri tabanı üzerinde bulunan Pluggable veri tabanlarının durumuna bakalım.
SQL> SELECT name,open_mode FROM v$pdbs;
NAME OPEN_MODE
PDB$SEED READ ONLY
PDBTST1 NEW
Veritabanı Açılış – Kapanış Modları
Oracle 12c ile veri tabanlarının yönetimsel olarak farklılıklarından da bir tanesi de veri tabanı açma
kapama işlemlerindedir. Temel olarak Container veri tabanında diğer Pluggable veri tabanlarına ait
açma kapama işlemlerini de yapabiliriz. Bu modları inceleyecek olursak ;
- Veri Tabanı Açma İşlemleri
Container Veri tabanı üzerinde aşağıdaki komutlarla bir veya birden fazla veri tabanını açabiliriz.
ALTER PLUGGABLE DATABASE pdbtst1 OPEN;
ALTER PLUGGABLE DATABASE ALL OPEN;
Açılan veri tabanlarının kontrolü için ;
SQL> SELECT name,open_mode FROM v$pdbs;
NAME OPEN_MODE
PDB$SEED READ ONLY
PDBORCL READ WRITE
PDBTST1 READ WRITE
Container veri tabanını açmak istediğimizde ise normal bir veri tabanında yaptığımız komutlar yeterli
olacaktır;
SQL> ALTER DATABASE OPEN;
SQL> STARTUP
- MOUNT – SHUTDOWN İşlemleri
Açma işlemlerinin mantığı kapatma işlemlerinde de geçerlidir. Container veri tabanları için ise normal
bir veri tabanında yaptığımız komutlar kullanılabilir.
SQL> ALTER DATABASE MOUNT;
SQL> STARTUP MOUNT
Kapatma işleminde açma işleminde olduğu gibi Container veri tabanında da aynı mantık geçerlidir.
Kısacası Container üzerinde işlemler yapabiliriz.
ALTER PLUGGABLE DATABASE pdb1 CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE;
ALTER PLUGGABLE DATABASE ALL CLOSE;
ALTER PLUGGABLE DATABASE CLOSE;
SHUTDOWN IMMEDIATE ;
Son olarak yine Container üzerinde Pluggable veri tabanlarını sorgulayabiliriz.
SQL> SELECT name,open_mode FROM v$pdbs;
NAME OPEN_MODE
PDB$SEED READ ONLY
PDBORCL READ WRITE
PDBTST1 MOUNTED
Özgür Umut VURGUN
Ocak,2014

More Related Content

What's hot

What's hot (20)

Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
 
Oracle Database DML DDL and TCL
Oracle Database DML DDL and TCL Oracle Database DML DDL and TCL
Oracle Database DML DDL and TCL
 
Flyway使いたい
Flyway使いたいFlyway使いたい
Flyway使いたい
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIESORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
 
Bootcamp sql fundamental
Bootcamp sql fundamentalBootcamp sql fundamental
Bootcamp sql fundamental
 
Oracle Instance 介紹
Oracle Instance 介紹Oracle Instance 介紹
Oracle Instance 介紹
 
RAC - The Savior of DBA
RAC - The Savior of DBARAC - The Savior of DBA
RAC - The Savior of DBA
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & Practice
 
今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
 
実行統計による実践的SQLチューニング
実行統計による実践的SQLチューニング実行統計による実践的SQLチューニング
実行統計による実践的SQLチューニング
 
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
 
ログについて改めて考えてみた
ログについて改めて考えてみたログについて改めて考えてみた
ログについて改めて考えてみた
 
猿でもわかるコンテナ
猿でもわかるコンテナ猿でもわかるコンテナ
猿でもわかるコンテナ
 
Oracle Database Performance Tuning Concept
Oracle Database Performance Tuning ConceptOracle Database Performance Tuning Concept
Oracle Database Performance Tuning Concept
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 

Similar to Yeni başlayanlar i̇çin Oracle 12c

Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Anar Godjaev
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin Güvenliği
Anar Godjaev
 
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Anar Godjaev
 
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
oktaygokgol
 
Sunum Powerpoint
Sunum PowerpointSunum Powerpoint
Sunum Powerpoint
Fatma Blhn
 
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇
Anar Godjaev
 

Similar to Yeni başlayanlar i̇çin Oracle 12c (20)

Oracle11g
Oracle11gOracle11g
Oracle11g
 
Php veritabani
Php veritabaniPhp veritabani
Php veritabani
 
Oracle ile tanisalim
Oracle ile tanisalimOracle ile tanisalim
Oracle ile tanisalim
 
hafta1
hafta1hafta1
hafta1
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin Güvenliği
 
MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
SQL-ETL-Raporlama
SQL-ETL-RaporlamaSQL-ETL-Raporlama
SQL-ETL-Raporlama
 
Konu anlatım
Konu anlatımKonu anlatım
Konu anlatım
 
İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08
 
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"Oracle Mimarisi  "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
 
Oracle Cloud G in gidişi C nin gelişi
Oracle Cloud G in gidişi C nin gelişiOracle Cloud G in gidişi C nin gelişi
Oracle Cloud G in gidişi C nin gelişi
 
Expert one-on-one Oracle / Redo ve Rollback
Expert one-on-one Oracle / Redo ve RollbackExpert one-on-one Oracle / Redo ve Rollback
Expert one-on-one Oracle / Redo ve Rollback
 
Delphi 7
Delphi 7Delphi 7
Delphi 7
 
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 IstanbulOracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
 
Sunum Powerpoint
Sunum PowerpointSunum Powerpoint
Sunum Powerpoint
 
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇
 

More from Özgür Umut Vurgun (6)

Oracle Big Data MAA
Oracle Big Data MAAOracle Big Data MAA
Oracle Big Data MAA
 
Exadata Performance Notes
Exadata Performance NotesExadata Performance Notes
Exadata Performance Notes
 
Uploading certificate with oracle wallet manager and orapki utilities
Uploading certificate with oracle wallet manager and orapki utilitiesUploading certificate with oracle wallet manager and orapki utilities
Uploading certificate with oracle wallet manager and orapki utilities
 
Oracle Cloud As Services
Oracle Cloud As ServicesOracle Cloud As Services
Oracle Cloud As Services
 
Oracle12c flex rac flex asm
Oracle12c flex rac flex asmOracle12c flex rac flex asm
Oracle12c flex rac flex asm
 
Oracle12c Pluggable Database Hands On - TROUG 2014
Oracle12c Pluggable Database Hands On - TROUG 2014Oracle12c Pluggable Database Hands On - TROUG 2014
Oracle12c Pluggable Database Hands On - TROUG 2014
 

Yeni başlayanlar i̇çin Oracle 12c

  • 1. Yeni Başlayanlar İçin Oracle 12c Her ne kadar yayınlanma süresi üzerinden epey bir zaman geçmiş olsa da Oracle 12c olarak kullanımında olan sistem sayısı pek fazla değildir. Bunun sebebi olarak alışkanlıklar, işleyen sistemde yeni bir yapıya geçmeme isteği, mali konular vb… sebepler olsa da Oracle12c biz veritabanı yöneticileri için gelen yeni özellikler ile kullanıma hazır bir şekilde bizleri beklemektedir. Bu yazıda yeni başlayanlar için Oracle 12c hakkında temel bilgiler ve ufak örneklerle kafalarındaki soru işaretlerine ışık tutmaya çalışacağım. Oracle 12c Nedir ? Oracle’ın bu zamana kadar olan gelişim hikayesinide Oracle 9i ile gelen RAC özelliğini kendimize başlangıç noktası olarak alabiliriz. Sonrasın 10g ile gelen Grid Computing ile bize farklı noktalardaki hardware ve storage’leri kullanarak düşük maliyet hedeflenmesi ve 11g ile bu özelliklerin yönetim kısmında yapılan değişiklikleriyle veritabanı yöneticilerinin elinibiraz daha rahatladı. Ancak Oracle 12c ile Cloud yapısına geçerek hem mimari hem de mantıksal olarak yeni bir ürün olarak karşımıza çıktı. Artık karşımızda tek instance üzerinde birden fazla veritabanı yönetebildiğimiz ve bunları rahatlıkla taşıyabildiğimiz bir yapı sunuldu. Bu yapının içinde bize yabancı farklı kavramlarda yer aldı. Bunları inceleyecek olursak ; CDB : Container Veritabanı (Super Database). Sistemin çalışmasında en altta yer alan ana veri tabanı olarak nitelendirebiliriz. PDB : Pluggable Veritabanı (Sub Database). Sistemde üzerinde günlük OLTP olarak canlı veya standby olarak kullandığımız veritabanları. Taşınabilir özelliğine sahiptir. Oracle white paperlarda bu kavramları anlatırken birden fazla veritabanının tek bir super database (multitenant container database) içinde yer alması olarak tanımlamakta. NON-PDB : Oracle 12c içinde taşınabilir özellikte olmayan veri tabanlarıdır. PDB$SEED : Container Veritabanı üzerinde Pluggable Veritabanlarının kurulum aşamasında şablon olarak kullanılan yapıdır. Container Database : Super Database olarak adlandırdığımız ve içinde farklı veritabanlarını barındıran sistemdir. İlk bakışta bakacağımız temel farklılıklar aşağıdaki gibidir. • ROOT yapısı altında ‘Oracle System Metada’ ve işlemlerinin yapıldığı alandır. • ‘Common Users’ yani kullnıcı yönetiminin yapıldığı alandır. • Instance mantığında memory ve proses yönetiminin yapıldığı alandır. • 1’den 255’ e kadar olan PDB’leri tutabileceğimiz Ana veritabanımızdır. • PDB’ler üzerinde yönetimi sağlayacak ve hakları verebileceğimiz alandır.
  • 2. CDB$ROOT / Root Dosyaları Oracle Container yapının altında CDB$ROOT olarak adlandırılan ve içinde veritabanı dosyalarının yer aldığı bir yapı mevcuttur. Buradaki en büyük yenilikler ise ; - Oracle 12c’de mevcut PDB’lerin ortak CF ve REDOLOGları kullanmasıdır. - Bu alan içinde Flashback Logs , Archive Log yer almaktadır. - Pluggable veritabanlarına ait System, SYSAUX, Users, Tempfiles, Undo yer almaktadır. Pluggable Database (PDB) Oracle 12c ile gelen yapı değişikliğinin en temel taşıdır diyebiliriz. Artık veri tabanlarımızı başka bir yapıya rahatlıkla taşıyabilir, isteğimiz gibi sayısını arttırabiliriz. Bu yapıya ait olan ve yönetiminde olan bileşenler şöyledir. - Uygulamaya ait ve TEMP (sadece kendi içinde kullanmak için) Tablespaceleri - PDB kullanıcılar ve hakları - PDB Sistem Metadatası - Çalışan uygulamanın verileri - Resource Plan Kullanıcılar ve Roller SYSTEM SYSAUX Users Temp OBJ$ Resource PlanLocal Privilege Common Local Common Users Local Users
  • 3. Oracle 12c’ye ait olan kullanıcıları ve bu kullanıcılara ait hakları Container veritabanı ve Pluggable veritabanı olarak ayrı ayrı incelemeliyiz. - Container Veritabanı : Yazının başında da yer aldığı üzere sistemin temelinde yer alan bu yapı diğer veri tabanlarındaki kullanıcı ve haklarını düzenlemekle de yetkilidir. Bu yapıdaki kullanıcılar “Common Users” olarak geçmektedir. Bu kullanıcıların özelliklerini inceleyecek olursak ;  Kullanıcılar Root Container’dan yönetilir  Her kullanıcı C## ön adıyla başlamak zorundadır.  Container üzerindeki her kullanıcı Pluggable içinde geçerlidir.  Tekil kullanıcılardır.  Komut satırında kullanıcı oluştururken CONTAINER=ALL parametresi ile yetkilendirme yapabiliriz. Container veri tabanı üzerinde bulunan roller ise “Common Role” olarak adlandırılmaktadır. Bu yapıyı incelersek;  Root Container’dan yönetilir  CREATE ROLE – SET CONTAINER parameteleri kullanılır  C## ön adıyla başlamak zorundadır. - Pluggable Veritabanı : Bu yapıyı Oracle 12c öncesinde yer alan veritabanı mantığı olarak düşünebiliriz. Kullanıcılarımız da bu mantıkda sadece kullanıldığı veritabanı üzerinde yetkilendirilip oluşturulabilir. Temel olarak özelliklerini inceleyecek olursak;  Pre – Oracle 12c  Pluggable kullanıcısıdır  Aynı isimde farklı Pluggable veri tabanları üzerinde olabilir. Pluggable veri tabanı üzerinde bulunan roller ise “Local Role” olarak adlandırılmaktadır. Bu yapıyı incelersek;  Pluggable veri tabanından yönetilir.  CREATE ROLE syntax’ı kullanırız  Oluşturulduğu Pluggable veri tabanı üzerinde geçerlidir.
  • 4. Yukarıdaki akışı izleyecek olursak kullanıcılar konusu hakkında bizlere açıklayıcı olacaktır. Şeklin sol tarafında yer alan SYS ve C##DBA kullanıcılarımız CDB$ROOT üzerinden yönetilmekte olup Container yapı üzerinde yer alan bütün Pluggable veritabanlarında işlem yapabilmektedir. Diğer taraftan Container üzerinde bulunan pdbtst1 ve pdbts2 Pluggable veritabanları kendi içerisinde HR ve NAT kullanıcıları bulundurmaktadır. Ancak aynı isimde olan kullanıcılar sadece kendi veri tabanlarında işlem yapabilmektedir. Komut satırında kullanıcı oluşturma ve haklarını inceleyecek olursak ; Create user c##dba identified by test1 container=ALL; Grant create session to c##dba container=ALL; Grant select any table to c##dba container=ALL; Pluggable veri tabanlarına bağlanırken kullanım aşağıdaki gibidir; sqlplus sys/*******@pdbtst1 as sysdba; sqlplus sys/*******@pdbtst2 as sysdba; Pluggable Veritabanı Oluşturma Sistemde kullanacağımız Pluggable veritabnalarını Container yapısı üzerinde oluşturalım. Bu oluşturma işleminde farklı yöntemlerle Pluggable veri tabanı oluşturabiliriz. İşlemlerin öncesinde ; - CBD$ROOT’da olmamız gerektiğinden nerede olduğumuzu kontrol edelim SQL> show con_name CON_NAME CDB$ROOT - v$database’i de sorgulayarak açılış modumuzu görelim. NOT: CDB her zaman READ-WRITE modda olur PDB$SEED her zaman READ ONLY modda yer alır. 1. FILE_NAME_CONVERT olmadan PDB oluşturma Bu yöntemde mevcuttaki şablona ait olarak Container veri tabanının kendi içinde oluşturacağı dizin yapısı kullanılarak gerekli oluşturma yapılır. CREATE PLUGGABLE DATABASE PDBTST1 ADMIN USER PDBTST1_ADMIN IDENTIFIED BY oracle ROLES = (connect,resource); *** Bu konutun öncesinde bağlandığımız session için pdb_file_name_convert parametresini set ederiz. alter session set pdb_file_name_convert='pdb',' PDBTST1'; NOT: Create komutu sonrasında alert.log’da şöyle bir bilgi görünecektir. Unusable ve NEW modunda oluşturulmuştur.
  • 5. 2. FILE_NAME_CONVERT ile PDB oluşturma Oluşturacağımız veritabanını FILE_NAME_CONVERT parametresini kullanarak kendi belirleyeceğimiz dizin içinde oluşturma imkanı sağlayacaktır. CREATE PLUGGABLE DATABASE PDBTST1 ADMIN USER PDBTST1_ADMIN IDENTIFIED BY oracle FILE_NAME_CONVERT = ('/disk2/app/oracle/oradata/orcl/pdbseed','/disk2/dbf'); Son olarak Container veri tabanı üzerinde bulunan Pluggable veri tabanlarının durumuna bakalım. SQL> SELECT name,open_mode FROM v$pdbs; NAME OPEN_MODE PDB$SEED READ ONLY PDBTST1 NEW Veritabanı Açılış – Kapanış Modları Oracle 12c ile veri tabanlarının yönetimsel olarak farklılıklarından da bir tanesi de veri tabanı açma kapama işlemlerindedir. Temel olarak Container veri tabanında diğer Pluggable veri tabanlarına ait açma kapama işlemlerini de yapabiliriz. Bu modları inceleyecek olursak ; - Veri Tabanı Açma İşlemleri Container Veri tabanı üzerinde aşağıdaki komutlarla bir veya birden fazla veri tabanını açabiliriz. ALTER PLUGGABLE DATABASE pdbtst1 OPEN; ALTER PLUGGABLE DATABASE ALL OPEN; Açılan veri tabanlarının kontrolü için ; SQL> SELECT name,open_mode FROM v$pdbs; NAME OPEN_MODE PDB$SEED READ ONLY PDBORCL READ WRITE PDBTST1 READ WRITE
  • 6. Container veri tabanını açmak istediğimizde ise normal bir veri tabanında yaptığımız komutlar yeterli olacaktır; SQL> ALTER DATABASE OPEN; SQL> STARTUP - MOUNT – SHUTDOWN İşlemleri Açma işlemlerinin mantığı kapatma işlemlerinde de geçerlidir. Container veri tabanları için ise normal bir veri tabanında yaptığımız komutlar kullanılabilir. SQL> ALTER DATABASE MOUNT; SQL> STARTUP MOUNT Kapatma işleminde açma işleminde olduğu gibi Container veri tabanında da aynı mantık geçerlidir. Kısacası Container üzerinde işlemler yapabiliriz. ALTER PLUGGABLE DATABASE pdb1 CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE; ALTER PLUGGABLE DATABASE ALL CLOSE; ALTER PLUGGABLE DATABASE CLOSE; SHUTDOWN IMMEDIATE ; Son olarak yine Container üzerinde Pluggable veri tabanlarını sorgulayabiliriz. SQL> SELECT name,open_mode FROM v$pdbs; NAME OPEN_MODE PDB$SEED READ ONLY PDBORCL READ WRITE PDBTST1 MOUNTED Özgür Umut VURGUN Ocak,2014