IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:数据库

共 82 篇相关文章

IT 累计浏览 24

科技爱好者周刊(第 401 期):如何赚到10亿美元

科技爱好者周刊第401期整合创业见解与技术动态。创业部分引用保罗·格雷厄姆观点,强调通过高增长率(如月增15%)和庞大市场实现财富积累,举例说明指数增长潜力。技术文章介绍HTTP新增QUERY方法,作为带数据体的GET请求,不缓存参数;分析JWT令牌适用场景,建议仅用于跨机器状态转移而非用户登录;SQLite项目拒绝外部PR,因长期维护成本高昂。工具推荐Lore版本管理系统,优化二进制文件处理;DNS Pick命令行工具帮助优选DNS服务器;GitFolio提供轻量级Git仓库管理。AI工具包括Fishword背单词插件和OnePagent智能体工作台,增强开发效率。资源部分涵盖网页游戏和星空模拟器,文摘回顾米定义的科学演进。文章融合创业策略、技术更新与实用资源,为开发者提供多维度参考。

IT 累计浏览 48

.[xueyuanjie@onionmail.org].AIR勒索加密数据库恢复

文章记录了Oracle数据库遭遇.[xueyuanjie@onionmail.org].AIR勒索加密后的恢复过程。数据库运行在Windows系统上,被加密破坏了前32个数据块,包括文件头和位图信息,但业务数据从block 128开始存储,未受影响。恢复开始时使用obet工具检测坏块,确认损坏范围。接着应用OraFHR工具快速重构文件头,该工具能一键生成恢复脚本。执行SQL命令启动数据库实例、重建控制文件,并通过alter database open resetlogs打开数据库。随后创建新表空间expdptbs,使用expdp导出数据完成恢复。案例展示了在数据未被完全加密的情况下,利用专业工具和标准SQL操作恢复数据库的关键步骤,对类似勒索软件攻击下的应急响应具有重要参考价值。

IT 累计浏览 56

asm dd 10M导致system文件部分坏块修复

本文记录了Oracle数据库ASM磁盘头损坏的修复案例。客户因误用dd命令覆盖磁盘前10M数据,破坏了ASM元数据,导致DATA磁盘组无法挂载并报ORA-15042错误。通过19c版本的备份AU还原,磁盘组成功挂载,但ASM持续报ORA-15196块头校验错误,指示磁盘14存在损坏块。客户尝试添加磁盘触发Rebalance操作,但错误阻止了Rebalance执行,避免了磁盘组卸载。随后启动数据库时,system文件出现多个完全为零的坏块,涉及I_OBJ2索引和DEPENDENCY$表,报ORA-01578错误,导致启动失败。该案例展示了ASM存储故障的连锁反应,从磁盘头损坏到数据库文件损坏,突出了操作谨慎性和备份的重要性,并体现了Oracle 19c在错误处理上的改进。

IT 累计浏览 35

BEWARE SOFTWARE BRAIN

本文深入剖析了科技行业普遍存在的“软件思维”局限性及其社会影响。这种思维模式倾向于将世界视为可通过代码与数据结构控制的数据库集合,进而形成通过操纵数据即可掌控一切的误解。文章指出,该模式在业务流程自动化中具有价值,因为商业活动本身已高度数据化与循环化。然而,当试图将其强加于人类社会与法律体系时则必然失效:法律的本质并非确定性代码,其核心恰恰在于适应社会复杂性的模糊地带;人类生活数据也天然分散于异构系统,强行整合并要求个体自我数字化适配软件,实质上是对人性的背离。作者强调,技术发展不应要求人类变得“可读”以适配机器,而应致力于让系统适应人类需求。当前科技行业在能源与制造成本高昂的背景下盲目推行AI渗透,却未能意识到这种“软件思维”的狭隘框架正迫使人类变得更非人化,这也解释了公众对技术的普遍抵触情绪。

IT 累计浏览 66

如何在本地打包 StarRocks 发行版

