ݺߣ

ݺߣShare a Scribd company logo
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 (20)

HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and Keepalived
Ganapathi Kandaswamy
Presentasi VirtualBox
Presentasi VirtualBoxPresentasi VirtualBox
Presentasi VirtualBox
Ilyas Jaelani
Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Building a Data Pipeline using Apache Airflow (on AWS / GCP)Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Yohei Onishi
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contentionTroubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Tanel Poder
A Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdfA Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdf
Edith Puclla
Oracle DB 19c: SQL Tuning Using SPM
Oracle DB 19c: SQL Tuning Using SPMOracle DB 19c: SQL Tuning Using SPM
Oracle DB 19c: SQL Tuning Using SPM
Arturo Aranda
What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...
What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...
What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...
Edureka!
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
Angel Borroy López
Securefile LOBs
Securefile LOBsSecurefile LOBs
Securefile LOBs
Martin Berger
Oracle Tablespace Yonetimi
Oracle Tablespace YonetimiOracle Tablespace Yonetimi
Oracle Tablespace Yonetimi
Anar Godjaev
Airflow
AirflowAirflow
Airflow
JitheeshaThankachan
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
Ahmed AbouZaid
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
SolarWinds
Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)
Dimitri Gielis
Oracle database 12c intro
Oracle database 12c introOracle database 12c intro
Oracle database 12c intro
pasalapudi
Oracle Application Express 20.2 New Features
Oracle Application Express 20.2 New FeaturesOracle Application Express 20.2 New Features
Oracle Application Express 20.2 New Features
msewtz
Performance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresPerformance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and Underscores
Jitendra Singh
GoldenGate and ODI - A Perfect Match for Real-Time Data Warehousing
GoldenGate and ODI - A Perfect Match for Real-Time Data WarehousingGoldenGate and ODI - A Perfect Match for Real-Time Data Warehousing
GoldenGate and ODI - A Perfect Match for Real-Time Data Warehousing
Michael Rainey
Whats new in Autonomous Database in 2022
Whats new in Autonomous Database in 2022Whats new in Autonomous Database in 2022
Whats new in Autonomous Database in 2022
Sandesh Rao
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 VersionOracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
Markus Michalewicz
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and Keepalived
Ganapathi Kandaswamy
Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Building a Data Pipeline using Apache Airflow (on AWS / GCP)Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Building a Data Pipeline using Apache Airflow (on AWS / GCP)
Yohei Onishi
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contentionTroubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Tanel Poder
A Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdfA Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdf
Edith Puclla
Oracle DB 19c: SQL Tuning Using SPM
Oracle DB 19c: SQL Tuning Using SPMOracle DB 19c: SQL Tuning Using SPM
Oracle DB 19c: SQL Tuning Using SPM
Arturo Aranda
What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...
What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...
What is Puppet | Puppet Tutorial for Beginners | Puppet Configuration Managem...
Edureka!
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
Angel Borroy López
Oracle Tablespace Yonetimi
Oracle Tablespace YonetimiOracle Tablespace Yonetimi
Oracle Tablespace Yonetimi
Anar Godjaev
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
Ahmed AbouZaid
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
Getting the most out of your Oracle 12.2 Optimizer (i.e. The Brain)
SolarWinds
Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)
Dimitri Gielis
Oracle database 12c intro
Oracle database 12c introOracle database 12c intro
Oracle database 12c intro
pasalapudi
Oracle Application Express 20.2 New Features
Oracle Application Express 20.2 New FeaturesOracle Application Express 20.2 New Features
Oracle Application Express 20.2 New Features
msewtz
Performance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and UnderscoresPerformance Stability, Tips and Tricks and Underscores
Performance Stability, Tips and Tricks and Underscores
Jitendra Singh
GoldenGate and ODI - A Perfect Match for Real-Time Data Warehousing
GoldenGate and ODI - A Perfect Match for Real-Time Data WarehousingGoldenGate and ODI - A Perfect Match for Real-Time Data Warehousing
GoldenGate and ODI - A Perfect Match for Real-Time Data Warehousing
Michael Rainey
Whats new in Autonomous Database in 2022
Whats new in Autonomous Database in 2022Whats new in Autonomous Database in 2022
Whats new in Autonomous Database in 2022
Sandesh Rao
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 VersionOracle Multitenant meets Oracle RAC - IOUG 2014 Version
Oracle Multitenant meets Oracle RAC - IOUG 2014 Version
Markus Michalewicz

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

Oracle11g
Oracle11gOracle11g
Oracle11g
Ensar Yurt
Oracle ile tanisalim
Oracle ile tanisalimOracle ile tanisalim
Oracle ile tanisalim
Mine Özdemir
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
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
Hızlan ERPAK
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
MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
Cihan Özhan
SQL-ETL-Raporlama
SQL-ETL-RaporlamaSQL-ETL-Raporlama
SQL-ETL-Raporlama
Deniz Alkan
İ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
Cihan Özhan
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
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
Zekeriya Besiroglu
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
Cansu Arslan
Delphi 7
Delphi 7Delphi 7
Delphi 7
Cumhuriyet Üniversitesi
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
Garanti Teknoloji
İ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
Cihan Özhan
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
oktaygokgol
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇
Anar Godjaev
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
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
Hızlan ERPAK
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
İ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
Cihan Özhan
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
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
Zekeriya Besiroglu
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
Cansu Arslan
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
Garanti Teknoloji
İ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
Cihan Özhan
Sql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇şSql server 2012 gi̇ri̇ş
Sql server 2012 gi̇ri̇ş
oktaygokgol
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇
Anar Godjaev

More from Özgür Umut Vurgun (6)

Oracle Big Data MAA
Oracle Big Data MAAOracle Big Data MAA
Oracle Big Data MAA
Özgür Umut Vurgun
Exadata Performance Notes
Exadata Performance NotesExadata Performance Notes
Exadata Performance Notes
Özgür Umut Vurgun
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
Özgür Umut Vurgun
Oracle Cloud As Services
Oracle Cloud As ServicesOracle Cloud As Services
Oracle Cloud As Services
Özgür Umut Vurgun
Oracle12c flex rac flex asm
Oracle12c flex rac flex asmOracle12c flex rac flex asm
Oracle12c flex rac flex asm
Özgür Umut Vurgun
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
Özgür Umut Vurgun

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