Right. The first way is simple, just add a configruation datasource. I got it
Yanick Xia CODING BOY Email: [email protected] Website: blog.yanick.site On Dec 10, 2019, 17:20 +0800, CongXiang <[email protected]>, wrote: > Got it.Thanks. > Because of they are same, reduplicative configuration is not necessary , We > just need to explicitly declare a property to enable or disable the shadow > database > > > 发送自 Windows 10 版邮件应用 > > 发件人: xia Yanick > 发送时间: 2019年12月10日 16:52 > 收件人: [email protected] > 主题: Re: 回复: [Discuss] Shadow DatabaseConfiguration Yaml > > Dear Xiang: > the purpose of shadow database for the `End to End Test`, almost we want > test the real system on the product environment, but nothing persistence to > the real database. So we need a shadow database for the online database. > I think sharing rule/ encrypt rule for shadow database is same to real > database. > > > > > Yanick Xia > CODING BOY > Email: [email protected] > Website: blog.yanick.site > > On Dec 10, 2019, 16:40 +0800, CongXiang <[email protected]>, wrote: > > is shadow database configuration exactly same as real database > > configuration? > > If it is same, or it may be same, there should have a simple way to > > configurate. > > BTW, what is shadow database for? I mean what shadow database’s purpose is? > > I have read the mail before about shadow database ,but I don’t understand. > > > > 发送自 Windows 10 版邮件应用 > > > > 发件人: xia Yanick > > 发送时间: 2019年12月10日 15:47 > > 收件人: [email protected] > > 主题: [Discuss] Shadow Database Configuration Yaml > > > > Hi everyone: > > we will add shadow yaml configuration file > > the first style: add shadow database for every actual database , such as: > > > > # shadow config > > dataSources: > > master_ds_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > shadowRule: > > shadowDataSources: # the shadow database, one to one mapping > > master_ds_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > This way, require that every shadowDatasource map key mapping one of actual > > datasources item key. > > > > > > the other way: add copy configuration for shadow rule > > # shadow config > > dataSources: > > master_ds_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > > > shardingRule: > > tables: > > t_user: > > actualDataNodes: ds_${0..1}.t_user_${0..15} > > databaseStrategy: > > complex: > > shardingColumns: region_id, user_id > > algorithmClassName: TestDatabaseComplexAlgorithmClassName > > tableStrategy: > > complex: > > shardingColumns: region_id, user_id > > algorithmClassName: TestTableComplexAlgorithmClassName > > bindingTables: > > - t_order, t_order_item > > broadcastTables: > > - t_config > > defaultDataSourceName: default_ds > > defaultDatabaseStrategy: > > inline: > > shardingColumn: order_id > > algorithmExpression: ds_${order_id % 2} > > defaultTableStrategy: > > none: > > masterSlaveRules: > > ds_0: > > masterDataSourceName: master_ds_0 > > slaveDataSourceNames: > > - master_ds_0_slave_0 > > - master_ds_0_slave_1 > > loadBalanceAlgorithmType: ROUND_ROBIN > > ds_1: > > masterDataSourceName: master_ds_1 > > slaveDataSourceNames: > > - master_ds_1_slave_0 > > - master_ds_1_slave_1 > > loadBalanceAlgorithmType: RANDOM > > shadowRule: # shadow rule > > column: is_shadow > > value: true > > dataSources: > > master_ds_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > master_ds_0_slave_0: !!com.zaxxer.hikari.HikariDataSource > > driverClassName: org.h2.Driver > > jdbcUrl: > > jdbc:h2:mem:master_ds_0_slave_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL > > username: sa > > password: > > shardingRule: > > tables: > > t_user: > > actualDataNodes: ds_${0..1}.t_user_${0..15} > > databaseStrategy: > > complex: > > shardingColumns: region_id, user_id > > algorithmClassName: TestDatabaseComplexAlgorithmClassName > > tableStrategy: > > complex: > > shardingColumns: region_id, user_id > > algorithmClassName: TestTableComplexAlgorithmClassName > > bindingTables: > > - t_order, t_order_item > > broadcastTables: > > - t_config > > defaultDataSourceName: default_ds > > defaultDatabaseStrategy: > > inline: > > shardingColumn: order_id > > algorithmExpression: ds_${order_id % 2} > > defaultTableStrategy: > > none: > > masterSlaveRules: > > ds_0: > > masterDataSourceName: master_ds_0 > > slaveDataSourceNames: > > - master_ds_0_slave_0 > > - master_ds_0_slave_1 > > loadBalanceAlgorithmType: ROUND_ROBIN > > ds_1: > > masterDataSourceName: master_ds_1 > > slaveDataSourceNames: > > - master_ds_1_slave_0 > > - master_ds_1_slave_1 > > loadBalanceAlgorithmType: RANDOM > > > > props: > > sql.show: true > > This way will has something verbose config rule. > > > > > > > > > >
