کارشناس CockroachDB مسئول طراحی، پیادهسازی، نگهداری، مانیتورینگ و بهینهسازی دیتابیسهای CockroachDB در محیطهای High Availability، Multi-Region و Cloud-Native است. این نقش تمرکز ویژهای بر توزیع داده، هماهنگی تراکنشها، Replication، Fault Tolerance و Observability دارد.
مسئولیتها (Responsibilities)
1. نصب، راهاندازی و پیکربندی
نصب CockroachDB در حالتهای: Single-Node, Multi-Node, Multi-Region / Multi-AZ
پیکربندی: Node Join, Gossip Network, TLS Certificates, Encryption at Rest & In Transit
طراحی Topology مناسب با توجه به SLA، latency و zone constraints.
نصب MySQL / MariaDB در نسخههای 5.7, 8.0 و MariaDB 10.x.
پیکربندی MySQL Server Parameters (my.cnf).
بهینهسازی اولیه Memory, Buffer Pool, Cache, Threadها.
راهاندازی MySQL روی Linux (RHEL, Rocky, Ubuntu, Debian).
نصب Percona Server و Percona Toolkit در صورت استفاده
نصب PostgreSQL روی Linux (Ubuntu, RHEL, Rocky, Debian).
پیکربندی Clusterها با: Patroni (High Availability), PgPool-II, repmgr
مدیریت Initdb، تنظیمات postgresql.conf و pg_hba.conf.
راهاندازی Replication به صورت: Streaming Replication, Logical Replication, Synchronous/Asynchronous
نصب نسخههای مختلف SQL Server (2016/2017/2019/2022).
پیکربندی Instanceها، Database Engine، Agent و SSIS/SSRS در صورت نیاز.
تنظیم سرویسها روی ویندوز سرور و امنیت اولیه (Service Accounts, Permissions).
پیکربندی SQL Server Network, Endpoints و تنظیمات Memory/CPU.
2. High Availability & Resilience
طراحی Clusterهای مقاوم در برابر: خرابی Node, خرابی Rack, خرابی دیتاسنتر
مدیریت Replication Factors، Zone Configurations و Survival Goals.
تست منظم Failover و Node Replacement.
3. مدیریت دیتابیسها
مدیریت Databases، Tables، Schemas و Indexها.
پشتیبانی از SQL Compatibility با PostgreSQL.
مدیریت Multi-Version Concurrency (MVCC) و Transaction Retries.
ایجاد و مدیریت دیتابیسها، Filegroupها، Datafile/Logfileها.
مدیریت Indexها (Rebuild/Reorganize) و Statistics.
مدیریت Jobs، Schedules و Automation با SQL Agent.
بررسی و رفع مشکلات Fragmentation، Blocking، Deadlock.
طراحی Schema، مدیریت Tablespaceها، و Partitioning.
مدیریت Indexها (B-Tree, Hash, GiST, GIN).
مدیریت Transactionها، Vacuum، Autovacuum و جلوگیری از Bloat.
مدیریت Extensions مانند: PostGIS, pg_stat_statements, TimescaleDB, citext
ایجاد و مدیریت Databaseها, Tables, Indexها و Partitionها.
مدیریت Users, Roles و Permissions.
انجام عملیات Maintenance دورهای شامل: Optimize Table, Analyze Table, Repair Table
مدیریت Tablespace و فایلهای Log.
طراحی Partitioning بر اساس: Region, Zone, User-based sharding
4. Performance Tuning
تحلیل Bottleneckهای شبکه، Storage، و CPU.
بررسی Execution Plans و Optimization با EXPLAIN.
مدیریت hotspots و کاهش Contention.
بهینهسازی reads/writes در محیطهای distributed.
تنظیمات: KV Performance, Raft Election Timing, Concurrency Limits
5. Backup & Disaster Recovery
طراحی Backup/Restore با: BACKUP / RESTORE, Incremental Backup, Cloud Storage (S3/GCS/Azure Blob)
تنظیم Schedule Backup Jobs.
پیادهسازی PITR (Point-in-Time Recovery) با log retention.
تست DR سناریوهای cross-region.
6. امنیت
مدیریت Certificates، Encryption، Key Rotation.
Role-Based Access Control (RBAC) و Privileges.
تنظیم Audit Logging.
Hardening Server و محدودکردن دسترسیهای شبکهای.
7. مانیتورینگ و Observability
مانیتورینگ با: Prometheus, Grafana, CockroachDB Admin UI
پایش Metrics حیاتی: KV operations, Transaction retries, Replication lag, Node liveness, Storage per range
اتصال لاگها به ELK / Loki / EFK.
ایجاد داشبوردهای SLA/SLO.
8. CockroachDB در Kubernetes
کار با: Cockroach Operator for Kubernetes, Helm Chart, StatefulSet + PVC
ارائه طراحی StorageClass بهینه (Ceph, SSD, NVMe).
مدیریت Rolling Upgrade و Node Draining.
9. اسکریپتنویسی و اتوماسیون
اسکریپتنویسی با Bash یا Python.
اتوماسیون عملیات DBA با Ansible/Terraform.
مدیریت schema migration با Flyway/Liquibase.
مهارتهای مورد نیاز (Requirements)
مهارتهای فنی
تجربه با CockroachDB نسخههای 20.x تا 24.x.
آشنایی کامل با مفاهیم Distributed SQL و Raft Consensus.
درک عمیق از: Replication, Consistency Models, MVCC, Range Splitting
تسلط به Linux و شبکه (latency, MTU, firewall).
آشنایی با Kubernetes و Cloud Providers (AWS/GCP/Azure).
مهارت در SQL و Query Optimization.
آشنایی با PostgreSQL Extensions (به دلیل سازگاری syntax).
مهارتهای نرم
توانایی تحلیل Incidentهای پیچیده distributed systems.
تفکر سیستمی و توانایی شناسایی Bottlenecks چندلایه.
مستندسازی کامل و دقیق.
توانایی کار با DevOps, Backend, Observability و SRE تیمها.
تجربههای ترجیحی
تجربه در معماریهای Multi-Region.
تجربه با Ceph/SDS یا Storage NVMe.
آشنایی با Kafka و معماری Event-Driven.
مهاجرت دیتابیس از PostgreSQL/MySQL به CockroachDB.
کار در محیطهای High-Concurrency با بار مالی/بانکی.