云数据库 RDS-通过SSMS恢复备份文件到自建数据库(SQL Server):常见问题

时间:2024-12-20 17:08:38

常见问题

问:下载的bak中找不到目标库,只有rdsadmin库可以恢复吗?

答:解决方法如下:

  1. 下载的备份文件里面有两个备份,第一个备份为rdsadmin,第二个为目标库test。
  2. 查看备份文件头信息。
    restore headeronly from disk='bak文件本地路径'
    图11 查看备份文件信息
  3. 查看内部文件信息。
    restore filelistonly from disk='bak文件本地路径'

    默认只读取第一个备份库的信息。

    图12 查看内部文件信息
  4. 如果需要读取第二个或者第三个库,需要加上with file,具体的值为restore headeronly得到的结果中的position的值。
    restore filelistonly from disk='bak文件本地路径' with file=2
    图13 查看其他库信息
  5. 恢复数据。
    图14 恢复数据
    USE [master]
    RESTORE DATABASE [@dbname]
    FROM DISK='@path'
    WITH FILE= @file
    MOVE '@logicalname1' TO '@filepath1'
    MOVE '@logicalname2' TO '@filepath2'
    NOUNLOAD, STATS=5
    GO
    • @dbname:库名。
    • @path:全备文件路径。
    • @file:数据库在bak文件中的位置,执行restore headeronly时获得的position的值。
    • @logicalname1:备份文件中的LogicalName,和新库的文件路径,LogicalName为执行restore filelistonly时获得的LogicalName的值。
    • @filepath1:物理文件存放在本地的路径。
    • @logicalname2:同@logicalname1。
    • @filepath2:同@filepath1。

    根据2获取到的恢复头信息,拼接到上述的SQL中,然后执行上述SQL进行恢复。

support.huaweicloud.com/usermanual-rds/rds_11_0055.html