【问题标题】:Restoring database from script从脚本恢复数据库
【发布时间】:2020-03-18 16:07:51
【问题描述】:

我创建了一个小脚本来从备份中恢复数据库。脚本运行后会显示

RESTORE DATABASE 在 1.568 秒内成功处理了 28818 个页面 (143.584 MB/秒)。

我有更多代码来更改数据库、更改一些视图和 sp,但我收到以下错误;用户无权更改数据库“GreyGoo”,数据库不存在,或数据库未处于允许访问检查的状态。

我也注意到我在对象资源管理器中看不到数据库

这是我用来从备份中恢复数据库的方法

  1. 如果 DB 存在设置为单个用户
  2. 如果数据库存在删除数据库
  3. 运行以下脚本
RESTORE DATABASE GreyGoo FROM DISK = 'C:\Bkp\GreyGoo_backup_2020_03_02_180002_5403592.bak'
WITH 
MOVE 'GreyGoo' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.mdf',
MOVE 'GreyGoo_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.ldf', 
REPLACE;
  1. 将数据库设置为多用户和其他属性

那么问题是什么,我该如何解决,我目前正在 SQL Server 2008 上测试我的代码

谢谢

【问题讨论】:

  • 仅仅因为您已恢复数据库并不意味着您可以访问它。如果您还原了一个数据库,而您使用的LOGIN 没有映射到它的USER,并且它没有sysadmin 权限,那么您将无法访问您还原的数据库。这是一个有意的功能。

标签: sql-server database-administration


【解决方案1】:

在恢复过程中,您需要确保您的

  1. 登录/权限正确。
  2. 如果以前没有同名的另一个数据库,则删除它。也许来自以前的尝试
  3. 您也可以像下面这样关闭恢复选项,恢复是默认设置
  4. 仅恢复文件列表

示例 -- MSDN

USE master;  
GO  
-- First determine the number and names of the files in the backup.  
-- AdventureWorks2012_Backup is the name of the backup device.  
RESTORE FILELISTONLY  
   FROM AdventureWorks2012_Backup;  
-- Restore the files for MyAdvWorks.  
RESTORE DATABASE MyAdvWorks  
   FROM AdventureWorks2012_Backup  
   WITH RECOVERY,  
   MOVE 'AdventureWorks2012_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',   
   MOVE 'AdventureWorks2012_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';  
GO  

【讨论】:

  • 我确实有系统管理员权限,尝试了恢复 FILELISTONLY 并且工作正常。谢谢
【解决方案2】:
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'MYDB'
GO
USE [master]
GO
/* Database [MYDB]  */
DROP DATABASE [MYDB]
GO

USE [master]
RESTORE DATABASE [MYDB] FROM  DISK = N'E:\FTP\local_MYDB_01.bak' WITH  FILE = 1,  MOVE N'blank' TO N'E:\DBs\2019\MYDB.mdf',  MOVE N'blank_log' TO N'E:\DBs\2019\MYDB.ldf',  NOUNLOAD,  STATS = 5
GO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多