mssql 数据库与日志的备份 与还原

MySQL 日志及数据备份 阅读详情

在使用数据库的过程中,及时的进行数据库的备份工作是很有必要的。

笔者在维护数据库的过程中, 遇到几次意外的数据库丢失, 幸好有及时的备份, 才使用的applicatio没有受到较大的影响。

针对 MSSQL 2000, 我们有log explorer之类的工具,可以帮助备份与恢复数据库, 但是这个比较的耗资源。

本身SQLSERVER 还提供了一组命令BACKUP来进行同行的工作, 本文来描述一下这个命令的使用的语法。 更多的信息,请参考MSDN

一、 备份

对整个数据库进行备份 :

BACKUP DATABASE { database_name | @database_name_var } 
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

对特定的文件或者是文件组进行备份

BACKUP DATABASE { database_name | @database_name_var } 
 <file_or_filegroup> [ ,...n ] 
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

对事务日志进行备份

BACKUP LOG { database_name | @database_name_var } 
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { <general_WITH_options> | <log-specific_optionspec> } [ ,...n ] ]
[;]

下面就来对上面的具体的参数进行描述:

首先是备份的地方:backup_device, 可以是逻辑磁盘也可以是物理磁盘。

逻辑磁盘主要是针对做SAN或者是磁盘阵列的,可以映射到某个具体的物理磁盘,或者 直接就是物理磁盘。 

<backup_device>::= 
 {
   { logical_device_name | @logical_device_name_var } 
 | { DISK | TAPE } = 
     { 'physical_device_name' | @physical_device_name_var }
 } 

其次,当备份特定的文件或者是文件组的时候, 文件或者文件组就是当前数据库使用的文件或者文件组, 

<file_or_filegroup>::=
 {
   FILE = { logical_file_name | @logical_file_name_var } 
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 } 


还有就是 WITH 选项

1) 通用的with选项

<general_WITH_options> [ ,...n ]::=--Backup Set Options
   COPY_ONLY 
 | { COMPRESSION | NO_COMPRESSION } 
 | DESCRIPTION = { 'text' | @text_variable } 
 | NAME = { backup_set_name | @backup_set_name_var } 
 | PASSWORD = { password | @password_variable } 
 | { EXPIREDATE = { 'date' | @date_var } 
        | RETAINDAYS = { days | @days_var } } 

COPY_ONLY: 指定备份为“仅复制备份”,该备份不影响正常的备份顺序. 用于执行特殊目的的备份,例如在进行联机文件还原前备份日志

{ COMPRESSION | NO_COMPRESSION }: 指定些备份是否压缩, 2008才有备份压缩。

NAME:  指定备份集的名称

{ EXPIREDATE = 'date'| RETAINDAYS = days }:指定允许覆盖该备份的备份集的日期。如果同时使用这两个选项,RETAINDAYS 的优先级别将高于 EXPIREDATE。

2) 介质选项

{ NOINIT | INIT }控制备份操作是追加到还是覆盖备份介质中的现有备份集。默认为追加到介质中最新的备份集

NOINIT:表示备份集将追加到指定的介质集上,以保留现有的备份集,此选项是默认的

INIT:

指定应覆盖所有备份集,但是保留介质标头。如果指定了 INIT,将覆盖该设备上所有现有的备份集(如果条件允许)。默认情况下,BACKUP 将检查下列条件,如果其中的任一条件存在,都不会覆盖备份介质:

  • 所有备份集都未过期。

  • 如果 BACKUP 语句给出了备份集名,则该备份集名与备份介质上的名称不匹配

{ NOFORMAT | FORMAT }

指定是否应该在用于此备份操作的卷上写入介质标头,以覆盖任何现有的介质标头和备份集。

NOFORMAT

指定备份操作在用于此备份操作的介质卷上保留现的有介质标头和备份集。这是默认行为。

FORMAT

指定创建新的介质集。FORMAT 将使备份操作在用于备份操作的所有介质卷上写入新的介质标头。卷的现有内容将变为无效,因为覆盖了任何现有的介质标头和备份集。

笔者使用的是每周一完整备份, 其余每天差异备份。

完整备份

差异备份:


对master, msdb 和model DB,要进行每天的备份



二、还原

还原使用 BACKUP 命令所做的备份。

  • 基于完整数据库备份还原整个数据库(完整还原)。

  • 还原数据库的一部分(部分还原)。

  • 将特定文件或文件组还原到数据库(文件还原)。

  • 将特定页面还原到数据库(页面还原)。

  • 将事务日志还原到数据库(事务日志还原)。

  • 将数据库恢复到数据库快照捕获的时间点。

1)  完整还原

