$ dbaguide.com / cheat-sheets / mysql / ocp-8.0

MySQL OCP 8.0 DBA Sınav Konu Haritası

1Z0-908 için 7 sınav alanı, kritik komutlar ve sık düşülen tuzaklar — tek bakışta

Oracle 1Z0-908 · MySQL 8.0
Güncelleme: Ekim 2026 · Çalışma rehberi
Sınav Kodu
1Z0-908 · çoktan seçmeli
Unvan
OCP · MySQL 8.0 Database Administrator
Kapsam
7 alan · Mimari → Yüksek Erişilebilirlik
Süre / Soru / Geçme Notu
Kaynaklar farklı → education.oracle.com'dan teyit et
Emeklilik Tarihi
16 Kasım 2026 · son sınav fırsatı
01

Mimari Architecture

Alt KonuBilmen Gerekenler
İstemci BağlantılarıTCP/IP 3306, X Protocol 33060, Unix socket (Linux), named pipe / shared memory (Windows). Linux'ta localhost → socket; 127.0.0.1 → TCP. --protocol=TCP ile zorla.
Veri SaklamaTransactional Data Dictionary InnoDB içinde (mysql.ibd). .frm / .TRG / .par dosyaları yok. Metadata SDI olarak .ibd içinde → ibd2sdi.
InnoDB Dosyalarıibdata1 (system TS, change buffer) · file_per_table .ibd (varsayılan ON) · general TS · undo_001/002 · ibtmp1 + session temp · doublewrite #ib_*.dblwr (8.0.20+) · redo: ib_logfile* → 8.0.30+ #innodb_redo/
Buffer & CacheGlobal: innodb_buffer_pool_size, innodb_log_buffer_size, table_open_cache, key_buffer_size (MyISAM).
Oturum başına: sort_buffer_size, join_buffer_size, read_buffer_size, tmp_table_size.
Data DictionaryINFORMATION_SCHEMA artık DD tabloları üzerinde view. DD tablolarına doğrudan erişilemez. İstatistik önbelleği: information_schema_stats_expiry (86400 sn).
Hızlı Keşif
SELECT SPACE, NAME, ROW_FORMAT, SPACE_TYPE FROM information_schema.INNODB_TABLESPACES; SHOW VARIABLES LIKE 'innodb_buffer_pool%'; SELECT @@innodb_redo_log_capacity; -- 8.0.30+
Sınav Tuzağı: Query Cache 8.0'da tamamen kaldırıldı — query_cache_* seçenekleri hata verir. Şıklarda "query cache ile hızlandır" görürsen eleyebilirsin.
Bellek Formülü: Toplam ≈ global buffer'lar + (max_connections × oturum buffer'ları). Oturum buffer'larını büyütmek, bağlantı sayısıyla çarpılır.
02

Kurulum & Yapılandırma Install & Config

Alt KonuBilmen Gerekenler
KurulumRPM/DEB repo, generic tar, MSI, Docker. mysqld --initialize → geçici root parolası error log'a yazılır; --initialize-insecure → parolasız root.
Oluşan Dosyalardatadir (/var/lib/mysql), auto.cnf (server_uuid), otomatik ca.pem / server-cert.pem, mysqld-auto.cnf (SET PERSIST), error log.
Başlat / Durdursystemctl start mysqld, mysqld_safe, SQL ile SHUTDOWN / RESTART, mysqladmin shutdown.
Yükseltme8.0.16+ upgrade'i sunucu kendisi yapar; mysql_upgrade deprecated. --upgrade=AUTO|NONE|MINIMAL|FORCE. Ön kontrol: Shell util.checkForServerUpgrade(). In-place vs logical.
Option DosyalarıSıra: /etc/my.cnf → /etc/mysql/my.cnf → SYSCONFDIR/my.cnf → $MYSQL_HOME/my.cnf → ~/.my.cnf → ~/.mylogin.cnf. Son okunan kazanır. --defaults-file, --defaults-extra-file, --no-defaults, my_print_defaults.
DeğişkenlerSET GLOBAL → restart'ta kaybolur · SET PERSIST → anında + kalıcı · SET PERSIST_ONLY → read-only değişken, restart sonrası · RESET PERSIST. Kaynak: performance_schema.variables_info.
Çoklu InstanceHer biri için ayrı datadir, port, socket, pid-file, server_id. mysqld_multi + [mysqldN] grupları veya systemd mysqld@N.
Kalıcı Ayar & Şifreli Login
SET PERSIST max_connections = 500; SET PERSIST_ONLY innodb_log_file_size = 1073741824; SELECT VARIABLE_NAME, VARIABLE_SOURCE FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'PERSISTED'; # ~/.mylogin.cnf (obfuscated) $ mysql_config_editor set --login-path=dba \ --user=root --host=localhost --password
Sınav Tuzağı: Aynı seçenek birden fazla dosyada varsa en son okunan geçerlidir. mysqld-auto.cnf (SET PERSIST) diğer tüm option dosyalarından sonra işlenir.
03

