必须使用 with norecovery 还原远程数据库
时间: 2023-08-28 20:02:15 浏览: 193
使用 WITH NORECOVERY 还原远程数据库是指在还原数据库时不恢复数据库,而是将其保持在非可用状态,这样可以继续进行其他还原操作。通常在进行数据库的备份和恢复过程中,我们将数据分为一个或多个备份集,其中每个备份集都包含了特定时间点的数据。
当我们需要还原一个远程数据库时,首先需要将数据库的备份传输到远程服务器。在远程服务器上进行还原操作时,我们可以使用 WITH NORECOVERY 选项。这样做的目的是在还原首个备份集时不恢复该数据库。在此期间,我们可以将更多的备份集继续还原到该数据库中。
在还原操作的最后一个步骤中,我们可以选择使用 WITH RECOVERY 选项来完成数据库的恢复,使其进入可用状态。当我们将数据库恢复到最近的备份集时,这是一个常见的做法。
使用 WITH NORECOVERY 还原远程数据库的好处在于:
1. 还原操作可以更灵活,我们可以在还原过程中继续添加更多的备份集,而不需要恢复该数据库。
2. 可以减少数据库恢复所需的时间,尤其是在远程服务器上操作时,可以节省网络带宽和时间。
总而言之,使用 WITH NORECOVERY 选项进行远程数据库还原是一种灵活而高效的方法,它允许我们将备份集逐一还原到数据库中,而不需要等待整个还原过程完成。这样可以节省时间和资源,提高数据库恢复的效率。
相关问题
sqlserver还原数据库设备
在SQL Server中,"设备"通常是指数据库文件的物理存储位置,特别是当你需要恢复一个备份到不同的磁盘位置时。还原数据库操作涉及到将数据库从备份文件恢复到服务器上,这可以分为几种情况:
1. **简单恢复模式**:在这种模式下,你可以使用`RESTORE DATABASE`命令,并指定`WITH REPLACE`选项来替换现有数据库,或者`NOREPLACE`保持现有数据库并添加新数据。
```sql
RESTORE DATABASE YourDatabase
FROM DISK = 'path\to\backup.bak'
WITH RECOVERY; -- 恢复到简单模式
```
2. **完整恢复模式**:如果数据库在完整恢复模式,你需要先备份当前日志文件,然后使用`RESTORE DATABASE`加上`WITH NORECOVERY`,接着用`BACKUP LOG`备份日志,最后再恢复数据库并完成恢复过程。
```sql
RESTORE DATABASE YourDatabase
FROM DISK = 'path\to\database.bak'
WITH NORECOVERY;
-- 备份并清理日志
BACKUP LOG YourDatabase TO DISK = 'path\to\log.bak';
RESTORE DATABASE YourDatabase
WITH RECOVERY;
```
3. **差异备份恢复**:如果你只对某些数据进行了差异备份,只需恢复差异部分即可。
```sql
RESTORE DATABASE YourDatabase
FROM DISK = 'path\to\database.bak'
WITH NORECOVERY,
DIFFERENTIAL = 'path\to\differential.bak';
RESTORE LOG YourDatabase
FROM DISK = 'path\to\log.bak';
WITH RECOVERY;
```
请注意,在还原数据库前,应确保备份是有效的,且目标服务器有足够的空间。同时,根据数据库的状态选择适当的恢复策略。
sqlserver中差异数据库还原语句
在 SQL Server 中,差异数据库还原是基于完整备份的增量还原。它涉及到两个步骤:
1. 还原完整备份:首先需要还原最近的完整备份,这将创建一个数据库的初始状态。
```sql
RESTORE DATABASE [DatabaseName] FROM DISK = 'C:\Backup\FullBackup.bak' WITH REPLACE, NORECOVERY;
```
2. 还原差异备份:接下来需要还原所有差异备份,这将把数据库带回最新状态。
```sql
RESTORE DATABASE [DatabaseName] FROM DISK = 'C:\Backup\DiffBackup_1.bak' WITH NORECOVERY;
RESTORE DATABASE [DatabaseName] FROM DISK = 'C:\Backup\DiffBackup_2.bak' WITH NORECOVERY;
-- 以此类推,一直还原到最新的差异备份
```
请注意,在还原差异备份时,必须使用 `WITH NORECOVERY` 选项。这将保持数据库处于恢复状态,以便您可以还原所有差异备份。
完成所有差异备份的还原后,您可以使用以下命令将数据库恢复为可用状态:
```sql
RESTORE DATABASE [DatabaseName] WITH RECOVERY;
```
这将使数据库处于可读写状态。
阅读全文