您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

以强制恢复模式启动服务器

背景信息

如果您无法在 Multiplex 中启动服务器或数据库,则可能需要强制恢复。只有当正常数据库恢复无法将数据库恢复到运行状态并且您在恢复过程中看到 s_buf 或空闲列表错误时,才应使用强制恢复。切勿使用强制恢复来响应 SAP SQL Anywhere 错误,例如 SA 事务日志重放故障。

如果您遵循了文档所述的恢复过程,并且 SAP 技术支持部门建议进行强制恢复,请按照以下步骤操作:

过程

  1. 使用 stop_iq 关闭所有辅助节点。

  1. 使用 -iqfrec 和 -iqmpx_sn 1 标志启动服务器:start_iq -n my_server -x 'tcpip(port=7934}' -gd dba -gm 1 -iqmpx_sn 1 -iqfrec my_db /database/my_db.db

  1. 连接到服务器并运行:sp_iqcheckdb 'dropleaks database'checkpoint

  1. 更正错误并重新运行 sp_iqcheckdb。重复以上步骤,直到不产生错误为止。

  1. 正常关闭服务器并重新启动(不使用步骤 2 中的标志)。

    结果

    如果无法在强制恢复模式下启动服务器,请咨询 SAP 技术支持。

    示例:

    使用强制恢复但不后接 sp_iqcheckdb

    运行强制恢复可在有效但已完全分配的模式下启动数据库。换句话说,您应该可以进行一切操作,但未留下任何永久性主 dbspace。在进行其它任何操作之前,必须要么通过以 dropleaks 模式运行 sp_iqcheckdb 来恢复丢失的 dbspace,要么添加新的 dbspace。请注意,查询应该也会运行成功,因为它们不需要额外的永久性 dbspace;但不能装载、插入或删除数据。

    警告 在不验证数据库的情况下运行查询不会使数据出现任何不一致的情况。但是,如果数据中存在导致服务器出现故障的问题,则服务器可能会再次出现故障或生成不正确的结果。