Author Archives: Alfred Zhao
23ai中的True Cache到底能做啥?
最近,Oracle的产品管理总监在Oracle数据库内幕中介绍了True Cache。 原文链接如下: – https://blogs.oracle.com/database/post/introducing-oracle-true-cache 由于这篇文章比较火爆,我们国内已经有很多的数据库爱好者完整的翻译这篇文章,所以笔者也不需要重复翻译,本文旨在提炼文中关键信息,并使用大白话和大家一起探讨下23ai中的True Cache功能: 1.为什么需要True Cache? 2.True Cache工作原理 3.应用程序使用True Cache 4.True Cache的好处和应用场景 1.为什么需要True Cache? 通常这个问题会是IT部门的领导层最关心的问题,现有架构下,为什么需要引入True Cache? 回答这个问题,需要先了解下目前的发展趋势,当下随着数字化环境的不断发展,各类应用要求提供实时响应成为当务之急,而大家都知道数据库的资源很宝贵,大部分高并发应用其实都是读多写入的场景,所以业界常用的方案就是在数据库的前面加一个缓存层,且将它设计在内存中缓存(Caching),这个底层逻辑其实也非常简单,就是内存的速度一定是远远高于存储速度的,这是介质本身存在的数量级的性能差异。 当然,能接受用缓存的共识是这个缓存中无需最新的数据,说白了,无论你用什么样的缓存技术,读的数据无论多少,一定都是有延迟的,可应用需求一定会要求这个延迟越小越好,这里原文中立马就提到Oracle提供的True Cache是一个突破性的缓存解决方案,那这个突破性具体体现在哪里呢? 性能的进一步优化 缓解数据陈旧问题 有效管理缓存数据 这些方面的优势是因为True Cache相当于是一个主库的全功能的只读副本,类似ADG,但又比ADG轻量,它不需要数据文件的存储,别小看这一点,对于当下一个动辄几十T数据量的数据库来说,将会是非常大的成本节约。 2.True Cache工作原理 这里,提炼文中关键的几点: 应用程序通过Oracle JDBC Driver连接对应实例(主库和True Cache实例) 当发生Cache miss(缓存未命中)时,True Cache会从主库获取块 当True Cache实例首次启动,除了获取Cache miss的块,还会以large … Continue reading
23ai免费版本环境快速就绪
笔者感受就是搞一套Oracle 23ai的学习测试环境,从未如此的简单高效。 因为近期Oracle 23ai这个话题很火,很多人也在找实验环境想亲自体验测试一番。 其实搞这样的环境没有任何的门槛,甚至无需注册任何账号,直接安装免费的Oracle VM VirtualBox,下载现成的23ai环境,双击导入,就可以开始一系列有关23ai的测试工作了。 1.下载最新的Oracle VM VirtualBox 直接搜索下载即可,免费。 这里唯一需要注意的是,不要用过低的版本,实测过低版本无法正常运行,下面的这个版本我实测是运行正常的,不会有任何报错。 2.下载并双击导入 下载.ova后缀的这个文件 – Oracle_Database_23ai_Free_Developer.ova 下载地址:Oracle Database 23ai Free: – https://www.oracle.com/database/free/get-started/ 选择这个: 下载后直接双击导入到VirtualBox中: 3.启动运行导入的虚拟机环境 在VirtualBox中启动这个虚拟机环境: 4.所有环境已就绪 虚拟机启动成功之后,进入会发现所有常规测试所需的环境已经就绪,想测试啥就直接测试吧: 比如随手试下在23ai中是否内置支持创建带有vector数据类型字段的表: 此外,连APEX、SQL Developer等环境都是配置好的,测试非常方便: 还在等什么呢?耳听为虚,眼见为实,快来搭建属于你自己的23ai测试环境吧~
免费考AI OCP认证,附通关秘籍!
这是一个能让你快速熟悉AI相关技能的考试,由Oracle官方提供,而且限时免费。 它就是OCI Generative AI Professional。 可以看到,目前免费政策正在执行,到今年的7月31号截止,有想法的小伙伴们要抓紧学习了。 具体信息可参考OU官方的介绍:全新推出OCI Generative AI免费认证 最近刚考完这个认证,下面具体来分享实际考这个认证的经验,可作为通关秘籍,帮助大家建立信心。 整个通关过程涉及到4个部分: 其中第一部分OCI Generative AI Professional是这个认证配套的培训课程,一共6h+,非常经典,认真听讲一定会受益匪浅的。 即便你没有需求一定要通过这个考试,了解课程中讲到的一些概念,对加深AI LLM基础原理的理解也是非常有帮助,课程中举的例子都是那种相当简单易懂的类型。 在第一个部分中的重点章节会穿插有本节小测试,给出的5道题答对4道就OK,基本认真听讲都没问题,如果这里正确率没有达标,说明在课程的某些地方走神了,需要回过头来认真听再重新测试就可以。 还有个小技巧,遇到当时不能理解的,先记下来,完整听一遍后回头再看,比如T-Few这些的概念之类。 估计有很多人会习惯性的以为看完这个课程就可以直接约考试了,但实际上后面的才是秘籍所在,可以说都是实打实的帮你提升通过考试的概率。具体来说: 第二部分Prepare for OCI Generative AI Professional Certification,就是在告诉你如何答题,这个部分给出的9道示例题,很多都是在你实际考试中会出现的原题或是母题。而且讲师会手把手的带你分析如何选出正确答案。 第三部分Practice Exam: OCI Generative AI Professional Certification,更是直接给你25道题做练习测试,不过这里的设计是,你答对了会有解析,答错了就只会告诉你答错了,不会告诉你正确答案也没有解析,但这也相当于帮助你排除了一个错误答案。这些题感觉上也有不少原题或是母题,非常利于提升考试成绩。 总之,第二第三部分同样非常重要!!! 如果轻视了第二第三部分,比如只看了第一部分的课程去考试,是擦边通过的水平(40道题答对26道是65分),但若能在这个基础上,好好利用第二第三部分的内容,就会大幅提升你的考试成绩,感觉会到90分左右,这就是最关键的通关秘籍喽~ 当前面三个部分都认真完成之后,恭喜你,离成功就差一次真正的考试了,第四部分就是指导你预约一个合适的时间,准备好自己的身份证件,找一个安静的地方,按要求check in,考官提示你OK,给你一个码输入后,就可以正常开始考试了,考试通过后会收到类似这样的OCP证书,和传统DB类证书没有有效期不同,这个证书的有效期是2年: 最后祝大家都能顺利通过这个考试,同时对AI的理解更上一层楼。 Good … Continue reading
MAC批量删除文件名中某一段的内容
有时候从网络下载的资源,文件名会带有一些广告,比如网址之类。 因为文件通常很多,一个个改名工作量太大且乏味。 所以,测试写命名替换更高效,比如下面就是查找当前目录下,文件名包含【www.alfredzhao.cn】的部分直接删除掉,但保留文件名的其他部分。 find ./ -type f -name ‘*【www.alfredzhao.cn】*’ -exec bash -c ‘f=”{}”; mv — “$f” “${f//【www.alfredzhao.cn】/}”‘ \;
你真会判断DataGuard的延迟吗?
这是一个比较细节的知识点,但必须要理解这个才能准确判断Oracle ADG的延迟情况。 以前做运维工作时,记得是要同时重点关注v$dataguard_stats视图中的几个字段的值,分别是:NAME、VALUE、TIME_COMPUTED、DATUM_TIME。 本文先不考虑v$dataguard_stats视图没有数值显示的特殊情况,只针对当v$dataguard_stats视图正常显示的情况,如何准确判断Oracle ADG的延迟情况。 其实绝大部分管理过ADG的同学都知道,要重点关注NAME列中的transport lag和apply lag,看这两项在VALUE列中的取值,如果都是0,那基本没问题。 经验多些的同学还会在此基础上多关注TIME_COMPUTED、DATUM_TIME这两列的时间,是否近乎相同,和系统时间有无差异。 曾经遇到有用户在巡检ADG延迟时,只简单关注了前者,看都是0就判断没问题,可实际情况已经有很大的gap,这就是没有同时关注TIME_COMPUTED、DATUM_TIME的结果。 而若只关注TIME_COMPUTED、DATUM_TIME,却忽略掉NAME列中的transport lag和apply lag取值,这样也同样会可能造成误判。 如果说给建议就是要都关注,当然,有经验的DBA还会各种查其他信息加以证明,但这也不在本文讨论范围。如果只谈v$dataguard_stats视图,很多用户心里是没底的,因为不清楚细节,为什么会有各种表现情况呢? 通过查阅官方文档,其实在这些字段的描述上也不够精确,容易造成误解。 所以,本文就构建这样的动手实验环境,来帮助大家通过上手实践来具体观察典型场景,加深理解。 场景1: TIME_COMPUTED、DATUM_TIME二者时间近似,且都随系统时间变化 这种情况,无法判定ADG是否延迟。 ADG的传输链路正常,但是ADG备库的MRP进程很可能出现问题,或者不是实时应用导致ADG延迟。 下面开始动手实践构造这类场景的测试用例: MRP进程异常crash,这里使用kill进程的命令来模拟,一段时间后再去查看ADG延迟的情况: PHYSICAL STANDBY @DB0913_DG -> SYS @CDB$ROOT> set time on 03:04:32 PHYSICAL STANDBY @DB0913_DG -> SYS @CDB$ROOT> @dg SOURCE_DBID … Continue reading
难道AI不知道tnsnames.ora的instance_name配置吗?
事情是这样,给某客户培训构建hands-on实验环境时,因测试环境有限,在同一环境做了一套ADG环境; 数据库是单实例,版本19.21,使用了多租户选件; 其中一个测试的PDB,名为demo1,其中建好测试用户jingyu,遇到的问题是: 使用sqlplus连接时,会随机连接到主库或者备库。 排查定位也很简单,因为这样的环境,监听lsnrctl status可以看到对应的服务下,是存在两个实例的,一个是主库,一个是ADG备库,但是,修改配置tnsnames.ora时,指定具体实例的语法怎么写,AI误导我走了弯路。 监听服务如下: Service “demo1.sub00000000000.xxvcn.xxxxxxvcn.com” has 2 instance(s). Instance “DB0913”, status READY, has 1 handler(s) for this service… Instance “DB0913_DG”, status READY, has 1 handler(s) for this service… tnsnames.ora配置如下: DEMO1 = (DESCRIPTION = (ADDRESS = (PROTOCOL … Continue reading
超简单:必须要掌握的运维小妙招
常言道:生产运维无小事!尤其针对黑屏操作,相信不少客户都有自己的血泪史。 比如操作系统rm命令误删掉了关键系统数据… 比如执行关库操作后才发现连错了数据库… 除了对生产要有敬畏之心,做关键操作之前反复多确认,多人复核,其实还可以借助一些小妙招来减少紧张和焦虑情绪。 我们给客户做hands-on实验演示时,也可以通过这些小妙招来加快演示速度,同时能让观众更清楚Demo环境。 Oracle的小妙招 MySQL的小妙招 Oracle的小妙招 sqlplus界面优化 默认情况下,sqlplus连接到数据库,并不会清楚显示必要信息,只有默认的SQL> 有经验的运维人员做关键操作时,比如关闭数据库,会习惯性的确认当前连接的数据库是否正确。 同时,建议设置glogin.sql文件,示例如下: cd $ORACLE_HOME/sqlplus/admin/ vi glogin.sql 添加新内容如下: define gname=idle column global_name new_value gname set heading off set termout off col global_name noprint select upper (sys_context (‘userenv’, ‘DATABASE_ROLE’) || ‘ @’ … Continue reading
Oracle与MySQL的差异和对比
Oracle与MySQL的差异和对比:配套hands-on参考脚本。 方便客户针对培训课件内容进行动手实践,加强理解。 ——————————— — 主题:Oracle与MySQL的差异和对比 — 一、MySQL的基础特性 — 二、重要特性差异对比 — 三、性能对比和优化技巧 ——————————– Hands-on场景环境准备@MySQL实例 ——————————– — Hands-on场景环境准备@MySQL实例 ——————————– –Create db & user CREATE DATABASE demodb; CREATE USER ‘alfred’@’localhost’ IDENTIFIED BY ‘alfred123’; GRANT ALL PRIVILEGES ON demodb.* TO ‘alfred’@’localhost’; GRANT SELECT ON … Continue reading
AI助力快速定位数据库难题
最近很多人都在讨论AI能否替代人类工作的话题,最近笔者正好遇到一个AI帮自己快速定位问题的实例,分享给大家,一起来切身感受下AI对于解决数据库问题的价值吧。 事情的经过是这样,有个朋友咨询我,说他最近遇到一个客户的数据库问题现象非常诡异。 就是有一套Oracle数据库实例不知何时变成了mount状态,但客户确认这套库之前是open成功的,而且也有数据库监测,数据库若有重启就会告警,可监控期间也没有发现数据库有任何重启行为。 而且,实例的启动时间,也是上次open数据库的时间。 看到这样的描述,首先要确认下,启动时间,是否open的动作成功了? 另外,监控是否有问题,建议人工通过alert告警日志搜索是否有数据库状态改变的痕迹。 这个做法并不是不相信客户,是因为问题troubleshooting都讲究一个证据链,就好像律师一样,要收集现有证据然后基于这些证据来找到问题本质。 于是就开始收集证据: 1. alert告警日志,上次open的操作是成功的 Physical standby database opened for read only access. Completed: alter database open 2. 遍历搜索重启操作 在上次open动作之后的时间点,没有发生过重启。 3. 实例当前状态和启动时间 确认是mount状态,启动时间是上次open的时间没错。 嗯,以上这些基础验证朋友其实在之前排查时也都做过,也正因为各种搜索也没有找到有用的信息,所以问我有没有遇到过这个情况? 我其实也没有遇到过,且当时正在外地出差,又约好了客户时间要马上出发去现场做交流,所以并没太多时间深入去帮忙排查这个问题。 基础理论和操作大家都很清楚: Oracle的启动流程,是经过nomount、mount、open三个阶段 已经open的数据库,如果想要切换成其他状态,正常操作是需要先shutdown关闭数据库,再启动到某个状态 可这个与现在的事实相违背,难道说某种情况下可以不重启直接从open状态到mount状态? 带着这个疑问问了下基于LLM的AI,没指望没经过RAG专门训练的通用AI能直接定位问题,但从其回复的内容还是看到一句话引起了我的关注: 手动执行了ALTER DATABASE CLOSE的命令… Oracle有这个手工执行的命令吗?恐怕99%的人都不知道吧。 alter … Continue reading
AI热点概念解读:一文搞懂这些热词
自 ChatGPT 问世以来,AI的风口就来了。 AI是一门研究如何使计算机具有类似人类智能的学科。 自从ChatGPT-3.5给大家带来了极大的震惊之后,全民都在谈论AI,在这个AI大时代背景之下,如果你想进一步了解AI相关热词含义,从而更好的理解当下AI的基础原理,本文就不容错过。 如今,当你找专业人士解释一些关于AI的基础概念,最大的问题就是,你也许只是想简单的了解一个热词的简单解释,回答者跟你解释时,却引入了更多你不熟悉的新概念。 当你不得不追问这些新概念的含义时,却发现又引入了一堆新词,此刻是不是感觉头都大了?其实这么多新词和概念也很难通过一次简短的询问来搞懂并厘清期间的关系。 如果你也有这样的困惑,无论是提问方还是解答方,都可以利用这篇文章来帮助自己理解或辅助回答。 下面我们就从最熟悉的ChatGPT切入提问,看看都有哪些AI相关高频词汇,又各自是什么意思。 ChatGPT 是什么? ChatGPT是一种LLM(大语言模型),具体是由OpenAI开发的一种聊天型生成预训练模型。它基于GPT架构,专门设计用于处理自然语言对话和生成有意义的回应。 LLM(大语言模型)是什么? LLM英文全称是:Large Language Model。 大语言模型通常是指参数规模庞大、在大规模语料库上进行训练的自然语言处理模型。 另外LLM也不止OpenAI的GPT一种,还有其他很多家,比如Meta的Llama 2,以及更专注于企业应用的Cohere等。 OpenAI 是什么? OpenAI是一个人工智能研究实验室,致力于推动人工智能的发展。 OpenAI 是许多先进语言模型的背后力量,其中最著名的就是 GPT 系列。 GPT 是什么? GPT 全称是 “Generative Pre-trained Transformer”,翻译成中文是”生成式预训练转换器”。 GPT 是 OpenAI 提出的一系列预训练语言模型,它采用了 Transformer 架构。这些模型在大规模文本数据上进行预训练,学习了丰富的语言知识,可以用于各种自然语言处理任务。 Transformer … Continue reading