Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2014完全备份并恢复到另一个数据库不恢复完整数据集_Sql Server_Database - Fatal编程技术网

Sql server SQL Server 2014完全备份并恢复到另一个数据库不恢复完整数据集

Sql server SQL Server 2014完全备份并恢复到另一个数据库不恢复完整数据集,sql-server,database,Sql Server,Database,很难为我的问题命名 基本上,我在托管服务器上有一个生产数据库。我有一个每天备份数据库的过程,然后我使用ftp将bak文件拉到内部服务器,然后我恢复数据库。当我在没有错误的情况下恢复今天的备份时,今天的事务(在主事务表中)不存在。只有62253行 因此,我在内部服务器上创建了一个测试数据库,并将备份恢复到该服务器。交易就在那里。61286行 所以备份很好。。。只是恢复工作不太正常。这是我从错误的恢复中得到的消息 已将数据库名称更改为XX 进程 还原XX 5%已处理。 10%已处理。 15%已处理。

很难为我的问题命名

基本上,我在托管服务器上有一个生产数据库。我有一个每天备份数据库的过程,然后我使用ftp将bak文件拉到内部服务器,然后我恢复数据库。当我在没有错误的情况下恢复今天的备份时,今天的事务(在主事务表中)不存在。只有62253行

因此,我在内部服务器上创建了一个测试数据库,并将备份恢复到该服务器。交易就在那里。61286行

所以备份很好。。。只是恢复工作不太正常。这是我从错误的恢复中得到的消息

已将数据库名称更改为XX

进程 还原XX 5%已处理。 10%已处理。 15%已处理。 20%已处理。 25%已处理。 30%已处理。 35%已处理。 40%已处理。 45%已处理。 50%已处理。 55%已处理。 60%已处理。 65%已处理。 70%已处理。 75%已处理。 80%已处理。 85%已处理。 90%已处理。 95%已处理。 100%已处理。 已处理文件16上数据库“XX”、文件“xy_1_数据”的21352页。 已处理数据库“XX”、文件16上的文件“XX”的13696页。 已处理文件16上数据库“XX”、文件“xy_1_log”的2页。 还原数据库在1.319秒(207.602 MB/秒)内成功处理了35050页

所以它看起来工作正常。。。这是我的恢复脚本

    ALTER DATABASE [XX] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

    ALTER DATABASE [XX] SET OFFLINE;

    RESTORE DATABASE [XX] FROM  DISK = N'D:\SQLBAK\XX.bak' WITH  FILE = 16,  MOVE N'xy_1_data' TO N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\xx_data.mdf',  MOVE N'xx' TO N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\xx_data2.mdf',  MOVE N'xy_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\xx_log.ldf',  NOUNLOAD,  REPLACE,  STATS = 5

    ALTER DATABASE [XX] SET ONLINE;

    ALTER DATABASE [XX] SET MULTI_USER;

    ALTER DATABASE [XX] SET RECOVERY SIMPLE 
所以我不确定这里的解决方案是什么

我应该转到增量备份和恢复吗?或者,我是否可以使用一个选项来确保完全恢复。。。我已经在使用替换

我是否应该每天删除并重新创建数据库。。。因为它在一个全新的数据库上正确地执行了完全恢复


提前谢谢

好的,我刚搞定。因为它是一个备份集。我实际上需要增加文件号。从磁盘=N'D:\SQLBAK\XX.bak'还原数据库[XX],文件=16。今天我需要使用FILE=19。所以现在我需要计算出bak文件中存在的最新文件号