数据库的备份与恢复(一)
其实里面没有什么新的内容,主要就是这两天翻了邹老大的第一本书里面的数据库备份与恢复一章,把里面的内容自己稍微总结一下,所以里面的主要内容主要还是邹老大的内容。如果邹老大认为有侵权行为,告诉我,我删掉这个blog。
一、数据库备份的与还原的四种发放
1、 完全备份:包含了指定数据库中的所有数据,生成的备份文件最大,需要处理的时间也最长。
2、 差异备份:指备份自上次完全备份,发生了更改的数据。在做差异备份前,必须至少有一次完全备份。
3、 事务日志备份:之备份自上次备份后对数据库执行的所有事务的一系列记录。这个上次的备份,可以是完全备份、差异备份或者日志备份。日志备份前,至少要有一次完全备份。
4、 文件和文件组备份:可以仅备份数据库中的某个特定数据文件或文件组,使用于把经常变化和不经常变化的数据分配到不同的文件组。
在一般进行备份时,会发现事务日志备份与文件和文件组备份不可用。那是因为在Sql
Server 2000中默认的恢复模型为简单恢复模型,是不允许使用事务日志备份、文件和文件组备份。只要吧恢复模型更改为完全或者大容量日志记录恢复模型后,这两种备份方式就可以使用了。参见下图。
注意:刚修改后,在备份模型这不能马上显示出来,需要等待一会方能显示出来。(心急是吃不了热豆腐的)
二、Master数据库的备份与还原
在SQL Server2000中,master数据库记录了整个系统级别的信息,还记录了所有的登录账户和系统配置设置。所以当创建或者删除用户数据库、添加登陆或者执行其他与登录安全有关的操作,创建或者删除备份设备等应该对master数据库进行备份。
1、备份:对于master数据库的备份与普通数据库相同。Backup database master to disk=’d:/master.bak’
2、恢复:master数据库的还原相对来说比较麻烦。
1)、master数据库损坏,那么需要重建master数据库,在microsoft sql server/80、tools/binn下运行rebuildm.exe,然后指定服务器名与数据文件目录
2)、master数据库没有损坏,那么恢复的时候,先要切换到单用户模式下启动server服务。首先,先停止mssqlserver服务;第二,在命令模式下,运行sqlservr.exe –c –m [-instancename],如果数据库使用的默认的实例名,那么就不用写实例名了。如果有实例名,那么实例名一定要写上,否则单用户启动模式启动不成功。第三,在查询分析器中运行恢复数据库的语句,restore databse master from disk =’d:/master.bak’。在登陆查询分析器的时候,会提示登陆失败,在这里不用管这个错误即可,单击‘否’即可。
三、用户数据库的备份与恢复
1、使用企业管理器:服务器组—>服务器—>数据库—>所有任务—>所有任务—>备份或者恢复数据库。在备份的时候需要先添加备份设备或者备份文件
2、完全备份:Backup database pubs to disk=’c:/完全备份.bak’
恢复:Restore database pubs from disk=’c:/完全备份.bak’
3、差异备份:Backup database pubs to disk=’c:/差异备份.bak’ with differential
恢复:1)进行完全恢复:
restore database pubs from disk=’c:/完全备份.bak’ with norecovery
2)进行差异恢复:
restore database pubs from disk=’c:/差异备份.bak’ with recovery
在进行第一步恢复的时候一定要指定with norecovery,否则会提示“
服务器: 消息 4306,级别 16,状态 1,行 1
先前的还原操作未指定 WITH NORECOVERY 或 WITH STANDBY。请在除最后步骤之外的所有其它步骤中指定 WITH NORECOVERY 或 WITH STANDBY 后,重新启动该还原序列。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。“错误。
4、日志备份:Backup log pubs to disk=’c:/日志备份.bak’
还原:1)先进行完全恢复:
restore database pubs from disk=’c:/完全备份.bak’ with norecovery
2)进行差异恢复:
restore database pubs from disk=’c:/差异备份.bak’ with norecovery
3)进行日志恢复,按照时间顺序(日志备份的顺序)来进行恢复:
Restor log pubs from disk=’c:/日志备份.bak’ with recovery
5、数据文件或文件组备份与还原
--创建测试数据库,使用的是邹老大的代码
CREATE DATABASE db
ON PRIMARY(
NAME='db_data',
FILENAME= 'c:/db_data.mdf'),
FILEGROUP db_fg1(
NAME = 'db_fg1_data',
FILENAME = 'c:/db_fg1_data.ndf'),
FILEGROUP db_fg2(
NAME = 'db_fg2_data',
FILENAME = 'c:/db_fg2_data.ndf')
LOG ON(
NAME='db_log',
FILENAME ='c:/db.ldf')
GO
--在文件组db_fg1上创建表,并单独创建该文件组的备份
CREATE TABLE db.dbo.tb(id int) ON db_fg1
BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:/db_fg1.bak' WITH FORMAT
GO
在其他文件组上创建表
CREATE TABLE db.dbo.ta(id int) ON [PRIMARY]
CREATE TABLE db.dbo.tc(id int) ON db_fg2
INSERT db.dbo.tb SELECT id FROM sysobjects
--备份每个文件组,并且备份事务日志
BACKUP DATABASE db FILEGROUP='PRIMARY' TO DISK='c:/db_primary.bak' WITH FORMAT
BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:/db_fg1_new.bak' WITH FORMAT
BACKUP DATABASE db FILEGROUP='db_fg2' TO DISK='c:/db_fg2.bak' WITH FORMAT
BACKUP LOG db TO DISK='c:/db_log.bak' WITH FORMAT
GO
--删除数据库
DROP DATABASE db
GO
--从文件组备份中恢复数据
RESTORE DATABASE db FILEGROUP='PRIMARY' FROM DISK='c:/db_primary.bak' WITH NORECOVERY,REPLACE
RESTORE DATABASE db FILEGROUP='db_fg1' FROM DISK='c:/db_fg1.bak' WITH NORECOVERY
RESTORE DATABASE db FILEGROUP='db_fg2' FROM DISK='c:/db_fg2.bak' WITH NORECOVERY
RESTORE LOG db FROM DISK='c:/db_log.bak' WITH RECOVERY
SELECT COUNT(*) FROM db.dbo.tb
GO
--删除测试数据库
DROP DATABASE db
数据库的备份与恢复(一)相关推荐
- 数据库-数据库的备份与恢复
数据库的备份与恢复 备份命令 在mysql的安装目录的bin目录下有mysqldump命令,可以完成对数据库的备份. 语法:mysqldump -u 用户名 -p 数据库名> 磁盘SQL文件路径 ...
- oracle编写备份数据库代码,oracle_oracle数据库创建备份与恢复脚本整理,1:创建用户 复制代码 代码如 - phpStudy...
oracle数据库创建备份与恢复脚本整理 1:创建用户 create temporary tablespace user_temp tempfile 'D:\app\topwqp\oradata\or ...
- 如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复
我们知道,用SQLDMO可以实现对数据库的备份与恢复,下面给出简单的实现方法. 首先需要添加对SQLDMO引用 1.实现数据库的备份: 1/**//// <summary> 2 ...
- oracle 怎么备份sqlserver数据库,Oracle和sqlserver数据库的备份与恢复
Oracle 数据库的备份与恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(包括机器故障.介质故障.误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据 ...
- hana s4 服务器_玩转HANA数据库的备份与恢复
本文档中所出现的命令,全部在真实环境中使用.环境:S4 hana 1809 SP3, HANA2.0 SP 044 , SUSE Linux Enterprise for SAP Applicati ...
- Oracle数据库的备份与恢复技术
Oracle数据库的备份与恢复技术 郑永生 (华能德州电厂信息中心,德州 253024) 摘 要 确保数据安全是每一位数据库DBA的必要工作,根据数据的重要性和软硬件条件制定可行的备份恢复方案 ...
- MySQL | MySQL 数据库系统(四)- 数据库的备份与恢复
前言 大家在日常的工作中,备份数据其实是信息安全管理重要的工作之一.那么,我们在这篇文章中将介绍一下数据库的备份与恢复.MySQL 数据库的备份同时有多种方式.第一:直接打包数据库文件夹/etc/lo ...
- 【数据库原理实验(openGauss)】数据库的备份与恢复
数据库的备份与恢复 文章目录 数据库的备份与恢复 一.物理备份和恢复 实验准备: (1)物理备份 (2)物理备份恢复 二.逻辑备份和恢复 实验准备: (1)gs_dump备份 1.gs_dump备份示 ...
- Oracle数据库逻辑备份与恢复(3)——数据泵(expdp、impdp)
Oracle数据库逻辑备份与恢复(3)--数据泵(expdp.impdp) 使用数据泵技术(expdp.impdp)导出和导入数据比使用exp.imp命令导出和导入数据速度要快,原因是数据泵技术可以使 ...
最新文章
- shell的数字、字符串处理
- 宫崎骏动画里的15对情侣,你最喜欢哪一对?
- pringMVC“Ambiguous mapping found. Cannot map ‘XXXController‘ bean method”解决方法
- 搭建和测试Android JAVA NDK
- 信息学奥赛C++语言:小青蛙回来了
- 用crt连接远程linux,在windows下secureCRT远程安全连接linux
- 小程序 自适应rpx
- WCDMA为什么上行是干扰受限,下行是功率受限
- 基于Axis1.4的webservice接口开发(环境搭建)
- 基于python实现的电影推荐系统
- sql2012官网下载地址
- 单片机语音播报怎么做?语音模块原理及程序编写思路
- 转:中文汉字占二个字节还是三个字节长度
- 怎样将UltraISO做的启动U盘还原成原来的样子
- 微信小程序微信支付(统一支付)
- html代码标签优化与提速,HTML代码标签优化与提速
- java多线程复习与巩固(一)
- s8 android 8.0变化,等待很长时间!三星S8系列手机现在可以升级到Android 8.0系统的稳定版本!...
- Linux打开21端口
- 使用DirectSound播放MP3文件