6.16. 在缓存存储之间迁移数据


Data Grid 提供了一个将数据从一个缓存存储迁移到另一个缓存的工具。

6.16.1. 缓存存储 migrator

Data Grid 提供 CLI migrate store 命令,用于为最新的数据网格缓存存储实施重新创建数据。

存储 migrator 从以前的 Data Grid 版本获取缓存存储作为源,并使用缓存存储实现作为目标。

当您运行存储 migrator 时,它会使用您使用 EmbeddedCacheManager 接口定义的缓存存储类型创建目标缓存。存储 migrator 然后将源存储中的条目加载到内存中,然后将其放入目标缓存中。

存储 migrator 还允许您将数据从一种类型的缓存存储迁移到另一种缓存存储。例如,您可以从基于 JDBC 字符串的缓存存储迁移到 SIFS 缓存存储。

重要

存储 migrator 无法将数据从分段缓存存储迁移到:

  • 非分段缓存存储。
  • 分段缓存存储,它们具有不同的片段数。

6.16.2. 配置缓存存储 migrator

使用 migrator.properties 文件配置源和目标缓存存储的属性。

流程

  1. 创建 migrator.properties 文件。
  2. 使用 migrator.properties 文件配置源和目标缓存存储的属性。

    1. source. 前缀添加到源缓存存储的所有配置属性中。

      源缓存存储示例

      source.type=SOFT_INDEX_FILE_STORE
      source.cache_name=myCache
      source.location=/path/to/source/sifs
      source.version=<version>
      Copy to Clipboard Toggle word wrap

      重要

      要从分段缓存存储迁移数据,还必须使用 source.segment_count 属性配置片段数量。片段的数量必须与 Data Grid 配置中的 cluster.hash.numSegments 匹配。如果缓存存储的片段数量与对应缓存的片段数量不匹配,则数据网格无法从缓存存储读取数据。

    2. target. 前缀添加到目标缓存存储的所有配置属性中。

      目标缓存存储示例

      target.type=SINGLE_FILE_STORE
      target.cache_name=myCache
      target.location=/path/to/target/sfs.dat
      Copy to Clipboard Toggle word wrap

6.16.2.1. 缓存存储 migrator 的配置属性

StoreMigrator 属性中配置源和目标缓存存储。

Expand
表 6.2. 缓存存储类型属性
属性描述必填/选填

type

指定源或目标缓存存储的缓存存储类型。

.type=JDBC_STRING

.type=JDBC_BINARY

.type=JDBC_MIXED

.type=LEVELDB

.type=ROCKSDB

.type=SINGLE_FILE_STORE

.type=SOFT_INDEX_FILE_STORE

.type=JDBC_MIXED

必填

Expand
表 6.3. 常见属性
属性描述值示例必填/选填

cache_name

要备份的缓存的名称。

.cache_name=myCache

必填

segment_count

可以使用分段的目标缓存存储的片段数量。

片段数量必须与 Data Grid 配置中的 cluster.hash.numSegments 匹配。如果缓存存储的片段数量与对应缓存的片段数量不匹配,则数据网格无法从缓存存储读取数据。

.segment_count=256

选填

marshaller.class

指定自定义 marshaller 类。

使用自定义 marshallers 时需要此项。

marshaller.allow-list.classes

指定允许反序列化的完全限定类名称列表。

选填

marshaller.allow-list.regexps

指定以逗号分隔的正则表达式列表,用于决定允许哪些类反序列化。

选填

marshaller.externalizers

指定以逗号分隔的自定义 AdvancedExternalizer 实现列表,以便以以下格式进行加载: [id]:<Externalizer class>

选填

Expand
表 6.4. JDBC 属性
属性描述必填/选填

dialect

指定底层数据库的 dialect。

必填

version

指定源缓存存储的 marshaller 版本。
设置以下值之一:

* 8 用于 Data Grid 7.2.x

* 9 用于 Data Grid 7.3.x

* 10 用于 Data Grid 8.0.x

* 11 用于 Data Grid 8.1.x

* 12 用于 Data Grid 8.2.x

* 13 用于 Data Grid 8.3.x

仅用于源存储。

connection_pool.connection_url

指定 JDBC 连接 URL。

必填

connection_pool.driver_class

指定 JDBC 驱动程序的类。

必填

connection_pool.username

指定数据库用户名。

必填

connection_pool.password

指定数据库用户名的密码。

必填

db.disable_upsert

禁用数据库 upsert。

选填

db.disable_indexing

指定是否创建表索引。

选填

table.string.table_name_prefix

指定表名称的额外前缀。

选填

table.string.<id|data|timestamp>.name

指定列名称。

必填

table.string.<id|data|timestamp>.type

指定列类型。

必填

key_to_string_mapper

指定 TwoWayKey2StringMapper 类。

选填

注意

要从旧的 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 to a JDBC String-Based cache store
target.type=STRING
target.cache_name=myCache
target.dialect=POSTGRES
target.marshaller.class=org.infinispan.commons.marshall.JavaSerializationMarshaller
target.marshaller.allow-list.classes=org.example.Person,org.example.Animal
target.marshaller.allow-list.regexps="org.another.example.*"
target.marshaller.externalizers=25:Externalizer1,org.example.Externalizer2
target.connection_pool.connection_url=jdbc:postgresql:postgres
target.connection_pool.driver_class=org.postrgesql.Driver
target.connection_pool.username=postgres
target.connection_pool.password=redhat
target.db.disable_upsert=false
target.db.disable_indexing=false
target.table.string.table_name_prefix=tablePrefix
target.table.string.id.name=id_column
target.table.string.data.name=datum_column
target.table.string.timestamp.name=timestamp_column
target.table.string.id.type=VARCHAR
target.table.string.data.type=bytea
target.table.string.timestamp.type=BIGINT
target.key_to_string_mapper=org.infinispan.persistence.keymappers. DefaultTwoWayKey2StringMapper
Copy to Clipboard Toggle word wrap
Expand
表 6.5. RocksDB Properties
属性描述必填/选填

位置

设置数据库目录。

必填

compression

指定要使用的压缩类型。

选填

# 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
Copy to Clipboard Toggle word wrap
Expand
表 6.6. SingleFileStore 属性
属性描述必填/选填

位置

设置包含缓存存储 .dat 文件的目录。

必填

# 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
Copy to Clipboard Toggle word wrap
Expand
表 6.7. SoftIndexFileStore Properties
属性描述value

必填/选填

位置

设置数据库目录。

必填

index_location

设置数据库索引目录。

# 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
Copy to Clipboard Toggle word wrap

6.16.3. 迁移 Data Grid 缓存存储

运行存储 migrator 将数据从一个缓存存储迁移到另一个缓存存储。

先决条件

  • 获取 Data Grid CLI。
  • 创建 migrator.properties 文件,以配置源和目标缓存存储。

流程

  • 运行 migrate store -p /path/to/migrator.properties CLI 命令
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat