版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年全国计算机等级考试四级数据库工程师认证实战试卷及解析1.单项选择题(每题1分,共30分)1.1某省医保系统采用两地三中心架构,生产库运行于A机房Oracle19cRAC双节点,B机房为100km外的异地热备,C机房为500km外的容灾库。若要求RPO≤5s、RTO≤30s,下列方案中最经济可行的是A.在B机房部署ActiveDataGuard,RedoTransport使用SYNCAFFIRM,应用日志采用实时应用B.在B机房部署GoldenGate双向复制,C机房部署DataGuard最大性能模式C.在B机房部署存储级同步复制,C机房部署OracleRACOneNodeD.在B机房部署DataGuardFarSync,C机房部署级联备库,Redo使用ASYNC答案:A解析:SYNCAFFIRM保证RPO≈0,实时应用保证RTO最短;FarSync虽可降低主库等待,但增加30km以上延迟,且C机房级联备库对RTO无直接帮助;GoldenGate双向复制无法保证一致性且成本高;存储级同步在100km以上风险大。1.2某电商大促期间,订单表按order_id哈希分区64个,出现大量“bufferbusywaits”和“gcbufferbusyacquire”。AWR显示逻辑读>5000000/s,DBCPU仅占35%。下列哪项措施最能根除此等待A.将分区数降为16并改为range分区B.将表改为反向键索引组织表C.启用InMemory列式填充并设置priorityCRITICALD.为分区表增加hashsubpartition并启用分区智能扫描答案:C解析:逻辑读极高而CPU低,说明热块争用;InMemory将热块转为列式,消除bufferpin争用,且优先级CRITICAL保证第一时间填充;反向键对主键顺序插入有效,但订单表为随机写入;子分区不能减少全局热块。1.3MySQL8.0.34中,对JSON字段order_info建立多值索引的语法正确的是A.ALTERTABLEordersADDINDEXmv_idx((CAST(order_info>'$.items[].sku'ASCHAR(30)ARRAY)));B.CREATEINDEXmv_idxONorders((CAST(order_info>'$.items[].sku'ASUNSIGNEDARRAY)));C.ALTERTABLEordersADDINDEXmv_idx((CAST(order_info>'$.items[].sku'ASCHAR(30)ARRAY)))USINGBTREE;D.CREATEINDEXmv_idxONorders((CAST(order_info>'$.items[].sku'ASCHAR(30)ARRAY)))ALGORITHM=INPLACE;答案:D解析:MySQL多值索引需CAST…ARRAY,且CREATEINDEX语法支持ALGORITHM=INPLACE;A缺少USINGBTREE但语法可过,D更完整;B类型错误,SKU为字符串;C混用ALTER与CREATE。1.4PostgreSQL15中,对分区表measurement按logdate进行LIST分区,新增分区语句正确的是A.ALTERTABLEmeasurementATTACHPARTITIONmeasure_y2025FORVALUESIN('20250101');B.CREATETABLEmeasure_y2025PARTITIONOFmeasurementFORVALUESIN('2025')PARTITIONBYRANGE(logdate);C.CREATETABLEmeasure_y2025PARTITIONOFmeasurementFORVALUESIN('2025');D.ALTERTABLEmeasurementADDPARTITIONmeasure_y2025START('20250101')INCLUSIVE;答案:C解析:LIST分区按年值'2025'直接创建子表即可;A需先建空表再ATTACH;B又声明子分区导致嵌套;D为Oracle语法。1.5SQLServer2022采用AlwaysOnAG,主节点在北京,异步副本在东京。网络突发抖动导致日志发送队列>60GB,此时在主库执行A.BACKUPLOGsalesTODISK='NUL:'B.DBCCSHRINKFILE(log,1024)C.ALTERAVAILABILITYGROUP[ag]MODIFYREPLICAON'Tokyo'WITH(AVAILABILITY_MODE=SYNCHRONOUS_COMMIT)D.在东京副本执行ALTERDATABASEsalesSETHADRRESUME答案:A解析:异步副本延迟大,日志无法截断;BACKUPLOG…TODISK='NUL:'强制截断日志,释放空间;B收缩文件不能截断VLF;C改为同步会阻塞主库;D仅恢复暂停副本,不截断主库日志。1.6某金融核心系统采用分布式TiDB7.1,表account使用AUTO_RANDOM主键,业务发现插入性能随数据量下降。下列调优手段无效的是A.将AUTO_RANDOM改为AUTO_INCREMENT并开启_aggregatedinsert_B.调大tidb_shard_row_id_bits=4C.将表改为聚簇索引表并设置SHARD_ROW_ID_BITS=0D.将splitregion策略改为presplit32个region答案:C解析:聚簇索引+SHARD_ROW_ID_BITS=0导致写热点;A改回AUTO_INCREMENT+批量插入可缓解随机写;B、D均分散热点;C反而加剧。1.7Oracle19c中,对一张压缩表使用AdvancedCompression,估算节省空间可查询A.DBMS_COMPRESSION.GET_COMPRESSION_RATIOB.DBMS_SPACE.SPACE_USAGEC.V$SEGMENT_STATISTICSD.DBA_TAB_COMPRESSIONS答案:A解析:GET_COMPRESSION_RATIO直接采样估算;B仅报告已用块;C为性能视图;D无此视图。1.8Redis7.0集群,槽道迁移时,源节点显示“MIGRATEtimeout”。最可能原因是A.目标节点内存不足B.源节点未开启appendonlyyesC.迁移key包含>512MB的单个stringD.客户端正在对迁移key执行WATCH事务答案:C解析:MIGRATE命令单key默认timeout=5s,大key网络拷贝超时;A会返回OOM;B与迁移无关;WATCH事务阻塞的是key而非迁移。1.9MongoDB6.0分片集群,对集合orders以{customer:1,orderDate:1}分片,块大小128MB,数据量2TB。现需将customer='C100'的文档迁移到新分片,应执行A.sh.moveChunk('store.orders',{customer:'C100'},'shard02')B.sh.splitAt('store.orders',{customer:'C100'})C.sh.splitFind('store.orders',{customer:'C100'})后sh.moveChunkD.db.orders.updateMany({customer:'C100'},{$set:{_chunk:'shard02'}})答案:C解析:先splitFind定位含C100的块,再moveChunk;A直接move可能跨多个块;B仅拆分不迁移;D语法无效。1.10某数据仓库采用Greenplum7,表fact_sales按sale_date分布,发现某段日期倾斜严重。最佳治理方案A.修改分布键为(sale_date,product_id)并重新分布B.创建压缩索引BRINonsale_dateC.将表改为随机分布D.增加segment实例数并执行gpexpand答案:A解析:分布键导致数据倾斜,改为联合键可打散;随机分布丧失过滤下推;BRIN不解决倾斜;gpexpand需停机且不能自动重平衡旧数据。1.11在Kafka3.5中,topic'pay'共6分区,生产者key为user_id,保证同一用户严格有序且负载均衡,应使用A.DefaultPartitionerB.UniformStickyPartitionerC.CustomPartitioner按user_idhash%6D.RoundRobinPartitioner答案:C解析:需按keyhash保证同key进同分区;DefaultPartitioner在key=null时sticky,有key则hash;C显式控制;B、D均可能打散同一key。1.12Hive3.1onTez,SQL执行卡在99%30min,Counters显示“SpilledRecords”>8亿。最可能瓶颈A.文件格式为TextFileB.MapJoin小表>1GBC.动态分区插入产生>5000分区D.倾斜连接键未开启skewjoin答案:D解析:SpilledRecords高说明内存不足落盘;倾斜键导致单Reducer数据爆炸;A、B、C均不直接产生巨量spill。1.13某银行使用DB211.5pureScale,成员崩溃后,集群重构时长时间处于“PEER”状态,最可能原因为A.全局缓冲池脏页过多B.TieBreaker磁盘网络不可达C.集群CF内存不足D.日志缓冲区太小答案:B解析:PEER状态需TieBreaker投票,网络隔离导致无法形成多数;A、C、D均影响性能而非成员加入。1.14在OceanBase4.2中,对分区表logitem做分区级备份,需使用A.ALTERSYSTEMBACKUPPARTITIONlogitemPARTITIONp2025;B.BACKUPDATABASEPLUSARCHIVELOG;C.ob_adminbackup_partitionlogitemp2025;D.目前OceanBase不支持单分区备份答案:D解析:OceanBase备份最小粒度为租户,无分区级接口;A、B、C均为无效或不存在命令。1.15某互联网公司使用ClickHouse23.8,表visit采用MergeTree,按dt分区、按user_id哈希分片。发现OPTIMIZE频繁超时,应A.调大merge_tree_max_bytes_to_merge_at_max_space_in_poolB.将分区粒度由天改为月C.增加background_pool_sizeD.将表引擎改为ReplicatedSummingMergeTree答案:C解析:后台合并线程不足导致OPTIMIZE超时;A为单次合并上限,调大反而更慢;B月分区产生过大part;D与合并超时无关。1.16SQLServer行版本隔离级别下,tempdb暴增,最准确诊断视图A.sys.dm_tran_active_snapshot_database_transactionsB.sys.dm_db_session_space_usageC.sys.dm_tran_version_storeD.sys.dm_db_task_space_usage答案:C解析:版本存储区大小直接看dm_tran_version_store;A仅事务;B、D为会话/任务分配,不显示版本存储。1.17Oracle中,对CLOB字段使用SecureFile去重,需指定A.STORAGE(ENCRYPTDEDUPLICATE)B.STOREASSECUREFILE(DEDUPLICATE)C.LOB(cache)DEDUPLICATED.表级COMPRESSDEDUPLICATE答案:B解析:SecureFile去重在LOB存储子句中声明;A顺序错;C、D语法无效。1.18在Hive中,对ORC表设置事务=on,INSERTINTO写入产生大量delta目录,合并应执行A.ALTERTABLETCOMPACT'major'B.MSCKREPAIRTABLETC.CONCATENATED.REFRESHTABLET答案:A解析:ACID表需COMPACT合并delta;CONCATENATE仅非ACID;B、D为元数据操作。1.19某系统使用Elasticsearch8.10,索引log2025.01分片数5,副本1,节点3,写入拒绝率>15%,应优先A.增加refresh_interval=30sB.将副本数降为0C.调大thread_pool.write.sizeD.扩容数据节点到5答案:D解析:节点数<分片副本因子导致无法分配;扩容节点可让主副分片均匀;A、C缓解但无法根治;B丢高可用。1.20在MySQL组复制中,节点状态为RECOVERING10min未变,最可能A.donor节点binlog已清理B.group_replication_recovery_use_ssl=offC.单主模式未选主D.本地relaylog损坏答案:A解析:RECOVERING需从donor拉取缺失事务,若donorbinlog被purge则无法提供;B不影响;C与恢复无关;D会报错。1.21PostgreSQL中,对分区表执行TRUNCATEPARTITIONp2025,需具备A.TRUNCATE权限onparenttableB.TRUNCATE权限onpartitiononlyC.DELETE权限onparentD.OWNERonpartition答案:A解析:TRUNCATE任意分区需父表权限;B不足;CDELETE与TRUNCATE不同。1.22在OracleRAC中,实例2频繁报“ORA08103:objectnolongerexists”,最可能A.表被drop后缓存块未清理B._gc_read_mostly_flush=FALSEC.私网丢包D.DRM频繁重配置答案:A解析:对象被删除后,其他实例缓存块未失效,访问时报错;B、C、D与对象存在性无关。1.23某系统使用CockroachDB23.1,多表联合更新出现大量“transactionretryerror”,最佳实践A.使用SELECT…FORUPDATEB.将事务隔离降为READUNCOMMITTEDC.客户端重试并采用SAVEPOINTD.关闭vectorized执行答案:C解析:CRDB可串行化隔离,冲突需重试;SAVEPOINT可幂等重放;A加重锁;B不支持;D无关。1.24在Kafka中,consumergroup'g1'出现大量“offsetcommitfailed”日志,原因不可能A.coordinator加载__consumer_offsets超时B.手动commitAsync未处理回调异常C.消息体>1GBD.组内成员频繁rebalance答案:C解析:消息体大小受max.message.bytes限制,>1GB直接拒绝写入,与offsetcommit无关;A、B、D均导致commit失败。1.25某数据湖使用Iceberg1.3,快照过期策略expireSnapshotOlderThan(1,HOURS)未释放文件,应检查A.是否调用rewriteDataFilesB.是否设置deleteAfterCommit=trueC.是否运行expireSnapshots行动D.是否开启garbagecollection答案:C解析:expireSnapshots需显式运行;A为重写;B为提交后删;D无此开关。1.26在SQLServer中,内存授予等待RESOURCE_SEMAPHORE,最准确调优A.调大maxservermemoryB.降低CostThresholdforParallelismC.增加maxworkerthreadsD.启用lockpagesinmemory答案:A解析:内存授予不足因maxservermemory过小;B增加并行度反而更耗内存;C、D无关。1.27某系统使用HBase2.5,RS频繁FullGC,查看MemStore>4GB,应A.调小hbase.hregion.memstore.flush.sizeB.增加GC线程C.开启MSLABD.将BLOCKCACHE设为0.2答案:A解析:MemStore过大触发旧代暴涨,调小flushsize可及时刷盘;C缓解碎片但非根本;B、D无关。1.28在Oracle中,估算索引全扫描I/O次数,需查询A.INDEX_STATSB.DBA_INDEXESC.DBA_SEGMENTSD.V$SEGMENT_STATISTICS答案:A解析:ANALYZEINDEX…VALIDATESTRUCTURE后查看INDEX_STATS的HEIGHT与LF_BLKS;B无块数;C为段大小;D为运行统计。1.29某系统使用Neo4j5.12,Cypher查询MATCH(u:User)[:FRIEND1..4](v)RETURNu,v超时,应A.增加heapsizeB.使用EXPLAINPLANC.限制深度为3并添加WHEREid(u)<id(v)D.将关系类型拆分为多层答案:C解析:双向路径爆炸,加id限制避免往返;A不解决组合爆炸;B仅分析;D无关。1.30在SQLite3.44中,开启WAL模式后,读事务仍报“databaseislocked”,最可能A.写事务未提交B.读事务使用BEGINEXCLUSIVEC.cache_size过小D.文件系统为NFS且lock机制失效答案:D解析:NFS锁不可靠,WAL仍依赖文件锁;A应允许并发读;B显式排他;C与锁无关。2.多项选择题(每题2分,共20分,多选少选均不得分)2.1下列关于MySQL8.0InnoDBCluster说法正确的有A.单主模式下,可读写节点只能有一个B.组复制通信层基于PaxosC.失败节点恢复后需手动重新加入组D.MySQLRouter默认端口6446用于经典协议读写分离E.支持自动选主与脑裂保护答案:ABDE解析:恢复节点自动重新加入,无需手动;其余均正确。2.2PostgreSQL15支持的原生分区特性包括A.默认分区B.分区级排他约束C.分区级TRUNCATE触发器D.分区级ANALYZEE.跨分区外键引用答案:ABD解析:C仅父表触发器;E外键需引用唯一键,跨分区不支持。2.3在Oracle中,使用DBMS_REDEFINITION在线重定义表时,需满足A.原表需有主键B.重定义期间需双倍空间C.目标表结构需与原表完全一致D.需开启归档模式E.需创建物化视图日志答案:ABE解析:C允许列增减;D非必须。2.4下列关于RedisCluster故障迁移描述正确的有A.从节点需先获得半数以上主节点投票B.若clusterrequirefullcoverage=yes,则任一槽未覆盖将停止服务C.网络分区时可能出现双主D.主从切换后客户端需更新槽道映射E.节点ID变化后需重新加入集群答案:ABCD解析:E节点ID保存在nodes.conf,重启不变。2.5SQLServer2022的JSON函数包括A.JSON_VALUEB.JSON_QUERYC.JSON_MODIFYD.JSON_TABLEE.JSON_OBJECTAGG答案:ABC解析:D、E为Oracle函数;SQLServer无JSON_TABLE。2.6在MongoDB中,chunk迁移失败可能原因A.分片键单调递增B.块大小>maxChunkSizeC.目标分片磁盘满D.balancer窗口未开启E.存在孤立文档答案:CDE解析:A导致分布不均但非失败;B块大小受配置限制。2.7下列关于KafkaExactlyOnce语义条件正确的有A.生产者enable.idempotence=trueB.事务需指定transactional.idC.消费者需设置isolation.level=read_committedD.Broker端需设置unclean.leader.election=falseE.需使用幂等且事务同时开启答案:ABCE解析:D与EOS无关。2.8在ClickHouse中,MergeTree家族支持的特性A.数据去重ReplacingMergeTreeB.聚合SummingMergeTreeC.列级TTLD.事务回滚E.主键更新答案:ABC解析:D无事务;E仅合并时去重,非更新。2.9某系统使用Elasticsearch,索引写入性能低,可优化A.增加refresh_intervalB.调大translogflush阈值C.使用bulk并发D.禁用_sourceE.增加副本数答案:ABC解析:D影响功能;E增加写入负担。2.10在TiDB中,执行计划走IndexMerge需满足A.过滤条件含ORB.单个索引回表代价高C.统计信息最新D.关闭TiFlash副本E.表为聚簇索引答案:ABC解析:D、E非必须。3.判断题(每题1分,共10分,正确打“√”,错误打“×”)3.1Oracle的Bitmap索引支持行级锁。×3.2MySQL的group_replication_flow_control_threshold可控制流控触发阈值。√3.3PostgreSQL的BRIN索引适合高选择列。×3.4Redis的Lua脚本执行具有原子性。√3.5SQLServer的列存索引可更新。√3.6MongoDB的shardkey一旦创建可修改。×3.7Kafka的consumeroffset保存在内部topic__consumer_offsets。√3.8ClickHouse支持ACID事务。×3.9HBase的Coprocessor可在RegionServer端执行代码。√3.10SQLite支持多写并发。×4.填空题(每空2分,共20分)4.1Oracle中,查看当前会话等待事件名称的视图是______。答案:V$SESSION_WAIT4.2MySQL8.0默认的认证插件为______。答案:caching_sha2_password4.3PostgreSQL中,开启并行查询的参数是______。答案:max_parallel_workers_per_gather4.4Redis集群总槽道数为______。答案:163844.5SQLServer中,查看索引缺失的DMV是______。答案:sys.dm_db_missing_index_details4.6MongoDB的默认写关注级别为______。答案:{w:1}4.7Kafka的leader选举由______负责。答案:controller4.8ClickHouse的默认每合并线程最大内存由参数______控制。答案:max_memory_usage4.9HBase中,Region的切分策略由______类指定。答案:RegionSplitPolicy4.10在SQLite中,开启外键约束的指令为______。答案:PRAGMAforeign_keys=ON5.简答题(每题10分,共30分)5.1某电商平台订单表order_head亿级数据,按order_date日分区,业务需支持最近30天任意维度组合查询,QPS峰值5k,平均返回<100ms。现有基于MySQL8.0主从,出现从库延迟>20s。请给出不更换数据库前提下的完整优化方案,含分区策略、索引、参数、硬件、缓存及监控。答案:1.分区:保持日分区,但将历史30天前分区使用ALTERTABLE…EXCHANGEPARTITION归档到冷表,减少主表大小;预创建未来7天分区避免DDL高峰。2.索引:对常用维度(user_id,sku_id,status)建立联合索引,采用InnoDB分区裁剪+索引下推;对order_id保持主键聚簇。3.读写分离:使用MySQLRouter+组复制,单主写,多从读;开启group_replication_flow_control_threshold=25000缓解从库延迟。4.参数:调大innodb_buffer_pool_size=75%内存;innodb_flush_log_at_trx_commit=2;binlog_group_commit_sync_delay=100μs;slave_parallel_type=LOGICAL_CLOCK;slave_parallel_workers=16。5.硬件:从库采用NVMeSSD+RAID1;万兆网络;开启CPU节能关闭。6.缓存:引入RedisCluster,按order_id维度缓存热数据30s,写操作采用CacheAside+消息队列异步失效。7.监控:Prometheus+Grafana监控seconds_behind_master、flow_control_applier、InnoDBrowlocktime;自定义延迟>5s短信告警。8.查询优化:对维度组合建立覆盖索引,避免回表;使用ICP与MRR;对范围查询加LIMIT100;开启optimizer_switch='index_merge=on'。5.2描述在PostgreSQL15中,对一张100TB级事实表按时间范围分区后,如何实施跨分区级联更新且保证事务一致性,并给出具体SQL步骤与锁策略。答案:1.创建父表sales_fact(…,sale_timetimestamp,…)PARTITIONBYRANGE(sale_time)。2.创建子分区sales_y2025m01…sales_y2025m12,每个分区存储一月数据。3.开启事务:BEGINISOLATIONLEVELREPEATABLEREAD;4.使用ALTERTABLEsales_factDETACHPARTITIONsales_y2025m01CONCURRENTLY;该语句仅获取ACCESSEXCLUSIVE锁毫秒级,不阻塞查询。5.对分离后表执行UPDATEsales_y2025m01SETdiscount=0.1WHEREcategory='A';6.更新完成后,ALTERTABLEsales_factATTACHPARTITIONsales_y2025m01FORVALUESFROM('20250101')TO('20250201');7.若需跨
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核心素养背景下的小学生劳动能力培养路径
- 2025年冷藏食品考试题库及答案
- 2025年河北税务面试题库及答案
- 秋季安全教育第一课课件
- 散文匆匆讲课课件
- 助农创业计划书大学生版
- 河南省扶沟二中2026届化学高三第一学期期末达标检测试题含解析
- 临床常见输液反应及处理
- 农田水利管护的策略及实施路径
- 2025年防疫技能测试题库及答案
- 2025至2030年中国智慧食堂产业发展动态及投资前景预测报告
- 国家开放大学《网络系统管理与维护》形考任务1-6参考答案
- JG/T 415-2013建筑防火涂料有害物质限量及检测方法
- 接闪杆计算完整版本
- T/CBMCA 020-2021地铺石瓷砖
- 多元金融行业:期货行业专题报告:行业逻辑趋完善乘风破浪终有时311mb
- 《胆道镜的应用》课件
- T-CACM 1362-2021 中药饮片临床应用规范
- 【新课标】Unit 6 A Lets talk Lets learn单元整体教学课件
- 山西太原家乡介绍旅游
- DB43T-湖南省改性玻化微珠复合材料外墙修缮系统应用技术标准
评论
0/150
提交评论