--问题描述:

--对数据库有一个周期性数据库备份和事务日志备份的维护计划,在维护计划外有工作人员对数据库进行完整备份,该备份会打乱现有的日志备份链么?

--==========================================================

--创建数据库

CREATE DATABASE BackupTestDB

GO

USE BackupTestDB

GO

--创建测试表

CREATE TABLE TB1

(

ID INT IDENTITY( 1,1 ) PRIMARY KEY,

ActionDesc NVARCHAR (200),

ActionTime DATETIME DEFAULT GETDATE()

)

--第一次完整备份

BACKUP DATABASE BackupTestDB TO DISK='G:\DBBackup\F1.BAK'

GO

--第一次完整备份后记录

INSERT INTO TB1( ActionDesc) SELECT N' 第一次完整备份后 '

GO

--第一次日志备份

BACKUP LOG BackupTestDB TO DISK ='G:\DBBackup\L1.BAK'

--第一次日志备份后记录

INSERT INTO TB1( ActionDesc) SELECT N' 第一次日志备份后 '

GO

--第二次完整备份

BACKUP DATABASE BackupTestDB TO DISK='G:\DBBackup\F2.BAK'

GO

--第二次完整备份后记录

INSERT INTO TB1( ActionDesc) SELECT N' 第二次完整备份后 '

GO

--第二次日志备份

BACKUP LOG BackupTestDB TO DISK ='G:\DBBackup\L2.BAK'

--第二次日志备份后记录

INSERT INTO TB1( ActionDesc) SELECT N' 第二次日志备份后 '

GO

--==========================================================

--还原方式

USE master

GO

--使用第一次完整备份恢复

RESTORE DATABASE BackupTestDB FROM DISK='G:\DBBackup\F1.BAK'

WITH NORECOVERY ,REPLACE

GO

--使用第一次日志备份恢复

RESTORE DATABASE BackupTestDB FROM DISK='G:\DBBackup\L1.BAK'

WITH NORECOVERY ,REPLACE

GO

--使用第二次日志备份恢复

RESTORE DATABASE BackupTestDB FROM DISK='G:\DBBackup\L2.BAK'

WITH RECOVERY ,REPLACE

GO

USE BackupTestDB

GO

SELECT * FROM TB1

还原方式

USE master

GO

--使用第二次完整备份恢复

RESTORE DATABASE BackupTestDB

FROM DISK ='G:\DBBackup\F2.BAK'

WITH NORECOVERY ,REPLACE

GO

--使用第二次日志备份恢复

RESTORE DATABASE BackupTestDB

FROM DISK ='G:\DBBackup\L2.BAK'

WITH RECOVERY ,REPLACE

GO

USE BackupTestDB

GO

SELECT * FROM TB1

--案例:

--有数据库DB1 ,该数据库由于长时间未做日志备份,导致数据文件为 GB,而日志文件有GB,为截断日志,工作人员对数据库进行完整备份 +日志备份,结果发现日志备份耗费大量时间,且生成的日志备份文件较大。

--解释:在数据库完成第一次完整备份后,第一次日志备份会以第一次完整备份为起始点开始备份日志,而后续的日志备份会以最近一次日志备份结束点为起始点开始备份,而不考虑最近一次完整备份。

--如果确认当前数据无问题同是想快速收缩日志文件,可以修改数据库恢复模式为简单模式,然后收缩日志文件,再进行完整备份 +事务日志备份

--建议:

--在DBA 维护过程中,会在维护计划外对数据库进行备份,备份应考虑当前维护计划,应该将备份文件存放到维护计划使用的目录下,尤其是对日志进行备份,如果不希望截断日志,可以使用 COPY_ONLY

