首页 > 其他分享 >使用druid数据源进行配置主库和从库,并实现定时拉取从库数据功能

使用druid数据源进行配置主库和从库,并实现定时拉取从库数据功能

时间:2023-12-21 10:57:02浏览次数:29  
标签:主库 数据源 配置 enabled druid 从库 true

业务场景:Oracle数据库,项目中需要用到其它友商的数据,但是友商并未提供接口,而是直接提供了数据库,让我定时拉取同步其数据。

使用技术:使用了druid数据源,并配置从库

maven坐标

<!-- 阿里数据库连接池 -->
		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>

 数据库连接配置:

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: oracle.jdbc.driver.OracleDriver
        druid:
            # 主库数据源
            master:
                url: jdbc:oracle:thin:@10.2.11.33:1521/xxxxx
                username: xxxx
                password: xxxx
            slave:
                # 从数据源开关/默认关闭
                enabled: true
                url: jdbc:oracle:thin:@10.2.11.33:1521/xxxxx2
                username: xxxx
                password: xxxx
            # 初始连接数
            initialSize: 10
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 100
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username: jeethink
                login-password: 123456
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true

  在mapper层使用从库:注意此处的@DataSource注解,这是druid的切换从库注解,标识此方法使用了从库数据源

@DataSource(value = DataSourceType.SLAVE)
    List<ReportPppSlave> reportPppSlaveList(ReportPppSlaveParam reportPppSlaveParam);

  Oracle在进行mybatis的mapper查询时容易找不到数据库,此时需要使用数据库.表名查询

标签:主库,数据源,配置,enabled,druid,从库,true
From: https://www.cnblogs.com/jy6634/p/17918479.html

相关文章

  • Grafana 自定义数据源支持 RESTful API 查询
    背景数据爆炸的时代,信息化步伐越来越快,接入互联网的服务越来越多。随着业务迭代变更越来越复杂化,需求/产品者对系统的要求越来越高,对业务走势及健康状态需要更直观的感知。这意味着我们需要随时能够“看见”系统的状态,对系统/业务的实时监控以及可视化是技术演进的必然。Grafana......
  • 面对每月更新的数据源
    问题:表1的数据每月更新,填到表2时不能覆盖掉原有数据。思路1:数据不在原列上更新,而是新增一列。如下图,当月数据填在T列,下月数据填在U列,以此类推。使用公式:=SUMIF(表1!A:A,D2,表1!B:B)表1更新前公式一列需要粘贴成值思路2:在表1建一个新表,每月将数据以粘贴值的方式累叠,如下图。使用公式......
  • 面对每月更新的数据源
    问题:表1的数据每月更新,填到表2时不能覆盖掉原有数据。思路1:数据不在原列上更新,而是新增一列。如下图,当月数据填在T列,下月数据填在U列,以此类推。使用公式:=SUMIF(表1!A:A,D2,表1!B:B)表1更新前公式一列需要粘贴成值思路2:在表1建一个新表,每月将数据以粘贴值的方式累叠,如下图。使用公式......
  • PowerBI 如何通过ODBC连接Azure SQL数据源
    背景:公司内网限制了部分网络,在尝试通过PowerBI常用数据源SQLSERVER连接时被限制访问,因此尝试通过ODBC驱动程序连接问题:通过ODBC连接时,测试连接通过,但是在PowerBI获取数据源时提示"数据库无效或不能访问"  后面发现是ODBC配置有问题 添加新的数据源: 选择驱动程......
  • oracle设置与数据源的 JDBC 连接
    转自https://docs.oracle.com/cloud/help/zh_CN/analytics-cloud/ACSDS/GUID-FB2AEC3B-2178-48DF-8B9F-76ED2D6B5194.htm#ACSDS-GUID-FB2AEC3B-2178-48DF-8B9F-76ED2D6B5194 Oracle数据库要连接到Oracle数据库(非RAC),请使用以下格式的连接字符串:jdbc:oracle:thin:@[ho......
  • spring使用druid多数据源yml密码加密
    1.依赖<!--Mysql驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.24</version></dependency><!--Druid--><dependency>......
  • 将绑定到itemsource的控件里面的元素绑定到itemsource数据源之外的viewmodel中的数据
    1<ComboBox.ItemTemplate>2<DataTemplate>3<StackPanelOrientation="Horizontal">4<TextBlockWidth="100"Text="{BindingKey}"/>5<ButtonContent="X"......
  • 面对每月更新的数据源
    问题:表1的数据每月更新,填到表2时不能覆盖掉原有数据。思路1:数据不在原列上更新,而是新增一列。如下图,当月数据填在T列,下月数据填在U列,以此类推。使用公式:=SUMIF(表1!A:A,D2,表1!B:B)表1更新前公式一列需要粘贴成值思路2:在表1建一个新表,每月将数据以粘贴值的方式累叠,如......
  • Druid数据源连接池
    配置缺省值说明name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是:"DataSource-"+System.identityHashCode(this).另外配置此属性至少在1.0.5版本中是不起作用的,强行设置name会出错。详情-点此处......
  • 在MySql一个数据源的所有数据库中根据数据表注释查询数据表所属数据库以及表名_根据某
    Selecttable_schema'数据库名',table_name表名,TABLE_COMMENT'表注解'fromINFORMATION_SCHEMA.TABLESWhereTABLE_COMMENTLIKE'%环境监测%';selectTABLE_SCHEMA'数据库名',TABLE_NAME'表名',COLUMN_NAME'列名',CO......