RESTORE DATABASE { database_name | @database_name_var } 
 [ FROM <backup_device> [ ,...n ] ]
 [ WITH 
   {
    [ RECOVERY | NORECOVERY | STANDBY = 
        {standby_file_name | @standby_file_name_var } 
       ]
   | ,  <general_WITH_options> [ ,...n ]
   | , <replication_WITH_option>
   | , <change_data_capture_WITH_option>
   | , <service_broker_WITH options> 
   | , <point_in_time_WITH_options—RESTORE_DATABASE> 
   } [ ,...n ]
 ]
[;]

2) 还原特定的页面

RESTORE DATABASE { database_name | @database_name_var } 
   <file_or_filegroup> [ ,...n ]
 [ FROM <backup_device> [ ,...n ] ] 
   WITH 
   {
      [ RECOVERY | NORECOVERY ]
      [ , <general_WITH_options> [ ,...n ] ]
   } [ ,...n ] 
[;]

3)从snapshot还原

RESTORE DATABASE { database_name | @database_name_var } 
FROM DATABASE_SNAPSHOT = database_snapshot_name 


MSSQL_事務日誌已滿,因為發生Log_Backup 日誌檔案滿 是我們很多數據庫都常遇見的一個問題(主要原因是很多舊的數據庫服務模式已經固定,修改起來有難度)。 對於短時間內無法修改的數據庫 : 建議是在數據庫備份完成之後直接執行日誌壓縮,這可以有效的騰出磁盤空間 對於新建的數據庫盡量做到: 每張表設有 Remark(備註),IsEnable(該筆資料是否可視),Inst_DateTime(數據插入的時間),Update_DataTime(該數據修改、更新的時間) 用於後續維護 少使用 trancate 語句,最好有可以依據 Update_DataTime 阅读详情

相关推荐

SQLServer 差异备份如何还原、维护计划实现数据库备份(策略实战)、SQL Server 尾日志备份

SQLServer 差异备份如何还原、维护计划实现数据库备份(策略实战)、SQL Server 尾日志备份

Java_c# 2379

MSSQL 事务日志备份

通过MQSQL 的事务日志备份可实时同步两台SQL SERVER服务器数据,下面介绍详细操作方法。   准备工作 1.在主服务器和备份服务器建立相同账号(BAKSQL)和密码,使它拥用user 及所有SQL组的权限 2. 更改SQLSERVER 及SQL 代理 服务启动账号更改为BAKSQL , 主服务器和目标服务器相同 3. 在目标服务器建立共享目录,用于保存事务日志文件 接收文件

Sky的专栏 2074

SQLServer数据库备份还原攻略

数据库还原 --> 选择设备 --> 点击 ... --> 备份介质类型:文件 --> 添加 文件 --> 找到备份的目录 --> 选择当天的完整备份文件.BAK 和 到目前为止的全部事务日志文件.TRN。选择完文件后,会呈现所选的所有文件的时间线,全部选中.也可以选择你期望的时间点(在最后一次事务日志备份之前的时间点--每小时备份一次,可以选择不同的时间点)每天频率:执行间隔:1小时,开始时间:0点,结束时间:23:59:59。在需要还原的数据库上右键-->任务-->还原-->数据库。

Jason51082006的博客 256

MSSQL 数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”

数据库运行以下sql。 解决方案 解决: 选择数据库–属性—选项—恢复模式–选择简单。 收缩数据库后,再调回完整 USE[master] GO ALTER DATABASE my_slaughter_wlw SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE my_slaughter_wlw SET RECOVERY SIMPLE --简单模式 GO USE my_slaughter_wlw GO DBCC SHRINKF

Poor - Because you have no ambition 1194

SQL Server备份与还原实战:从Windows整机备份到数据库日志恢复

数据安全是企业IT运维的基石,而备份还原则是保障数据不丢失的最后一道防线。面对硬件故障、勒索病毒与人为误操作等风险,仅靠复制文件远远不够,必须理解RPO/RTO指标并制定分层备份策略。本文从Windows Server系统级整机备份入手,讲解wbadmin命令与裸机恢复,再深入SQL Server的完整、差异、日志备份组合及恢复模式选择,结合实际事故复盘还原排查链路,并涵盖跨版本还原兼容性、尾日志备份与备份验证隔离等关键实践,帮助运维人员建立一套真正可落地的数据灾备体系。

weixin_29611239的博客 303

MSSQL数据库日志清理和备份工具.rar

使用C# winform窗体应用程序编写的仅供个人学习和参考的源码,分享给大家。 注意事项:如果需要修改数据,在列表中双击当前行可以修改。

