• Sqlserver 备份


    Transact-SQL   语法规则 
    Transact-SQL   引用中的语法关系图使用下列规则。 
    大写    : Transact-SQL   关键字。   
    斜体    : Transact-SQL   语法中用户提供的参数。   
    |          : 分隔括号或大括号内的语法项目。只能选择一个项目。   

    [   ]      : 可选语法项目。不必键入方括号。   

    {  }       : 必选语法项。不要键入大括号。   

    [,...n ]  : 表示前面的项可重复   n   次。每一项由逗号分隔。  

    [ ...n ]   表示前面的项可重复   n   次。每一项由空格分隔。   

    加粗     数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。

    BACKUP DATABASE [demoData] TO DISK=N'D:BackupdemoData.bak' WITH NOFORMAT, NOINIT,  NAME = N'demoData-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO

    < backup_device > ::=  --备份设备定义
        { 
            { logical_backup_device_name | @logical_backup_device_name_var }
            | 
            { DISK|TAPE } ={ 'physical_backup_device_name' | @physical_backup_device_name_var } -- 磁盘或者磁带上备份  DISK 或者 TAPE需要指定完整路径名

        }  < file_or_filegroup > ::=  --备份文件或文件组定义
        { 
            FILE = { logical_file_name | @logical_file_name_var } --指定包含在数据库备份中的文件或文件组的逻辑名。可以指定多个文件或文件组。
            | 
            FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }  --给一个或多个包含在数据库备份中的文件命名。

      --必须通过使用 BACKUP LOG 提供事务日志的单独备份,才能使用文件和文件组备份来恢复数据库。如果恢复模型为 SIMPLE,则不允许文件和文件组备份。
        }    

    备份完整数据库

    BACKUP DATABASE { database_name | @database_name_var }     --database_name 数据库名或@database_name_var 变量

    TO < backup_device > [ ,...n ]     --备份设备定义

    [ WITH                 --WITH 选项

        [ BLOCKSIZE = { blocksize | @blocksize_variable } ]  --物理块大小,BACKUP会自动选择适合该设备的块大小

        [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]      --描述备份集的自由格式文本

        [ [ , ] DIFFERENTIAL ]    --差异备份

        [ [ , ] EXPIREDATE = { date | @date_var }  --备份集到期,该日期必须复合已配置的系统的datetime格式

            | RETAINDAYS = { days | @days_var } ] --允许被重写日期。变量必须为整型

        [ [ , ] PASSWORD = { password | @password_variable } ]  --备份集密码,需提供密码才能对改备份执行任何还原操作

        [ [ , ] FORMAT      --指定应将媒体头写入用于此备份操作的所有卷。任何现有的媒体头都被重写;

            | NOFORMAT ]    --默认,媒体头不应写入所有用于该备份操作的卷中,并且不要重写该备份设备除非指定了 INIT。                                                    

        [ [ , ] { INIT --重写所有备份集,保留媒体头,当备份设置没有全部过期、备份集名和备份媒体上的名称不匹配、用SKIP选项时不重写备份媒体,如有密码则不写入媒体

            | NOINIT } ]  --默认设置,备份集追加到指定磁盘或磁带,以保留现有的备份集.                          

        [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ] --媒体集的自由格式文本

        [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]  --媒体集的媒体名

        [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] --媒体集密码

        [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]  --备份集的名称,不指定NAME则为空。

        [ [ , ] { NOSKIP  --默认行为,指示BACKUP语句检查媒体上所有备份集的到期日期,然后再允许它们被覆盖。

            | SKIP } ]        --禁止通过BACKUP语句执行的备份集过期和名称的检查,以防止备份集的覆盖。
        [ [ , ] { NOREWIND   --指定SQL Server将在备份操作后保持磁带打开状态。NOREWIND意味着NOUNLOAD,这些选项在单个BACKUP语句中是不兼容的

            | REWIND } ]   --默认值,指定SQL Server释放和倒带磁带。
        [ [ , ] { NOUNLOAD --指定在BACKUP操作后,磁带保持加载到磁带机上。

            | UNLOAD } ] --默认值,指定备份完成后磁带将自动倒带和卸载。
        [ [ , ] RESTART ] --从SQL Server 2008开始,没有任何效果。此选项被版本接受,与以前版本的SQL Server兼容。
        [ [ , ] STATS [ = percentage ] ] --每次其他百分比完成时显示一条消息,用于衡量进度。如果省略百分比,SQL Server会在每10%完成后显示一条消息

     备份特定文件或文件组

    BACKUP DATABASE { database_name | @database_name_var }

        < file_or_filegroup > [ ,...n ] 

    TO < backup_device > [ ,...n ] 

    [ WITH

        [ BLOCKSIZE = { blocksize | @blocksize_variable } ]

        [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]

        [ [ , ] DIFFERENTIAL ]

        [ [ , ] EXPIREDATE = { date | @date_var }

            | RETAINDAYS = { days | @days_var } ]

        [ [ , ] PASSWORD = { password | @password_variable } ]

        [ [ , ] FORMAT | NOFORMAT ]

        [ [ , ] { INIT | NOINIT } ]

        [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]

        [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]

        [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]

        [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]

        [ [ , ] { NOSKIP | SKIP } ]

        [ [ , ] { NOREWIND | REWIND } ]

        [ [ , ] { NOUNLOAD | UNLOAD } ]

        [ [ , ] RESTART ]

        [ [ , ] STATS [ = percentage ] ] 

    ]

     备份事务日志

    BACKUP LOG [demoData_Log] TO  DISK = N'D:BackupdemoData_Log.bak' WITH NOFORMAT,NOINIT,  NAME = N'demoData_Log-Transaction Log  Backup',SKIP, NOREWIND,NOUNLOAD,STATS = 10
    GO

    BACKUP LOG { database_name | @database_name_var } 

    {     TO < backup_device > [ ,...n ]

        [ WITH

            [ BLOCKSIZE = { blocksize | @blocksize_variable } ]

            [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]

            [ [ ,] EXPIREDATE = { date | @date_var }

                | RETAINDAYS = { days | @days_var } ]

            [ [ , ] PASSWORD = { password | @password_variable } ]

            [ [ , ] FORMAT | NOFORMAT ]

            [ [ , ] { INIT | NOINIT } ]

            [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]

            [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]

            [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]

            [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]

            [ [ , ] NO_TRUNCATE ]  --指定日志未被截断,并导致数据库引擎尝试备份,而不管数据库的状态如何。此选项允许在数据库损坏的情况下备份日志。

                                                    --没有NO_TRUNCATE选项,数据库必须处于ONLINE状态。如果数据库处于SUSPENDED状态,则可以通过指定NO_TRUNCATE来创建备份。

                                                    --但是,如果数据库处于OFFLINE或EMERGENCY状态,即使使用NO_TRUNCATE也不允许BACKUP。

            [ [ , ] { NORECOVERY --备份日志的尾部,并将数据库保留在RESTORING状态。故障切换到辅助数据库或在RESTORE操作之前保存日志的尾部时,非常有用。

                 | STANDBY = undo_file_name } ] --备份日志的尾部,使数据库处于只读状态和待机状态。STANDBY子句写入备用数据(执行回滚,但可以进一步还原)。

            [ [ , ] { NOREWIND | REWIND } ]

            [ [ , ] { NOSKIP | SKIP } ]

            [ [ , ] { NOUNLOAD | UNLOAD } ]

            [ [ , ] RESTART ]

            [ [ , ] STATS [ = percentage ] ] 

        ]  } 

    截断事务日志

    BACKUP LOG { database_name | @database_name_var }
    {     [ WITH
            { NO_LOG  | TRUNCATE_ONLY } ]  } 

        --无须备份复制日志即删除不活动的日志部分,并且截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。

        --使用 NO_LOG 或 TRUNCATE_ONLY 备份日志后,记录在日志中的更改不可恢复。为了恢复,请立即执行 BACKUP DATABASE。

        --NO_TRUNCATE 允许在数据库损坏时备份日志。

  • 相关阅读:
    面向对象(2)
    毕业季面试题(7)
    面向对象(class0420)
    ASP.NET入门(class0612)
    数据结构与算法(二叉树)
    算法总结(2)数据结构
    毕业季面试题(6)
    常规页生命周期(class0620)
    (三) 语句
    (二) 运算符
  • 原文地址:https://www.cnblogs.com/oren/p/7513008.html
Copyright © 2020-2023  润新知