此命令会升级数据库。如果在运行此命令时出现异常,可以将日志级别更改为 FINEST,然后重新运行该命令,以对问题进行诊断。
将日志级别更改为 FINEST,如“对迁移进行故障诊断”中所述。再次运行该命令之后,请检查名为 DBUpgrade_timestamp.log 的日志文件。 该文件位于 deployment_manager_profile/logs/ 中。 如果您无法找到问题的原因,可以向 IBM 支持人员提供日志。
该命令会从 migration.properties 文件中的 target.config.property.file 属性所指定的属性文件中读取拓扑信息。该命令会从 WebSphere® Application Server 数据源读取数据库信息,因此,如果在运行 DBUpgrade 时发现使用了错误的数据库连接,请检查数据源配置是否正确。
Error executing SQL statement: DB2 SQL Error: SQLCODE=-964, SQLSTATE=57011, SQLERRMC=null
当数据库事务日志已满时,会出现该错误。请增加数据库事务日志的大小,然后重新运行 DBUpgrade 命令。ORA-01408: such column list already indexed
您必须先删除定制的索引,然后重新运行 DBUpgrade。最好在运行迁移之前进行检查,查看在已定制的内容和 DBUpgrade 执行的操作之间是否存在冲突。 如果存在冲突,那么在运行该命令前移除定制。对于 DBUpgrade 所进行的模式更改,请参阅 upgradeSchema_ProcessServer.sql 文件。 该文件位于 target_deployment_manager_profile/dbscripts/Upgrade/de_name/database_type/ProcessServer_database_name中。
在文件中查找与您的源相对应的阶段。每个阶段均以 /* START of phase ProcUpgradeToversion */ 开头,并以 /* END of phase ProcUpgradeToversion */ 结尾。 如果源版本为 V7.5.1,那么该数据库会先升级到 V8.0.0,然后升级到 V8.0.1。然后,数据库将更新至 V8.5.0,最后更新至 V8.5.5。在此情况下,您应通读文件中的这三个阶段。
如果您有大量数据,那么运行 DBUpgrade 命令时,可能会出现磁盘空间不足。该命令会迁移 LSW_BPD_INSTANCE_DATA, LSW_TASK_EXECUTION_CONTEXT 表中的 BLOB 数据,还会重新组织数据库。它所需的磁盘空间约为原始数据库的两倍。
Executing upgrade step: Enable LOGGED for LOB columns
Error executing SQL statement: DB2 SQL Error: SQLCODE=-2216, SQLSTATE=01H52, SQLERRMC=-289, DRIVER=4.11.69
SQL statement that failed: call sysproc.admin_cmd('reorg table LSW_BPD_INSTANCE_DATA')
请确保在数据库表空间磁盘上有足够的可用空间。java.sql.BatchUpdateException: ORA-01653: unable to extend table schema_name.LSW_TASK_EXECUTION_CONTEXT by 1024 in tablespace tablespace_name
如果表空间大小设置为 AUTOEXTEND,请确保在表空间磁盘上有足够的可用磁盘空间。
如果表空间大小未设置为 AUTOEXTEND,那么可能需要调整大小或者添加其他数据文件。JVM_HEAPSIZE_OPTIONS="-Xms512m -Xmx2048m"
$JAVA_EXE $JVM_HEAPSIZE_OPTIONS -cp $CLASSPATH
或者,也可以在创建 Java 进程时增加堆大小,如下所示。
例如:%JAVA_HOME%\bin\java" -Xms512m -Xmx2048m
database.batch.size=1000
降低此值会需要更少内存,但也会降低性能。