当前位置: 首页 > news >正文

Oracle MCP Server简单配置以及备份调用

Oracle MCP Server:

Oracle SQLcl 是 Oracle 数据库的命令行界面 (CLI),与 VS Code 的 Oracle SQL Developer 扩展等流行工具一起提供。它现在可以作为 MCP 服务器运行,并提供 MCP 工具,允许人工智能助手安全地连接到 Oracle 数据库。 SQLcl 可管理最终用户机器上的凭证,并运行 SQL 和 PL/SQL 查询和脚本。

下载地址:

SQLcl Downloads

打不开时需要挂一个梯子

简单安装配置SQLcL

下载完成之后解压得到如下目录:

其中bin文件里面包含windows平台的可执行文件,尝试执行发现报错如下:

需要安装jdk-17,可以从如下网页下载:

Java Downloads | Oracle

安装完成之后执行sql.exe正常

配置一个示例数据库

将连接取名为test_mcp并保持

使用connmgr可以管理已经创建好的连接:

List Connections

启动本地的mcp server服务

配置Cline

由于SQLcL是一个提供LLM兼容API集成工具,可以和Cline搭配以达到简单开发使用,Cline作为VS code的扩展工具,需要先安装VS code

使用cursor安装这个扩展也行:

配置自己的大模型API,不然他们要收费,这里直接使用deepseek的,也是需要自己去官网花钱买

配置MCP至Oracle SQLcl

点击cline的mcp server配置输入如下配置文件,注意路劲要明确

{"mcpServers": {"SQLcl": {"command": "E:/sqlcl-latest/sqlcl/bin/sql","args": ["-mcp"],"disabled": false,"timeout": 300}}
}

尝试简单对话:

对MCP功能的探究可以参考官方文档:

Example Use Cases and Prompts

性能分析类:

先在数据库内跑一个慢SQL:

select /*+ use_nl(a,b) */ count(*) from scott.a,scott.b where a.object_id=b.object_id;

然后问AI数据库是否有业务慢SQL,如何优化?

自动维护类:

它可以自动帮助创建脚本,读取日志,并根据日志判断问题再自动优化维护脚本

备份:

SQLcl集成了dbms_datapump功能,官方文档上给出了客户端调用datapump的示例:

Using Data Pump

正常情况下我们使用datapump是直接在服务器上调用expdp命令,但SQLcl提供了一种更加方便的方法,尽管备份出来的备份文件还是存放在服务端上,可以简单使用SQLcl备份一下scott用户试试:

可以在客户端上实现对服务端的expdp备份,但是备份文件存放在服务端上。接下来就是需要cline通过自然语言的方式调用SQLcl的dp功能,初次调用时效果并不好,cline显然不清楚SQLcl的这个功能:

把官方文档喂给cline再试试:

最终通过一系列的提示cline可以完成备份

备份效果还是不太智能,脱离这个对话新开对话,ai对我给出的同样指令“帮我备份scott下的表”还是不知所云,需要从头提示,对于这个问题,ai给出一些解决办法:

选择创建一个快速参考卡:

下次使用的时候,直接指定备份参考卡试试:

经过不断自我纠正,可以依靠参考卡备份HR用户,但是举一反三的能力还是太弱,这中间还是需要优化,让AI继续优化提示卡:

总结:

        SQLcl感觉像是一个加强版的sqlplus,集成了比较方便的MCP协议标准,方便对接给其他平台做开发,但是SQLcl本身的功能并没有多智能,需要套用额外的Cline开发平台,在平台上配置大模型api方式,在这种架构下,可以让用户实现自然语言进行一些数据库操作,比如实现expdp备份关键信息表。

        即使是这样,cline平台本身也不了解SQLcl众多的调用方法(如dp),还需要把官方文档喂给它做进一步的调用流程完善,最终经过多次交互调试,cline可以完成一次使用数据泵备份scott用户的表,但是ai的”流程记忆“仅限于当前会话,新开一个会话又要重新开始调试,为了解决这个问题,采用了一个临时解决办法--让ai把本次的”经验“总结为一个参考卡,待新会话开始时就让它先阅读提前准备好的参考卡,大大减少AI试错成本,但是新的问题也会接踵而来。

http://www.lryc.cn/news/610337.html

相关文章:

  • Oracle EBS ERP接口开发 — 修复bug基本流程
  • Calcite自定义扩展SQL案例详细流程篇
  • Centos Docker 安装手册(可用)
  • el-table高度自适应vue页面指令
  • Mac中M系列芯片采用rbenv管理ruby版本
  • 板子指示灯状态设计
  • 2SA2016-TD-E ON安森美 功率晶体管 0.18Ω超低压降+30MHz高频 工业电源专用
  • C语言的指针
  • python采集拍立淘按图搜索API接口,json数据参考
  • 2.4.3-2.4.8控制成本-控制资源-监督沟通-监督干系人-监督风险-控制采购
  • 每日任务day0804:小小勇者成长记之药剂师的小咪
  • 断点续传Demo实现
  • 【目标检测基础】——yolo学习
  • 设备电机状态监测中的故障诊断与定位策略
  • HCIP笔记1
  • 微信小程序本地存储与Cookie的区别
  • 【node】如何开发一个生成token的接口
  • DolphinScheduler 集成DataX
  • 【REACT18.x】封装react-rouer实现多级路由嵌套,封装登录态权限拦截
  • 《Python 实用项目与工具制作指南》· 2.1 输入输出
  • 基于Matlab实现LDA算法
  • 【机器学习】(算法优化一)集成学习之:装袋算法(Bagging):装袋决策树、随机森林、极端随机树
  • MiDSS复现
  • 测试-概念篇(3)
  • 基于SpringBoot的OA办公系统的设计与实现
  • 【Mac】OrbStack:桌面端虚拟机配置与使用
  • 防火墙认证用户部署
  • DPDK中的TCP头部处理
  • 在安卓中使用 FFmpegKit 剪切视频并添加文字水印
  • uiautomator2 编写测试流程-登陆后的酷狗01