Soumettre la recherche
Mettre en ligne
Oracle veritabani performans kontrol listesi
•
6 j'aime
•
3,881 vues
Orhan ERIPEK
Suivre
Oracle Database Performance Checklist
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 36
Recommandé
Tasarım Analiz Raporu: Üniversite Web Sitesi
Tasarım Analiz Raporu: Üniversite Web Sitesi
trkaplan
The MySQL Query Optimizer Explained Through Optimizer Trace
The MySQL Query Optimizer Explained Through Optimizer Trace
oysteing
Automatic Parameter Tuning for Databases and Big Data Systems
Automatic Parameter Tuning for Databases and Big Data Systems
Jiaheng Lu
How to Analyze and Tune MySQL Queries for Better Performance
How to Analyze and Tune MySQL Queries for Better Performance
oysteing
MySQL Optimizer Overview
MySQL Optimizer Overview
Olav Sandstå
Hücresel i malat
Hücresel i malat
answer3131
Automated YCSB Benchmarking
Automated YCSB Benchmarking
Miro Cupak
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)
beom kyun choi
Recommandé
Tasarım Analiz Raporu: Üniversite Web Sitesi
Tasarım Analiz Raporu: Üniversite Web Sitesi
trkaplan
The MySQL Query Optimizer Explained Through Optimizer Trace
The MySQL Query Optimizer Explained Through Optimizer Trace
oysteing
Automatic Parameter Tuning for Databases and Big Data Systems
Automatic Parameter Tuning for Databases and Big Data Systems
Jiaheng Lu
How to Analyze and Tune MySQL Queries for Better Performance
How to Analyze and Tune MySQL Queries for Better Performance
oysteing
MySQL Optimizer Overview
MySQL Optimizer Overview
Olav Sandstå
Hücresel i malat
Hücresel i malat
answer3131
Automated YCSB Benchmarking
Automated YCSB Benchmarking
Miro Cupak
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)
beom kyun choi
Intro to Map Reduce
Intro to Map Reduce
Doron Vainrub
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
Jimmy Angelakos
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_Cheatsheet
Lucian Oprea
Optimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4j
Neo4j
Stratejik yonetim prezantasyonu_2004_2005_bolum1
Stratejik yonetim prezantasyonu_2004_2005_bolum1
Mahir İstanbullu
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshooting
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshooting
Jovan Popovic
Aug2015 analysis team 04 10x genomics
Aug2015 analysis team 04 10x genomics
GenomeInABottle
Introduction à Hadoop
Introduction à Hadoop
Mathieu Dumoulin
JSON SchemaとPHP
JSON SchemaとPHP
Hiraku Nakano
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB
MIRU2018 tutorial
MIRU2018 tutorial
Takayoshi Yamashita
Doktora Tezimin Savunma Slaytları
Doktora Tezimin Savunma Slaytları
netsentez
レポートを書くために
レポートを書くために
Yoshida-South Library, Kyoto University
[费曼 你干吗在乎别人怎么想].(美)R·p·费曼.扫描版
[费曼 你干吗在乎别人怎么想].(美)R·p·费曼.扫描版
wutitoudi
InnoDB MVCC Architecture (by 권건우)
InnoDB MVCC Architecture (by 권건우)
I Goo Lee.
Oracle Veritabanı Yönetimi
Oracle Veritabanı Yönetimi
Orhan ERIPEK
Oracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli teknikler
Orhan ERIPEK
Oracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12c
Orhan ERIPEK
Oracle Database and Technologies Seminar
Oracle Database and Technologies Seminar
Orhan ERIPEK
Oracle Audit Vault & Database Vault
Oracle Audit Vault & Database Vault
Orhan ERIPEK
Karınca kolonisi algoritması
Karınca kolonisi algoritması
Orhan ERIPEK
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritması
Orhan ERIPEK
Contenu connexe
Tendances
Intro to Map Reduce
Intro to Map Reduce
Doron Vainrub
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
Jimmy Angelakos
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_Cheatsheet
Lucian Oprea
Optimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4j
Neo4j
Stratejik yonetim prezantasyonu_2004_2005_bolum1
Stratejik yonetim prezantasyonu_2004_2005_bolum1
Mahir İstanbullu
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshooting
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshooting
Jovan Popovic
Aug2015 analysis team 04 10x genomics
Aug2015 analysis team 04 10x genomics
GenomeInABottle
Introduction à Hadoop
Introduction à Hadoop
Mathieu Dumoulin
JSON SchemaとPHP
JSON SchemaとPHP
Hiraku Nakano
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB
MIRU2018 tutorial
MIRU2018 tutorial
Takayoshi Yamashita
Doktora Tezimin Savunma Slaytları
Doktora Tezimin Savunma Slaytları
netsentez
レポートを書くために
レポートを書くために
Yoshida-South Library, Kyoto University
[费曼 你干吗在乎别人怎么想].(美)R·p·费曼.扫描版
[费曼 你干吗在乎别人怎么想].(美)R·p·费曼.扫描版
wutitoudi
InnoDB MVCC Architecture (by 권건우)
InnoDB MVCC Architecture (by 권건우)
I Goo Lee.
Tendances
(15)
Intro to Map Reduce
Intro to Map Reduce
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_Cheatsheet
Optimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4j
Stratejik yonetim prezantasyonu_2004_2005_bolum1
Stratejik yonetim prezantasyonu_2004_2005_bolum1
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshooting
Tarabica 2019 (Belgrade, Serbia) - SQL Server performance troubleshooting
Aug2015 analysis team 04 10x genomics
Aug2015 analysis team 04 10x genomics
Introduction à Hadoop
Introduction à Hadoop
JSON SchemaとPHP
JSON SchemaとPHP
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDB
MIRU2018 tutorial
MIRU2018 tutorial
Doktora Tezimin Savunma Slaytları
Doktora Tezimin Savunma Slaytları
レポートを書くために
レポートを書くために
[费曼 你干吗在乎别人怎么想].(美)R·p·费曼.扫描版
[费曼 你干吗在乎别人怎么想].(美)R·p·费曼.扫描版
InnoDB MVCC Architecture (by 권건우)
InnoDB MVCC Architecture (by 권건우)
En vedette
Oracle Veritabanı Yönetimi
Oracle Veritabanı Yönetimi
Orhan ERIPEK
Oracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli teknikler
Orhan ERIPEK
Oracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12c
Orhan ERIPEK
Oracle Database and Technologies Seminar
Oracle Database and Technologies Seminar
Orhan ERIPEK
Oracle Audit Vault & Database Vault
Oracle Audit Vault & Database Vault
Orhan ERIPEK
Karınca kolonisi algoritması
Karınca kolonisi algoritması
Orhan ERIPEK
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritması
Orhan ERIPEK
Networks community detection using artificial bee colony swarm optimization
Networks community detection using artificial bee colony swarm optimization
Aboul Ella Hassanien
Comparative analysis of abc and ics
Comparative analysis of abc and ics
Biswajit Panday
slide FYP 2
slide FYP 2
Zuhusna Adilla Ibrahim
Global bee colony_disorder_and_threats_insect_pollinators
Global bee colony_disorder_and_threats_insect_pollinators
Patricio Crespo
Honey Bee Colony Collapse Disorder (Ccd)
Honey Bee Colony Collapse Disorder (Ccd)
elantrian
Trabalho fitos digitais
Trabalho fitos digitais
Guilherme Matias de Medeiros
التحدى 6 الإستعلام بطريقة المعالج
التحدى 6 الإستعلام بطريقة المعالج
bosy sadek
Lesson11 Create Query
Lesson11 Create Query
Abdullatif Tarakji
Lesson8 Manage Records
Lesson8 Manage Records
Abdullatif Tarakji
Lesson4 Protect and maintain databases
Lesson4 Protect and maintain databases
Abdullatif Tarakji
MarketLine Country Statistics Database
MarketLine Country Statistics Database
MarketLine
Oracle hard and soft parsing
Oracle hard and soft parsing
Ishaan Guliani
Chapter 11new
Chapter 11new
Weinberghere
En vedette
(20)
Oracle Veritabanı Yönetimi
Oracle Veritabanı Yönetimi
Oracle veritabanı yonetiminde onemli teknikler
Oracle veritabanı yonetiminde onemli teknikler
Oracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12c
Oracle Database and Technologies Seminar
Oracle Database and Technologies Seminar
Oracle Audit Vault & Database Vault
Oracle Audit Vault & Database Vault
Karınca kolonisi algoritması
Karınca kolonisi algoritması
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritması
Networks community detection using artificial bee colony swarm optimization
Networks community detection using artificial bee colony swarm optimization
Comparative analysis of abc and ics
Comparative analysis of abc and ics
slide FYP 2
slide FYP 2
Global bee colony_disorder_and_threats_insect_pollinators
Global bee colony_disorder_and_threats_insect_pollinators
Honey Bee Colony Collapse Disorder (Ccd)
Honey Bee Colony Collapse Disorder (Ccd)
Trabalho fitos digitais
Trabalho fitos digitais
التحدى 6 الإستعلام بطريقة المعالج
التحدى 6 الإستعلام بطريقة المعالج
Lesson11 Create Query
Lesson11 Create Query
Lesson8 Manage Records
Lesson8 Manage Records
Lesson4 Protect and maintain databases
Lesson4 Protect and maintain databases
MarketLine Country Statistics Database
MarketLine Country Statistics Database
Oracle hard and soft parsing
Oracle hard and soft parsing
Chapter 11new
Chapter 11new
Similaire à Oracle veritabani performans kontrol listesi
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇
Anar Godjaev
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
Cihan Özhan
SQL Injection
SQL Injection
Kadir Arslan
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE
Performance Tuni̇ng
Performance Tuni̇ng
Anar Godjaev
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
Cihan Özhan
Sql egitimi-adana
Sql egitimi-adana
sersld61
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
Cihan Özhan
İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07
Cihan Özhan
Stored procedure
Stored procedure
oktaygokgol
Sql egitimi-kartal
Sql egitimi-kartal
sersld61
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
Cihan Özhan
Sql egitimi-ankara
Sql egitimi-ankara
sersld61
PostgreSQL'i öğrenmek ve yönetmek
PostgreSQL'i öğrenmek ve yönetmek
Gulcin Yildirim Jelinek
Sql egitimi-izmir
Sql egitimi-izmir
sersld61
Sql egitimi-avcilar
Sql egitimi-avcilar
sersld61
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
Cihan Özhan
Sql en-iyi-egitimi
Sql en-iyi-egitimi
sersld61
Similaire à Oracle veritabani performans kontrol listesi
(20)
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇
İleri Seviye T-SQL Programlama - Chapter 03
İleri Seviye T-SQL Programlama - Chapter 03
SQL Injection
SQL Injection
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Performance Tuni̇ng
Performance Tuni̇ng
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
Sql egitimi-adana
Sql egitimi-adana
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07
Stored procedure
Stored procedure
Sql egitimi-kartal
Sql egitimi-kartal
İleri Seviye T-SQL Programlama - Chapter 05
İleri Seviye T-SQL Programlama - Chapter 05
Sql egitimi-ankara
Sql egitimi-ankara
PostgreSQL'i öğrenmek ve yönetmek
PostgreSQL'i öğrenmek ve yönetmek
Sql egitimi-izmir
Sql egitimi-izmir
Sql egitimi-avcilar
Sql egitimi-avcilar
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
Sql en-iyi-egitimi
Sql en-iyi-egitimi
Oracle veritabani performans kontrol listesi
1.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | Oracle Veritabanı Performans Kontrol Listesi 1 Orhan Eripek orhaneripek.com Senior Oracle DBA Oracle ACE Associate 10g/11g OCP Member of TROUG Oracle SQL, Analitik SQL ve PL/SQL kitabı yazarlarından Database Administration SIG 2017
2.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | Ajanda 2 1 Kontrol listesi (Checklist) nedir? Faydaları nelerdir? Günlük hayatta kullandığımız örnek kontrol listeleri nelerdir? Oracle Veritabanı Performans yönetiminde kontrol listesi (Check list) gerekli midir? Olursa faydaları nelerdir? Oracle Veritabanı Performans Kontrol listemizde neler olmalıdır? Birlikte oluşturalım! Kontrol listemizin güncellenmesi (Checklist check) 2 3 4
3.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 3 Kontrol listesi (Checklist) nedir? Faydaları nelerdir? Günlük hayatta kullandığımız örnek kontrol listeleri nelerdir? Günlük hayatta kullandığımız kontrol listeleri örnekleri; Acil durum planı kontrol listesi Güvenlik kontrol listesi Sağlık kontrol listesi (Check Up) Temizlik kontrol listesi Yemek kontrol listesi Pilotun uçuş kontrol listesi Şantiye, Oto tamir, Kasap, Lokanta, Pastane,... kontrol listeleri Checklist: «Yapılması veya kontrol edilmesi gerekenler listesi», «Başvurulan standart kontroller listesi», «Yapılan bir işin eksiksiz ve hatasız olduğunu kontrol etmek için yapılan liste» ... To-Do list genel olarak yapılacaklar listesi iken Checklist, yapılan bir işe ait kontroller listesidir.
4.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 4 Oracle Veritabanı Performans yönetiminde kontrol listesi (Checklist) gerekli midir? Olursa faydaları nelerdir? Beklenmedik bir anda yaşanan sorunla ilgili zamanında kontroller yapmadıysak (veya Checklist'imizde yoksa) hem zaman, efor kaybı yaşarız hem de sorunu büyüterek içinden çıkılmaz durumlara düşebiliriz. Veritabanının stabil-performanslı çalışmasını istiyorsak neden bir ‘Oracle Veritabanı Performans Checklist’imiz olmasın! Veritabanında yaptığımız iyileştirmelerin sonuçlarını görerek önceki durumu ile karşılaştırabilmek için de Checklist’lerimizden faydalanabiliriz Özellikle üretim ortamı (canlı, production) veritabanlarında yaptığımız operasyonel çalışmalarda bir rollback planımızın olmasının yanında ayrıca bir Checklist’imizin de olması oldukça önemlidir.
5.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 5 Oracle Veritabanı Performans Kontrol listemizde neler olmalıdır? Birlikte oluşturalım! İnvalid obje var mı? Unusable index var mı? SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME FROM dba_objects WHERE status LIKE 'INVALID' ORDER BY LAST_DDL_TIME DESC; SELECT 'ALTER INDEX ' || owner || '.' || index_name || ' REBUILD;' FROM dba_indexes WHERE status = 'UNUSABLE';
6.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 6 İndex monitoring -> invisible index -> drop index SET HEADING OFF SET ECHO OFF SET PAGES 10000 SPOOL start_monitoring.sql SELECT 'alter index ' || owner || '.' || index_name || ' monitoring usage;' FROM dba_indexes WHERE owner NOT IN ('SYS', 'SYSTEM', 'SYSMAN', ...); SPOOL OFF @start_monitoring.sql / SELECT * FROM (SELECT do.owner, io.NAME index_name, t.NAME table_name, DECODE (BITAND (i.flags, 65536), 0, 'NO', 'YES') monitoring, DECODE (BITAND (ou.flags, 1), 0, 'NO', 'YES') used, ou.start_monitoring, ou.end_monitoring FROM SYS.obj$ io, SYS.obj$ t, SYS.ind$ i, SYS.object_usage ou, dba_objects do WHERE i.obj# = ou.obj# AND io.obj# = ou.obj# AND t.obj# = i.bo# AND ou.obj# = do.object_id) WHERE monitoring = 'YES';
7.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 7 Sql Trace ile Sql kontrolü BEGIN execute_immediate ('ALTER SESSION SET TRACEFILE_IDENTIFIER= REAL_RUN'); execute_immediate ('ALTER SESSION SET SQL_TRACE=TRUE'); END; C:appoeripekproduct11.2.0client_1BIN>tkprof C:UsersoeripekDesktopORCL_j003.trc C:DISKdeneme.out TKPROF: Release 11.2.0.1.0 - Development on Pzt Eyl 22 16:16:25 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. C:appoeripekproduct11.2.0client_1BIN> ora_541211_err.trc deneme.out SELECT value FROM v$parameter WHERE name LIKE '%max_dump_file_size%' Özellikle db Paket’lerinde çokça geçen sql’lerimizi detaylı incelemek için trace açabiliriz. Oluşacak trace logların boyutuna dikkat etmeliyiz. Çok fazla log üreteceksek max_dump_file_size değerimiz küçük olmamalıdır. > 1 GB veya > 3 GB vs. gibi olabilir.
8.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 8 Sql Profile ile set edilen Sql hint kontrolü DECLARE clsql_text CLOB; BEGIN SELECT sql_fulltext INTO clsql_text FROM V$sqlarea where sql_id = '9ymwq4t1v1k8n'; dbms_sqltune.import_sql_profile(sql_text => clsql_text, profile=> sqlprof_attr('FIRST_ROWS PUSH_PRED(@SEL$3) PUSH_PRED(@SEL$4) INDEX(@SEL$3 A_NDX1) INDEX(@SEL$2 TABL0_@SEL$2 A_NDX2)'), name=>'PROFILE_9ymwq4t1v1k8n', force_match=>true); end; select * from DBMSHSXP_SQL_PROFILE_ATTR where profile_name like '%9ymwq4t1v1k8n%'; select ADDRESS, HASH_VALUE from V$SQLAREA where SQL_ID like '%9ymwq4t1v1k8n%'; exec sys.DBMS_SHARED_POOL.PURGE ('07000012B66E3230,4036285191', 'C'); EXEC DBMS_SQLTUNE.DROP_SQL_PROFILE('PROFILE_9ymwq4t1v1k8n'); Zamanla sql profile’da sql için set ettiğimiz hint eskisi gibi performans sağlamayabilir. Bu Hint’i değiştirmek veya sql profile tanımını drop edebiliriz.
9.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 9 Schema veya Tablo istatistik kontrolü BEGIN DBMS_STATS.gather_schema_stats ( ownname => 'SCHEMA', method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO', cascade => TRUE, estimate_percent => 10, no_invalidate => FALSE, force => TRUE, degree => 16); END; BEGIN DBMS_STATS.gather_table_stats ( ownname => 'ORHAN', tabname => 'TEST_LOG_TABLE', method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO', cascade => TRUE, estimate_percent => DBMS_STATS.auto_sample_size, no_invalidate => TRUE); END; BEGIN DBMS_STATS.gather_table_stats ( ownname => 'ORHAN', tabname => 'TEST_LOG_TABLE', partname => 'P201601', estimate_percent => dbms_stats.auto_sample_size, granularity => 'PARTITION', no_invalidate => TRUE, cascade => Dbms_stats.AUTO_CASCADE, degree => 8); END; Tablo ve index’lerin istatistikleri güncel olmalıdır ki Cost-Based Optimizer (CBO) bu güncel bilgilerle doğru Cost- maliyet üretebilsin. Aksi halde yanlış sql planları oluşturarak performansız sorgularla karşı karşıya gelebiliriz.
10.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 10 Partition kontrolü: Partition’lı tablolarımız hangileri? Eksik partition’ı olanlar var mı? Otomatik Part add mekanizmamız varsa partitionları eklemiş mi? SELECT DISTINCT table_owner, table_name FROM all_tab_partitions WHERE table_name NOT LIKE 'BIN$%' AND table_owner NOT IN ('SYS', 'SYSTEM‘,...); Partition ekledikten sonra tablo indexleri unusable’a düşebilir, kontrol edilmeli, unusable olanlar rebuild edilmelidir. OLTP db’lerde boyutu çok büyük tablolarda online split partition yapabilmenin bir diğer yöntemi de redefinition table ‘dır. DBMS_REDEFINITION paketi ile Oracle bu desteği vermektedir.
11.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 11 Resource Manager’a set ettiğimiz değerler kullanıcı kaynak kısıtlamalarını sağlıyor mu? Kaynak tüketim saatlerini gözeterek gündüz ve gece planları veya da belirli saatler aralığında çalışacak planlar oluşturabiliriz. Bu aktif resource planlarımızın istatistiğini Enterprise Manager (veya EM Cloud Control)’dan veya sql sorgularıyla görebiliriz. SELECT TO_CHAR (m.begin_time, 'HH:MI') time, m.consumer_group_name, m.cpu_consumed_time / 60000 avg_running_sessions, m.cpu_wait_time / 60000 avg_waiting_sessions, d.mgmt_p1 * (SELECT VALUE FROM v$parameter WHERE name = 'cpu_count') / 100 allocation FROM v$rsrcmgrmetric_history m, dba_rsrc_plan_directives d, v$rsrc_plan p WHERE m.consumer_group_name = d.group_or_subplan AND p.name = d.plan ORDER BY m.begin_time, m.consumer_group_name; CPU, IO ve parallelik derecelerini istediğimiz gibi set edebiliyoruz. Bu set ettiğimiz değerlerle doğru kaynak paylaşımı yapmış mıyız yoksa adil paylaşım yapamamış mıyız? Bu durumda faydadan çok sorun yaratmış olabiliriz. Titizlikle kontrol edilmesi gerekmektedir.
12.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 12 Profile, Role kontrolleri, otomatik yetki atamaları sağlıklı çalışıyor mu? Bilgi güvenliği kriterlerine uyumlu olacak şekilde ve veritabanının kontrollü yönetilebilmesi için; kullanıcı profillerine göre roller oluşturulmalı, her yeni kullanıcı için otomatikmen role atanmalı veya deactive edilecek kullanıcılar için role geri alınmalı, yeni tablolar eklendikçe otomatikmen ilgili role yetkilerinin otomatik eklenmesi ve kullanıcıların otomatik lock’lanması veya unlock edilmesi gibi otomatize ettiğimiz jobların kontrolü önemlidir.
13.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 13 Yetkisiz yetkilendirmeler var mı? Yetkisiz kullanıcı girişleri için DBA_AUDIT_TRAIL view’inin logon/logoff bilgilerini ve oluşturacağınız white list / black list tablolarınızı kullanarak sch. Job oluşturabilir, hatalı girişlerde otomatik mail ile bilgilendirilebilirsiniz. «... tarihinde ... kullanıcısı ... veritabanına hatalı giriş / yetkisiz giriş yaptı» Veya «... tarihinde ... kullanıcısı... veritabanında...tablosuna insert/update/delete girişiminde bulundu.» gibi.
14.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 14 Active / Inactive sesssion sayısı kontrolü? Public yetkilendirmeler var mı? SELECT spid AS thread, osuser, s.program, s.LOGON_TIME, s.STATUS, p.PROGram, s.SID FROM v$process p, v$session s WHERE p.addr = s.paddr AND s.status NOT IN ('ACTIVE') ORDER BY 2 DESC; SELECT * FROM dba_tab_privs WHERE grantee = 'PUBLIC' AND owner NOT IN ('SYS', 'SYSTEM', 'SYSMAN', ...) ORDER BY owner;
15.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 15 Lock’lı tablolar ve sessionlar kontrolü -- tabloda lock var mı? SELECT s.inst_id, l.SID, s.serial#, l.TYPE, d.object_name, s.username blocking_session, s.osuser, l.LMODE FROM gv$lock l, dba_objects d, gv$session s WHERE d.object_id = l.id1 AND s.SID = l.SID AND s.inst_id = l.inst_id AND d.object_name LIKE UPPER ('%TEST_TABLE%') ORDER BY inst_id; -- locklı sessionları kill et SELECT 'ALTER SYSTEM KILL SESSION ' || CHR (39) || s.SID || ',' || s.SERIAL# || CHR (39) || ';', 'kill -9 ' || p.spid, osuser, d.object_name, s.*, c.* FROM gv$session s, gv$process p, gv$locked_object c, dba_objects d WHERE s.paddr = p.addr AND s.sid = c.session_id AND c.object_id = d.object_id
16.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 16 Asm disk ve db size kontrolü SELECT name, total_mb / 1024 AS total_gb, TRUNC (cold_used_mb / 1024) AS used_gb, ROUND (free_mb / 1024) AS free_gb FROM v$asm_diskgroup; SELECT ROUND (SUM (used.bytes) / 1024 / 1024 / 1024) AS db_size_gb, ROUND (SUM (used.bytes) / 1024 / 1024 / 1024) - ROUND (free.p / 1024 / 1024 / 1024) used_space_gb, ROUND (free.p / 1024 / 1024 / 1024) AS fre_space_gb FROM (SELECT bytes FROM v$datafile UNION ALL SELECT bytes FROM v$tempfile UNION ALL SELECT bytes FROM v$log) used, (SELECT SUM (bytes) AS p FROM dba_free_space) free GROUP BY free.p; ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 409600 46594 0 46594 0 N ASM_DATA/ ASMCMD>
17.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 17 Veritabanı tablo ve indexlerin boyutları kontrolü select owner, segment_name as table_name, sum(bytes)/(1024*1024*1024) table_size_gb from dba_extents where segment_type in ('TABLE', 'TABLE PARTITION') group by owner,segment_name,bytes having sum(bytes)/(1024*1024*1024)>50 order by table_size_gb desc; select owner, segment_name as index_name, sum(bytes)/(1024*1024*1024) index_size_gb from dba_extents where segment_type in ('INDEX', 'INDEX PARTITION') group by owner,segment_name,bytes having sum(bytes)/(1024*1024*1024)>50 order by bytes desc; Boyutu çok büyük tablo veya index’ler için özel çalışma yapılabilir. Bunların listesi çıkarılmalı, gözetlenmelidir.
18.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 18 Fragmante olmuş tabloların kontrolü FRAGMENTED_SPACE size’ı büyük tablolar uygun zamanda önce test sonra prod ortamda shirink yapılarak fragmante olan block yapıları sıkıştırılarak tablolar olması gerektiği size’a getirilebilir. Alternatif olarak tablolar drop-create edilebilir veya başka bir tablespace’e move edilebilir. select owner,table_name, 'alter table ' || owner || '.' || table_name || ' shrink space cascade;' "SHRINK", round(((blocks*8/1024))) "TOTAL_SIZE_MB", round((num_rows*avg_row_len/1024/1024)) "ACTUAL_SIZE_MB", round(((blocks*8/1024)-(num_rows*avg_row_len/1024/1024))) "FRAGMENTED_SPACE_MB" from all_tables where owner not in ('SYS','SYSTEM') and round(((blocks*8/1024)-(num_rows*avg_row_len/1024/1024)))>100 order by "FRAGMENTED_SPACE_MB" desc
19.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 19 Geçici, atıl durumda kalan tabloların belirlenerek temizlenmesi kontrolü SELECT * FROM (SELECT owner, object_name, object_type, created, last_ddl_time FROM dba_objects WHERE object_name LIKE '%TEST%' OR object_name LIKE '%DENEME%' OR object_name LIKE '%SIL%' OR object_name LIKE '%GECICI%'); TEST, DENEME, SIL, GECICI, vs. gibi ifadeler geçen tablolar belirlenmeli, gereksiz oldukları belirlenenler drop edilmelidir.
20.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 20 Haftalık veya aylık veritabanı büyümesi kontrolü SELECT systarih, tablespace_name, TRUNC (GBYTE_used, 1) AS GBYTE_used, TRUNC (GBYTE_free, 1) AS GBYTE_free, TRUNC (GBYTE_sum_area, 1) AS GBYTE_sum_area, TRUNC (percent_used, 1) AS percent_used FROM ( SELECT SYSDATE AS systarih, a.tablespace_name, a.BYTES / 1024 / 1024 / 1024 AS GBYTE_used, b.BYTES / 1024 / 1024 / 1024 AS GBYTE_free, ( (a.BYTES / 1024 / 1024 / 1024) + (b.BYTES / 1024 / 1024 / 1024)) AS GBYTE_sum_area, ROUND ( ( (a.BYTES - b.BYTES) / a.BYTES) * 100, 2) AS percent_used FROM ( SELECT tablespace_name, SUM (BYTES) BYTES FROM SYS.dba_data_files GROUP BY tablespace_name) a, ( SELECT tablespace_name, SUM (BYTES) BYTES, MAX (BYTES) max_free_area FROM SYS.dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name ORDER BY ( (a.BYTES - b.BYTES) / a.BYTES) DESC) SELECT RECORD_DATE, SIZE_IN_MB / 1024 FROM MYDB_TABLESPACE_SIZES WHERE TABLESPACE_NAME = 'TOPLAM' AND RECORD_DATE BETWEEN '24/03/2016' AND '24/04/2016';
21.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 21 .log dosyaların kontrolü adrci> show tracefile %.log diag/asm/+asm/+ASM1/trace/alert_+ASM1.log diag/clients/user_oracle/host_2010429000_11/trace/sqlnet.log diag/clients/user_oracle/host_2010429000_80/trace/sqlnet.log diag/rdbms/rac/node1/trace/alert_RACPROD.log diag/rdbms/rac/node1/trace/sbtio.log diag/tnslsnr/rac_pc/listener/trace/listener.log diag/tnslsnr/rac_pc/listener2/trace/listener2.log diag/tnslsnr/rac_pc/listener_rac_pc/trace/listener_rac_pc.log diag/tnslsnr/rac_pc/listener_scan1/trace/listener_scan1.log diag/tnslsnr/rac_pc/status/trace/status.log adrci> adrci (Automatic Diagnostic Repository Command Interface) kullanarak log dosyaların dizinlerini görebilir, «show incident» ve «show alert» ile hatalı kayıtları inceleyebiliriz. Aynı şekilde eğer RAC mimarisi kullanıyorsak Cluster loglarını da kontrol etmemiz gerekiyor. RAC node’ları arasındaki load balance – yük dağılımı normal mi vs.
22.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 22 Rman backup log kontrolü: hata almış mı başarılı bitmiş mi? rman backup süreleri, backup validate, Rman backuplar ve test ortamlarına restore edilerek test edilmesi -- alınan RMAN Backuplar SELECT TO_CHAR (start_time, 'dd.mm.yyyy hh24:mi:ss') start_time, TO_CHAR (end_time, 'dd.mm.yyyy hh24:mi:ss') end_time, status, object_type, output_device_type FROM v$rman_status WHERE OPERATION = 'BACKUP' ORDER BY start_time DESC; -- çalışan RMAN Backup işleri ve statüleri SELECT * FROM ( SELECT TO_CHAR ( start_time, 'DD-MON- YY HH24:MI') "Start", TO_CHAR (end_time, 'DD-MON-YY HH24:MI') "End", time_taken_display "Time", input_bytes_display "Input", output_bytes_display "Output", input_bytes_per_sec_display "Input/sec", output_bytes_per_sec_display "Output/sec", output_device_type, status, input_type, ROUND (elapsed_seconds / 60, 2) "Elapsed Min", Optimized, ROUND (compression_ratio, 2) "Compress Ratio" FROM v$rman_backup_job_details ORDER BY session_key DESC)
23.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 23 Exportlar ve importlar: ne kadar sürede alındığı? hata almış mı? başarılı bitmiş mi? Dump file set for SYS.TESTDB_EXP_201602202102 is: /oracle/export/testdb_20160220_2102_datapump01.dmp /oracle/export/testdb_20160220_2102_datapump02.dmp Job "SYS"."TESTDB_EXP_201602202102" successfully completed at 22:12:10 Export veya import işleri tamamlandığında otomatik mail ile bilgilendirilmek oldukça faydalı olur. Özellikle başarılı tamamlanmış mı yada hata almış mı görebilmek için log’larının kontrolü önemlidir. ORA-31693: Table data object "TEST"."TEST_890536" failed to load/unload and is being skipped due to error: ORA-02354: error in exporting/importing data ORA-39826: Direct path load of view or synonym (TEST.TEST_890536) could not be resolved. veya
24.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 24 Alert.log kontrolü Veritabanı ORA- hata durumlarını, alter system, alter database komutlarıyla yapılan değişiklikleri, veritabanı açılması-kapanması bilgilerini tutan bu log dosyasını inceleyerek problemleri, uyarıları inceleyebiliriz. Çoğu zaman ilk kontrol etmemiz gerekenlerden biridir. Sqlplus’tan «show parameter background» ile, EM ile, adrci ile, v$diag_info ile veya v$parameter ile alert.log dizinini görebiliriz. Veritabanı sistemi üzerinde çalışma yaparken de aşağıdaki gibi açarak arka planda neler yapıldığını sürekli izleyebiliriz; tail -10f alert_testdb.log Alert.log dosyasının daha kolay okunabilmesi için external table create ederek tablodan sorgulayabiliriz.
25.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 25 OEM Cloud Control ile Performans İzleme
26.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 26 OEM Cloud Control ile Alert ve Uyarı Mekanizması - Metricler
27.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 27 AWR (Automatic Workload Repository) Raporu 27 MMON istatistikleri üretir, bu bilgiler saat başı alınan snapshot’larda kaydedilir, problem anında belli snapshot’lar arasındaki veritabanı durumunu AWR raporları detaylı açıklar. Top 5 Events, Wait Events, Load Profile, System- I/O-Memory- Sql Statistics en önemli bölümleridir. $ORACLE_HOME/rdbms/admin/awrrpt. sql (RAC ise awrgrpt.sql ) scripti ile, Toad vb. toollar ile veya EM -> ‘Automatic Workload Repository’ ile AWR raporlarını oluşturabiliriz.
28.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 28 DB time kontrolü SELECT I.INSTANCE_NAME INSTANCE_NAME_PRINT, S.SNAP_ID SNAP_ID, TO_CHAR (S.STARTUP_TIME, 'mm/dd/yyyy HH24:MI:SS') STARTUP_TIME, TO_CHAR (S.BEGIN_INTERVAL_TIME, 'mm/dd/yyyy HH24:MI:SS') BEGIN_INTERVAL_TIME, TO_CHAR (S.END_INTERVAL_TIME, 'mm/dd/yyyy HH24:MI:SS') END_INTERVAL_TIME, ROUND ( EXTRACT (DAY FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) * 1440 + EXTRACT (HOUR FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) * 60 + EXTRACT (MINUTE FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) + EXTRACT ( SECOND FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) / 60, 2) ELAPSED_TIME, ROUND ( (E.VALUE - B.VALUE) / 1000000 / 60, 2) DB_TIME, ROUND ( ( ( ( (E.VALUE - B.VALUE) / 1000000 / 60) / ( EXTRACT ( DAY FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME)* 1440 + EXTRACT ( HOUR FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) * 60 + EXTRACT ( MINUTE FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) + EXTRACT ( SECOND FROM S.END_INTERVAL_TIME - S.BEGIN_INTERVAL_TIME) / 60)) * 100), 2) PCT_DB_TIME FROM DBA_HIST_SNAPSHOT S, GV$INSTANCE I, DBA_HIST_SYS_TIME_MODEL E, DBA_HIST_SYS_TIME_MODEL B WHERE I.INSTANCE_NUMBER = S.INSTANCE_NUMBER AND E.SNAP_ID = S.SNAP_ID AND B.SNAP_ID = S.SNAP_ID – 1 AND E.STAT_ID = B.STAT_ID AND E.INSTANCE_NUMBER = B.INSTANCE_NUMBER AND E.INSTANCE_NUMBER = S.INSTANCE_NUMBER AND E.STAT_NAME = 'DB time' ORDER BY DB_TIME DESC; Db time’ın en yüksek olduğu saat aralığı gözetlenerek o saat aralığının AWR raporlarına bakılabilir.
29.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 29 Db Server CPU, IO, Swap, Memory, Disk periyodik kontrolü (PRTG, nagios, nmon, ..) Bazen db’de aldığımız hatalar db kaynaklı olmayabilir. Server veya ağ kaynaklı da olabilir, şüpheci davranıp tüm bu ortamları kontrol etmekte fayda var. Mümkünse db server haftalık rapor grafikleri incelenmelidir.
30.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 30 ORAchk - Healt Check Raporu ile genel db kontrolü Oracle veritabanı ve sunucusu üzerinde kontroller yaparak bulgularını tespit eder, tavsiyelerde bulunur. Default değerleri sunmasının yanında Best Practices’ler ve SR linkleri verir. RACchk ve Exachk tool’ları da vardır. Doc ID 1268927.2 linkinden son versiyonu indirebilirsiniz.
31.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 3131 OS Watcher ile db server kaynak kullanım kontrolü Oracle db sunucusunun CPU, DISK, Memory.. gibi kaynaklarının istatiksel bilgilerini toplar ve grafiksel olarak sunar. Bu tool belirli aralıklarla (default 30 saniye) ps, top, vmstat, iostat gibi Unix komutlarını kullanarak log toplar. Örneğin, OSWatcher’ ı 60 sn aralıkla ve 3 gün boyunca(3*24 saat) archive tutacak şekilde kurgulayabiliriz; OSW_DIRECTORY = /u01/oswatcher/oswbb OSW_DATA DIRECTORY = /u01/oswatcher/data OSW_START_COMMAND = nohup sh startOSWbb.sh 60 72 gzip /u01/oswatcher/data OSW_INTERNAL = 60 seconds OSW_RETENTION = 72 hours OWS_COMPRESSION = gzip Doc ID 1531223.1 metalink’ten son versiyonu indirebilirsiniz.
32.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 32 TFA (Oracle Trace File Analyzer) Oracle ve Grid altındaki logları tek komutla toplamak ve analiz etmek için kullandığımız bir tool’dur TFA tool’u ORAchk, EXAchk, oswacher, procwather,..vb. tool’ları da kapsar Oracle ‘a SR açtığımızda çoğu zaman bizden TFA çıktılarını da ister TFA Collector - TFA with Database Support Tools Bundle (Doc ID 1513912.1) Oracle metalink dokumanından detaylı bilgilere ulaşabilirsiniz Aşağıdaki gibi belirli bir tarih aralığı için TFA raporu çıkarabilirsiniz: [root@testdb]# cd /u01/app/oracle/tfa/testdb/tfa_home/bin [root@testdb bin]# ./tfactl diagcollect -tag SR_3_13379477661 -from "Sep/28/2016 13:00:00" -to "Sep/28/2016 15:00:00" .... ... Logs are being collected to: /u01/app/oracle/tfa/repository/ SR_3_13379477661 /u01/app/oracle/tfa/repository/ SR_3_13379477661 /testdb.tfa_Tue_Nov_29_11_25_16_+03_2016.zip
33.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 33 Önce ORA- hatasının araştırılması sonra Oracle’a açılan SR’ların kullanımı ve kontrolü Hata alındığında eğer 30 dk. içinde çözüm sağlayamıyorsak vakit kaybetmeden aynı zamanda metalinkten Oracle’a SR açmalıyız Açtığımız SR’a alert.log, trace.log’un yanısıra varsa screen shot’lar veya ilgili olabilecek çıktıları eklemeliyiz Mümkün olduğunca detay bilgi verebilirsek daha az karşılıklı yazışma olur Eğer hatamızın çözümü bug ile fix edilecek ise bug’ın tüm semptonlarını incelemek ve mümkünse öncelikle test ortamında uygulayarak sonuçlarını izlemek gerekir Bazen küçük hatalar kısa zaman sonra büyük hataları doğurabilir. Bu yüzden küçük büyük demeden tüm ORA- hatalarını detaylı incelemek için metalinkte ve/veya varsa https://community.oracle.com ‘daki çözüm yollarına bakmak gerekir.
34.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | 34 İdeal Checklist tecrübelerle olgunlaşır. Doğru olmayan Checklist’lerimizden sorumlu olacağımız için dikkatli hazırlamalı ve fayda sağlayacak listeler oluşturmalıyız. Veritabanında kontrol edilmesi gereken birçok nokta var, tüm hepsini aynı anda aklımızda tutamayabilir bazı noktaları kontrol etmeyi unutabiliriz. Eğer bu alışkanlık haline gelirse o zaman sonuç daha kötü. Dolayısıyla elimizin altında buna benzer bir kontrol listemizin olması işimizi oldukça kolaylaştıracaktır. Zamanla listelerimizdeki bazı maddelerin çıkarılması veya yeni maddelerin eklenmesi gerekebilir. Sürekli güncel tutmamız önemli. Yani kontrol listelerimizi de kontrol etmeliyiz. Bu şekilde ideal Checklist’imiz olur. Kontrol listemizin güncellenmesi (Checklist check)
35.
Copyright © 2014
Oracle and/or its affiliates. All rights reserved. | Referanslar: • https://blogs.oracle.com/db/entry/oracle_resource_manager_and_dbms • https://support.oracle.com