首页 > Linux操作系统 > Linux操作系统 > SQL中数据备份总计(1)
--完全备份(备份数据库中所数据)
backup database pubs to disk = N'c:\a.bak'
--还原全备份
restore database pubs from disk = N'c:\a.bak'
--差异备份(指上次完全备份后,发生更改的数据)
backup database pubs to disk = N'c:\b.bak' with differential
--差异备份还原
--(1)还原全备份
restore database pubs from disk= N'c:\a.bak' with norecovery
--(上面命令还原全备后不做回滚打操作,以便做后续差异还原)
--(2)还原差异备份
restore database pubs from disk= N'c:\b.bak' with recovery
--注意这里的差异备份必须在最少完成了一次全备份的情况下,且上次全备份与当前备份的数据变化很大的情况下能进行;
--备份还原也必须在还原全备份的基础上还原
--日志备份(是指自上次备份后对数据库执行的所有事务的一系列记录.这里上次备份可指完全备份、差异备份、日志备份)
backup log pubs to disk = N'c:\log.bak'
--日志备份还原
--(1)还原全备份
restore database pubs from disk = N'c:\a.bak' with norecovery
--(2)如做了差异备份,则先还原差异备份
restore database pubs from disk = N'c:\b.bak' with norecovery
--(3)还原日志备份
restore log pubs from disk= N'c:\log.bak' with recovery
--数据文件或文件组备份
--在数据文件或文件组备份之前,要熟练掌握数据库的备份和还原方法、必须清楚数据库文件结构,否则还原操作往往会失败
--创建db数据库
create database db
on primary(
name = 'db_data',
filename ='d:\backup\db_data.mdf',
size = 500,
maxsize = 1000
),
filegroup db_fg1(
name = 'db_fg1_data',
filename = 'd:\backup\db_fg1_data.ndf',
size = 200,
maxsize = 500
),
filegroup db_fg2(
name ='db_fg2_data',
filename ='d:\backup\db_fg2_data.ndf',
size = 200,
maxsize = 500
)
log on
(
name = 'db_log',
filename = 'd:\backup\db_log1.ldf',
size = 200,
maxsize = 500
)
go
use db
--在不同文件组上创建表
create table tb_a
(
id int
)
create table tb_b
(
id int
)on db_fg1
create table tb_c
(
id int
)on db_fg2
go
--备份文件组db_fg1(文件组还原必须同时还原primary文件,故需要同时备份)
backup database db
filegroup = 'primary',
filegroup = 'db_fg1'
to disk = 'd:\backup\db_fg1.bak'
with format
go
use master
drop database db
--从文件组备份中恢复数据
restore database db
filegroup ='primary',
filegroup = 'db_fg1'
from disk = 'd:\backup\db_fg1.bak'
use db
select count(*) from db.dbo.tb_b
--注:在文件组还原后,容易导致出现odbc sqlstate:42000错误
--查询数据文件以及文件大小
restore filelistonly from disk='d:\backup\db_fg1.bak'
--物理备份和逻辑备份
--物理备份设备是操作系统用来标识备份设备的名称
--逻辑备份设备是用来标识物理备份设备的别名或公用名称
exec sp_addumpdevice
@devtype = N'disk',
@logicalname = N'pubs_backup',
@physicalname = N'd:\backup\pubs.bak'
--使用逻辑备份设备
backup database pubs
to pubs_backup
--使用物理备份设备
backup database puds
to disk = N'd:\backup\pubs.bak'
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20948385/viewspace-614802/ ,如需转载,请注明出处,否则将追究法律责任。