009_备份

--------------------------有四种备份方式-----------------------

--****************************************************

--1.完整数据库备份

--用BACKUP DATABASE命令备份

--例:BACKUP DATABASE教学管理TO W1 WITH INIT

--eg:

--完整数据库备份设备

exec sp_addumpdevice @devtype=N‘disk‘,@logicalname=N‘copy_test_back_data‘,@physicalname=N‘E:\copy_test_back_data.bak‘

--备份整个数据库

backup database test_back to copy_test_back with init

--注:{ NOINIT | INIT }

--控制备份操作是追加到还是覆盖备份介质中的现有备份集。默认为追加到介质中最新的备份集 (NOINIT)。

--****************************************************

--2.差异备份

--用BACKUP DATABASE命令备份

--例: BACKUP DATABASE 教学管理 TO W1 WITH DIFFERENTIAL

--eg:

--定义数据库备份设备

exec sp_addumpdevice @devtype=N‘disk‘,@logicalname=N‘copy_test_back_data‘,@physicalname=N‘D:\copy_test_back_data.bak‘

--备份整个数据库

backup database test_back to copy_test_back with init

--备份差异数据

backup database test_back to copy_test_back with differential

--****************************************************

--3.日志备份

--用BACKUP LOG命令备份

--例: BACKUP LOG 教学管理 TO L1 WITH INIT

--eg:

--****************************************************

--4.文件/文件组备份

--用BACKUP DATABASE命令备份

例: sp_addumpdevice ‘disk‘,‘WF‘,‘E:\SQLBF\BACKF.DAT‘

BACKUP DATABASE 教学管理

FILE=’ARCHDAT1’,FILE=’ARCHDAT2’

TO WF

BACKUP DATABASE 教学管理

FILEGROUP=’PRIMARY’

TO WF

--eg:

--创建备份设备---------------------------

--数据库备份设备

exec sp_addumpdevice @devtype=N‘disk‘,@logicalname=N‘copy_test_back_data‘,@physicalname=N‘E:\copy_test_back_data.bak‘

--日志备份设备

exec sp_addumpdevice @devtype=N‘disk‘,@logicalname=N‘copy_test_back_log‘,@physicalname=N‘copy_test_back_log.bak‘

--文件备份设备

--备份整个数据库

backup database test_back to copy_test_back with init

--差异备份

backup database test_back to copy_test_back with diffrential

--日志备份

backup log test_back to copy_test_back with init

--文件/文件组备份

backup database test_back FILE=N‘file1‘,FILE=N‘file2‘ to cppy_test_back

backup database test_back FILEGROUP=N‘file_‘ to copy_test_back

--------------------------有三种备份模型-----------------------

--简单恢复模式下的备份

--在完整恢复模式下备份

--在大容量日志恢复模式下备份

/*备份模型所需条件

数据库完整                       数据库差异     事务日志         文件或文件组

完全                   必需(或文件备份)     可选                   必需                   可选

大容量日志     必需(或文件备份)     可选                   必需                   可选

简单                   必需                                     可选                   不允许              不允许

*/

在SQL Server对于日志文件的管理,是将逻辑上一个ldf文件划分成多个逻辑上的虚拟日志文件(virtual log files,简称VLFs).

SQL Server创建数据库时,根据日志文件(ldf)的大小,生成VLF的数量公式如下。【1M-64M   4】【65M-1GB  8】【>1GB    16】

同时,对于日志文件的增长,SQL Server使用了和创建数据库时相同的公式,也就是每次增长比如为2M,则按照公式每次增长4个VLFs.

由此可以看出,指定合适的日志文件初始大小和增长,是减少日志碎片最关键的部分.

--查看虚拟日志文件相关信息

DBCC loginfo(test)

当针对数据库对象所做的任何修改保存到数据库之前,相应的日志首先会被记录到日志文件。这个记录会被按照先后顺序记录到日志文件的逻辑末尾,并分配一个全局唯一的日志序列号(log sequence number,简称LSN)

为了保障事物的原子性和持久性,SQL SERVER 采用wal(WRITE-Ahead logging)预写式日志技术来实现。核心思想:数据写入磁盘之前,先写入日志。

1、缓冲区写入begin TRAN

2、缓冲区日志页写入要修改的数据

3、缓冲区写入要修改的数据到数据页(被修改的数据页被称为‘脏‘页)

4、缓冲区写入commit

5、将数据写入日志文件

6、发送确认信息(ACK)到客户端(SMSS,ODBC等)

完成上述操作后,只是将日志写入日志文件了,缓冲区的数据其实还没有写入到磁盘,还需要经过checkpoint或lazy write这个步骤后,才会将数据写入磁盘

CHECKPOINT(检查点) 和 lazy write 的相同点和区别

相同点:两者都是将缓冲区的脏页写入到磁盘