本文针对 StarRocks 用户在等待官方版本发布周期时,需要快速应用修复 PR(如物化视图重启导致全量刷新、excluded_refresh_tables 参数跨数据库失效等)的场景,介绍了本地打包发行版的完整流程。核心方法是利用社区提供的统一 Docker 镜像(starrocks/dev-env-ubuntu)简化构建环境,避免复杂的本地环境配置。具体步骤包括:拉取对应版本的 Docker 镜像,克隆 StarRocks 仓库并手动合并修复代码到分支,将宿主机源码目录挂载到容器中运行构建脚本(build.sh)生成前端(FE)和后端(BE)的产物。构建完成后,推荐使用更稳妥的方式替换镜像:以官方 FE 镜像为基础,仅替换新生成的 starrocks-fe.jar 文件来构建修复版本的 Docker 镜像,从而确保运行时的兼容性和最小化镜像修改。整个过程依赖官方文档和 GitHub 资源,适用于需要紧急部署定制修复版本的运维和开发场景。

IT 累计浏览 2,575

这几年在存储上犯的错

这篇讲的是作者从亲身经历出发,分享这些年在存储和运维上踩过的真实大坑。文章从一起线上数据误删事件切入,没有说教,而是直接讲述了几个让作者“想死的心都有”的故障现场:比如用错误配置上线,瞬间拖垮了整个数据库集群;在恢复误删数据时,不慎将 DROP TABLE 命令也一并执行,导致只恢复出了一个豆列;以及在进行数据库主从切换时,因与同事短暂交谈分心,在从库同步未追平的情况下就进行了操作,最终引发数据冲突。 每个案例都像一部微型灾难片,详细描述了错误的决策瞬间、连锁反应以及在巨大精神压力下的补救过程。作者坦诚地剖析了背后的直接原因,例如对配置项的误解(SET GLOBAL SQL_LOG_BIN)、脚本操作的风险以及流程中的侥幸心理。 文章的结尾给出了沉痛而实用的教训:“备份不做,日子甭过”,并强调了任何危险操作都应确保可回滚,工具应该比人更可靠。它并非一篇技术方案,而是一面镜子,照见了运维工作中那些不可避免的“人为因素”,也体现了团队在危机中相互支持的宝贵文化。对于每一位需要和线上系统打交道的工程师,这都是一次难得的经验共情。

IT 累计浏览 1,778

修改重置MySQL5.7得root登录密码

作者从一台测试服务器忘记MySQL root密码的实际问题出发,分享了在MySQL 5.7环境下重置密码的完整流程。文章直接切入痛点,说明了问题的根源:长期未登录导致密码遗忘。 解决方法的核心是利用MySQL的配置跳过启动时的密码验证。具体操作上,需要在配置文件`/etc/my.cnf`的`[mysqld]`部分添加`skip-grant-tables=1`,然后重启服务。此时可以直接用root用户免密登录数据库,通过`update user`命令直接修改`authentication_string`字段来设置新密码。这里作者特别指出,5.7版本将密码字段名从`password`改为`authentication_string`,这是一个关键的版本差异,照搬旧教程会出错。 完成密码更新后,必须记得删除配置行并再次重启服务,才能让数据库恢复正常的安全校验。整篇文章步骤清晰,从问题复现到最终解决形成了一个闭环,对遇到同类问题的开发者来说,是一个可直接按步骤操作的实用指南。

IT 累计浏览 2,771

阿里巴巴的发展史 - 读《阿里铁军》

这篇讲的是作者读完《阿里铁军》后,对阿里巴巴早期发展史的梳理与思考。 文章首先勾勒了阿里的关键发展历程:从1999年创立、获得孙正义投资,到遭遇互联网泡沫时账上仅剩700万美元的生死危机。正是在绝境中诞生的“中国供应商”地推业务,凭借对出口经济窗口期的把握和一丝不苟的“陌拜”与复盘文化,意外成为了阿里的造血命脉。随后,马云在2003年力排众议布局淘宝与支付宝,以及2005年接管雅虎中国以获取关键技术人才,都被视为决定公司走向的战略节点。 作者将2001年的绝地求生和2003年的电商与支付双线布局,称为阿里的两个“创世时刻”。其核心观点在于,阿里的成功不仅是运气,更是将地推执行力、快速迭代的工作方式与坚韧的价值观(如“客户第一”)相结合的结果。文章通过分析孙正义投资、港股上市融得17亿美元为淘宝输血等具体事件,展现了资本、战略与业务执行之间的深刻互动。 对读者而言,这篇文章不仅是一部企业史,更揭示了在技术浪潮中,如何识别关键转折点、构建组织韧性,以及在“向管理要绩效”与“以业务代管理”之间寻找平衡的现实挑战。

