7.3. 在缓存存储之间迁移
Data Grid 提供了一个实用程序,用于将数据从一个缓存存储迁移到另一个缓存存储。
7.3.1. 缓存存储 Migrator 复制链接链接已复制到粘贴板!
Data Grid 提供 StoreMigrator.java 工具,它为最新的数据网格缓存存储实施重新创建数据。
StoreMigrator 从以前的 Data Grid 版本获取缓存存储作为源,并使用缓存存储实施作为目标。
运行 StoreMigrator 时,它会使用您使用 EmbeddedCacheManager 接口定义的缓存存储类型创建目标缓存。StoreMigrator 然后从源存储加载条目到内存中,然后将其放入目标缓存中。
StoreMigrator 还允许您将数据从一种类型的缓存存储迁移到另一种缓存存储。例如,您可以从基于 JDBC 字符串的缓存存储迁移到单文件缓存存储。
StoreMigrator 无法将数据从分段缓存存储迁移到:
- 非分段缓存存储。
- 分段缓存存储,它们具有不同的片段数。
7.3.2. 获取 Store Migrator 复制链接链接已复制到粘贴板!
StoreMigrator 作为 Data Grid 工具库 infinispan-tools 的一部分,并包含在 Maven 存储库中。
流程
为
StoreMigrator配置pom.xml,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.3. 配置 Store Migrator 复制链接链接已复制到粘贴板!
在 migrator.properties 文件中为源和目标缓存存储设置属性。
流程
-
创建
migrator.properties文件。 在
migrator.properties中配置源缓存存储。使用
source预先填充所有配置属性,如下例所示:source.type=SOFT_INDEX_FILE_STORE source.cache_name=myCache source.location=/path/to/source/sifs
source.type=SOFT_INDEX_FILE_STORE source.cache_name=myCache source.location=/path/to/source/sifsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在
migrator.properties中配置目标缓存存储。使用
target预先填充所有配置属性,如下例所示:target.type=SINGLE_FILE_STORE target.cache_name=myCache target.location=/path/to/target/sfs.dat
target.type=SINGLE_FILE_STORE target.cache_name=myCache target.location=/path/to/target/sfs.datCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.3.1. 存储 Migrator 属性 复制链接链接已复制到粘贴板!
在 StoreMigrator 属性中配置源和目标缓存存储。
| 属性 | 描述 | 必填/选填 |
|---|---|---|
|
| 指定源或目标的缓存存储类型类型。
| 必填 |
| 属性 | 描述 | 值示例 | 必填/选填 |
|---|---|---|---|
|
| 命名存储后端的缓存。 |
| 必填 |
|
| 指定可以使用分段的目标缓存存储的片段数量。
片段数量必须与 Data Grid 配置中的 换句话说,缓存存储的片段数量必须与对应缓存的片段数匹配。如果片段数量不相同,则数据网格无法从缓存存储中读取数据。 |
| 选填 |
| 属性 | 描述 | 必填/选填 |
|---|---|---|
|
| 指定底层数据库的 dialect。 | 必填 |
|
| 指定源缓存存储的 marshaller 版本。设置以下值之一:
*
*
* | 仅用于源存储。
例如: |
|
| 指定自定义 marshaller 类。 | 使用自定义 marshallers 时需要此项。 |
|
|
指定以逗号分隔的自定义 | 选填 |
|
| 指定 JDBC 连接 URL。 | 必填 |
|
| 指定 JDBC 驱动程序的类。 | 必填 |
|
| 指定数据库用户名。 | 必填 |
|
| 指定数据库用户名的密码。 | 必填 |
|
| 设置数据库主版本。 | 选填 |
|
| 设置数据库次版本。 | 选填 |
|
| 禁用数据库 upsert。 | 选填 |
|
| 指定是否创建表索引。 | 选填 |
|
| 指定表名称的额外前缀。 | 选填 |
|
| 指定列名称。 | 必填 |
|
| 指定列类型。 | 必填 |
|
|
指定 | 选填 |
要从旧的 Data Grid 版本中迁移 Binary 缓存存储,请在以下属性中将 table.string view 改为 table.binary.\* :
-
source.table.binary.table_name_prefix -
source.table.binary.<id\|data\|timestamp>.name -
source.table.binary.<id\|data\|timestamp>.type
| 属性 | 描述 | 必填/选填 |
|---|---|---|
|
| 设置数据库目录。 | 必填 |
|
| 指定要使用的压缩类型。 | 选填 |
Example configuration for migrating from a RocksDB cache store.
# Example configuration for migrating from a RocksDB cache store.
source.type=ROCKSDB
source.cache_name=myCache
source.location=/path/to/rocksdb/database
source.compression=SNAPPY
| 属性 | 描述 | 必填/选填 |
|---|---|---|
|
|
设置包含缓存存储 | 必填 |
Example configuration for migrating to a Single File cache store.
# Example configuration for migrating to a Single File cache store.
target.type=SINGLE_FILE_STORE
target.cache_name=myCache
target.location=/path/to/sfs.dat
| 属性 | 描述 | 值 |
|---|---|---|
| 必填/选填 |
| 设置数据库目录。 |
| 必填 |
| 设置数据库索引目录。 |
Example configuration for migrating to a Soft-Index File cache store.
# Example configuration for migrating to a Soft-Index File cache store.
target.type=SOFT_INDEX_FILE_STORE
target.cache_name=myCache
target.location=path/to/sifs/database
target.location=path/to/sifs/index
7.3.4. 迁移缓存存储 复制链接链接已复制到粘贴板!
运行 StoreMigrator 将数据从一个缓存存储迁移到另一个缓存存储。
先决条件
-
获取
infinispan-tools.jar. -
创建
migrator.properties文件,以配置源和目标缓存存储。
流程
如果从源构建
infinispan-tools.jar,请执行以下操作:-
将源和目标数据库(如 JDBC 驱动程序)的
infinispan-tools.jar和依赖项添加到您的类路径。 -
将
migrator.properties文件指定为StoreMigrator的参数。
-
将源和目标数据库(如 JDBC 驱动程序)的
如果您从 Maven 存储库拉取
infinispan-tools.jar,请运行以下命令:mvn exec:java