[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:database\u002Fjunior":4,"config":216},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":8,"spec_key":8,"spec_name":8,"locale":9,"cell_total":10,"field_total":11,"seniorities":12,"topics":15,"specs":116,"samples":130},"database","Database","junior","","en",1651,2475,[7,13,14],"mid","senior",[16,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,101,104,107,110,113],{"key":17,"name":18,"count":19},"backup-recovery","Backup Recovery",75,{"key":21,"name":22,"count":19},"data-modeling","Data Modeling",{"key":24,"name":25,"count":19},"indexing","Indexing",{"key":27,"name":28,"count":19},"mongodb-aggregation","Mongodb Aggregation",{"key":30,"name":31,"count":19},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":33,"name":34,"count":19},"mongodb-operations","Mongodb Operations",{"key":36,"name":37,"count":19},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":39,"name":40,"count":19},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":42,"name":43,"count":19},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":45,"name":46,"count":19},"mysql-indexes","Mysql Indexes",{"key":48,"name":49,"count":19},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":51,"name":52,"count":19},"mysql-operations","Mysql Operations",{"key":54,"name":55,"count":19},"mysql-query-optimization","Mysql Query Optimization",{"key":57,"name":58,"count":19},"mysql-replication-scaling","Mysql Replication Scaling",{"key":60,"name":61,"count":19},"mysql-types-constraints","Mysql Types Constraints",{"key":63,"name":64,"count":19},"nosql-models","Nosql Models",{"key":66,"name":67,"count":19},"performance-tuning","Performance Tuning",{"key":69,"name":70,"count":19},"pg-indexes","Pg Indexes",{"key":72,"name":73,"count":19},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":75,"name":76,"count":19},"pg-operations","Pg Operations",{"key":78,"name":79,"count":19},"pg-query-planning","Pg Query Planning",{"key":81,"name":82,"count":19},"pg-transactions-locking","Pg Transactions Locking",{"key":84,"name":85,"count":19},"pg-types-constraints","Pg Types Constraints",{"key":87,"name":88,"count":19},"query-optimization","Query Optimization",{"key":90,"name":91,"count":19},"redis-cluster-sharding","Redis Cluster Sharding",{"key":93,"name":94,"count":19},"redis-data-structures","Redis Data Structures",{"key":96,"name":97,"count":19},"redis-expiration-eviction","Redis Expiration Eviction",{"key":99,"name":100,"count":19},"redis-persistence","Redis Persistence",{"key":102,"name":103,"count":19},"redis-replication-sentinel","Redis Replication Sentinel",{"key":105,"name":106,"count":19},"redis-transactions-scripting","Redis Transactions Scripting",{"key":108,"name":109,"count":19},"replication-scaling","Replication Scaling",{"key":111,"name":112,"count":19},"security-access","Security Access",{"key":114,"name":115,"count":19},"transactions-isolation","Transactions Isolation",[117,121,124,127],{"key":118,"name":119,"count":120},"mongodb","MongoDB",450,{"key":122,"name":123,"count":120},"mysql","MySQL",{"key":125,"name":126,"count":120},"postgresql","PostgreSQL",{"key":128,"name":129,"count":120},"redis","Redis",[131,149,163,176,189,202],{"id":132,"topic":18,"difficulty":133,"body":134,"options":135,"correct_key":143,"explanation":148},"019f56bb-b5c7-70ae-abb8-056c412d2983",1,"What is the primary purpose of taking database backups?",[136,139,142,145],{"key":137,"text":138},"a","To speed up read queries by keeping hot rows in an in-memory cache layer",{"key":140,"text":141},"b","To spread incoming read traffic evenly across several database servers",{"key":143,"text":144},"c","To recover the data after hardware failure, accidental deletion, or corruption",{"key":146,"text":147},"d","To enforce referential integrity automatically between related parent and child tables","Backups exist so you can restore lost or damaged data after failures — disk crashes, human mistakes, software bugs, ransomware. Caching (a) and load distribution (b) are performance concerns, and integrity constraints (d) are enforced by the schema, not by backups.",{"id":150,"topic":18,"difficulty":151,"body":152,"options":153,"correct_key":140,"explanation":162},"019f56bb-b5c7-78a4-b334-e6fb18fc1954",2,"A team runs a primary database with a synchronous replica and argues: 'We don't need backups — the replica is our backup.' Why is this reasoning dangerous?",[154,156,158,160],{"key":137,"text":155},"A replica only serves reads, so you can never copy the lost data back out of it",{"key":140,"text":157},"An accidental DELETE or corruption is replicated to the standby too, destroying both copies",{"key":143,"text":159},"Replication lags so far behind the primary that the standby never holds usable recent data",{"key":146,"text":161},"A replica keeps its data in a compressed on-disk format that cannot be turned back into a database","Replication copies changes faithfully — including destructive ones. A bad DELETE, an UPDATE with the wrong WHERE, or corruption propagates to the replica in seconds, so both copies are lost together. A backup is a point-in-time copy you can go back to; a replica is not. Reads (a), lag (c), and storage format (d) are not the core reason.",{"id":164,"topic":18,"difficulty":151,"body":165,"options":166,"correct_key":146,"explanation":175},"019f56bb-b5c8-7241-a51f-90497ec12844","How do incremental and differential backups differ?",[167,169,171,173],{"key":137,"text":168},"They are simply two different names for one and the same backup technique",{"key":140,"text":170},"An incremental copies everything since the last full backup; a differential copies only the very newest changes",{"key":143,"text":172},"An incremental may only follow a full backup, while a differential may only follow another differential",{"key":146,"text":174},"An incremental copies changes since the last backup of any kind; a differential, since the last full backup","An incremental backup captures only what changed since the previous backup (full or incremental), so a restore must replay the full plus every incremental in order. A differential captures everything changed since the last full backup, so a restore needs only the full plus the latest differential. Option (b) swaps the two definitions.",{"id":177,"topic":18,"difficulty":151,"body":178,"options":179,"correct_key":137,"explanation":188},"019f56bb-b5c8-786d-a1d8-2bdb9bde3514","Compared with taking a fresh full backup every night, a 'weekly full + nightly incremental' strategy mainly trades...",[180,182,184,186],{"key":137,"text":181},"Faster, smaller nightly backups for a slower restore that replays the full plus each incremental",{"key":140,"text":183},"Slower nightly backups for an absolute guarantee that no committed data can ever be lost",{"key":143,"text":185},"Extra storage consumption for the ability to recover the database to any individual second",{"key":146,"text":187},"A simpler setup for the database engine automatically copying each backup to an off-site location","Incrementals write far less each night (faster, smaller), but recovery must start from the last full and replay every incremental in sequence — more steps, more time, and more chance that one link is missing. It does not guarantee zero loss (b) or second-level recovery (c); those are separate concerns.",{"id":190,"topic":18,"difficulty":151,"body":191,"options":192,"correct_key":140,"explanation":201},"019f56bb-b5c9-7014-8ba2-4ee6d27b804f","```bash\npg_dump mydb > mydb.sql\n```\nThis command produces a *logical* backup. How does a logical backup differ from a *physical* backup?",[193,195,197,199],{"key":137,"text":194},"A logical backup copies the raw on-disk files and blocks; a physical backup exports SQL statements",{"key":140,"text":196},"A logical backup exports data as SQL or a portable format; a physical backup copies the raw files",{"key":143,"text":198},"A logical backup can only capture the schema definition and never the actual rows of table data",{"key":146,"text":200},"A physical backup can run only while the database currently has zero open client connections","A logical backup (like pg_dump \u002F mysqldump) reconstructs data as portable statements, so it can restore into a different version or platform. A physical backup copies the raw data files and blocks — faster for huge databases but tied to the same engine layout. Option (a) reverses the two.",{"id":203,"topic":18,"difficulty":204,"body":205,"options":206,"correct_key":146,"explanation":215},"019f56bb-b5c9-7662-ba9f-69f3afa36dd6",3,"You must move a database to a server running a *different major version* on a *different CPU architecture*.\n```bash\n# option A (physical): copy the raw data files\n# option B (logical): pg_dump olddb | psql -h newhost newdb\n```\nWhich is generally the safer choice, and why?",[207,209,211,213],{"key":137,"text":208},"The physical file copy, since raw data files are always compatible across versions and CPU architectures",{"key":140,"text":210},"Neither works — data moves between servers only by configuring streaming replication first",{"key":143,"text":212},"Either is equivalent here, because the backup format has no bearing on cross-platform portability",{"key":146,"text":214},"The logical SQL dump, since it is portable and can be reloaded into a different version or platform","Physical backups copy engine-internal file formats that can differ between major versions and architectures, so restoring them elsewhere is fragile. A logical dump is engine-readable SQL\u002Fdata, which is exactly why it is the standard tool for cross-version and cross-platform moves. Replication (b) keeps copies in sync but is not a prerequisite for migration.",{"fields":217,"seniorities":392,"interview_shapes":393,"locales":398,"oauth":400,"question_count":403,"coach_enabled":404,"jd_match_enabled":404},[218,243,263,279,303,316,325,344,366,373,379,386],{"key":219,"name_tr":220,"name_en":220,"sort":133,"specializations":221},"backend","Backend",[222,225,228,231,234,237,240],{"key":223,"name":224,"field":219},"general","Genel",{"key":226,"name":227,"field":219},"go","Go",{"key":229,"name":230,"field":219},"python","Python",{"key":232,"name":233,"field":219},"java","Java",{"key":235,"name":236,"field":219},"csharp","C#\u002F.NET",{"key":238,"name":239,"field":219},"nodejs","Node.js",{"key":241,"name":242,"field":219},"php","PHP",{"key":244,"name_tr":245,"name_en":245,"sort":151,"specializations":246},"frontend","Frontend",[247,248,251,254,257,260],{"key":223,"name":224,"field":244},{"key":249,"name":250,"field":244},"javascript","JavaScript",{"key":252,"name":253,"field":244},"typescript","TypeScript",{"key":255,"name":256,"field":244},"react","React",{"key":258,"name":259,"field":244},"vue","Vue",{"key":261,"name":262,"field":244},"angular","Angular",{"key":264,"name_tr":265,"name_en":265,"sort":204,"specializations":266},"fullstack","Fullstack",[267,268,269,270,271,272,273,274,275,276,277,278],{"key":223,"name":224,"field":264},{"key":226,"name":227,"field":219},{"key":229,"name":230,"field":219},{"key":232,"name":233,"field":219},{"key":235,"name":236,"field":219},{"key":238,"name":239,"field":219},{"key":241,"name":242,"field":219},{"key":249,"name":250,"field":244},{"key":252,"name":253,"field":244},{"key":255,"name":256,"field":244},{"key":258,"name":259,"field":244},{"key":261,"name":262,"field":244},{"key":280,"name_tr":281,"name_en":281,"sort":282,"specializations":283},"devops-cloud","DevOps \u002F Cloud",4,[284,285,288,291,294,297,300],{"key":223,"name":224,"field":280},{"key":286,"name":287,"field":280},"aws","AWS",{"key":289,"name":290,"field":280},"gcp","GCP",{"key":292,"name":293,"field":280},"azure","Azure",{"key":295,"name":296,"field":280},"kubernetes","Kubernetes",{"key":298,"name":299,"field":280},"terraform","Terraform",{"key":301,"name":302,"field":280},"linux","Linux",{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"ai-engineer","AI Engineer",5,[308,309,310,313],{"key":223,"name":224,"field":304},{"key":229,"name":230,"field":304},{"key":311,"name":312,"field":304},"llm-rag","LLM\u002FRAG",{"key":314,"name":315,"field":304},"mlops","MLOps",{"key":5,"name_tr":317,"name_en":6,"sort":318,"specializations":319},"Veritabanı",6,[320,321,322,323,324],{"key":223,"name":224,"field":5},{"key":125,"name":126,"field":5},{"key":122,"name":123,"field":5},{"key":118,"name":119,"field":5},{"key":128,"name":129,"field":5},{"key":326,"name_tr":327,"name_en":328,"sort":329,"specializations":330},"mobile","Mobil","Mobile",7,[331,332,335,338,341],{"key":223,"name":224,"field":326},{"key":333,"name":334,"field":326},"ios-swift","iOS (Swift)",{"key":336,"name":337,"field":326},"android-kotlin","Android (Kotlin)",{"key":339,"name":340,"field":326},"flutter","Flutter",{"key":342,"name":343,"field":326},"react-native","React Native",{"key":345,"name_tr":346,"name_en":347,"sort":348,"specializations":349},"security","Güvenlik","Security",8,[350,351,354,357,360,363],{"key":223,"name":224,"field":345},{"key":352,"name":353,"field":345},"appsec","AppSec",{"key":355,"name":356,"field":345},"offensive-pentest","Offensive \u002F Pentest",{"key":358,"name":359,"field":345},"cloud-security","Cloud Security",{"key":361,"name":362,"field":345},"devsecops","DevSecOps",{"key":364,"name":365,"field":345},"blue-team-incident","Blue Team \u002F Incident",{"key":367,"name_tr":368,"name_en":369,"sort":370,"specializations":371},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[372],{"key":223,"name":224,"field":367},{"key":374,"name_tr":375,"name_en":375,"sort":376,"specializations":377},"data-engineer","Data Engineer",10,[378],{"key":223,"name":224,"field":374},{"key":380,"name_tr":381,"name_en":382,"sort":383,"specializations":384},"game-dev","Oyun Geliştirme","Game Development",11,[385],{"key":223,"name":224,"field":380},{"key":387,"name_tr":388,"name_en":388,"sort":389,"specializations":390},"ml-engineer","ML Engineer",12,[391],{"key":223,"name":224,"field":387},[7,13,14],{"junior":394,"mid":396,"senior":397},{"questions":395,"median_sec":3},20,{"questions":395,"median_sec":3},{"questions":395,"median_sec":3},[399,9],"tr",[401,402],"google","github",21750,true]