IT 累计浏览 2,259

一位资深Java的阿里系公司实战面试经验,套路还是面试官的多

这是一篇阿里系Java工程师的实战面试复盘。作者以亲历者视角,详细还原了从项目经验到技术基础的多轮面试场景,生动展现了面试官如何通过层层追问,考察候选人的知识深度和临场应变能力。 文章的核心亮点在于“场景还原”与“答题策略”。在项目经验环节,作者以Netty线程模型为例,演示了如何将问题引导至自己熟悉的领域,并分享了如何描述项目难点(如业务逻辑阻塞Work线程导致QPS上不去)及解决方案。在基础知识考察部分,以线程池原理和锁机制(Synchronized/ReentrantLock/CAS)为例,揭示了面试官常见的问题链——例如从线程池核心参数一路追问到“秒杀”场景下的线程池配置,或是从CAS原理深挖到其操作系统指令实现及ABA问题。 文章并非单纯罗列知识点,而是通过真实的对话片段,点明了一个关键:面试的“套路”实则是考察思维逻辑与知识内化程度。作者提醒,即便面对不记得的细节或不了解的领域(如读写锁),诚实沟通比硬撑更重要。对于正在准备技术面试的读者而言,这篇复盘的价值在于揭示了面试背后的考察逻辑,并提供了如何梳理项目故事、应对深度追问的实用思路。

IT 累计浏览 2,280

对SaaS业务的几点感受

这篇分享的是作者从C端产品转型到B端SaaS业务后,经过一年实践所得的核心观察。作者发现,SaaS产品与C端产品存在本质差异,主要体现在四个方面。 首先,SaaS产品面对的角色和流程链条远比C端复杂。产品需要同时考虑商家内部不同岗位(如老板、运营、财务)的权限与协作,以及最终的消费者,设计思考维度显著增加。其次,产品启动期漫长。不同于C端可以靠一个“爆点”快速迭代,SaaS需要先夯实那些用户不会单独提出但必不可少的“底座”功能,非常考验团队的耐心和扎实程度。 第三,SaaS产品通常不具备强网络效应。一个商家选择哪款软件,很少会直接影响其他商家的选择。这决定了业务必须更注重全链条的服务和老用户的深度维护。最后,也是因此,SaaS业务离不开强烈的销售意识。产品设计本身就需要思考如何向付费者清晰地传递价值,这与纯粹依赖流量的C端逻辑大相径庭。 作者以一位“行业新人”的视角,坦诚地将这些来自一线的、关于业务模式与产品设计复杂性的观察总结出来,揭示了SaaS赛道需要长期深耕、心态稳健的本质。

IT 累计浏览 3,035

分布式系统中唯一ID的生成

这篇讲的是分布式系统中一个看似简单却至关重要的问题:如何生成全局唯一的ID。作者从实际大型系统的共同需求出发,对比了几种主流方案,分析了它们各自的适用场景与取舍。 文章首先剖析了“独立生成服务”这类集中式方案。最典型的是利用数据库的自增序列,它保证了递增性,但存在单点瓶颈。对此,一个变通思路是通过划分序列范围或设置不同步长,用多个节点分摊生成任务,但这又牺牲了全局的递增性。作者重点介绍了开源方案Twitter Snowflake,它通过组合时间戳、节点编号和自增序列,在保证高性能与有序性的同时,减少了中心化依赖(尽管节点ID仍需从Zookeeper获取)。 另一大类是“本地生成器”。这类方案在节点本地生成ID,通常要求不同节点间无状态依赖。例如用主机号加时间戳,简单但受限于单毫秒只能生成一个ID;而UUID(通用唯一识别码)则提供了更灵活的128位随机标识,不过理论上仍存在极低概率的冲突。 整体来看,作者并未简单评判优劣,而是引导读者思考:在递增性、全局有序、高可用、高性能与实现复杂度这些不同维度间,应如何根据具体业务场景做出合适的选择。

IT 累计浏览 4,486

缓存穿透、缓存并发、缓存失效之思路变迁

作者从缓存实战中最常遇到的三类“坑”出发,分别剖析了问题的成因与演进式的解决思路。缓存穿透源于无效请求击穿缓存层直击数据库,作者提出了用特殊值预占位的拦截技巧。缓存并发则针对高并发下缓存瞬间失效带来的数据库压力,给出了加锁串行化的方案。缓存失效问题本质是缓存集体过期导致的雪崩,通过引入随机因子分散过期时间是关键。文章后半部分通过问答,进一步探讨了缓存与数据库的一致性等更深层的实践困惑,整体展现了从发现问题、分析根因到提出并优化方案的完整思考过程。

