第 5 章 |
|
本章提供了将数据库从 Sun Java System Content Delivery Server 版本 2005Q4 迁移到 Sun Java System Content Delivery Server 版本 5.1 的故障排除信息。
数据库迁移和验证脚本提供了几种日志记录和跟踪级别,以加快故障排除过程的速度。将使用以下消息级别:
除了“调试”类别中的消息以外,所有消息将输出到控制台并记录到 $CDS_HOME/dist/cds/logs/migration.log 文件中。包括调试消息在内的所有消息将记录到 $CDS_HOME/dist/cds/logs/migration.trace.log 文件中。
通常,当迁移过程失败时,会在控制台和日志文件中输出一些错误消息和异常跟踪。要了解失败原因并尽可能多地收集问题的相关信息,一定要从头到尾审查进程输出和日志文件以识别原始错误消息。
在由于迁移尝试失败而与支持部门联系时,请提供屏幕输出、日志文件以及日志跟踪文件。根据这些文件中的信息,可能需要使用标签目录内容或数据库副本以全面调查并更正问题。
某些错误消息可能表示迁移脚本配置或环境(如 Content Delivery Server 或 Oracle 服务器)出现问题。本节提供了一个错误消息列表,其中包含详细的错误描述和最可能的原因。可能会出现一系列错误消息,因为层叠模块将报告它们所运行的其他模块上出现的异常。请注意执行失败生成的所有错误消息以及与异常关联的消息。
注 - 以 IE . 开头的错误消息是内部错误消息。如果违反了代码假定条件,则会显示这些消息。此类情况可能表示数据库已损坏或迁移逻辑失败。您必须与支持部门联系以解决此类错误。 |
CONFIGURATION Exception!
描述:只要配置无效,就会出现此消息。此错误可能是由不正确的命令行选项或配置文件造成的。
Exception while running %sException from task %sThread %s failedDelaying abnormal exit due to running threadsException while parsing argumentsConfiguration exceptionVerification problemInitialization problemDB failure, query : %s, params %sMigration exceptionWhile executing SQL : %sException in bootstrap()Initialization failedSTEP %s FAILEDcmd process returned code %simport returned code %sMR ’%s’ interrupts due to pending exceptions !Exception while running shutdown task %sUnexpected null %s (%s)Thread stopped due to pending exceptionWhile processing edition %sExecution failed on matrix %s, prefix %s, matrix %sexception while parsing argumentsConfiguration error
VERIFICATION OF %s FAILEDVERIFICATION FAILEDTarget query returned no rowsSource query returned no rowsExceeded allowed number of failures (%s) for column %sFAILED verification of %sCounters don’t match for prefix %s, table %s. Expected: %s, found: %sTarget query returned no row for %s,PK %sVerification failed while comparing column %s, at primary key %s
操作:检查迁移输出以确定验证失败的实际原因并识别发现故障的表。请与支持部门联系,以确定更正该问题需要执行哪些操作。
Failed to login to source database as catalog owner userFailed to find vending user %s from %sServer code must be specifiedOperation can be either read OR writeServer type must be either catalog OR vendingoperation can be ’read’ or ’write’ only, and must be specifiedserver type can be ’catalog’ or ’vending’ only, and must be specifiedvending code myst be specified for ’vending’ server typeError parsing configuration file %sExpected root ’dbmigration’ elementcode attribute must be set and not empty for <server> tagFound two or more <server> elements with code %sServer code ’%s’ was not found in config fileVending code ’%s’ not found in configuration for server ’%s’Catalog event source ’%s’ is not definedMultiple <catalog> tags for server code ’%s’Multiple <label> tags for server code ’%s’Multiple <vending> tags with the same code ’%s’ found for server code ’%s’Source database config must be specifiedTarget database config must be specifiedCan’t read source database configuration file ’%s’Can’t read target database configuration file ’%s’Can’t find configuration file %sNo deployment name specified for the <catalog> tagDeployment ’%s’, directory ’%s’, can not be read or is not a directoryCannot access deployment configuration file ’%s’Expected property file (%s) does not exist<vending> tag must have ’code’ attribute present and not emptyNon directory specified for search %s<event_pk> tag should contain valid long value, got:%sValid pricing option name should be specified in <change_option_price> elementValid new price should be specified for <change_option_price> element<source_account> tag expected for <vending code="%s">No location specified for the labelFailed to find deployment file %smin attribute value is not a numbermax attribute value is not a numberNo value specified for coverage elementcoverage value is not a double number : %scoverage value must be in range of [0..100]Unknown size character %s in <max_file_size> tagbad file size specified in <max_file_size> : %sbad integer specified in <max_index> : %sCannot find SOURCE vending schema %sCannot find SOURCE event schema %sFailed to create directory %s%s exists and not a directory%s already populated. Verify you don’t need existing data and remove this pathLabel %s does not existLabel %s is not a directoryPath %s does not exist. Are you sure %s was created ?%s is not a directoryPreparation for %s was not completed successfullyThis migration step was already successfully completed. If you are sure you would like to retry it, remove the following file: %sDirectory is not writeable: %sCannot find target vending schema %s, in %Cannot find SOURCE catalog schema %sCannot find SOURCE fuilfillment schema %sCannot find target catalog schema %sNo vending server %s found in the databaseMore than one vending server %s found in the databaseCan’t establish connection as a system user. Does DBConf have SystemUser and SystemPassword tags ?
The catalog data has not yet been submitted to the database. You must complete catalog migration before doing this step
操作:按本指南中指定的顺序执行迁移步骤。有关详细信息,请参见第 4 章。
DATA file doesn’t exist for %s:%sDUMP file doesn’t exist for %s:%s(%s)Expected to find constraints file %sAt least one record expected to be updated for %s
操作:确保在执行不同迁移步骤之间没有对标签目录进行任何修改。如果问题仍然存在,请与支持部门联系。
migration is installed incorrectlyUnknown CDS DB version %sSource Database versions mismatch : found %s, expected %s
描述:很可能是由于未正确安装 Content Delivery Server 或迁移修补程序造成的。
操作:确保安装完好,并且正确安装了所有迁移修补程序。如果问题仍然存在,请与支持部门联系。
export process failed on %sFailed import for %s_%sIMPORT process did not leave or left an empty log file ’%s’%s failed (sqlldr rc is %s)%s sqlldr did not leave log file. This means id had not done anything
操作:在跟踪文件中检查相应外部进程生成的消息。检查位于标签目录中的外部进程日志文件。出现这些错误通常是因为,未设置 ORACLE_HOME 变量或者 PATH 变量不包含 Oracle 二进制文件目录的路径。如果无法确定故障的根本原因,请与支持部门联系。
其他错误消息通常表示迁移程序代码中存在问题。您可能需要与客户支持部门联系以解决该问题。大多数情况下,这些错误是由于意外数据库状态或定制服务器环境造成的。请确保为客户支持部门提供日志文件和跟踪文件。如果提供标签目录内容以及导出的迁移数据库,则也会对问题解决有所帮助。
如果出现警告消息,则表明迁移过程中解析的数据库中出现异常情况。
Interrupted while waiting for process output
描述:提交到 Oracle 服务器的 SQL 查询返回警告消息。
Unknown tag %s found within tag %sNo tags are expected within tag ’%s’
Terminating task due to pending exceptionsTerminating thread due to pending exceptionsExiting due to external error conditions, destroying current process
描述:正在执行的线程在其他线程上检测到异常。此消息用于通知您未完成当前任务。迁移将由于线程收到原始异常而失败。还会显示错误消息或其他消息。
Missing entry with primary key %s in table %s
描述:将 BLOB 条目装入数据库的进程发现,源数据库中存在一条包含 BLOB 的记录,但目标数据库中却没有该记录。
Null capability id 16 for one of the derived editions of edition %s.Poorly formatted capability value for id 16, for one of the derived editions of edition %s : %s.Edition %s has different capability value for capability %s. Old=%s, New=%s.
描述:数据库包含某一版本的支持设备功能的错误记录,或根本不包含任何记录。这表示数据库可能已损坏。
Inconsistency in LCM table, found a mix of temporary/final records
描述:用于生成新 LARGE_CAPABILITY_MAP 表的逻辑无法生成所需的记录集。
Model to instance mapping count doesn’t match expectations. Expected : %s, found %s
Source fulflilment_request table reports %s entries per this vending account. %s entries, however, were copied from the source database. Absolute delta : %s%s entries must be deleted from SUBSCRIBER_GIFT table. Actually deleted %s entries from SUSBCRIBER_GIFT table%s entries must be deleted from SUBSCRIBER_PURCHASE table. Actually deleted %s entries from SUBSCRIBER_PURCHASE table.
描述:迁移期间在 FULFILLMENT_REQUEST 表中检测到不一致问题。当该表中的记录与 SUBSCRIBER_PURCHASE 和 SUBSCRIBER_GIFT 表中的所有记录不匹配时,通常会出现这一问题。
Category item %s has no instrumented editions
描述:在重新提交此版本时,提交工作流不生成任何测试版本。出现此错误很可能是因为,此内容不再适用于任何现有设备。
操作:检查相应的内容项及其所有版本,以确定其重新提交失败的原因。
Category item %s will be deleted as there are other category items for class %sCategory item %s is marked ’Unstocked’ as there are no other category items for class %s
描述:在 Vending Manager 数据库的类别项处理期间,包含这些类别项的类具有不再可储存的版本。迁移将删除所有此类版本,直至仅剩下一个版本。然后,将该版本标记为“取消储存”,因为在售卖数据库中必须至少有一项表示内容类。
Target query returned no rows for ’%s’, PK %s
描述:验证要求存在于源数据库中的所有行在目标数据库中也存在,不过,验证表指示如果这些行不存在,这种情况并不是致命的。此错误通常表示,在迁移期间由于数据损坏而忽略此表中的某些行。
Deployment implements different migration version that does core migration code. Developer portal version: %s, core version : %s
描述:可能未正确配置迁移文件,这可能是由于应用的迁移修补程序不正确造成的。请检查所有应用的修补程序的说明,以验证是否正确按照这些说明进行了操作。
操作:如果无法通过重新应用迁移修补程序来解决该问题,请与支持部门联系。
Edition %s doesn’t have content data
描述:在将指定的版本传送到验证工作流时,验证将拒绝该版本。数据库仍存储原始版本,但不会创建任何衍生版本。
操作:检查相应的内容项及其所有版本,以确定其重新提交失败的原因。
Edition %s doesn’t have any devices matched to it.
描述:在进行验证后,无法确定该版本是否适用于任何当前已知设备。如果在重新测试过程中更改了设备配置文件或版本,该版本可能不再适用于任何设备。
本节提供的信息可帮助您解决在迁移 Content Delivery Server 数据库时可能遇到的问题。
目录服务器的标签内容位置为 label_dir/catalog。售卖服务器的位置为 label_dir/vending/target_vending_name。
如果任何写入步骤在迁移期间失败,数据库可能会处于部分填充状态。在尝试重新运行写入步骤之前,您需要重新对其进行初始化。要重新初始化数据库,请结合此处给出的修改使用第 1 章的初始迁移步骤中所述的 cdsi db 命令。
如果目录写入步骤失败,则必须重新对整个数据库执行初始化。要重新初始化整个数据库,请运行以下命令:
在运行 cdsi db users 命令之前,请确保所有软件均未打开到任何数据库前缀的连接。您可以将定制数据库配置文件指定为 cdsi 命令的第三个参数。
如果目录写入步骤失败,您只需重新初始化受影响的目录数据库,而将其他售卖数据库和目录数据库保持不变。要重新初始化目录数据库,请运行以下命令:
如果售卖写入步骤失败,您只需重新初始化受影响的售卖数据库,而将其他售卖数据库和目录数据库保持不变。要重新初始化售卖数据库,请运行以下命令:
# cdsi db schemas_noc -vs name
name 是需要重新初始化的 Vending Manager 服务器的名称(用于 Content Delivery Server 版本 5.1 的服务器)。
如果在失败的写入步骤后无法清除相应的数据库,则可能会导致在重复执行写入步骤时出现不一致的行为。数据库迁移可能无法检测到此类行为。如果迁移的处理时间特别长,则显然是出现这种行为。最终结果是迁移永远也不会完成。
要检测该问题,请将跟踪程序连接到导入进程以查看其是否正确执行。正确的执行过程包括一系列读取和写入系统调用。如果在一分钟内未发出系统调用,则说明导入进程存在问题,并且必须中止迁移。
请注意,在中断进程时,并非终止迁移过程所产生的所有进程。系统管理员可以识别此类进程并手动将其终止。这些进程可以是 Oracle 导入或导出程序,也可以是 Oracle SQL 加载器程序。即使被手动终止后,进程仍可以将其 Oracle 数据库服务器连接保持为打开状态。如果打开了这些连接,则会禁止使用 cdsi db 命令重置相应的数据库。有关如何关闭打开的会话的信息,请参阅 Oracle 文档。
版权所有 © 2008 Sun Microsystems, Inc. 保留所有权利。