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
重新运行即可