IT 累计浏览 2,053

更好的 SQL 模式的 10 条规则

这篇讲的是数据库模式设计中常被忽视、却会影响长期维护效率的细节。作者从大量实际数据库的读写经验出发,总结了十条黄金法则,帮助开发者从源头避免未来的“痛苦”。 它核心强调命名与结构的清晰性。例如,对象名只用小写字母、数字和下划线,避免使用点、空格和大写,这能消除查询时的引号依赖和大小写混淆。列名和表名应具备自说明性,避免使用晦涩缩写或保留字。外键命名需保持全局一致。 此外,文章给出了具体的数据类型建议:主键推荐使用自增整数而非UUID,以简化查询和数据清理;时间数据应存储为统一的DATETIME类型,并始终使用UTC时区,而非字符串或Unix时间戳。它还指出应追求单一数据源,谨慎使用JSON列进行分析,并避免过度规范化(例如无需为邮编等简单值单独建表)。 遵循这些规则,能让你的数据库结构在未来需求变化和团队扩张时,依然保持清晰、高效且易于维护。

IT 累计浏览 2,498

Oracle 11g大对象数据新技术

这篇内容专门针对 Oracle 数据库中令人头疼的 ORA-00600 内部错误,提供了一套从定位到解决的系统化诊断手册。它首先点明,这类错误本质上是 Oracle 软件遇到了不一致的低级异常,成因可能涉及 Bug、操作系统或硬件。 文章的核心价值在于其清晰的排查路径:第一步永远是检查 alert.log 和 trace 文件;第二步是利用 Metalink 提供的专用诊断工具,通过输入错误的第一个参数和数据库版本号快速检索知识库;第三步则是整理必要信息,向 Oracle Support 提交 SR。 作者特别强调了 trace 文件的完整性和参数信息的关键作用,并用“ORA-00600 [729]”空间泄漏的实例,演示了如何通过设置特定事件参数来规避这类可忽略的内存泄漏告警。整体而言,文章将复杂的内部错误排查流程,拆解成了可操作的步骤,对 DBA 构建故障处理预案很有参考价值。

IT 累计浏览 3,372

SQL 新手指南

这篇指南从“SQL无处不在”的现实切入,为零基础读者拆解了数据库与SQL的核心概念。作者将抽象的数据库比作更强大的Excel电子表格,清晰解释了表、行列、关系等基础元素,并用一个“电影台词”数据库作为贯穿示例,直观展示结构化数据如何被组织和关联。 文章的核心在于讲解SQL的四种基本操作(CRUD):创建、读取、更新和删除数据,这是与数据库沟通的基石。作者强调,尽管有各种可视化工具,但理解SQL语言本身至关重要——它语法接近英语,是一种声明式语言,掌握它能让你更高效、更灵活地解决问题。 整体而言,这是一份非常扎实的入门引导,不仅告诉你SQL是什么,更通过具体的表格实例,让你感受到关系型数据库如何将杂乱数据变为可高效查询的资产,为后续学习打下坚实基础。

IT 累计浏览 6,641

如何设计用户登录

这篇讲的是如何设计一个灵活可扩展的用户登录系统。作者从最常见的用户名+密码登录入手,指出当需要集成微博、QQ等第三方登录时,传统做法——在Users表中不断新增列来存储OAuth信息——会导致表结构日益臃肿,维护成本很高。 核心解决方案是将“用户资料”与“认证信息”进行分离。具体来说,将Users表精简为只存放用户个人资料(Profile);而将登录认证(Authentication)过程独立出来。本地密码登录维护一个LocalAuth表,而微博、QQ等第三方OAuth登录则统一到一个OAuth表中,通过`oauth_name`字段区分不同来源。 这种设计的好处显而易见:添加新的登录方式(如SAML)只需新增记录或表,无需改动用户主表;一个用户可以绑定多种登录方式;同时,由于Users表不再存放口令等敏感数据,系统安全性也得到了提升。

IT 累计浏览 2,319

关于oracle ebs系统apps的一些故事

