用sybase数据库文件如何恢复

时间:2021-02-14 22:26:08
我用的是SYBASE 11.9 ,现在有数据库文件和日志文件,也是用的SYBASE11。9
但忘记了虚拟设备号和数据库名称
请问如何恢复
谢谢

7 个解决方案

#1


---- 现 假 设 数 据 库 系 统 文 件 分 别 名 为mydb.db 和mydb.log。 如 果mydb.db 已 被 破 坏。 现 在 创 建 一 个 新 的 数 据 库, 假 设 文 件 分 别 名 为new.db 和new.log。 

---- 用Sybase 提 供 的dbtranw.exe, DB32W.EXE, rtsqlw.exe 等 实 用 程 序 来 完 成 恢 复 工 作, 步 骤 如 下 表。 

---- 步 骤 命 令 功 能 

---- 1. Dbtranw -r -k -y mydb.log db.sql 把.log 文 件 的 内 容 转 换 成 的 S Q L 语 句 

---- 2. Attrib -r mydb.db 修 改 只 读 文 件mydb.db 的 属 性 为 可 写 

---- 3. Attrib -r mydb.log 修 改 只 读 文 件mydb.log 的 属 性 为 可 写 

---- 4. Copy new.db mydb.db 用 新 的 空 库 文 件 覆 盖 被 破 坏 的 旧 库 文 件 

---- 5. Copy new.log mydb.log 用 新 的 日 志 文 件 覆 盖 旧 的 日 志 文 件 

---- 6. DB32W.EXE -d mydb.db 启 动 数 据 库SQL Anywhere 

---- 7. Rtsqlw  -q -c "userid=dba; password=sql" read db.sql 执 行 从.log 文 件 中 倒 出 来 的 S Q L 语 句 

---- 其 中 第 一 步 的 功 能 是 把 旧 的 日 志 文 件 转 换 成 S Q L 语 句, 并 放 在 一 个 名 为db.sql 的 文 件 中, 特 别 注 意 它 只 能 在 第 五 步 之 前 操 作, 否 则 日 志 文 件 会 被new.log 所 覆 盖, 而 导 致 无 法 恢 复 数 据。 最 后 一 步 的 功 能 是 从 文 件db.sql 中 读 取SQL 语 句 并 执 行, 假 设 数 据 库 的 用 户 名 为dba, 而 口 令 为sql。 有 关 各 个 命 令 及 参 数 据 的 更 详 细 的 用 法 可 以 查 看 相 应 的 帮 助。 在 此 提 醒 用 户 注 意:.log 文 件 不 能 随 便 删 除, 否 则 恢 复 的 数 据 就 不 完 整。

#2


dbtranw.exe, DB32W.EXE, rtsqlw.exe 这几个命令是SYBASE 11。9里的吗?我怎么找不到呢

#3


SybaseSQLAnywhere   数据库引擎:在SQLANY50\WIN目录下。
再找不到,你装个PB,在PB的目录下找找,你这里问题,我没有碰到过,只知道方法。。好吧,

#4


SybaseSQLAnywhere 怕是读不出来SYBASE 11。9的数据库吧??

我试试吧,谢谢你了

#5


我开始也在这么想,,但你还是试试吧,,就当作一种经验吧,别客气:-)

#6


救命

#7


up

#1


---- 现 假 设 数 据 库 系 统 文 件 分 别 名 为mydb.db 和mydb.log。 如 果mydb.db 已 被 破 坏。 现 在 创 建 一 个 新 的 数 据 库, 假 设 文 件 分 别 名 为new.db 和new.log。 

---- 用Sybase 提 供 的dbtranw.exe, DB32W.EXE, rtsqlw.exe 等 实 用 程 序 来 完 成 恢 复 工 作, 步 骤 如 下 表。 

---- 步 骤 命 令 功 能 

---- 1. Dbtranw -r -k -y mydb.log db.sql 把.log 文 件 的 内 容 转 换 成 的 S Q L 语 句 

---- 2. Attrib -r mydb.db 修 改 只 读 文 件mydb.db 的 属 性 为 可 写 

---- 3. Attrib -r mydb.log 修 改 只 读 文 件mydb.log 的 属 性 为 可 写 

---- 4. Copy new.db mydb.db 用 新 的 空 库 文 件 覆 盖 被 破 坏 的 旧 库 文 件 

---- 5. Copy new.log mydb.log 用 新 的 日 志 文 件 覆 盖 旧 的 日 志 文 件 

---- 6. DB32W.EXE -d mydb.db 启 动 数 据 库SQL Anywhere 

---- 7. Rtsqlw  -q -c "userid=dba; password=sql" read db.sql 执 行 从.log 文 件 中 倒 出 来 的 S Q L 语 句 

---- 其 中 第 一 步 的 功 能 是 把 旧 的 日 志 文 件 转 换 成 S Q L 语 句, 并 放 在 一 个 名 为db.sql 的 文 件 中, 特 别 注 意 它 只 能 在 第 五 步 之 前 操 作, 否 则 日 志 文 件 会 被new.log 所 覆 盖, 而 导 致 无 法 恢 复 数 据。 最 后 一 步 的 功 能 是 从 文 件db.sql 中 读 取SQL 语 句 并 执 行, 假 设 数 据 库 的 用 户 名 为dba, 而 口 令 为sql。 有 关 各 个 命 令 及 参 数 据 的 更 详 细 的 用 法 可 以 查 看 相 应 的 帮 助。 在 此 提 醒 用 户 注 意:.log 文 件 不 能 随 便 删 除, 否 则 恢 复 的 数 据 就 不 完 整。

#2


dbtranw.exe, DB32W.EXE, rtsqlw.exe 这几个命令是SYBASE 11。9里的吗?我怎么找不到呢

#3


SybaseSQLAnywhere   数据库引擎:在SQLANY50\WIN目录下。
再找不到,你装个PB,在PB的目录下找找,你这里问题,我没有碰到过,只知道方法。。好吧,

#4


SybaseSQLAnywhere 怕是读不出来SYBASE 11。9的数据库吧??

我试试吧,谢谢你了

#5


我开始也在这么想,,但你还是试试吧,,就当作一种经验吧,别客气:-)

#6


救命

#7


up