document.write("");

seata 1.6.1 运行 切换为Oracle DB报错 (容器运行报错)

前提:之前是mysql DB 运行正常,现切换为Oracle

1. Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver

修改nacos中seata的配置后,运行报错

store.db.dbType=oracle
store.db.driverClassName=oracle.jdbc.OracleDriver
store.db.url=jdbc:oracle:thin:@(xxxx)
store.db.user=xxx
store.db.password=xxx

解决方案,将ojdbc8.jar复制到容器内/seata-server/libs/ 文件夹中

由于其它原因,未选择挂载,选择重新构建镜像

创建Dockerfile文件

FROM local-seata:1.6.1

RUN mkdir -p /seata-server/libs/

COPY ojdbc8.jar /seata-server/libs/

构建镜像(将ojdbc8.jar放到Dockerfile同级目录中)

docker build -t seata-local:1.6.1oracle -f Dockerfile .

重新运行即可

2. 时区报错

java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 ORA-01882: timezone region not found
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:441)

调整yaml文件(k8s部署),配置TZ环境变量

          env: 
            - name: TZ
              value: Asia/Shanghai

重新运行即可

 

posted @ 2025-04-04 16:01  人间春风意  阅读(28)  评论(0)    收藏  举报