不同点:checkpoint可通过checkpoint 60(60秒刷新一次)这个t-sql来修改其刷新频率。

checkpoint执行时,无论事物是否commit,都会将缓冲区的‘脏‘页写入磁盘,之后会将未commit的‘脏‘页回滚。

除了自动CheckPoint之外,CheckPoint还会发生在Alter DataBase以及关闭SQL Server服务器时。

lazy write是在内存达到一定临界时,将已缓冲区的‘脏‘页写入到磁盘,将未修改的页释放并回收资源。

通常情况下,将‘脏‘页写入磁盘的工作,Lazy Writer要做的比CheckPoint会多出许多。

通过指定CheckPoint后的参数,SQL Server会按照这个时间来完成CheckPoint过程,如果时间指定的短,则SQL Server会使用更多的资源优先完成CheckPoint过程。

更短的恢复间歇意味这更短的恢复时间和更多的磁盘IO,而更长的恢复间歇则带来更少的磁盘IO占用和更长的恢复时间.

SELECT * FROM sys.backup_devices

SELECT * FROM msdb..backupset

ALTER DATABASE TEST ONLINE

时间: 2024-11-03 20:50:00

009_备份的相关文章

WEB页面,WEB环境版本,数据库,整站备份脚本

#!/bin/bash # #WEB页面,WEB环境版本,数据库,整站备份脚本 #当发生某个原因导致整个服务器无法恢复时,利用上面备份的相关数据即可重做一台一样的服务器 date_a=`date +%Y%m%d-%H%M%S` mkdir -p /web_bak/${date_a}/conf &> /dev/null mkdir -p /web_bak/${date_a}/web &> /dev/null mkdir -p /web_bak/${date_a}/mysql &a

web网站升级备份脚本

#!/bin/bash # 一般web页面升级都是直接替换根目录下的对应文件,因此升级前备份对应的目录或者文件即可 web=/var/www/html #web根目录 dd="/data /admin /ps /css /bbs*" #web根目录下要备份的目录与文件,把要备份的目录或者文件,写入这个变量,可以使用*通配符. mkdir -p /web_bak &> /dev/null #创建备份所在的目录 for dd in $dd;do #列表循环 date_bak=

C# 备份、还原、拷贝远程文件夹

最近一直都很忙,非常抱歉好久没有写过博客了.最近遇到拷贝远程文件的一些工作,比如我们发布的web站点的时候,开发提供一个zip压缩包,我们需要上传到远程的服务器A,然后在部署(文件拷贝)到远程环境B和C,ABC都在一个局域网里面. 首先我们需要一个工具类来转换文件路径,本地地址与远程地址的转换 比如192.168.0.1上的D:\test 转换 为\\192.168.0.1\D$\test,文件路径的拼接, public class PathUtil { public static string

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA

mysql5.7 innodb数据库备份工具Xtrabackup的安装

mysql5.7 innodb数据库备份工具Xtrabackup的安装     wget mhttps://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.7-1.el6.x86_64.rpm Mysql5.7需要安装XtraBackup 2.4.1以上版本 官网地址 https://www.percona.com/down

bzoj1150 [CTSC2007]数据备份

Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣.已知办公楼都位于同一条街上.你决定给这些办公楼配对(两个一组).每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份.然而,网络电缆的费用很高.当地电信公司仅能为你提供 K 条网络电缆,这意味着你仅能为 K 对办公楼(或总计2K个办公楼)安排备份.任一个办公楼

mysql备份还原

先记录一下mysql的备份和还原指令: 备份使用mysqldump mysqldump test>e:\testback.sql test为所有备份的数据库 还原使用mysql指令 mysql> use test; Database changed 先切换到要还原的数据库下 mysql> source e:\testback.sql 还原数据库

rsync存储服务器-全网备份

一.rsync功能介绍: 复制 (同步)的工具 全量及增量 本地和远程 Rsync英文全称为Remotesynchronization 本地复制cp(全量备份),rsunc也有此功能(增量) 远程复制scp(全量备份),rsync也有此功能(增量) 删除工具rm,rsync也有此功能 二. Rsync的特性 支持拷贝特殊文件如链接文件,设备等 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能 可以做到保持原文件或目录的权限.时间.软硬链接.属主.组等所有属性均不改变  - p

【铜】第131篇 融合一对一canvas视频录制到备份上(二)简版做成及追加图片过程周四

关键词:一对一canvas视频录制, 简版做成,追加图片过程 一.一对一视频录制 1.1 往备份上布录制-----------------bug处理 现在不知道,网页录制都依赖哪些文件,现在需要一个一个的去除.现在去除差不多了,如下: 经过整理发现,仅仅需要两个文件,就能实现录制.如下: 简版访问地址如下: http://localhost:9001/record-canvas-drawings.html#no-back-button 二.追加图片过程 2.1 学生端追加拍照 <li><