Backup--完整备份会打破现有的日志备份链么?的更多相关文章

  1. MySQL完全备份脚本:数据+二进制日志+备份日志

    一. 脚本须知 1.mysql数据文件和二进制日志文件最好保存在不同的分区或存储设备上 2.备份完成后注意修改数据的权限以防止泄露重要信息,哪些主机哪些用户可以用来恢复 3. 查看导出的2进制日志文件 ...

  2. sql server 完整备份、差异备份、事务日志备份

    一. 理解: 完整备份为基础, 完整备份可以实物回滚还原,但是由于完整备份文件过大,对硬盘空间比较浪费这是就需要差异备份 或者 事务日志备份. 差异备份还原时,只能还原到备份的那个点, 日志备份还原时 ...

  3. 【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份

    在数据库管理中,数据库备份是非常重要的. 通过维护计划向导,可以很方便的完成数据库备份. 下面的例子说明了如何实现数据库的备份,具体的备份策略是:每周日一次完整备份.每天差异备份(除周日外).每小时日 ...

  4. sqlserver全备份,差异备份和日志备份

      差异备份是以上一个全备为基点,这个期间所有差异数据的备份. 日志备份是基于前一个全备+日志备份为基点,这个期间的事务日志的备份.(日志备份用于确保还原数据库到某个时间点)   在利用全备+日志备份 ...

  5. SQL SERVER完整、差异和事务日志备份及还原(脚本和GUI实现) [原创]

    一.完整备份.差异备份和事务日志备份的脚本 --完整备份数据库 BACKUP DATABASE Test_Bak TO DISK = 'E:\20150609_75\bak\Test_bak_full ...

  6. SQL SERVER BUG--Alwayson日志备份报错

    数据库版本 SQL SERVER 2012 企业版,版本号:11.0.5582.0 问题场景: 数据库配置Alwayson环境,同机房2节点同步自动切换+跨机房异步,在异步机房中选取同一节点做完整备份 ...

  7. mysql导出csv/sql/newTable/txt的方法,mysql的导入txt/sql方法...mysql备份恢复mysqlhotcopy、二进制日志binlog、直接备份文件、备份策略、灾难恢复.....................................................

    mysql备份表结构和数据 方法一. Create table new_table_nam备份到新表:MYSQL不支持: Select * Into new_table_name from old_t ...

  8. 日志备份和差异备份还原中的常见问题示例(转自&邹建)

    --创建测试 CREATE DATABASE db GO    --正常备份 BACKUP DATABASE db TO DISK='c:\1.bak' WITH FORMAT BACKUP LOG  ...

  9. SQL Server数据恢复——日志备份

    太坑了,我把数据给删了 “大坑啊,数据被我误删了.”从事数据库相关工作的过程中,我想应该很多人会有过和我一样的遭遇吧?尤其是在进行update或者delete操作的时候,忘记了where条件.这些毁灭 ...

随机推荐

  1. Python模块部分

    模块初识及正则表达式 Python re模块与正则表达式的运用 Python中常用模块一 模块和包

  2. Python中的列表生成式和多层表达式

    Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...

  3. cmder 设置

    添加到系统变量 windows10可直接使用小娜搜索环境变量,然后将Cmder.exe所在目录加入Path项即可.之后通过win+r输入cmder即可启动 添加到右键菜单 在管理员权限的命令窗口下(可 ...

  4. ICO流程,casestudy

    https://medium.com/crypto-oracle/ico-analysis-framework-nex-case-study-bf65586b4b32

  5. T-sql GroupBy语句常见问题处理

    1.问题描述 现在有一张course表(含课程编号和名称)和一张sc表(含学生学号,选修课程的编号以及考试成绩),如下:现在想要查询所有课程编号.对应的课程名称以及选修该课程的所有学生的平均成绩.一开 ...

  6. list count++

    AtomicInteger count = customTypeCounter.get(order.getCustomerType()); if (count == null) { count = n ...

  7. 约瑟夫问题的变种 LA3882

    题目大意: N个数排成一圈,第一次删除m,以后每k个数删除一次,求最后一被删除的数. 如果这题用链表或者数组模拟整个过程的话,时间复杂度都将高达O(nk),而n<=10000,k<=100 ...

  8. [模板]割点(tarjan)

    洛谷P3388 注意:记得tarjan的打法 注意割点的判断条件:子节点个数>2并且为根节点  当它不为根节点时并且low[to]>dfn[u] 判断时是在子节点未被记录的时候 #incl ...

  9. CentOS 7搭建FTP服务器

    安装vsftpd 命令:yum -y install vsftpd 修改ftp配置文件 命令:vim /etc/vsftpd/vsftpd.conf 按i进入insert模式后,按以下要求修改 ano ...

  10. 总结- H5项目常见问题汇总及解决方案(转)

    H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" co ...