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