Güvenlik Security

Yoğun
Alt KonuBilmen Gerekenler
Hesaplar'user'@'host' — en spesifik host önce eşleşir. CREATE USER, ALTER USER, RENAME USER, DROP USER.
Auth PluginVarsayılan: caching_sha2_password. Eski: mysql_native_password. auth_socket, sha256_password; Enterprise: LDAP, PAM, Kerberos.
RollerCREATE ROLE → GRANT role TO user. Roller varsayılan olarak pasif: SET DEFAULT ROLE veya activate_all_roles_on_login=ON. mandatory_roles.
YetkilerGlobal / DB / tablo / kolon / rutin seviye. Dinamik yetkiler: BACKUP_ADMIN, SYSTEM_VARIABLES_ADMIN, CLONE_ADMIN… partial_revokes, WITH GRANT OPTION.
Parolacomponent_validate_password, PASSWORD EXPIRE, password_history, FAILED_LOGIN_ATTEMPTS + PASSWORD_LOCK_TIME, dual password RETAIN CURRENT PASSWORD.
Bağlantırequire_secure_transport=ON, REQUIRE SSL|X509, tls_version. Sertifikalar kurulumda otomatik üretilir.
ŞifrelemeInnoDB TDE için keyring şart. ENCRYPTION='Y', default_table_encryption, binlog_encryption, redo/undo şifreleme. ALTER INSTANCE ROTATE INNODB MASTER KEY.
Host & SQLiOS'ta mysql kullanıcısı, secure_file_priv, local_infile=OFF. SQLi: prepared statement. Enterprise Firewall: RECORDING → PROTECTING / DETECTING.
Rol Tabanlı Hesap
CREATE ROLE 'app_ro'; GRANT SELECT ON shop.* TO 'app_ro'; CREATE USER 'ali'@'10.0.%' IDENTIFIED BY 'S3cr3t!' PASSWORD EXPIRE INTERVAL 90 DAY FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1; GRANT 'app_ro' TO 'ali'@'10.0.%'; SET DEFAULT ROLE ALL TO 'ali'@'10.0.%';
Sınav Tuzağı: 8.0'da GRANT ... IDENTIFIED BY ile kullanıcı oluşturulamaz — önce CREATE USER. Eski istemciler caching_sha2 desteklemiyorsa bağlantı hatası alınır.
MySQL OCP 8.0 Sınav Konu Haritası · İzleme, Sorgu Optimizasyonu & Yedekleme
04

İzleme & Bakım Monitoring

