Oracle ORA-01653 错误分析与表空间扩容解决方案
在日常的数据库运维或开发中,我们经常会遇到ORA-01653: 无法通过 N (在表空间 X 中) 扩展的报错。本文以一次实际案例为例,深入分析其原因,并总结相应的解决思路与最佳实践。 问题背景在对一张表 A 的 CLOB 字段执行 UPDATE 时,报错如下: 1ORA-01653: 表 A 无法通过 128 (在表空间 X 中) 扩展 错误提示表明:Oracle 在为该表分配新的区间(extent)时失败了,无法从表空间中申请到足够的存储空间。 原因分析出现 ORA-01653 的常见原因: 表空间容量不足 表或 LOB 段所在的表空间已接近满负荷,无法再分配新的 extent。 数据文件未开启自动扩展 数据文件达到最大大小,但没有开启 AUTOEXTEND。 单个数据文件大小限制 数据文件设置了固定大小,Oracle 不能继续扩展。 在本案例中,通过以下 SQL 查询确认了表 A 的 LOB 段所在的表空间: 123SELECT a.table_name, a.column_name, a.segment_name, a.tablespace_nameFROM ...
大模型微调方法全解析
引言在第一篇中,我们介绍了为什么需要对大模型进行微调。微调的意义已经明确,那么接下来最核心的问题就是:如何微调? 在这一篇,我们将系统介绍几种主流微调方法,并结合 Qwen3-coder 的特点进行分析。 全参数微调(Full Fine-tuning)全参数微调(Full Fine-tuning)是最直接的一种微调方式,其核心思想是更新模型中的所有参数,使模型完全适应目标任务的数据分布和业务需求。 具体来说: 模型在预训练阶段已经学习了大量通用知识(例如编程语言语法、常用库函数、自然语言描述等)。 在全参数微调中,训练过程中每一层的权重和偏置参数都会被更新,让模型能够完全吸收新的任务特定信息。 这种方法可以实现最大的适配能力,使模型在特定任务上的表现达到最优。 优点:更新模型中的所有参数,模型能力充分释放,能够高度贴合目标任务。 缺点:对显存和算力要求高,大模型可能需要多卡 GPU 或 TPUs 才能训练。数据需求大,否则容易出现过拟合。训练成本高,迭代周期长。 适用场景:小规模模型或算力充足的环境。任务与预训练数据差异极大,需要模型完全重新学习任务特定模式。 参数高效微调(...
为什么要对大模型进行微调?
引言近年来,大模型(LLM, Large Language Model)在自然语言处理和代码生成等领域取得了突破性进展。以 Qwen3-coder 为代表的新一代开源代码大模型,具备强大的代码补全、理解和生成能力。然而,通用大模型并不能直接满足所有业务场景:它们可能不符合企业内部的开发规范,无法覆盖特定领域的知识,也可能在特有任务上表现不佳。 这时候,「微调」就成为让大模型真正落地的关键。 什么是微调?微调(Fine-tuning)是指在一个已经预训练的大模型基础上,使用特定任务的数据对模型进行再训练,从而让模型更好地适配目标场景。与从零开始训练相比,微调所需的资源和时间要少得多。 这里的预训练大模型,是指在大规模的通用数据(如互联网文本、开源代码、技术文档等)上进行长时间训练后得到的基础模型。例如,Qwen3-coder 在预训练阶段学习了编程语言的语法结构、常见库函数、以及大量的自然语言描述,从而具备了理解代码和自然语言的通用能力。 但是,预训练并不能保证模型在特定场景下表现最佳。比如: 企业内部的开发规范(命名习惯、代码风格) 行业专属知识(金融交易规则、医疗影像处理代码...
微调中的数据收集与准备
引言俗话说:「巧妇难为无米之炊」。再先进的微调方法,如果没有高质量数据,也难以训练出效果优秀的模型。 在微调大模型的过程中,数据是决定成败的关键。本篇将介绍如何收集、清洗和准备数据。 数据收集来源 开源代码仓库 GitHub、GitLab 开放项目 适合补全、重构等任务 技术问答平台 StackOverflow、知乎技术区 获取「问题-解答」类数据 企业内部数据 代码库、接口文档、设计规范 最贴近实际需求,但需注意隐私与安全 合成数据 使用大模型生成初步数据,再人工复核 数据清洗在微调大模型的过程中,数据质量直接决定了模型性能。原始数据往往存在重复、错误、格式不统一或不相关内容,如果直接用于训练,会导致模型学习到错误模式或产生偏差。因此,数据清洗是保证微调效果的关键环节。 数据清洗的主要步骤: 去重与格式统一 去除重复的代码片段或指令-响应对,避免模型过度记忆重复样例 将不同来源的数据统一格式,例如统一缩进、代码风格、注释规范 去除低质量或错误样例 移除语法错误、逻辑错误或不完整的数据 确保训练数据的正确性和可执行性 隐私和敏感信息处理 删...
Nginx 四层与七层转发详解及应用场景
在现代互联网架构中,高并发、低延迟、灵活的流量转发与负载均衡 是后端服务设计的核心目标。作为一款高性能的开源 Web 服务器和反向代理服务器,Nginx 在企业级应用中被广泛用于流量调度。其强大之处不仅在于处理 HTTP 请求,还能承担 TCP/UDP 层面的转发工作。理解 四层转发 和 七层转发 的区别及应用场景,对合理设计系统架构至关重要。 OSI 七层网络模型简介在介绍 Nginx 转发之前,我们先快速回顾 OSI 七层网络模型。它是网络通信的理论基础,将复杂的网络通信分为七个层次,每一层各司其职: 物理层(Physical):负责物理传输,比特流在物理介质中的传输(网线、光纤等)。 数据链路层(Data Link):负责链路管理和错误检测(如以太网、MAC 地址)。 网络层(Network):负责寻址与路由(如 IP 协议)。 传输层(Transport):保证端到端的可靠通信(如 TCP、UDP)。 会话层(Session):管理会话和连接(如 RPC、NetBIOS)。 表示层(Presentation):处理数据的表示、加密、压缩(如 SSL&...
Hive 内表与外表的区别及分区删除行为分析
在日常使用 Hive 进行数据仓库开发和分析时,内表(Managed Table) 和 外表(External Table) 是最常用的两种表类型。理解它们在数据管理上的差异,尤其是在删除表和删除分区时的行为,对保障数据安全非常关键。本文将从定义、使用场景、判断方法以及分区删除的行为几个方面进行详细解析。 Hive 内表(Managed Table)定义 内表的数据和元数据都由 Hive 管理。 表数据文件默认存放在 Hive 仓库目录(hive.metastore.warehouse.dir,通常是 /user/hive/warehouse/)。 DDL1234567891011-- 建立一个内表,数据存放在 Hive 默认仓库目录下CREATE TABLE student_managed ( id INT, name STRING, age INT)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t'; -- 按制表符分隔-- 加载数据到内表(会拷贝...
IDEA:打造最强 IDE,教你如何集成 Tomcat!
微信公众号:1JavaHub关注 Java 技术。如有问题或建议,请公众号留言。 本文各项配置均基于 IntelliJ IDEA COMMUNITY 2019.3 版本(社区版足以)。 如果您使用的是社区版,会发现社区版不提供 Tomcat 的支持,那要使用 Tomcat 该怎么办呢?请接着往下看! 如何通过 IDE 启动 Tomcat在 IDEA 的设置中有个一个叫做“External Tools”的工具,我们要使用它来启动 Tomcat。 首先在“File -> Settings -> Tools -> External Tools”找到该项配置 点击“+”添加一个工具配置,如下图 Program:需要制定到 Tomcat 根目录下 bin/catalina.bat Arguments:配置 jpda run Working direcotry:配置 Tomcat 根目录下 bin 目录即可 勾选“Open console for tool output”及其子选项 指令 catalina.bat jpda run ...
IDEA:打造最强 IDE,这些配置你知道吗?
微信公众号:1JavaHub关注 Java 技术。如有问题或建议,请公众号留言。 此处略去安装等一系列操作等,直接进入正文。本文各项配置均基于 IntelliJ IDEA COMMUNITY 2019.3 版本(社区版足以)。 主题调整 File -> Settings -> Appearance & Behavior -> Appearance -> Theme Atom OneDark Theme 显示内存使用情况 File -> Settings -> Appearance & Behavior -> Appearance -> Window Options -> 勾选“Show memory indicator” 添加打开资源管理器到工具栏 File -> Settings -> Appearance & Behavior -> Memus and Toolbars -> 点开“Main Toolbar” -> 点击最后一个菜单项 -> 点击“...
如何创建随机数?
如何生成随机数?在多线程场景下如何高效地生成随机数? 随机数随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子组件的噪音、核裂变等等。这样的随机数生成器叫做物理性随机数生成器,它们的缺点是技术要求比较高。在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的生成器叫做伪随机数生成器。 举例说明以下示例代码(生成 10 以内的随机整数)包含了常用的生成随机数的用法。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778package io.github.youmaycallmev.random;imp...
如何搭建一个优雅的开发环境?
工欲善其事,必先利其器。一个顺手的开发环境,对于开发人员是非常有必要的,下面就给大家总结一些提升效率和便捷的工具。 Wox你还在为满屏幕的应用程序图标而烦恼吗?何不试试 Wox!这里简单给大家介绍下。Wox 是一款开源的启动器。用于快速搜索本机安装的各种程序,文件。也可以通过插件快速搜索网络内容,比如今天天气如何,某某电影的评分是多少等等。使用 Wox 后,桌面变得清爽了,几乎不留一个快捷方式。启动应用“Alt + 空格”,输入应用程序名称,回车就可以快速启动应用了。是不是很炫酷,还有其他很多功能和插件,赶紧试试吧! EverythingEverything 是一款本地文件搜索的软件,能够在占用极少资源的情况下,快速索引和搜索电脑中的文件。是快速查找文件不可多得的利器。其与 Wox 结合使用,更加的便捷。 Classic Shell如果对系统的美观有一定的要求,可以试试这一款开源软件 Classic Shell,该软件可以美化任务栏、开始菜单、开始按钮等等界面进行美化。众多的设置项目,总有一款适合你。 Zeal作为程序员,查看 API 文档是学习的最基础操作,众多的文档如何保...