Oracle ADB 钱包连接踩坑记录:Thin、Thick 与 TNS_ADMIN

Oracle Autonomous Database 默认使用钱包连接。配置不复杂,但错误信息经常不够直观。 最容易踩坑的地方有三个:钱包目录、`TNS_ADMIN`、驱动模式。 钱包目录要完整 钱包目录通常包含这些文件: ```text cwallet.sso ewallet.p12 tnsnames.ora sqlnet.ora ojdbc.properties ``` 程序运行用户必须能读取这些文件。 如果文件存在但权限不对,连接时也会报类似“找不到钱包”或“无法初始化 keystore”的错误。 TNS_ADMIN 指向钱包目录 `TNS_ADMIN` 应该指向钱包所在目录,例如: ```bash export TNS_ADMIN=/opt/oracle-adb/wallet ``` 这样驱动才能找到 `tnsnames.ora`,进而解析连接别名: ```text shibefree01_low ``` Thin 和 Thick 的区别 Node.js 的 `oracledb` 驱动有两种模式: 模式 特点 Thin 不依赖 Oracle Instant Client,部署简单 Thick 需要 Instant Client,但钱包兼容性更好 如果 Thin 模式连接 ADB 钱包出现奇怪错误,可以考虑切到 Thick 模式。 推荐排查顺序 先确认数据库状态是 `AVAILABLE`; 确认钱包文件完整; 确认 `TNS_ADMIN` 指向正确; 用最小脚本执行 `select 1 from dual`; 最后再接入正式应用。 不要一上来就在完整应用里排查。先用最小连接脚本验证数据库通路,会省很多时间。 ...

2026-07-18 · 1 min · 70 words · 剑来札记

Directus + Oracle ADB:把云数据库变成轻量内容后台

Directus 和 WordPress 的思路不一样。 WordPress 是“博客程序自带一套数据库结构”;Directus 更像是“给现有数据库加一个管理后台”。这让它更灵活,但第一次用时也更不直观。 为什么用 Directus Directus 适合这类场景: 想自己定义数据结构; 需要一个现代后台管理界面; 前台想自由选择技术栈; 数据库不想被某个博客程序锁死。 在博客场景里,可以把文章设计成一个 `posts` 集合。 最小文章结构 一个实用的博客表不需要一开始就复杂: 字段 说明 `title` 文章标题 `slug` URL 里的文章路径 `excerpt` 摘要 `content_md` Markdown 正文 `status` 草稿或发布 `published_at` 发布时间 有了这些字段,前台就可以正常渲染文章列表和详情页。 和 WordPress 的区别 WordPress 的优势是主题和插件生态成熟,上手快。Directus 的优势是数据结构清晰、API 友好、前后端分离更彻底。 如果目标是快速搭一个传统博客,WordPress 更省事。 如果目标是长期维护自己的内容数据,并且未来可能换前端、换主题、换展示方式,Directus 更适合作为内容底座。 Oracle ADB 的角色 Oracle ADB 负责长期保存数据。主题可以换,前台可以换,甚至后台也可以换,但文章数据应该稳定保留。 这也是 Headless 架构最大的好处:内容和展示解耦。

2026-07-18 · 1 min · 57 words · 剑来札记