Alt KonuBilmen Gerekenler
Error Loglog_error, log_error_verbosity (1–3, varsayılan 2), log_error_services (JSON sink için component).
General / Slow Loggeneral_log · slow_query_log, long_query_time (10 sn), log_queries_not_using_indexes, min_examined_row_limit. log_output=FILE|TABLE. Analiz: mysqldumpslow.
Binary Log8.0'da varsayılan açık. binlog_format=ROW, binlog_expire_logs_seconds (30 gün), PURGE BINARY LOGS, FLUSH BINARY LOGS.
AuditMySQL Enterprise Audit: audit_log plugin, JSON/XML format, audit_log_filter_set_filter() ile kural tabanlı filtre.
Süreç & DurumSHOW PROCESSLIST, performance_schema.threads, sys.processlist, KILL [QUERY]. Status: Threads_connected, Threads_running, Aborted_connects, Max_used_connections.
Enterprise MonitorService Manager + Agent mimarisi, Advisors, eventler, Query Analyzer, dashboard'lar.
Kapasite PlanlamaDATA_LENGTH + INDEX_LENGTH, DATA_FREE (I_S.TABLES), INNODB_TABLESPACES.FILE_SIZE, sys.schema_table_statistics; büyüme trendi izle.
Kilitlerperformance_schema.data_locks / data_lock_waits (8.0 yenisi), metadata_locks, sys.innodb_lock_waits, innodb_lock_wait_timeout (50 sn), innodb_print_all_deadlocks.
Kim Kimi Bekletiyor?
SELECT waiting_pid, waiting_query, blocking_pid, blocking_query, wait_age, sql_kill_blocking_query FROM sys.innodb_lock_waits; -- Metadata lock (DDL bekliyor): SELECT * FROM sys.schema_table_lock_waits; -- Son deadlock: SHOW ENGINE INNODB STATUS\G
Sınav Tuzağı: information_schema.INNODB_LOCKS / INNODB_LOCK_WAITS 8.0'da kaldırıldı → yerini performance_schema.data_locks ve data_lock_waits aldı.
05

Sorgu Optimizasyonu Query Optimization

Alt KonuBilmen Gerekenler
EXPLAIN ÇeşitleriEXPLAIN (tablo), FORMAT=JSON (maliyet), FORMAT=TREE (8.0.16), EXPLAIN ANALYZE (8.0.18 — sorguyu gerçekten çalıştırır).
OptimizerMaliyet tabanlı; mysql.server_cost / engine_cost. optimizer_switch, optimizer_trace, hint /*+ INDEX(t idx) */, hash join (8.0.18).
8.0 İndeks ÖzellikleriInvisible index (silmeden test), descending index, functional index (8.0.13), histogram: ANALYZE TABLE t UPDATE HISTOGRAM ON c.
İndeks TasarımıClustered PK → secondary index PK'yı içerir. Leftmost prefix kuralı, covering index, prefix index, FULLTEXT, SPATIAL.
İndeks İstatistikleriinnodb_stats_persistent=ON, innodb_stats_persistent_sample_pages (20), ANALYZE TABLE, mysql.innodb_index_stats, SHOW INDEX → Cardinality.
Sorgu AnaliziMEM Query Analyzer, events_statements_summary_by_digest, sys.statements_with_full_table_scans, sys.schema_unused_indexes, sys.schema_redundant_indexes.
EXPLAIN type — iyiden kötüye
systemconsteq_refreffulltextref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALL
Extra DeğeriAnlamı
Using indexCovering index — tabloya gidilmedi
Using index conditionICP — filtre storage engine'de uygulandı
Using filesortEk sıralama — ORDER BY indeksten gelmiyor
Using temporaryGeçici tablo — GROUP BY / DISTINCT / UNION
İndeksi Silmeden Test Et
ALTER TABLE orders ALTER INDEX idx_old INVISIBLE; EXPLAIN ANALYZE SELECT * FROM orders WHERE cust_id = 42; CREATE INDEX idx_fx ON users ((LOWER(email)));
Sınav Tuzağı: Primary key invisible yapılamaz. Histogram, indeks değildir — indekssiz kolonlar için selectivity tahmini verir, otomatik güncellenmez.
06

Yedekleme & Kurtarma Backup & Recovery

