• 数据库的备份与恢复


      数据库的备份与恢复是对数据库操作的基本要求,从新学习一下数据库备份与恢复。

    数据的备份的范围可以是完整的数据库、部分数据库或者一组文件或文件组,一般对于SQL Server来说都支持完整备份和差异备份。

    完整备份:包括特定数据库(或者一组特定的文件组或文件)中的所有数据,以及可以恢复这些数据的足够的日志。

    差异备份:基于数据的最新完整备份。这称为差异的基准或者差异基准。差异基准是读/写数据的完整备份。差异备份仅包括自建立差异基准后发生更改的数据。通常,建立基准备份之后很短时间内执行的差异备份比完整备份的基准更小,创建速度也更快。因此,使用差异备份可以加快进行频繁备份的速度,从而降低数据丢失的风险。通常,一个差异基准会由若干个相继的差异备份使用。还原时,首先还原完整备份,然后再还原最新的差异备份。

    1、创建完整数据库备份
    完整数据库备份应在单个操作中创建,并通常计划为按设定的间隔执行。

    创建完整数据库备份所要求的 BACKUP语法是:

    BACKUP DATABASE database_name TO backup_device

    1、数据库备份到磁盘

    'C:\AdventureWorks.Bak'
    USE AdventureWorks
    GO
    BACKUP DATABASE AdventureWorks
    TO DISK = 'C:\MSSQL\BACKUP\AdventureWorks.Bak'
       WITH FORMAT,
       NAME = 'Full Backup of AdventureWorks'
    GO
    -- Optionally, create a logical backup device,
    -- AdventureWorks_Backup, for this backup file.
    USE master
    EXEC sp_addumpdevice 'disk', 'AdventureWorks_Backup',
    'C:\MSSQL\BACKUP\AdventureWorks.Bak'

    2、数据库备份到磁带

    USE MyAdvWorks
    GO
    BACKUP DATABASE MyAdvWorks
       TO TAPE = '\\.\Tape0'
       WITH FORMAT,
       NAME = 'Full Backup of MyAdvWorks'
    GO
    -- Optionally, create a logical backup device,
    -- AdventureWorks_Backup, for this backup tape.
    USE master
    GO
    EXEC sp_addumpdevice 'tape', 'MyAdvWorks_Bak', '\\.\tape0'

    2、创建数据库差异备份(创建数据库差异备份前要对数据库备份,否则不能创建数据库差异备份)

    -- Create a full database backup first.
    BACKUP DATABASE MyAdvWorks
       TO MyAdvWorks_1
       WITH INIT
    GO
    -- Time elapses.
    -- Create a differential database backup, appending the backup
    -- to the backup device containing the full database backup.
    BACKUP DATABASE MyAdvWorks
       TO MyAdvWorks_1
       WITH DIFFERENTIAL
    GO

    3、还原数据库、还原差异备份的数据库

      1)还原完整的数据库

           USE master
    GO
    RESTORE DATABASE AdventureWorks
       FROM TAPE = '\\.\Tape0'-------数据库备份
    GO

    2)还原差异备份的数据库

         (1)执行 RESTORE DATABASE 语句并指定 NORECOVERY 子句,以还原在差异数据库备份之前执行的完整数据库备份(完整备份见上)

         (2)执行 RESTORE DATABASE 语句以还原差异数据库备份


    RESTORE DATABASE MyAdvWorks
       FROM MyAdvWorks_1
       WITH NORECOVERY
    GO


    RESTORE DATABASE MyAdvWorks
       FROM MyAdvWorks_1
       WITH FILE = 2,
       RECOVERY
    GO

  • 相关阅读:
    Git编译安装
    ES集群
    索引、分片以及副本的数量和大小原则:
    初识ELK
    zabbix自定义监控项没权限读取文件问题
    Zabbix的图形界面中文变成□□问题
    logrotate
    rsync
    Linux下的mail指令
    nohup
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1806843.html
Copyright © 2020-2023  润新知