第二十一章 使用 cvendian 进行字节顺序转换

122 阅读3分钟

第二十一章 使用 cvendian 进行字节顺序转换

本章描述了一个实用程序,用于转换 数据库的字节顺序,以便在大端和小端平台之间迁移。它还提供了一个选项来报告给定数据库的字节顺序。

cvendian介绍

可以将数据库的字节顺序从大端序(即最高有效字节优先)转换为小端序(即最低有效字节优先),反之亦然。它被称为cvendian,即转换端序。当在两种类型的平台之间移动数据库时,这非常有用。它还提供了一个选项来报告给定数据库的字节顺序。

重要提示:不能在挂载的数据库上使用此实用程序。

Location of Utility

cvendian实用程序是文件

install-dir\Bin\cvendian.exe。

转换过程

可以在拥有要转换的文件的系统或将使用转换后的文件的系统上运行cvendian

例如,要将数据库从小端序转换为大端序,可以在小端序系统上执行转换,然后将数据库传输到大端序系统,或者可以先传输文件,然后再转换。

注意:cvendian实用程序使用简单的缓冲I/O来读写目标文件。为了获得最佳性能,请确保没有禁用操作系统(OS)文件系统缓存。

cvendian不能用于备份和日志文件。必须在具有相同端序的平台上恢复数据库,将恢复的数据库移动到不同的端序平台,然后使用cvendian实用程序来转换数据库。

转换数据库的过程是:

  1. 制作数据库文件的副本,因为该实用程序将源文件替换为转换后的文件。
  2. 使用“实用程序语法”部分中描述的语法运行cvendian

实用程序语法

使用cvendian endian实用程序,可以指定所需的字节顺序,也可以报告当前的字节顺序而不进行转换。使用以下语法:

cvendian [-option] file

选项参数是以下参数之一:

  • -big - 将数据库转换为Big-endian
  • -little - 将数据库转换为Little-endian
  • -report - 报告数据库的字节顺序

可以将选项缩短为它们的首字母。如果这是一个转换请求(-big or -little),并且数据库已经有了指定的字节顺序,实用程序将显示一条警告消息并停止处理。

如果不提供选项参数,实用程序将数据库从现有字节顺序转换为其他字节顺序。但是,建议使用option参数。

file参数是要转换的文件,可以包含完整的路径名。

该实用程序执行以下操作:

  • 自动检测数据库的字节顺序
  • 显示端序信息和其他信息
  • 执行转换
  • 显示成功或失败的消息

例如,假设正在将数据库从Windows Server 2016转换为IBM AIX®For Power System-64上使用。这意味着必须从小端序(Intel)转换为大端序(POWER)。在将文件移动到AIX系统之前,在Windows系统上运行cvendian的输出类似如下所示:

C:\IrisSys\Bin>cvendian -big c:\temp\powerdb\iris.dat

This database is little-endian.
This database has a block size of 8192 bytes.

This database has 1 volume and 1 map.
The last block in the primary volume is 18176.

Original manager directory is c:\temp\powerdb\

No extension volumes.

Done converting c:\temp\powerdb\iris.dat to big-endian

C:\IrisSys\Bin>

现在可以将转换后的数据库文件移动到AIX系统。