Yoğun
AraçTipNot
mysqldumpMantıksal--single-transaction (InnoDB tutarlı, hot), --source-data=2, --routines --events, --set-gtid-purged
mysqlpumpMantıksalParalel (--default-parallelism); 8.0.34'te deprecated
Shell util.*MantıksaldumpInstance(), dumpSchemas(), loadDump() — paralel & sıkıştırmalı
MEBFizikselmysqlbackup: backup-and-apply-log, --incremental, backup-to-image, validate, copy-back · InnoDB için hot
Raw / SnapshotFizikselCold kopya (sunucu kapalı), LVM/ZFS snapshot, transportable TS: FLUSH TABLES t FOR EXPORT
CLONE pluginFiziksel8.0.17+: CLONE INSTANCE FROM — replika/üye provizyonu
mysqlbinlogBinlog--read-from-remote-server --raw --stop-never ile canlı binlog yedeği
Terimler
Hot / Warm / ColdOkuma+yazma açık / sadece okuma / sunucu kapalı
Full / Incr. / Diff.Tamamı / son yedekten beri / son full'den beri
Mantıksal vs FizikselSQL çıktısı, taşınabilir, yavaş restore / dosya kopyası, hızlı, aynı sürüm-platform
Point-in-Time Recovery
$ mysqldump --single-transaction --source-data=2 \ --routines --events --all-databases > full.sql # 1) full yedeği geri yükle $ mysql < full.sql # 2) binlog'u hatalı işlemden hemen öncesine kadar oynat $ mysqlbinlog --start-position=157 \ --stop-datetime="2026-10-13 09:59:59" \ binlog.000042 binlog.000043 | mysql
Sınav Tuzağı: --single-transaction MyISAM tablolarını tutarlı yapmaz. 8.0.26+ --master-data → --source-data olarak yeniden adlandırıldı.
MySQL OCP 8.0 Sınav Konu Haritası · Yüksek Erişilebilirlik & Sınav Hazırlık Planı
07

Yüksek Erişilebilirlik High Availability · Replication · InnoDB Cluster

En Yoğun
Replikasyon
Neden?Okuma ölçekleme, failover adayı, yedeği replikadan alma, coğrafi dağıtım, analitik izolasyon.
TiplerAsync (varsayılan), semi-sync (rpl_semi_sync_source plugin — en az 1 replika ACK), GTID tabanlı veya dosya+pozisyon.
TopolojilerSource → replica, zincir (relay; log_replica_updates), multi-source (FOR CHANNEL), circular.
Thread'lerSource: binlog dump · Replika: receiver (I/O) → relay log → applier (SQL) → worker'lar (replica_parallel_workers, LOGICAL_CLOCK).
GereksinimlerBenzersiz server_id, binlog açık, REPLICATION SLAVE yetkili kullanıcı, GTID için gtid_mode=ON + enforce_gtid_consistency=ON.
İzlemeSHOW REPLICA STATUS\G: Replica_IO_Running, Replica_SQL_Running, Seconds_Behind_Source, Last_SQL_Error. P_S: replication_connection_status, replication_applier_status_by_worker.
Sorun GidermeGTID'de hatalı işlemi atla: aynı GTID ile boş transaction enjekte et. sql_replica_skip_counter yalnızca GTID kapalıyken. Kırık replika → CLONE ile yeniden kur.
GTID Replikasyon Kurulumu (8.0.23+ söz dizimi)
CHANGE REPLICATION SOURCE TO SOURCE_HOST='db1', SOURCE_USER='repl', SOURCE_PASSWORD='***', SOURCE_AUTO_POSITION=1, SOURCE_SSL=1; START REPLICA; -- Hatalı GTID'i atla: STOP REPLICA; SET GTID_NEXT='uuid:1234'; BEGIN; COMMIT; SET GTID_NEXT='AUTOMATIC'; START REPLICA;
Group Replication & InnoDB Cluster
Group ReplicationPaxos tabanlı (XCom) grup iletişimi; single-primary (varsayılan) veya multi-primary. Sertifikasyon ile çakışma tespiti.
GR GereksinimleriYalnızca InnoDB, her tabloda PK, GTID açık, binlog_format=ROW, iletişim portu 33061.
Quorumn = 2f + 1 → 3 üye 1 arızayı, 5 üye 2 arızayı tolere eder. En fazla 9 üye.
InnoDB ClusterGR + MySQL Shell (AdminAPI) + MySQL Router. Router portları: 6446 RW / 6447 RO (classic), 6448/6449 (X).
RecoveryDistributed recovery: binlog ile incremental veya CLONE. Tam kesinti: dba.rebootClusterFromCompleteOutage(). Quorum kaybı: forceQuorumUsingPartitionOf().
Kardeş ÇözümlerInnoDB ReplicaSet (8.0.19, async, manuel failover), ClusterSet (8.0.27, DR için cluster'lar arası).
MySQL Shell — AdminAPI (JS mod)
dba.checkInstanceConfiguration('admin@db1:3306') dba.configureInstance('admin@db1:3306') var c = dba.createCluster('prodCluster') c.addInstance('admin@db2:3306', {recoveryMethod: 'clone'}) c.status() // ONLINE / RECOVERING / UNREACHABLE c.setPrimaryInstance('db2:3306') c.rejoinInstance('db3:3306') $ mysqlrouter --bootstrap admin@db1:3306 --user=mysqlrouter
Sınav Tuzağı: 8.0.22–8.0.26 arası terminoloji değişti: MASTER→SOURCE, SLAVE→REPLICA. Sorularda iki söz dizimi de çıkabilir — ikisini de tanı.
08

Sınav Hazırlık Kontrol Listesi

Lab kur: 3 node VM/Docker ile InnoDB Clusterdba.createCluster → addInstance → RouterKritik
PITR provası: dump + binlog ile geri dönmysqldump → mysqlbinlog --stop-datetimeKritik
Replikasyon kır & onarduplicate key → GTID boş tx → START REPLICAKritik
Kullanıcı/rol senaryolarıroller pasif → SET DEFAULT ROLEKritik
Option dosyası sırası & SET PERSISTmy_print_defaults mysqldÖnemli
EXPLAIN okuma: type + ExtraEXPLAIN FORMAT=TREE / ANALYZEÖnemli
Lock teşhisi (row + metadata)sys.innodb_lock_waitsÖnemli
TDE + keyring kurulumuALTER TABLE t ENCRYPTION='Y'Önemli
Enterprise araçları kavramsalMEB · MEM · Audit · FirewallÖnerilen
Varsayılan değerleri ezberleport 3306/33060/33061 · 6446/6447Önerilen
Kritik mutlaka elle yap Önemli en az bir kez dene Önerilen kavramsal bil
Strateji: Çok seçenekli sorularda "Choose two/three" ifadesine dikkat. Önce kesin yanlışları ele; sürüme özgü (8.0.x) özelliklere ve varsayılan değerlere odaklan.
Zaman Kısıtı: 1Z0-908 16 Kasım 2026'da emekli oluyor. Sonrası için Oracle'ın yeni MySQL DBA öğrenme yolunu takip et.
09

Ezberlenecek Varsayılan Değerler MySQL 8.0 defaults

Ağ & BağlantıVarsayılan
port3306
mysqlx_port33060
group_replication (XCom)33061
Router RW / RO (classic)6446 / 6447
max_connections151
wait_timeout28800 sn
default_authentication_plugincaching_sha2_password
InnoDBVarsayılan
innodb_buffer_pool_size128M
innodb_page_size16K
innodb_file_per_tableON
innodb_flush_log_at_trx_commit1
innodb_lock_wait_timeout50 sn
innodb_autoinc_lock_mode2 (interleaved)
transaction_isolationREPEATABLE-READ
Log, Binlog & Karakter SetiVarsayılan
log_binON
binlog_formatROW
binlog_expire_logs_seconds2592000 (30 gün)
sync_binlog1
long_query_time10 sn
gtid_modeOFF
character_set_serverutf8mb4 · utf8mb4_0900_ai_ci