在升级到
之前,需要将 Linux 操作系统上的原始(字符)设备更改为块设备。
从 DB2® 版本 9.1 开始,不推荐使用先前的原始 I/O 方法,该方法需要使用原始实用程序将块设备绑定至原始(字符)设备。在
DB2 数据库产品的将来发行版中将除去此方法。Linux 操作系统中也不推荐使用此原始 I/O 方法,在 Linux 将来的发行版中将会除去这种 I/O 方法。
块设备方法使用直接 I/O 来获得与使用原始(字符)设备方法等效的性能。
开始之前
确保数据库已脱机,以便重新定位容器或者更改日志文件路径。
限制
在分区数据库环境中,必须对需要更改的每个数据库分区运行 db2relocatedb 命令。必须为每个数据库分区提供不同的配置文件,并且必须包含所更改的数据库分区的 NODENUM 值。
如果要在 DB2 V9.7 中从
V9.7 之前的备份进行复原,那么必须执行重定向复原,才能指示将块设备而不是原始字符设备用于容器和日志路径。
过程
- 对数据库执行完全脱机备份。
- 关闭数据库。还要考虑使用 QUIESCE DATABASE 命令来使数据库处于停顿方式,如以下示例中所示的:
db2 CONNECT TO sample
db2 QUIESCE DATABASE DEFER FORCE CONNECTIONS
db2 DEACTIVATE DATABASE database-alias
- 使用 raw -a 系统命令来查看已定义了哪些原始绑定。此信息有助于您确定应该使用哪个块设备来替换表空间上每个容器的原始设备。
- 为 db2relocatedb 命令创建配置文件。使用 CONT_PATH 和 LOG_DIR 子句来指定旧值和新值。 例如,可以创建具有以下内容的 moveraw.cfg 文件:
DB_NAME=SAMPLE
DB_PATH=/databases/SAMPLE
INSTANCE=db2inst1
NODENUM=0
LOG_DIR=/dev/raw/lograw,/dev/sda5
CONT_PATH=/dev/raw/raw1,/dev/sda1
CONT_PATH=/dev/raw/raw2,/dev/sda2
- 执行 db2relocatedb 命令以更改数据库文件的配置,如以下示例中所示:
db2relocatedb -f moveraw.cfg
- 激活数据库,如以下示例所示:
db2 ACTIVATE DATABASE database-alias
- 测试数据库是否按预期那样运行。连接至该数据库,并对在重新定位的表空间上创建的表执行查询。
- 如果您使数据库处于停顿方式,那么可以使用 UNQUIESCE DATABASE 命令复原访问权并激活数据库,如以下示例中所示:
db2 CONNECT TO sample
db2 UNQUIESCE DATABASE