007-001 Seata1.3.0使用Oracle

1. 在创建UNDO_LOG表
  • 01 创建undo_log()
  • 02下载地址:
    • seata/oracle.sql at 1.3.0
create trigger sequence_undo_log before 
    insert on undo_log for each row when (new.id is null) 
begin 
    select  sequence_undo_log.nextval into:new.id from dual;  
end;
2. 在创建表
    1. 创建全局事物表 ()
      1. 下载地址
      • seata/oracle.sql at 1.3.0
    1. 在seata目录下新建文件 -config.txt
    • 下载地址
      • seata/config.txt at 1.3.0
      • 注意目录 位置


        image.png
      • 修改配置
        • 这里是配置事务组,可以配置多个


          image.png
        • 事务组要和项目配置文件中的相对应


          image.png
      • 修改config.txt 中的数据库配置


        image.png
    1. 初始化数据到nacos
    • 脚本下载地址
      • seata/nacos-config.sh at 1.3.0 · seata/seata · GitHub
  • 注意文件路径


    image.png
  • 在git bash 执行命令


    image.png
image.png
sh nacos-config.sh -h 210.210.210.212 -p 8848 -g SEATA_GROUP -t seata  -u nacos帐号 -w nacos密码

  • 命令解读
    1. -h : nacos地址
    2. -p : nacos端口
    3. -g : 注册分组
    4. -t : 注册的命名空间
    5. -u : nacos登录帐号
    6. -w: nacos登录密码
    1. 修改配置-registry.conf


      image.png
image.png
    1. 修改file.conf


      image.png
    1. 上传到服务器
    • 先将 oracle 的驱动包添加的lib 目录下面去


      image.png
    • 上传文件


      image.png
    1. 建立文件
mkdir /opt/seata-server-1.3.0/seata/logs && vim /opt/seata-server-1.3.0/seata/logs/seata_gc.log
chmod -R a+w ./seata-server-1.3.0/seata/logs
image.png
    1. 删除多余的命令并给予执行权限
chmod -R +x /opt/seata-server-1.3.0/seata/bin/ && rm -fr  /opt/seata-server-1.3.0/seata/bin/seata-server.bat
  • 项目启动
nohup /opt/seata-server-1.3.0/seata/bin/seata-server.sh >/opt/seata-server-1.3.0/seata/logs/log.out 2>1 &
nohup /opt/seata-server-1.3.0/seata/bin/seata-server.sh -h 210.210.210.198 >/opt/seata-server-1.3.0/seata/logs/log.out 2>1 &
    1. 关于报错 的解决方案
 i.s.r.d.u.p.JacksonUndoLogParser - json encode exception, No serializer found for class java.io.ByteArrayInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: io.seata.rm.datasource.undo.BranchUndoLog["sqlUndoLogs"]->java.util.ArrayList[1]->io.seata.rm.datasource.undo.SQLUndoLog["afterImage"]->io.seata.rm.datasource.sql.struct.TableRecords["rows"]->java.util.ArrayList[0]->io.seata.rm.datasource.sql.struct.Row["fields"]->java.util.ArrayList[6]->io.seata.rm.datasource.sql.struct.Field["value"]->oracle.sql.TIMESTAMP["stream"])
image.png
  • 修改nacos->seata配置项序列化方式 client.undo.logSerialization=kryo


    image.png
client.undo.logSerialization
  • 这个配置 在config.txt 中可以找到
  • 并添加对应jar到工程中
        
            com.esotericsoftware.kryo
            kryo
            2.24.0
        
        
            de.javakaffee
            kryo-serializers
            0.45
        
        
            com.esotericsoftware
            kryo
            4.0.2
        

你可能感兴趣的:(007-001 Seata1.3.0使用Oracle)