这篇讲的是Oracle E-Business Suite(通常叫Oracle ERP)为何被业内亲切地称为“Apps”的技术源流。作者从这个有趣的命名问题出发,回顾了APPS schema的进化史,解答了一个许多开发者都好奇的细节。 文章指出,在早期版本(如EBS 10.6)中,系统每个功能模块(采购PO、应收AR等)都有独立的数据库schema。这导致了一个历史遗留的“小麻烦”:跨模块访问数据时,SQL语句里总得带上冗长的Schema前缀,比如`po.po_headers_all`,写起来颇为繁琐。 为了解决这个问题,Oracle引入了统一的APPS schema。它的设计非常巧妙:APPS schema本身不直接存储表,而是通过为其他所有模块的表创建“同义词”,从而让开发者只需连接到APPS,就能像访问本地表一样,简洁地查询全系统所有模块的数据,无需再写任何前缀。 文章最后总结了几条关键的开发实践原则,比如PL/SQL包和视图都应在APPS下创建,而客户化表则建议放在独立的schema中。这个故事不仅解释了一个称呼的由来,更清晰地展示了Oracle EBS在架构上为简化开发所做的一次重要演进。

IT 累计浏览 3,393

第三方支付为什么会兴起

这篇文章从作者多年的外贸经验切入,探讨了一个有趣现象:为何在国际贸易中早已成熟的银行担保模式(如信用证),到了国内电子商务领域,却被第三方支付全面取代。 作者指出,支付宝的担保交易原理与信用证如出一辙,都是为了解决远程交易中的信任问题。但奇怪的是,银行并未将这套成功的经验复制到国内网购市场,这种“不闻不问”的态度,为第三方支付的崛起留下了巨大的市场空白。文章还对比了信用卡的历史——它同样由第三方机构首创,后因银行受地域经营限制,才催生出跨行合作的卡组织来反超。 核心观点在于,银行因过往业务过于舒适,低估了互联网支付的战略意义,未能及时行动。等到第三方支付从工具演化到金融平台时,格局已定。文章最后抛出一个开放性问题:历史上第三方支付曾颠覆信用卡旧模式,未来它是否会进一步侵蚀银行信用证业务?这不仅是商业策略的复盘,也揭示了技术浪潮中,巨头的疏忽如何让机遇溜走。

IT 累计浏览 2,980

oracle跟踪事件(dump)总结

这篇讲的是Oracle数据库中用于故障诊断的跟踪事件(dump)机制。文章系统梳理了跟踪文件的三种类型——后台报警日志、后台进程跟踪文件和用户跟踪文件,并详细说明了如何通过初始化参数或会话命令来触发dump操作。 核心内容聚焦于各种跟踪事件的具体用法。例如,通过`buffers`事件可导出SGA缓冲区信息,`blockdump`事件能定位特定数据块,`errorstack`事件则用于捕获难以获取的错误栈。文章还列举了诸如`10046`(SQL语句跟踪)、`10231`(全表扫描时跳过损坏块)等实用的内部事件号,并解释了其参数级别含义。 最后,文章提供了查看当前跟踪文件的简单示例。整体上,它像一份面向DBA和开发者的速查手册,将分散的Oracle诊断工具整理成可操作的条目,便于在性能调优或故障排查时快速定位并转储关键内存结构或日志信息。

IT 累计浏览 5,140

Django框架ORM操作详解

这篇详解聚焦于Django ORM的操作实践,从基础的CRUD到查询集的深度使用都有覆盖。作者以一个博客系统模型为例,清晰地展示了如何通过Python对象与数据库交互:用`save()`写入数据,用`filter()`与`exclude()`构建查询,以及如何通过点号语法优雅地链接多个过滤条件。 文章特别强调了QuerySet的两个核心特性。一是“延迟执行”,即便堆叠了多个过滤条件,只有在真正需要结果(如遍历或打印)时,Django才会生成并执行最终的SQL语句。二是查询结果集的独立性,每次筛选都会返回一个全新的QuerySet,方便复用与组合,这是构建复杂查询的基石。 此外,内容还深入到了字段查找的语法细节和跨关系查询(如通过`ForeignKey`和`ManyToManyField`)的具体方法。整体上,它不仅仅是一个API列表,更揭示了ORM背后高效、Pythonic的设计思路,帮助开发者写出既简洁又性能良好的数据访问代码。