MySQL数据库管理(五)日志管理、备份与恢复

目录一:MySQL日志管理 1.1日志的分类1.1.1错误日志1.1.2通用查询日志1.1.3二进制日志1.1.4中继日志1.1.5慢查询日志1.2配置日志1.2.1修改my.cnf配置文件1.2.2重启mysql服务1.3日志的查询二:MySQL备份与恢复2.1数据备份的重要性2.2数据备份的类型2.2.1从物理与逻辑的角度,备份可分为2.2.2从数据库的备份策略角度,备份可分为2.3常见的备份方法2.3.1物理冷备2.3.2专用备份工具mydump或者mysqlhotcopy2.3.3启动二进制日志进行

ver_mouth__的博客 866

mssql自动备份及自动清除日志文件服务器设置

数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。

Mssql数据库的备份还原与删除日志

帮互联代理平台还原model数据库先说说最终的解决办法吧:把bak文件还原得一个数据库,然后把这个数据库的mdf和ldf文件分别替换掉model数据库的model.mdf和modellog.ldf文件。试过如下的方法:1、直接拿bak文件来还原model数据库,虽然已经选中了强制还原,但系统还是一直提示要选中强制还原才能通过,郁闷!2、把bak文件还原出一个普通数据库,再把这个数据库备份为

fengsuiyuanzou的专栏 1216

Concentration Inequality(集中不等式)更新版

欢迎来我博客 https://wyue.name/2020/04/17/1/阅读这一篇博文 转载前请联系我,联系方式请见我博客 https://wyue.name/ Concentration inequality 刻画了一组随机变量的和(或者样本平均数)与其期望值的偏离程度,在算法收敛性分析过程中是非常有用的一类不等式。 这次主要总结一下最近一段时间遇到的集中不等式,不仅是不等式形式,...

Yue的博客 4554

Windows Server下OnlyOffice Workspace社区版安装避坑指南(含局域网邮箱配置)

本文详细介绍了在Windows Server环境下部署OnlyOffice Workspace社区版的完整流程,特别针对企业内网环境中的邮箱配置和端口冲突等常见问题提供了实用解决方案。通过硬件资源配置建议、软件环境检查清单以及内网邮箱系统搭建方案对比,帮助用户高效搭建企业级协作平台,实现团队协作的无缝对接。

weixin_29231263的博客 449

sqlserver 2022还原数据库(将结尾日志备份,去掉勾选)

数据库还原操作步骤及常见问题解决 右键选择"还原数据库"功能; 选择备份集并指定目标数据库名称,勾选相应备份集; 确认文件位置后点击【确定】时可能出现报错; 解决方法:切换至"选项"页,取消"结尾日志备份"的勾选; 完成上述操作后即可成功还原数据库。 常见报错可通过调整结尾日志备份选项解决,此方法简单有效。

花花鱼的专栏 764

从零到一:树莓派OpenWrt squashfs固件扩容背后的文件系统魔法

本文深入解析树莓派OpenWrt系统中squashfs固件的扩容原理与操作。通过理解squashfs与overlayfs的协同机制,掌握分区调整和文件系统扩容技巧,解决存储空间限制问题,提升设备可用性。

hadoop5ranger的博客 1037

sqlserver数据库备份与还原

一丶数据库备份BACKUP DATABASE {database_name | @database_name_var }  --数据库名TO &lt; backup_device&gt; [ ,...n ]  --备份到磁盘地址,bak格式是备份文件格式//各种属性 [ WITH    [BLOCKSIZE = { blocksize | @blocksize_variable } ]    [ ...

weixin_42326081的博客 3368

FPGA上的YOLOv8加速实现:从Verilog到高层综合

YOLOv8 采用了更高效的C2f模块与轻量化Backbone结构,模型特征包括:结构紧凑、检测头融合高低层特征;支持Anchor-free检测机制;支持INT8、FP16低精度推理;计算密度高,适合FPGA并行优化。

2501_93174773的博客 916

功率半导体器件选型指南:从GTO、GTR到MOSFET、IGBT的原理与应用

功率半导体器件是电力电子系统的核心,如同电路中的智能开关,负责电能的转换与控制。其工作原理基于半导体材料的导电特性,通过控制信号精确管理电路的通断。这类器件的技术价值在于提升能效、减小体积并增强系统可靠性,广泛应用于变频器、逆变器、开关电源及新能源领域。理解不同器件如MOSFET的雪崩能量与IGBT的损耗计算,是进行高效、可靠电路设计的基础。本文聚焦于GTO、GTR、MOSFET和IGBT这四类经典全控型器件的特性对比与选型策略,帮助工程师在具体项目中做出经济可靠的选择。

