肥罗ing 2022-12-19 16:13 采纳率: 33.3%
浏览 11

sqlserver高版本还原到低版本出现引发类型为“System.OutOfMemoryException”

sqlserver2014版本还原数据库到2012版本时出现如图问题,大概11个G,记事本的方法不行;sqlcmd我试了,只有表名,没有数据,相当于空壳子,还有什么办法呢

img

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2022-12-19 16:23
    关注

    ChatGPT尝试为您解答,仅供参考
    在尝试还原数据库时出现 System.OutOfMemoryException 错误可能是因为 SQL Server 在进行恢复操作时内存不足。有几种方法可以尝试解决这个问题:

    • 尝试使用以下命令来释放内存:

      DBCC FREESYSTEMCACHE ('ALL')
      DBCC FREESESSIONCACHE
      DBCC FREEPROCCACHE
      
    • 尝试在进行还原操作之前停止所有不必要的服务,以减少对内存的占用。

    • 尝试使用 RESTORE DATABASE 命令的 WITH MOVE 选项来指定新的数据和日志文件的位置,这样可以避免将数据加载到内存中。

    • 尝试使用 SQL Server Management Studio 的还原向导来进行还原操作,它可能会更加友好。

    如果以上方法都无法解决问题,则可能需要增加服务器的内存。


    对于使用 sqlcmd 还原数据库而只得到了表名的问题,可能是因为您使用的命令不完整。还原数据库需要使用 RESTORE DATABASE 命令,具体语法如下:

    RESTORE DATABASE <database_name>
    FROM <backup_device>
    WITH <options>;
    

    其中, 是要还原的数据库的名称, 是备份设备的名称, 是可选的命令选项。例如,如果要从备份文件 C:\backups 中还原数据库 mydatabase,可以使用以下命令:

    RESTORE DATABASE mydatabase
    FROM DISK = 'C:\backups\mydatabase.bak'
    WITH REPLACE;
    

    注意:在还原数据库之前,请确保您有足够的权限来进行操作,并且确保备份文件是有效的。还可以使用 WITH MOVE 选项来指定新的数据和日志文件的位置。


    例如,如果要将数据文件移动到 C:\mydatabase\data 目录,并将日志文件移动到 C:\mydatabase\log 目录,可以使用以下命令:

    RESTORE DATABASE mydatabase
    FROM DISK = 'C:\backups\mydatabase.bak'
    WITH MOVE 'mydatabase_Data' TO 'C:\mydatabase\data\mydatabase.mdf',
    MOVE 'mydatabase_Log' TO 'C:\mydatabase\log\mydatabase.ldf'
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥60 求部署一个微信小程序(有代码)
  • ¥15 dir815漏洞反弹shell失败
  • ¥50 python for 循环速度慢
  • ¥15 CubeMX生成的代码用keil编译有报错
  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制