cumo7370的博客 446

MSSQL通用还原脚本

MSSQL还原脚本SQL Server通用还原脚本,只需修改第二步中,需要还原的数据库名称和路径执行完脚本后会生成对应的还原命令,直接新建查询后执行即可--2-InitializevariablesSET@dbName='Customer'SET@backupPath='D:\SQLBackups\' 脚本如下:--open--xp_cmdshell...

weixin_33863087的博客 326

Vue3项目实战:用vue-print-nb搞定多页表格打印(附样式不丢失解决方案)

本文详细介绍了在Vue3项目中,如何利用vue-print-nb插件解决Element Plus多页表格打印的样式丢失与分页错乱等核心难题。通过分离打印视图、编写专用CSS控制分页行为、以及深入理解浏览器打印原理,提供了一套从基础配置到高级技巧的完整企业级打印解决方案,确保打印输出专业可靠。

linux的博客 1232

SQLserver数据库实现异地备份与还原(完整备份,差异备份,事务日志备份)

环境 主机 IP windows1(SQLserver) 192.168.188.159 windows2(备份机器) 192.168.188.166 1.备份 1.windows2创建共享文件夹用于备份数据库 1.对文件夹Administrator用户具有读写权限 2.点击之后完成设置 3.在windows1打开文件夹,输入 \192.168.188.166\数据库备份 测试能否访问文件夹 2.配置完整备份 1.windows1 上打开SQLserver management

wuhao1468348557的博客 1万+

黑猫带你学UFS协议第2篇:UFS相关名词释义

本文依据UFSJEDEC3.1、个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,已加入原创保护,禁止私自转载。文章所在专栏《黑猫带你学UFS协议详解》

黑猫奥利奥的博客 5302

DeepSeek如何构建可扩展的 AI 驱动交易系统,基于 MetaTrader 5 与 Python 利用先进的数据处理、机器学习和容器化部署来优化算法交易。

MT5 Python API 架构设计分为三层:通信层:利用异步消息传递(例如 ZeroMQ 或标准套接字编程)支持每秒数万个数据请求。转换层: C++ 动态库有效地将 MT5 命令转换为 Python 对象(反之亦然),从而优化速度和内存使用率。接口层:提供Pythonic API,封装了所有终端功能,包括:1)实时价格订阅(滴答或秒级更新)2)历史数据检索(从M1到更高的时间范围)3)订单流监控(交易详情和市场深度)4)策略执行引擎(用于算法交易)

iCloudEnd的博客 1378

MSSQL Server 数据库备份还原常用SQL语句及注意

MSSQL Server 数据库备份还原常用SQL语句及注意1.备份数据库2.备份日志3.还原数据库4.数据库的离线和上线 1.备份数据库 backup database db_name to disk=‘d:\db_name.bak’ with format –通过使用with format可以做到覆盖任何现有的备份和创建一个新的媒体集。 –可以避免一些由于备份设置产生的错误. –帮助文档上的解释: –format指定应将媒体头写入用于此备份操作的所有卷。 –任何现有的媒体头都被重写。format选项

lddnzx的博客 1484

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SQLServer2008还原数据库3154错误解决方法

USE MASTER RESTORE DATABASE DB_DEMO FROM DISK = 'D:\DB_DEMO_backup.bak' WITH MOVE 'DB_DEMO' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\DB_DEMO.mdf', MOVE 'DB_DEMO_

thankplus 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

sqlserver备份还原丢失dbo_sqlserver数据库备份与还原语句

sqlserver数据库备份与还原语句--创建备份设备USE [master]GOEXEC master.dbo.sp_addumpdevice @devtype = N'disk', @logicalname = N'beifen', @physicalname = N'D:\beifen.bak'GO--完整备份到备份设备中BACKUP DATABASE [student] TO [bei...

weixin_32861907的博客 327

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原

--作业定时压缩脚本 多库批量操作 DECLARE @DatabaseName NVARCHAR(50) DECLARE @ExecuteSql NVARCHAR(MAX) SET @ExecuteSql='' DECLARE name_cursor CURSOR FOR SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'ma

深南大道 2009

MSSQL还原数据库脚本

RESTORE DATABASE TestDB20190515 FROM DISK=N'D:\Backup\TestDB_backup_201905150110.bak' WITH FILE=1,Replace,stats = 10, MOVE 'TestDB' TO N'D:\DB\TestDB_20190515.mdf', MOVE 'TestDB_Log' TO N'D:\DB\TestD...

ken_not的博客 859
上一篇: centos(8) wget resolving failed 解决方法
下一篇: mysql(3) 创建replication
php_boy
博客等级 码龄20年 11粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值