第 1页 2011-10-16 山东师范大学管理学院
第 7章 Web数据库管理与维护
知识要点,
创建 SQL数据库
ASP/ADO应用的环境, 查询, 修改数据库数据, 连接多
个数据表
Delphi6的 ADO组件, ADO访问数据库示例
数据库多种备份方法的操作, 临时, 永久备份文件的建
立, BACKUP语句的操作
数据库恢复顺序与策略, 恢复前备份文件的验证, 从多
种备份中恢复数据库, 系统数据库的恢复, 数据库文件
的间接备份和恢复
SQL Server的安全策略, SQL Server 2000的安全模式 。
第 2页 2011-10-16 山东师范大学管理学院
? 数据库创建
? 使用 ASP/ADO访问数据库
? 网络数据库的备份与恢复
? 数据库的安全策略与模式
难点知识, ?使用 ASP/ADO连接多个数据表
?网络数据库的备份与恢复
重点知识,
第 7章 Web数据库管理与维护
第 3页 2011-10-16 山东师范大学管理学院
7.1 创建 Web数据库
7.1.1 ODBC与 SQL Server
ODBC是 Open Database Connectivity(开放式数据库连
接)的缩写,是微软公司开放服务结构( WOSA,
Windows Open Services Architecture)中有关数据库的一
个组成部分。
SQL Server建立在成熟的关系模型基础上,支持客户机 /
服务器结构。 SQL Server提供了处理和联机分析处理,具
有分布式数据库和数据仓库功能,具有强大的数据库管
理功能;提供了丰富的管理工具以支持数据的完整性,
安全性管理和作业管理。
第 4页 2011-10-16 山东师范大学管理学院
7.1 创建 Web数据库
创建数据库
创建数据库有三种方法,
( 1) 使用 CREATE DATABASE语句;
( 2) 使用创建数据库向导;
( 3) 使用 SQL Server Enterprise Manager。
创建数据库的过程实际上就是为数据库提供名称、大
小和所存放的数据库文件的过程。数据库的信息属于系统
级的信息,存储在 master数据库的 sysdatabases系统表中。
因此,在创建数据库的时候,当前数据库应该是 master数
据库。当新数据库创建之后,系统自动把 model数据库中的
系统表复制到新数据库中。这样,新数据库自动具有 model
数据库中的系统表结构。
第 5页 2011-10-16 山东师范大学管理学院
7.1.2 使用 CREATE DATEBASE语句创建数据库
CREATE DATEBASE语句的语法形式如下,
CREATE DATABASE database_name
[ON
{[PRIMARY](NAME=logical_file_name,
FILENAME=′os_file_name′
[,SIZE=size]
[,MAXSIZE=max_size]
[,FILEGROWTH=groth_increment])
}[,… n]]
[LOG ON
{(NAME=logical_name,
FILENAME=′os_file_name′
[,SIZE=size])
}[,… n]]
[ROR RESTORE]
PRIMARY,该选项是一个
关键字,用来指定主文
件组中的文件。主文件
组不仅包含数据库系统
表中的全部内容,而且
还包含用户文件组中没
有包含的全部对象。一
个数据库只能有一个主
文件。在缺省情况下,
即在没有指定 PRIMARY关
键字时,列在语句中的
第一个文件就是主文件。
NAME:该选项用于指定数
据库的逻辑名称,这是在
SQL Server系统中使用的
名称,是数据库在 SQL
Server中的标识符。
FILENAME:该选项用于指
定数据库所在文件的操作
系统文件名称和路径。
SIZE:该选项用于指定数
据库操作系统文件的大小。
指定文件大小的时候,既
可以使用 MB作单位,也可
以使用 KB作为单位。在默
认情况下,数据库数据文
件的大小是 1MB,数据库日
志文件的大小也是 1MB。
MAXSIZE:该选项用于指定
操作系统文件可以增长到
的最大尺寸。如果没有指
定文件可以增长到的最大
尺寸,那么系统的增长是
没有限制的,可以占满整
个磁盘空间。
FILEGROWTH:该选项用于
指定文件的增量,当然,
该选项不能与 MAXSIZE选项
有冲突。该选项指定的数
据值为零时,表示文件不
能增长。该选项可以用 MB、
KB和百分比指定。
第 6页 2011-10-16 山东师范大学管理学院
7.1.2 使用 CREATE DATEBASE语句创建数据库
下面是一个创建数据库的示例 。
CREATE DATABASE [archive]
ON (NAME ='archive_Data',
FILENAME = 'C:\ MSSQL\data\archive_Data.MDF',
SIZE = 2,FILEGROWTH = 10%)
LOG ON (NAME = 'archive_Log',
FILENAME = 'C:\ MSSQL\data\archive_Log.LDF',
SIZE = 9,FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
GO
第 7页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
使用创建数据库向导创建数
据库的步骤,
( 1)启动 SQL Server
Enterprise Manager,选择
工具菜单,如图 7.1所示。在
图 7.1窗口中,鼠标左键单击
,向导, 选项,弹出选择向
导窗口。在选择向导窗口中,
有四个文件夹。打开数据库
文件夹,则显示数据库的向
导工具,如图 7.2所示。
图 7.1数据库工具向导
第 8页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
使用创建数据库向导创
建数据库的步骤,
( 1)启动 SQL Server
Enterprise Manager,选
择工具菜单,如图 7.1所
示。在图 7.1窗口中,鼠
标左键单击, 向导, 选项,
弹出选择向导窗口。在选
择向导窗口中,有四个文
件夹。打开数据库文件夹,
则显示数据库的向导工具,
如图 7.2所示。 图 7.2数据库向导工具
第 9页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
( 2) 在选择向导窗口中, 选择创建数据库向导选项, 则弹出欢迎窗
口, 如图 7.3所示 。 在此窗口中, 显示了该向导可以完成的操作 。 鼠标
左键单击, 下一步, 按钮, 则出现命名数据库和指定数据库文件位置窗
口, 如图 7.4所示 。
图 7.3创建数据库向导 1 图 7.4创建数据库向导 2
第 10页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
( 3) 在图 7.4创建数据库向导 2中, 鼠标左键单击, 下一
步, 按钮, 则出现命名数据库文件的窗口, 在该窗口指定数
据库文件逻辑名称及初始大小, 如图 7.5所示 。
( 4) 在图 7.5的窗口中, 鼠标左键单击, 下一步, 按钮,
则出现定义数据库文件增长的信息窗口, 如图 7.6所示 。
图 7.5创建数据库向导 3 图 7.6创建数据库向导 4
第 11页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
( 5) 在定义数据库文件增长的窗口中, 鼠标左键单击, 下一步,
按钮, 则出现命名事务日志文件的窗口, 在该窗口指定数据库事务
日志文件逻辑名称及初始大小, 如图 7.7所示 。
( 6) 在命名事务日志文件的窗口中, 鼠标左键单击, 下一步, 按
钮, 则出现定义事务日志文件增长的信息窗口, 如图 7.8所示 。
图 7.7创建数据库向导 5 图 7.8创建数据库向导 6
第 12页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
出现确认数据库
创建信息窗口, 如
图 7.9所示 。 此时,
系统还没有真正创
建该数据库 。 因此,
如果前面的设置有
问题, 还可以通过
鼠标左键单击, 上
一步, 按钮去修改 。
如果确认前面的设
置正确, 那么可以
鼠标左键单击, 完
成, 按钮, 真正创
建该数据库 。
图 7.9创建数据库向导 7
第 13页 2011-10-16 山东师范大学管理学院
7.1.4 使用 SQL Server Enterprise Manager创建数据库
( 1)首先,启动 SQL Server Enterprise Manager,在左边
的目录结构中打开一个服务器,选择其中的数据库文件夹。
鼠标右键单击该文件夹,则弹出一个快捷菜单,如图 7.10所
示。通过这个菜单,可以执行数据库中的操作。
图 7.10用企业管理器创建数据库
第 14页 2011-10-16 山东师范大学管理学院
7.1.4 使用 SQL Server Enterprise Manager创建数据库
( 2)该快捷菜单中,选择新建数据库选项。这时出现
数据库属性窗口,如图 7.11所示。在该窗口中,有三
个选项卡:常规、数据文件和事务日志。在常规选项
卡最上面的名称文本框中输入新建数据库的名称。
图 7.11数据库属性
第 15页 2011-10-16 山东师范大学管理学院
7.1.4 使用 SQL Server Enterprise Manager创建数据库
( 3)数据文件选项卡如图 7.12所示,有一个列表区域,可以在这个
区域中输入数据文件的信息,包括数据文件名称、位置、初始大小和
文件组名称。
( 4)事务日志选项卡与数据文件选项卡,如图 7.13所示。在列表区
域,可查看事务日志文件的文件名、位置和分配的空间。
图 7.12数据文件选项卡 图 7.13事务日志选项卡
第 16页 2011-10-16 山东师范大学管理学院
7.2 使用 ASP/ADO访问数据库
7.2.1 ASP/ADO应用的环境
ADO( ActiveX Data Object,ActiveX数据对象)是一个 ASP内置的
ActiveX服务器组件( ActiveX Server Component),通过 ODBC驱
动程序可以连接多种支持 ODBC的数据库,包括 SQL Server,Oracle、
Informix等。
把 ADO与 ASP结合起来,能建立提供数据库信息的网页内容,并对数
据库进行查询、插入、更新、删除等操作。其 应用环境 如图 7.14所
示。
图 7.14 ASP/ADO 工作示意图
第 17页 2011-10-16 山东师范大学管理学院
7.2.2 查询数据库数据
查询是从数据库中获取所需的数据, 可以利用 SELECT语句来实现 。
SELECT语句功能是从表或视图中查询满足条件的记录, 语法格式如下,
SELECT 列名1, 列名2, …… 列名 n
[INTO 新表名 ]
[FROM 表名1, 表名2, …… 表名 n ]
[WHERE 条件表达式 ]
[GROUP BY列名1, 列名2, …… 列名 n]
[HAVING 条件表达式 ]
[ORDER BY 列名1 [ASC|DESC],列名 2[ASC|DESC],…… 列名
n[ASC|DESC]]
在上述语法格式中,SELECT子句用于指定输出字段; INTO子句用于
将查询到的结果集形成一个新表; FROM子句用于指定显示的列来源于
哪些表或视图; WHERE子句用于指定对记录的过滤条件; ORDER BY子
句用于将查询到的结果集按指定列排序; GROUP BY子句用于指定列值
相同的记录作为一组; HAVING子句用于指定对组的过滤条件。
第 18页 2011-10-16 山东师范大学管理学院
7.2.3 修改数据库数据
当数据添加到表中后, 如果某些数据发生了变化, 就需要对表中的
数据进行修改 。 在 SQL Server中, 对数据的修改可以通过 UPDATE语
句来实现 。 基本语法格式为,
UPDATE 目标表名
SET{列名=表达式 }[,… n][FROM 另一表名 ][WHERE 条件表达式 ]
修改数据需要两个页面。第一个页面要求是 ASP文件,在其中打开
数据库显示已有数据的值,设置输入域供用户输入数据。提交之后
的信息由另一个 ASP文件处理,在这个文件中,可以使用 Connection
对象的 Execute方法执行 SQL语言中的 UPDATE语句完成修改;或者通
过打开 Recordset对象,更改其中的数据,再调用 Update或
UpdateBatch方法将所做修改写入到数据库中。 Update方法用于修改
单条记录,修改多条记录必须用 UpdateBatch方法。
第 19页 2011-10-16 山东师范大学管理学院
7.2.4 连接多个数据表
连接多个数据表的基本语法如下,
SELECT 数据表名称 1.列名称, 数据表名称 2.列名
称, ……
FROM数据表名称 1,数据表名称 2,……
WHERE数据表名称 1.列名称=数据表名称 2.列名称
AND 数据表名称 1.列名称=数据表名称 2.列名称
其中,,SELECT”后面列出所有要选择的列名称,一个
数据表名称与列名称中间加,,”,即, 数据表名称,列名
称, 。, FROM”后面列出所有要连接的数据表名称,各数
据表名称之间以逗点分隔。, WHERE”后面将两个数据表
要连接的列,用, =, 连接在一起,再用, AND”连接多
个相连接的式子。
第 20页 2011-10-16 山东师范大学管理学院
7.3使用 Delphi中的 ADO组件访问数据库
7.3.1 Delphi6的 ADO组件
ADO( ActiveX Data Objects)是 Microsoft提供对各种
数据格式的高层接口( high-level interface),该接口
已经成为访问数据库的新的标准。 ADO支持用于建立基于
客户端 /服务器和 Web的应用程序的主要功能。它的主要
优点是易于使用、高速度、低内存支出和占用磁盘空间
较小。 ADO同时具有远程数据服务功能,通过 RDS,对数
据进行处理然后将更新结果返回服务器的操作。
在 ADO中,封装了 OLE DB的所有功能,并提供简单的接
口供应用程序使用,即通过 ADO可以访问所有提供 OLEDB标
准接口的数据。如果数据库未提供 OLE DB接口时,ADO将
使用 ODBC接口。它们的关系如图 7.15所示。
第 21页 2011-10-16 山东师范大学管理学院
7.3使用 Delphi中的 ADO组件访问数据库
ADO对象
OLE DB
SQL Server
Oracle Access
等 OLEDB数据
库
ODBC
其他数据库
图 7.15 ADO,OLE,ODBC接口关系图
第 22页 2011-10-16 山东师范大学管理学院
7.3.1 Delphi6的 ADO组件
Delphi6的组件面板上有一个 ADO组件页,如图 7.16示。
图 7.16 ADO组件面板
ADOConnection:用于和一个 ADO数
据库连接,其他组件都可以通过它
来操作数据库,这样就避免每个组
件都要建立自己的连接字符串。
ADOCommand,用于执行 SQL命令,可
以实现从一个表中检索数据,该组
件可以直接连接到数据设备上或通
过 ADOConnection连接到数据设备上
ADODataSet,用于检索和操作数据
库中数据的主要组件,可实现对一
个或多个数据表中检索数据 。
ADOQuery:对 ADODataSet的完善,用
于检索和操作由一个合法的 SQL语句
生成的数据集 。
ADOTable:对 ADODataSet的完善,
用于检索或操作由一个单一数据表
生成的数据集 。
RDSConnection,主要实现 RDS
Dataspace对象的功能,建立多层
客户 /服务器应用程序,用于远程
数据访问和回写 。
ADOStoreProc,对 ADODataSet的完
善,以支持存储过程
以上 ADO组件在实际程序中的关系如图 7.17所示。
图 7.17 ADO 组件关系图
数据库
TADOCommand
TADOConnection
ADO数据集控件
TADODataSet
TADOTable
TADOQuery
Execute方法
第 23页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
下面以协作学习过程系统中的人际关系控件为例,说明
ADO组件如何访问数据库。图 7.18是人际关系控件的界面。
TADOTable
TADOQuery
TADOConnection
图 7.18人际关系控件界面
第 24页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
人际关系控件的几个 ADO组件的定义如下,
Tproceed,TADOTable;
ADOlogin,TADOQuery;
ADOConnection1,TADOConnection;
Tdata,TADOQuery;
其中 TADOConnection1 组件的关键属性是参数
ConnectionString, 设置如图 7.19 所示, 在
UseConnectonString中的设置为,
Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info = False;
Initial Catalog = archive;Data Source=webcl
第 25页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
点击进行数据
链接属性设置
图 7.19 TADOConnection1关键属性设置
第 26页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
其中 Tdata组
件有两个关键属
性,一个是查询
参数 Parameters,
设置如图 7.21所
示,另一个是查
询命令 SQL,设
置如图 7.22所示。
图 7.21查询参数 Parameters设置
第 27页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
图 7.22查询命令 SQL设置
第 28页 2011-10-16 山东师范大学管理学院
7.4数据库安全策略与模式
7.4.1 SQL Server2000的安全策略
1.及时更新数据库补丁程序
SQL Server的许多安全漏洞都可由补丁程序来弥补。
建议在安装补丁程序之前在测试机上做测试,同时提前
做好服务器的数据备份。
2.杜绝 SA的空密码
由于 SQL Server的 SA拥有对数据库操作的最高权限,
因而应当给 SA一个复杂的密码。
第 29页 2011-10-16 山东师范大学管理学院
7.4.1 SQL Server2000的安全策略
3,严格控制数据库用户的权限
使用 SQL Server的安全功能, 控制用户如何访问特定数
据库文件, 包括这些用户如何访问特定的表, 记录和字
段 。
4,加强数据库日志审查
审核数据登录事件的, 失败和成功,,在实例属性中
选择, 安全性,,将其中的审核级选定为全部,这样在
数据库系统和操作系统日志里面,就详细记录了所有账
号的登录事件。定期查看 SQL Server日志,检查是否有可
疑的登录事件发生,一般 SQL Server日志所在目录为
Microsoft SQL Server\MSWQL\LOG*.*。
第 30页 2011-10-16 山东师范大学管理学院
7.4.1 SQL Server2000的安全策略
5.管理扩展存储过程
SQL Server的众多系统存储过程具有很强的功能,但是实际应
用中多数根本用不着,应删除不必要的存储过程,因为有些系统的
存储过程能很容易地被攻击者用来提升权限或进行破坏。
6.网络数据安全交换
将 SQL Server服务器与 IIS Web服务器安装在同一计算机上,这
样避免了通过网络交换数据。
将 SQL Server服务器部署在与外部网络相对隔离的内部网, 这样
IIS Web服务器与 SQL Server数据库服务器在相对安全的内部网络中
进行数据通信 。
对 Web服务器与数据库服务器之间的通信进行加密, 例如, 可以
使用 SSL协议, 也可使用 IPSec协议 。
第 31页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
1,设置 Windows身份验证模式
( 1)在企业管理器中
展开 SQL Server服务器
组,然后连接到要访问
的服务器上。
( 2)鼠标右键单击该服
务器并从快捷菜单中选
择, 属性, 命令。
( 3)当出现, SQL
Server属性, 对话框时,
选择, 安全性, 选项卡,
如图 7.23示。 图 7.23设置 Windows身份验证安全性
第 32页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
( 4) 在, 身份验证, 区域中, 选择, 仅 Windows”选项, 即
指用户只能使用 Windows身份验证连接到 SQL Server实例中 。
( 5) 在, 审核级别, 区域中选择在 SQL Server错误日志中
记录的用户访问 SQL Server的级别 。 审核级别是 SQL Server
用以跟踪和记录登录用户在 SQL Server实例上所发生的活动
( 如成功和失败的记录 ) 。
( 6) 设置启动服务账户 。 如果要指定启动 SQL Server服务
的账户为内置的本地系统管理员账户, 则选择, 系统账户,
选项;如果要指定启动 SQL Server服务的账户为 Windows NT
或 Windows 2000域账户, 则选择, 本账户, 选项, 并在, 密
码, 框中指定 Windows NT或 Windows 2000域账户的密码 。
鼠标左键单击, 确定, 按钮,然后停止并重新启动 SQL
Server,以使所设置的身份验证模式生效。
第 33页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
2,设置混合模式
混合模式是指 Windows身份验证和 SQL Server身份验
证的混合使用。在这种安全模式下,用户能够使用
Windows身份验证或 SQL Server身份验证与 SQL Server进
行连接。在 Windows身份验证模式或混合模式下,通过
Windows NT或 Windows 2000用户账户连接的用户可以使
用信任连接。
3,权限验证
建立连接以后,用户必须使用特定的用户账户才能对
数据库进行访问,而且只能查看经授权可以查看的表和
视图,只能执行经授权可以执行的存储过程和管理功能,
如图 7.24所示。
第 34页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
用户
db1
用户
db2
用户
db3
用户名
提供数据库访问
登录ID密 码
提供SQL
Ser ver 访问
图 7.24 SQL Server权限验证
第 35页 2011-10-16 山东师范大学管理学院
7.5 数据库的备份
7.5.1 备份准备工作
在 SQL Server系统中,备份是动态的,也就是说,在
进行数据库备份时,允许用户继续操作数据库。当备份
某个数据库时,SQL Server执行下列操作。
( 1)利用检查点机制检查数据库,记录最早的事务日
志记录的日志序列号。
( 2) 直接读取磁盘, 把全部的数据记录写进备份介质
中 。
( 3)从捕捉到的序列号开始,一直到日志的末尾,写
入全部的事务日志记录。
第 36页 2011-10-16 山东师范大学管理学院
7.5.1 备份准备工作
1.理解检查点
2.确定备份的内容
3.选择具体备份时间
备份的目的是当系统发生
硬件或者软件故障时,能
够将系统恢复到发生故障
之前的状态。因此,有必
要将系统的全部都备份下
来。总的来说,应该备份
两方面的内容,一方面是
备份记录系统信息的系统
数据库,另一方面是备份
记录用户数据的用户数据
库。
检查点是一个函数,SQL
Server合并了此函数,以便在
一个适当的时刻对数据库或者
配置选项进行及时地修改。当
配置或者修改服务器设置时,
必须重新启动系统,也可以手
工启动检查点进程,使配置或
者修改服务器设置发生作用。
如果进程未被干预,正常情况
下,检查点大约 60秒执行一次。
实际的检查点时间间隔取决于
服务器的负荷、已经设置好的
恢复选项和 SQL Server进行的
一般性能调节。
Master数据库(系统数据库)包含了系统中有关数据库的全部信息。
当创建任何用户定义的对象时,就应该备份 master数据库。 当执行
下列操作时,应该备份 master数据库。
( 1) 创建, 修改, 删除了数据库的语句 。 例如,CREATE DATABASE、
ALTER DATABASE或 DROP DATABASE。
( 2) 修改了事务日志的系统存储过程 sp_logdevice。
( 3) 增加或者删除了服务器的系统存储过程 。 例如 sp_addServer、
sp_addlinkedServer或者 sp_dropServer。
第 37页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
1,SQL Server2000备份数据库的四种方法
( 1)数据库备份
( 2)差异备份
( 3)事务日志备份
( 4)文件或文件组备份
即制作数据库中所有内容的
副本。 恢复时,仅需要恢复
最后一次全库备份。该备份
以后的修改都将丢失。
即只备份最后一次全库备份
后被修改的数据页。备份的
时间和空间较少。恢复时,
先恢复最后一次全库备份,
再恢复最后一次差异备份。
即备份某个数据库文件或数
据库文件组。必须与日志备
份结合才有意义。
即只备份最后一次日志备份后所
有的事务日志记录。备份所用的
时间和空间更少。利用日志备份
进行恢复时,可以指定恢复到某
一个事务。建议每周进行一次全
库备份,每天进行一次差异备份,
每小时执行一次日志备份,这样
最多只会丢失一小时的数据。恢
复时,先恢复最后一次全库备份,
再恢复最后一次差异备份,再顺
次恢复最后一次差异备份以后进
行的所有事务日志备份。
第 38页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
2,使用备份向导备份数据库示例
下面以协作学习过程数据库 Archive为例,介绍使用
备份向导备份数据库的方法和步骤。
( 1)在企业管理器中展开服务器组,然后展开一个服
务器。
( 2)展开, 数据库, 文件夹,然后鼠标左键单击要备
份的数据库,例如 Archive。
( 3)从, 工具, 选中选择, 向导, 命令,打开如图
7.25所示的, 选择向导, 对话框。
( 4)鼠标左键单击, 管理, 节点,选择, 备份向导,
选项,出现, 欢迎使用创建数据库备份向导, 画面,然
后鼠标左键单击, 下一步, 按钮,出现如图 7.26所示的
对话框。
第 39页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
图 7.26 选择要备份的数据库 图 7.25,选择向导, 对话框
第 40页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 5)选择所备份的
数据库(例如
Archive),鼠标左键
单击, 下一步, 按钮,
出现, 键入备份的名称
和描述, 对话框,在该
对话框中输入备份的名
称和描述信息,然后鼠
标左键单击, 下一步,
按钮,出现如图 7.27所
示的对话框。 图 7.27选择备份类型
第 41页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 6)选择如图 7.27所示的对话框备份方法之一。选择一
种备份方法之后,鼠标左键单击, 下一步, 按钮,出现如
图 7.28所示的对话框。
图 7.27选择备份类型
第 42页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 7)选择备份目的和操作。选择, 备份设备, 选项为, 文件, 方
式,其中文件名和路径自定义;如果要将此次备份追加到原有备份数
据的后面,可以选择, 属性, 选项中的, 追加到备份媒体, 选项;如
果要用此次备份的数据覆盖原有备份数据,可以选择, 重写现有媒体,
选项。鼠标左键单击, 下一步, 按钮,出现如图 7.29所示的对话框。
图 7.28选择备份目的和操作
第 43页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 8)鼠标左键单击, 更改, 按钮,确定备份的计划,然后鼠标左键
单击, 下一步, 按钮,出现备份向导的, 完成, 对话框,如图 7.30。
图 7.29备份验证和调度 图 7.30完成对话框
第 44页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
1.永久备份文件的建立
永久性的备份文件,在备份执行之前所创建的
备份文件称为永久性的备份文件,这些永久性
的备份文件也称为备份设备。
创建永久性备份文件有两种方法,使用 SQL
Server Enterprise Manager,或者执行系统
存储过程 sp_addumpdevice。
第 45页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
创建永久性的备份文件时,应该考虑下列因素,
(1)SQL Server 系统在 master 数据库中的系统表
sysdevices中创建该永久性备份文件的逻辑名称和物理
名称 。
( 2) 必须指定该备份文件的逻辑名称和物理名称 。
( 3)一个数据库最多可以创建 32个备份文件。
第 46页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
系统存储过程 sp_addumpdevice的语法形式如下,
[EXECUTE]sp_addumpdevice′ 设备类型 ′,′ 逻辑
名称 ′,′ 物理名称 ′
[,{{controller_type|′device_status′}}]
其中设备类型是 {DISK | TAPE | PIPE},磁盘、磁带
和命名管道。
在硬盘上创建一个永久性备份文件,程序清单如下,
USE master
EXEC sp_addumpdevice ′disk′,
′archivebackupfile′,′C,\Program
Files\Microsoft SQL
Server\MSSQL\BACKUP\arbackupfile.bak′
第 47页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
2.临时备份文件的建立
如果不打算重新使用某些备份文件,就可以创建
临时的备份文件。创建临时备份文件有两种方法:
使用 SQL Server Enterprise Manager,或者使用
BACKUP DATABASE语句。
BACKUP DATABASE语句的语法形式如下,
BACKUP DATABASE {database_name | @
database_name_var}TO < backup_file> [,… n]
其中,<backup_file>是 {{backup_file_name |
@ backup_file_name_evar} |
{DISK|TAPE|PIPE}={temp_file_name | @
temp_name_evar}
第 48页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
在磁盘上创建了一个临时备份文件, 并且
把 Archive数据库备份到该临时备份文件上 。
程序清单如下,
USE master
BACKUP DATABASE Archive TO DISK= ′C,
\Temp\TempArchive.bak′
第 49页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
使用 BACKUP语句可以对数据库进行全库备份、差异备份、日志备
份或文件和文件组备份。
1.全库备份
制作数据库中所有内容的一个副本,从一个全库备份
中就可以恢复整个数据库。其语法格式为,
BACKUP DATABASE 数据库名 TO备份设备名 [WITH
[NAME= ′ 备份的名称 ′][,INIT|NOINIT]]
例如,对数据库 Archive做一次全库备份,备份设备为创
建永久备份文件时建立的本地磁盘设备
archivebackupfile,并且此次备份覆盖以前所有的备份。
代码如下,
BACKUP DATABASE Archive TO DISK=
′archivebackupfile′WITH INIT,
NAME=′Archivebackup′
第 50页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
2.差异备份
从最近一次全库备份结束以来所有改变的数据备份到
数据库。当数据库从上次备份以来,数据发生很少的变化
时适合使用差异备份。其语法格式如下,
BACKUP DATABASE 数据库名 TO 备份设备名 WITH
DIFFERENTIAL[,NAME= ′ 备份的名称 ′][,INIT|NOINIT]]
对数据库 Archive进行差异备份,备份设备为创建永久
备份文件时建立的本地磁盘设备 archivebackupfile,代
码以下,
BACKUP DATABASE Archive TO DISK=
′archivebackupfile′WITH DIFFERENTIAL,NAME=
′Archivebackup′,NOINIT
第 51页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
3.日志备份
从最近一次日志备份以来所有事务日志备份到备份设
备。通常情况下日志备份经常与全库备份和差异备份结合
使用,其语法格式下,
BACKUP LOG 数据库名 TO 备份设备名 [WITH [NAME= ′
备份的名称 ′][,INIT|NOINIT]]
对数据库 Archive进行日志备份,备份设备为创建永久
备份文件时建立的本地磁盘设备 archivebackupfile,代
码以下,
BACKUP LOG Archive TO DISK=
′archivebackupfile′WITH NAME= ′Archivebackup′,
NOINIT
第 52页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
4.文件与文件组备份
数据很大时,可以采用文件和文件组备份方式,即对数
据库中的部分文件或文件组进行备份。其语法格式如下,
BACKUP DATABASE 数据库名 FILE=′ 文件的逻辑名称
′|FILEGROUP=′ 文件组的逻辑名称 ′ TO 备份设备名
[WITH [NAME= ′ 备份的名称 ′][,INIT|NOINIT]]
将 Archive数据库的 Archive_data文件备份到本地磁盘设
备 filebackup。代码如下,
BACKUP DATABASE Archive FILE=′Archive_data′ to
DISK=′filebackup′
第 53页 2011-10-16 山东师范大学管理学院
7.6 数据库的恢复
7.6.1数据库恢复顺序
数据库恢复 是指将数据库备份加载到系统中
的过程。
在进行数据库恢复时,系统首先进行一些安
全性检查,例如指定的数据库是否存在、数据
库文件是否有变化、数据库文件是否兼容,然
后指定数据库及其相关的文件。之后,针对不
同的数据库备份类型,采用不同的数据库恢复
方法。
第 54页 2011-10-16 山东师范大学管理学院
7.6 数据库的恢复
如表 7.2所示,某数据库在三个不同时刻分别做了不同
的数据库备份,若在时刻 3以后数据库被破坏时,要恢复
数据库就要按表中, 恢复顺序, 中所列的顺序进行。
备份方法 时刻 1 时刻 2 时刻 3 恢复顺序
全库备份 全库 1 全库 2 全库 3 全库 3
差异备份 全库 1 差异 1 差异 2 全库 1→ 差异 2
日志备份 全库 1 日志 1 日志 2 全库 1→ 日志 1→ 日志 2
文件或文件
组备份
文件 1,
日志 1
文件 2,
日志 2
文件 1,
日志 3
恢复文件 2的顺序:时刻 2的文
件 2备份 → 日志 2→ 日志 3
恢复文件 1的顺序:时刻 3的文
件 1备份 → 日志 3
表 7.2 数据库备份恢复顺序表
第 55页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
恢复总是在数据库系统运行时发生故障后进
行的,故障可以分为三种,事务故障, 系统
故障 和 介质故障 。针对不同的故障,所采用
的恢复手段也会有所不同。
1,事务故障及其恢复
事务故障,事务在运行过程中,由于输入错误、运
算溢出、应用程序错、并行事务死锁等原因,导致事
务未运行至正常终止就退出。这种情况称之为事务故
障。
事务故障是对数据库影响最小的一种故障,只
涉及一个事务对数据库的更新。
第 56页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
具体做法如下,
(1)从后向前扫描日志文件, 查找该事务的
更新操作 。
(2)对该事务执行逆操作, 即对原先的插入
操作执行删除操作, 对原先的删除操作执行
插入操作, 对原先的修改操作, 用日志文件
中, 修改前的值, 代替, 修改后的值, 。
(3)继续向前扫描日志文件,查找该事务的
其他更新操作,并作同样的处理,直到该事
务的开始。
第 57页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
2,系统故障及其恢复
系统故障,在数据库系统运行过程中,由于操作系统或
DBMS代码错误、操作员操作失误、硬件发生错误(如 CPU
故障)、突然停电等原因,致使所有正在运行的事务都非
正常终止,这样的故障称为系统故障。 具体做法如下,
( 1) 从前向后扫描日志文件, 找出在故障前已经提交
的事务记入重做队列, 这些事务既有 BEGIN TRANSACTION
记录, 又有 COMMIT记录;同时还要找出故障发生时尚未完
成 的 事 务 记 入 撤 销 队 列, 这 些 事 务 只 有 BEGIN
TRANSACTION记录, 没有 COMMIT记录 。
( 2) 对撤销队列中的各个事务进行撤销处理:反向扫
描日志文件, 将每个 UNDO事务的更新操作执行逆操作 。
( 3)对重做队列中的各个事务进行重做处理:正向扫
描日志,对每个 REDO事务重新执行登记的操作。
第 58页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
3,介质故障及其恢复
介质故障,系统在运行过程 中,由于磁头损坏、磁头碰撞
或其他原因(如地震、洪水等)使外存中的数据部分或
全部丢失,这种故障称为介质故障。具体做法如下,
( 1) 装入最新的后备副本, 使数据库恢复到最近备份
时的一致性的状态 。 对于动态备份的后备副本, 需要同
时装入备份时刻的日志;对于最近的后备副本是增量备
份的, 需要先装入最近一次的海量备份的后备副本, 然
后再安装之后所有的增量备份的后备副本 。
( 2)装入有关的日志文件副本,重做已经完成的事务。
从前向后扫描日志文件,找出在故障前已经提交的事务
记入重做队列,然后对重做队列中的各个事务进行重做
处理,即正向扫描日志,对每个 REDO事务重新执行登记
的操作。
第 59页 2011-10-16 山东师范大学管理学院
7.6.3系统在恢复进程中的活动
在恢复数据库的进程中,系统将自动执行某些操作,
确保数据库安全迅速地恢复。这些操作包括执行安全
性检查,以及重建数据库及其相关文件。
在下面几种情况下, 系统不恢复数据库 。
( 1) 在备份文件中记录的数据库不同于在 RESTORE语
句中指定的数据库时 。
( 2) 服务器上的数据库文件集不同于备份集中的数据
库文件集 。
( 3) 如果没有提供用于恢复数据库的全部文件或者文
件组, 那么系统生成一个错误消息, 并要求指定用于
恢复的文件 。
第 60页 2011-10-16 山东师范大学管理学院
7.6.4恢复前备份文件的验证
在恢复数据库文件时,必须确保数据库备份文件是有效
的,并且在备份文件中包含了所需要的备份内容。
在两种方法可以得到数据库备份的信息,
一种方法是使用 SQL Server Enterprise Manager查
看每一个备份设备的属性,另外一种方法是使用一些
Transact-SQL语句。
验证备份信息常用的 Transact-SQL语句有 RESTORE
HEADERONLY和 RESTORE FILELISTONLY,RESTORE
LABELONLY,RSTORE VERIFYONLY。
第 61页 2011-10-16 山东师范大学管理学院
7.6.4恢复前备份文件的验证
RESTORE HEADERONLY
RESTORE FILELISTONLY
使用 RESTORE HEADERONLY语句可以获得指定的备份文件或者备份
集的标题信息。这些信息包括,
( 1) 备份文件或者备份集的名称和描述信息 。
( 2) 所使用的备份介质类型, 例如磁带或者硬盘 。
( 3) 所使用的备份方法, 例如完全数据库备份, 增量备份, 日志
备份或者文件备份 。
( 4) 执行备份的日期和时间 。
( 5) 备份的尺寸大小 。
( 6) 在备份文件链中某个特定备份的序列号 。
使用 RESTORE FILELISTONLY语句可以获得备份文件中包含的数据
库文件或者事务日志文件的信息 。 执行这条语句有助于避免恢复
错误的备份文件 。 当执行该条语句时, 系统可以返回下述信息,
( 1) 数据库文件和事务日志文件的逻辑名称 。
( 2) 数据库文件和事务日志文件的物理名称 。
( 3) 文件的类型, 例如是数据库文件还是事务日志文件 。
( 4) 文件组中包含的成员 。
( 5) 以 MB表示的备份集的大小尺寸 。
( 6) 以 MB表示的该文件所允许的最大尺寸 。
第 62页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
恢复数据库 就是把原来备份的数据恢复到
备份前的状态。 当还原数据库时,SQL
Server会自动将备份文件中的数据库全部拷
贝到数据库,并回滚任何未完成的事务,以
保证数据库中数据的一致性。 执行数据库的
恢复可以用语句 RESTORE DATABASE来完成,
也可以用 SQL Sever“企业管理器, 实现 。
第 63页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
用 SQL Sever“企业管
理器, 实现, 具体的操
作方法如下,
( 1) 展开指定的数据
库结点, 展开, 数据库,
结点 。
( 2)选中指定的数据
库,单击鼠标右键,选
择, 所有任务, 命令,
选择, 还原数据库, 命
令,则系统弹出如图
7.33所示的对话框。
图 7.33“还原数据库, 对话框
第 64页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 3) 在, 还原为数据库, 下拉列表中选择要还原的目
标数据库, 该数据库可以是不同于备份数据库的另一个
数据库, 即可以将一个数据库的备份还原到另一个数据
库中 。 可以从下拉列表中选择已存在的数据库, 也可以
输入一个新的数据库名称, SQL Server2000将自动新建
一个数据库, 并将数据库备份到新建的数据库中 。
( 4) 选择一种还原的方式, 可以是, 数据库,,, 文
件组或文件, 或, 从设备, 方式 。 选择第一种方式可以
很方便地还原数据库, 但这种方式要求要还原的备份必
须在 msdb数据库中保存了备份历史记录, 在其他服务器
上创建的备份在 msdb数据库中没有记录, 则此时将一个
服务器上制作的数据库备份还原到另一个服务器上时,
不能使用数据库的还原方式, 而只能使用备份设备还原 。
第 65页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 5) 当选择, 数据库, 方式时, 在, 参数, 栏的, 显
示数据库备份, 下拉列表框中选择经还原的数据库备份 。
在, 还要还原的第一个备份, 下拉列表框中列出了要还
原的数据库在 msdb中记录的所有备份历史, 从中选择在
某一日期下备份的数据库备份文件, 如图 7.33所示 。
( 6) 在, 常规, 选项卡的下部, 显示了一个备份的列
表, 表中列出了从, 要还原的第一个备份, 开始的对该
数据库进行的所有备份, 对每个备份都显示了该备份的
类型, 备份的时间, 大小, 备份的物理名称等信息 。 用
户可以从中选择所要还原的备份, 方法是选中备份前面
的, 还原, 复选框 。 默认状态下, SQL Server会为用户
选择最新的全库备份, 最后一次差异备份以及最后一次
差异备份之后进行的所有日志备份 。
第 66页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 8) 在, 选项, 选项卡中设置还原
的选项, 如图 7.34所示 。, 将数据库
文件还原为, 选项列表中给出了要还
原的数据库文件的原文件和将要还原
成的文件名, 在默认状态下, 将要还
原成的文件名与原文件名相同, 用户
可以将其改为其他的名字 。
( 9) 在, 恢复完成状态, 选项中选
择下列单选按钮之一 。
·选择第一个按钮, 数据库恢复完成后
数据库能继续运行, 但无法还原其他
事务日志 。 ·选择第二个按钮, 数据库
恢复完成后数据库不能运行, 但能还
原其他事务日志 。 ·选择第三个按钮,
数据库恢复完成后数据库自动为只读
方式, 不能对其进行修改, 但能还原
其他事务日志 。
图 7.34设置还原选项
第 67页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 10) 鼠标左键单击, 确定, 按钮, 开始还原操作 。 如果在如图 7.32
所示的对话框中选择的还原类型是, 从设备,, 则会出现如图 7.35所
示的对话框 。 鼠标左键单击, 选择设备, 按钮, 然后在如图 7.36所示
的对话框中单击, 添加, 按钮, 选择要还原的备份文件, 再鼠标左键
单击, 确定, 按钮, 即可开始还原数据库 。
图 7.35从备份设备还原对话框 图 7.36选择还原设备对话框
第 68页 2011-10-16 山东师范大学管理学院
7.6.6系统数据库的恢复
在下列情况下, 可能需要从备份恢复 model、
msdb 或 distribution 数据库,
( 1) 使用 Rebuild master 命令提示实用工具
重建了 master 数据库 。
( 2) model,msdb 或 distribution 数据库已
损坏 ( 例如由于媒体故障 ) 。
( 3) 已经修改 model 数据库 。 在这种情况下,
重建 master 数据库时必须从备份还原 model
数据库, 因为重建主控实用工具删除和重新创建
model 数据库 。
第 69页 2011-10-16 山东师范大学管理学院
7.6.7数据库文件的间接备份和恢复
数据库是存放在文件中的。每一个数据库至少有
两个文件,即 数据文件和日志文件 。 数据文件用
于存放数据库中的数据,日志文件用于存放数据
库的事务日志。
间接恢复 的意思是, 在使用这些文件恢复数据库
时, 应该针对这些文件和数据库分别执行相应的
命令, 例如通过系统存储过程 sp_attach_db和
sp_sttach_single_file_db,可以将有关文件和
数据库的信息记录到系统数据库和系统表中, 这
样系统就可以识别这些文件和数据库, 也就可以
把文件和数据库恢复到系统中 。
第 70页 2011-10-16 山东师范大学管理学院
7.6.7数据库文件的间接备份和恢复
系统存储过程 sp_attach_db的语法形式如下,
sp_attach_ [ @ dbname=]′dbname′, [@
filename1=]′filename n′[,… 16]
系统存储过程 sp_attach_single_file_db的
语法形式如下所示,
sp_attach_single_file_db [ @
bname=]′dbname′,[ @ physname=]
′physical_name′
第 71页 2011-10-16 山东师范大学管理学院
创建 SQL数据库
ASP/ADO应用的环境, 查询, 修改数据库数据, 连接多个
数据表
Delphi6的 ADO组件, ADO访问数据库示例
数据库多种备份方法的操作, 临时, 永久备份文件的建立,
BACKUP语句的操作
数据库恢复顺序与策略, 恢复前备份文件的验证, 从多种
备份中恢复数据库, 系统数据库的恢复, 数据库文件的间接
备份和恢复
SQL Server的安全策略, SQL Server 2000的安全模式 。
本章小结
第 72页 2011-10-16 山东师范大学管理学院
第 73页 2011-10-16 山东师范大学管理学院
练习与思考
1.什么是 ODBC? 如何创建 ODBC数据库?
2.创建 SQL数据库有哪几种方式?
3.画图描述 ASP/ADO应用的环境 。
4.SQL Server的安全策略有哪些?
5.简述 SQL Server2000的安全模式 。
6.简述 SQL Server2000备份数据库的四种方法 。
7.简述数据库恢复顺序及策略 。
8.如何从多种备份中恢复数据库?
9.如何恢复系统数据库?
10.简述数据库备份与恢复的重要性。
第 74页 2011-10-16 山东师范大学管理学院
?Web数据库创建与编辑
( 1) 实验目的 。 了解 Access2000,SQL Server
2000的功能和特点, 掌握 ODBC数据库, SQL
Server数据库的创建与编辑 。
( 2) 实验资源, 工具和准备工作 。 在 Windows
2000Server 系 统 上 已 安 装 和 配 置 好 了
Access2000或 SQL Server2000。
( 3) 实验内容 。 创建 ODBC数据库 ( 准备数据库文件,
获得数据源 ) ;使用创建数据库向导创建 SQL数
据库 。
( 4) 实验步骤 。 参照 7.1.1和 7.1.2节进行, 实验结
束, 写出实验报告 。
网络实验
第 75页 2011-10-16 山东师范大学管理学院
?SQL Server2000数据库的备份
( 1) 实验目的 。 了解数据库备份的过程, 掌
握备份数据库的方法 。
( 2) 实验资源, 工具和准备工作 。 在 Windows
2000Server系统上 已安装 和配置 好了 SQL
Server2000。
( 3) 实验内容 。 使用备份向导备份数据库 。
( 4) 实验步骤 。 参照 7.5.2节进行, 实验结束,
写出实验报告 。
网络实验
第 76页 2011-10-16 山东师范大学管理学院
?SQL Server2000数据库的恢复
( 1) 实验目的 。 了解数据库恢复的过程,
掌握恢复数据库的方法 。
( 2) 实验资源, 工具和准备工作 。 在
Windows 2000Server系统上已安装和配置
好了 SQL Server2000。
( 3) 实验内容 。 使用 SQL Sever“企业管理
器, 恢复数据库 。
( 4) 实验步骤 。 参照 7.6.5节进行, 实验
结束, 写出实验报告 。
网络实验
第 7章 Web数据库管理与维护
知识要点,
创建 SQL数据库
ASP/ADO应用的环境, 查询, 修改数据库数据, 连接多
个数据表
Delphi6的 ADO组件, ADO访问数据库示例
数据库多种备份方法的操作, 临时, 永久备份文件的建
立, BACKUP语句的操作
数据库恢复顺序与策略, 恢复前备份文件的验证, 从多
种备份中恢复数据库, 系统数据库的恢复, 数据库文件
的间接备份和恢复
SQL Server的安全策略, SQL Server 2000的安全模式 。
第 2页 2011-10-16 山东师范大学管理学院
? 数据库创建
? 使用 ASP/ADO访问数据库
? 网络数据库的备份与恢复
? 数据库的安全策略与模式
难点知识, ?使用 ASP/ADO连接多个数据表
?网络数据库的备份与恢复
重点知识,
第 7章 Web数据库管理与维护
第 3页 2011-10-16 山东师范大学管理学院
7.1 创建 Web数据库
7.1.1 ODBC与 SQL Server
ODBC是 Open Database Connectivity(开放式数据库连
接)的缩写,是微软公司开放服务结构( WOSA,
Windows Open Services Architecture)中有关数据库的一
个组成部分。
SQL Server建立在成熟的关系模型基础上,支持客户机 /
服务器结构。 SQL Server提供了处理和联机分析处理,具
有分布式数据库和数据仓库功能,具有强大的数据库管
理功能;提供了丰富的管理工具以支持数据的完整性,
安全性管理和作业管理。
第 4页 2011-10-16 山东师范大学管理学院
7.1 创建 Web数据库
创建数据库
创建数据库有三种方法,
( 1) 使用 CREATE DATABASE语句;
( 2) 使用创建数据库向导;
( 3) 使用 SQL Server Enterprise Manager。
创建数据库的过程实际上就是为数据库提供名称、大
小和所存放的数据库文件的过程。数据库的信息属于系统
级的信息,存储在 master数据库的 sysdatabases系统表中。
因此,在创建数据库的时候,当前数据库应该是 master数
据库。当新数据库创建之后,系统自动把 model数据库中的
系统表复制到新数据库中。这样,新数据库自动具有 model
数据库中的系统表结构。
第 5页 2011-10-16 山东师范大学管理学院
7.1.2 使用 CREATE DATEBASE语句创建数据库
CREATE DATEBASE语句的语法形式如下,
CREATE DATABASE database_name
[ON
{[PRIMARY](NAME=logical_file_name,
FILENAME=′os_file_name′
[,SIZE=size]
[,MAXSIZE=max_size]
[,FILEGROWTH=groth_increment])
}[,… n]]
[LOG ON
{(NAME=logical_name,
FILENAME=′os_file_name′
[,SIZE=size])
}[,… n]]
[ROR RESTORE]
PRIMARY,该选项是一个
关键字,用来指定主文
件组中的文件。主文件
组不仅包含数据库系统
表中的全部内容,而且
还包含用户文件组中没
有包含的全部对象。一
个数据库只能有一个主
文件。在缺省情况下,
即在没有指定 PRIMARY关
键字时,列在语句中的
第一个文件就是主文件。
NAME:该选项用于指定数
据库的逻辑名称,这是在
SQL Server系统中使用的
名称,是数据库在 SQL
Server中的标识符。
FILENAME:该选项用于指
定数据库所在文件的操作
系统文件名称和路径。
SIZE:该选项用于指定数
据库操作系统文件的大小。
指定文件大小的时候,既
可以使用 MB作单位,也可
以使用 KB作为单位。在默
认情况下,数据库数据文
件的大小是 1MB,数据库日
志文件的大小也是 1MB。
MAXSIZE:该选项用于指定
操作系统文件可以增长到
的最大尺寸。如果没有指
定文件可以增长到的最大
尺寸,那么系统的增长是
没有限制的,可以占满整
个磁盘空间。
FILEGROWTH:该选项用于
指定文件的增量,当然,
该选项不能与 MAXSIZE选项
有冲突。该选项指定的数
据值为零时,表示文件不
能增长。该选项可以用 MB、
KB和百分比指定。
第 6页 2011-10-16 山东师范大学管理学院
7.1.2 使用 CREATE DATEBASE语句创建数据库
下面是一个创建数据库的示例 。
CREATE DATABASE [archive]
ON (NAME ='archive_Data',
FILENAME = 'C:\ MSSQL\data\archive_Data.MDF',
SIZE = 2,FILEGROWTH = 10%)
LOG ON (NAME = 'archive_Log',
FILENAME = 'C:\ MSSQL\data\archive_Log.LDF',
SIZE = 9,FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
GO
第 7页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
使用创建数据库向导创建数
据库的步骤,
( 1)启动 SQL Server
Enterprise Manager,选择
工具菜单,如图 7.1所示。在
图 7.1窗口中,鼠标左键单击
,向导, 选项,弹出选择向
导窗口。在选择向导窗口中,
有四个文件夹。打开数据库
文件夹,则显示数据库的向
导工具,如图 7.2所示。
图 7.1数据库工具向导
第 8页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
使用创建数据库向导创
建数据库的步骤,
( 1)启动 SQL Server
Enterprise Manager,选
择工具菜单,如图 7.1所
示。在图 7.1窗口中,鼠
标左键单击, 向导, 选项,
弹出选择向导窗口。在选
择向导窗口中,有四个文
件夹。打开数据库文件夹,
则显示数据库的向导工具,
如图 7.2所示。 图 7.2数据库向导工具
第 9页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
( 2) 在选择向导窗口中, 选择创建数据库向导选项, 则弹出欢迎窗
口, 如图 7.3所示 。 在此窗口中, 显示了该向导可以完成的操作 。 鼠标
左键单击, 下一步, 按钮, 则出现命名数据库和指定数据库文件位置窗
口, 如图 7.4所示 。
图 7.3创建数据库向导 1 图 7.4创建数据库向导 2
第 10页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
( 3) 在图 7.4创建数据库向导 2中, 鼠标左键单击, 下一
步, 按钮, 则出现命名数据库文件的窗口, 在该窗口指定数
据库文件逻辑名称及初始大小, 如图 7.5所示 。
( 4) 在图 7.5的窗口中, 鼠标左键单击, 下一步, 按钮,
则出现定义数据库文件增长的信息窗口, 如图 7.6所示 。
图 7.5创建数据库向导 3 图 7.6创建数据库向导 4
第 11页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
( 5) 在定义数据库文件增长的窗口中, 鼠标左键单击, 下一步,
按钮, 则出现命名事务日志文件的窗口, 在该窗口指定数据库事务
日志文件逻辑名称及初始大小, 如图 7.7所示 。
( 6) 在命名事务日志文件的窗口中, 鼠标左键单击, 下一步, 按
钮, 则出现定义事务日志文件增长的信息窗口, 如图 7.8所示 。
图 7.7创建数据库向导 5 图 7.8创建数据库向导 6
第 12页 2011-10-16 山东师范大学管理学院
7.1.3 使用创建数据库向导创建数据库
出现确认数据库
创建信息窗口, 如
图 7.9所示 。 此时,
系统还没有真正创
建该数据库 。 因此,
如果前面的设置有
问题, 还可以通过
鼠标左键单击, 上
一步, 按钮去修改 。
如果确认前面的设
置正确, 那么可以
鼠标左键单击, 完
成, 按钮, 真正创
建该数据库 。
图 7.9创建数据库向导 7
第 13页 2011-10-16 山东师范大学管理学院
7.1.4 使用 SQL Server Enterprise Manager创建数据库
( 1)首先,启动 SQL Server Enterprise Manager,在左边
的目录结构中打开一个服务器,选择其中的数据库文件夹。
鼠标右键单击该文件夹,则弹出一个快捷菜单,如图 7.10所
示。通过这个菜单,可以执行数据库中的操作。
图 7.10用企业管理器创建数据库
第 14页 2011-10-16 山东师范大学管理学院
7.1.4 使用 SQL Server Enterprise Manager创建数据库
( 2)该快捷菜单中,选择新建数据库选项。这时出现
数据库属性窗口,如图 7.11所示。在该窗口中,有三
个选项卡:常规、数据文件和事务日志。在常规选项
卡最上面的名称文本框中输入新建数据库的名称。
图 7.11数据库属性
第 15页 2011-10-16 山东师范大学管理学院
7.1.4 使用 SQL Server Enterprise Manager创建数据库
( 3)数据文件选项卡如图 7.12所示,有一个列表区域,可以在这个
区域中输入数据文件的信息,包括数据文件名称、位置、初始大小和
文件组名称。
( 4)事务日志选项卡与数据文件选项卡,如图 7.13所示。在列表区
域,可查看事务日志文件的文件名、位置和分配的空间。
图 7.12数据文件选项卡 图 7.13事务日志选项卡
第 16页 2011-10-16 山东师范大学管理学院
7.2 使用 ASP/ADO访问数据库
7.2.1 ASP/ADO应用的环境
ADO( ActiveX Data Object,ActiveX数据对象)是一个 ASP内置的
ActiveX服务器组件( ActiveX Server Component),通过 ODBC驱
动程序可以连接多种支持 ODBC的数据库,包括 SQL Server,Oracle、
Informix等。
把 ADO与 ASP结合起来,能建立提供数据库信息的网页内容,并对数
据库进行查询、插入、更新、删除等操作。其 应用环境 如图 7.14所
示。
图 7.14 ASP/ADO 工作示意图
第 17页 2011-10-16 山东师范大学管理学院
7.2.2 查询数据库数据
查询是从数据库中获取所需的数据, 可以利用 SELECT语句来实现 。
SELECT语句功能是从表或视图中查询满足条件的记录, 语法格式如下,
SELECT 列名1, 列名2, …… 列名 n
[INTO 新表名 ]
[FROM 表名1, 表名2, …… 表名 n ]
[WHERE 条件表达式 ]
[GROUP BY列名1, 列名2, …… 列名 n]
[HAVING 条件表达式 ]
[ORDER BY 列名1 [ASC|DESC],列名 2[ASC|DESC],…… 列名
n[ASC|DESC]]
在上述语法格式中,SELECT子句用于指定输出字段; INTO子句用于
将查询到的结果集形成一个新表; FROM子句用于指定显示的列来源于
哪些表或视图; WHERE子句用于指定对记录的过滤条件; ORDER BY子
句用于将查询到的结果集按指定列排序; GROUP BY子句用于指定列值
相同的记录作为一组; HAVING子句用于指定对组的过滤条件。
第 18页 2011-10-16 山东师范大学管理学院
7.2.3 修改数据库数据
当数据添加到表中后, 如果某些数据发生了变化, 就需要对表中的
数据进行修改 。 在 SQL Server中, 对数据的修改可以通过 UPDATE语
句来实现 。 基本语法格式为,
UPDATE 目标表名
SET{列名=表达式 }[,… n][FROM 另一表名 ][WHERE 条件表达式 ]
修改数据需要两个页面。第一个页面要求是 ASP文件,在其中打开
数据库显示已有数据的值,设置输入域供用户输入数据。提交之后
的信息由另一个 ASP文件处理,在这个文件中,可以使用 Connection
对象的 Execute方法执行 SQL语言中的 UPDATE语句完成修改;或者通
过打开 Recordset对象,更改其中的数据,再调用 Update或
UpdateBatch方法将所做修改写入到数据库中。 Update方法用于修改
单条记录,修改多条记录必须用 UpdateBatch方法。
第 19页 2011-10-16 山东师范大学管理学院
7.2.4 连接多个数据表
连接多个数据表的基本语法如下,
SELECT 数据表名称 1.列名称, 数据表名称 2.列名
称, ……
FROM数据表名称 1,数据表名称 2,……
WHERE数据表名称 1.列名称=数据表名称 2.列名称
AND 数据表名称 1.列名称=数据表名称 2.列名称
其中,,SELECT”后面列出所有要选择的列名称,一个
数据表名称与列名称中间加,,”,即, 数据表名称,列名
称, 。, FROM”后面列出所有要连接的数据表名称,各数
据表名称之间以逗点分隔。, WHERE”后面将两个数据表
要连接的列,用, =, 连接在一起,再用, AND”连接多
个相连接的式子。
第 20页 2011-10-16 山东师范大学管理学院
7.3使用 Delphi中的 ADO组件访问数据库
7.3.1 Delphi6的 ADO组件
ADO( ActiveX Data Objects)是 Microsoft提供对各种
数据格式的高层接口( high-level interface),该接口
已经成为访问数据库的新的标准。 ADO支持用于建立基于
客户端 /服务器和 Web的应用程序的主要功能。它的主要
优点是易于使用、高速度、低内存支出和占用磁盘空间
较小。 ADO同时具有远程数据服务功能,通过 RDS,对数
据进行处理然后将更新结果返回服务器的操作。
在 ADO中,封装了 OLE DB的所有功能,并提供简单的接
口供应用程序使用,即通过 ADO可以访问所有提供 OLEDB标
准接口的数据。如果数据库未提供 OLE DB接口时,ADO将
使用 ODBC接口。它们的关系如图 7.15所示。
第 21页 2011-10-16 山东师范大学管理学院
7.3使用 Delphi中的 ADO组件访问数据库
ADO对象
OLE DB
SQL Server
Oracle Access
等 OLEDB数据
库
ODBC
其他数据库
图 7.15 ADO,OLE,ODBC接口关系图
第 22页 2011-10-16 山东师范大学管理学院
7.3.1 Delphi6的 ADO组件
Delphi6的组件面板上有一个 ADO组件页,如图 7.16示。
图 7.16 ADO组件面板
ADOConnection:用于和一个 ADO数
据库连接,其他组件都可以通过它
来操作数据库,这样就避免每个组
件都要建立自己的连接字符串。
ADOCommand,用于执行 SQL命令,可
以实现从一个表中检索数据,该组
件可以直接连接到数据设备上或通
过 ADOConnection连接到数据设备上
ADODataSet,用于检索和操作数据
库中数据的主要组件,可实现对一
个或多个数据表中检索数据 。
ADOQuery:对 ADODataSet的完善,用
于检索和操作由一个合法的 SQL语句
生成的数据集 。
ADOTable:对 ADODataSet的完善,
用于检索或操作由一个单一数据表
生成的数据集 。
RDSConnection,主要实现 RDS
Dataspace对象的功能,建立多层
客户 /服务器应用程序,用于远程
数据访问和回写 。
ADOStoreProc,对 ADODataSet的完
善,以支持存储过程
以上 ADO组件在实际程序中的关系如图 7.17所示。
图 7.17 ADO 组件关系图
数据库
TADOCommand
TADOConnection
ADO数据集控件
TADODataSet
TADOTable
TADOQuery
Execute方法
第 23页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
下面以协作学习过程系统中的人际关系控件为例,说明
ADO组件如何访问数据库。图 7.18是人际关系控件的界面。
TADOTable
TADOQuery
TADOConnection
图 7.18人际关系控件界面
第 24页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
人际关系控件的几个 ADO组件的定义如下,
Tproceed,TADOTable;
ADOlogin,TADOQuery;
ADOConnection1,TADOConnection;
Tdata,TADOQuery;
其中 TADOConnection1 组件的关键属性是参数
ConnectionString, 设置如图 7.19 所示, 在
UseConnectonString中的设置为,
Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info = False;
Initial Catalog = archive;Data Source=webcl
第 25页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
点击进行数据
链接属性设置
图 7.19 TADOConnection1关键属性设置
第 26页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
其中 Tdata组
件有两个关键属
性,一个是查询
参数 Parameters,
设置如图 7.21所
示,另一个是查
询命令 SQL,设
置如图 7.22所示。
图 7.21查询参数 Parameters设置
第 27页 2011-10-16 山东师范大学管理学院
7.3.2 ADO访问数据库示例
图 7.22查询命令 SQL设置
第 28页 2011-10-16 山东师范大学管理学院
7.4数据库安全策略与模式
7.4.1 SQL Server2000的安全策略
1.及时更新数据库补丁程序
SQL Server的许多安全漏洞都可由补丁程序来弥补。
建议在安装补丁程序之前在测试机上做测试,同时提前
做好服务器的数据备份。
2.杜绝 SA的空密码
由于 SQL Server的 SA拥有对数据库操作的最高权限,
因而应当给 SA一个复杂的密码。
第 29页 2011-10-16 山东师范大学管理学院
7.4.1 SQL Server2000的安全策略
3,严格控制数据库用户的权限
使用 SQL Server的安全功能, 控制用户如何访问特定数
据库文件, 包括这些用户如何访问特定的表, 记录和字
段 。
4,加强数据库日志审查
审核数据登录事件的, 失败和成功,,在实例属性中
选择, 安全性,,将其中的审核级选定为全部,这样在
数据库系统和操作系统日志里面,就详细记录了所有账
号的登录事件。定期查看 SQL Server日志,检查是否有可
疑的登录事件发生,一般 SQL Server日志所在目录为
Microsoft SQL Server\MSWQL\LOG*.*。
第 30页 2011-10-16 山东师范大学管理学院
7.4.1 SQL Server2000的安全策略
5.管理扩展存储过程
SQL Server的众多系统存储过程具有很强的功能,但是实际应
用中多数根本用不着,应删除不必要的存储过程,因为有些系统的
存储过程能很容易地被攻击者用来提升权限或进行破坏。
6.网络数据安全交换
将 SQL Server服务器与 IIS Web服务器安装在同一计算机上,这
样避免了通过网络交换数据。
将 SQL Server服务器部署在与外部网络相对隔离的内部网, 这样
IIS Web服务器与 SQL Server数据库服务器在相对安全的内部网络中
进行数据通信 。
对 Web服务器与数据库服务器之间的通信进行加密, 例如, 可以
使用 SSL协议, 也可使用 IPSec协议 。
第 31页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
1,设置 Windows身份验证模式
( 1)在企业管理器中
展开 SQL Server服务器
组,然后连接到要访问
的服务器上。
( 2)鼠标右键单击该服
务器并从快捷菜单中选
择, 属性, 命令。
( 3)当出现, SQL
Server属性, 对话框时,
选择, 安全性, 选项卡,
如图 7.23示。 图 7.23设置 Windows身份验证安全性
第 32页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
( 4) 在, 身份验证, 区域中, 选择, 仅 Windows”选项, 即
指用户只能使用 Windows身份验证连接到 SQL Server实例中 。
( 5) 在, 审核级别, 区域中选择在 SQL Server错误日志中
记录的用户访问 SQL Server的级别 。 审核级别是 SQL Server
用以跟踪和记录登录用户在 SQL Server实例上所发生的活动
( 如成功和失败的记录 ) 。
( 6) 设置启动服务账户 。 如果要指定启动 SQL Server服务
的账户为内置的本地系统管理员账户, 则选择, 系统账户,
选项;如果要指定启动 SQL Server服务的账户为 Windows NT
或 Windows 2000域账户, 则选择, 本账户, 选项, 并在, 密
码, 框中指定 Windows NT或 Windows 2000域账户的密码 。
鼠标左键单击, 确定, 按钮,然后停止并重新启动 SQL
Server,以使所设置的身份验证模式生效。
第 33页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
2,设置混合模式
混合模式是指 Windows身份验证和 SQL Server身份验
证的混合使用。在这种安全模式下,用户能够使用
Windows身份验证或 SQL Server身份验证与 SQL Server进
行连接。在 Windows身份验证模式或混合模式下,通过
Windows NT或 Windows 2000用户账户连接的用户可以使
用信任连接。
3,权限验证
建立连接以后,用户必须使用特定的用户账户才能对
数据库进行访问,而且只能查看经授权可以查看的表和
视图,只能执行经授权可以执行的存储过程和管理功能,
如图 7.24所示。
第 34页 2011-10-16 山东师范大学管理学院
7.4.2 SQL Server2000的安全模式
用户
db1
用户
db2
用户
db3
用户名
提供数据库访问
登录ID密 码
提供SQL
Ser ver 访问
图 7.24 SQL Server权限验证
第 35页 2011-10-16 山东师范大学管理学院
7.5 数据库的备份
7.5.1 备份准备工作
在 SQL Server系统中,备份是动态的,也就是说,在
进行数据库备份时,允许用户继续操作数据库。当备份
某个数据库时,SQL Server执行下列操作。
( 1)利用检查点机制检查数据库,记录最早的事务日
志记录的日志序列号。
( 2) 直接读取磁盘, 把全部的数据记录写进备份介质
中 。
( 3)从捕捉到的序列号开始,一直到日志的末尾,写
入全部的事务日志记录。
第 36页 2011-10-16 山东师范大学管理学院
7.5.1 备份准备工作
1.理解检查点
2.确定备份的内容
3.选择具体备份时间
备份的目的是当系统发生
硬件或者软件故障时,能
够将系统恢复到发生故障
之前的状态。因此,有必
要将系统的全部都备份下
来。总的来说,应该备份
两方面的内容,一方面是
备份记录系统信息的系统
数据库,另一方面是备份
记录用户数据的用户数据
库。
检查点是一个函数,SQL
Server合并了此函数,以便在
一个适当的时刻对数据库或者
配置选项进行及时地修改。当
配置或者修改服务器设置时,
必须重新启动系统,也可以手
工启动检查点进程,使配置或
者修改服务器设置发生作用。
如果进程未被干预,正常情况
下,检查点大约 60秒执行一次。
实际的检查点时间间隔取决于
服务器的负荷、已经设置好的
恢复选项和 SQL Server进行的
一般性能调节。
Master数据库(系统数据库)包含了系统中有关数据库的全部信息。
当创建任何用户定义的对象时,就应该备份 master数据库。 当执行
下列操作时,应该备份 master数据库。
( 1) 创建, 修改, 删除了数据库的语句 。 例如,CREATE DATABASE、
ALTER DATABASE或 DROP DATABASE。
( 2) 修改了事务日志的系统存储过程 sp_logdevice。
( 3) 增加或者删除了服务器的系统存储过程 。 例如 sp_addServer、
sp_addlinkedServer或者 sp_dropServer。
第 37页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
1,SQL Server2000备份数据库的四种方法
( 1)数据库备份
( 2)差异备份
( 3)事务日志备份
( 4)文件或文件组备份
即制作数据库中所有内容的
副本。 恢复时,仅需要恢复
最后一次全库备份。该备份
以后的修改都将丢失。
即只备份最后一次全库备份
后被修改的数据页。备份的
时间和空间较少。恢复时,
先恢复最后一次全库备份,
再恢复最后一次差异备份。
即备份某个数据库文件或数
据库文件组。必须与日志备
份结合才有意义。
即只备份最后一次日志备份后所
有的事务日志记录。备份所用的
时间和空间更少。利用日志备份
进行恢复时,可以指定恢复到某
一个事务。建议每周进行一次全
库备份,每天进行一次差异备份,
每小时执行一次日志备份,这样
最多只会丢失一小时的数据。恢
复时,先恢复最后一次全库备份,
再恢复最后一次差异备份,再顺
次恢复最后一次差异备份以后进
行的所有事务日志备份。
第 38页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
2,使用备份向导备份数据库示例
下面以协作学习过程数据库 Archive为例,介绍使用
备份向导备份数据库的方法和步骤。
( 1)在企业管理器中展开服务器组,然后展开一个服
务器。
( 2)展开, 数据库, 文件夹,然后鼠标左键单击要备
份的数据库,例如 Archive。
( 3)从, 工具, 选中选择, 向导, 命令,打开如图
7.25所示的, 选择向导, 对话框。
( 4)鼠标左键单击, 管理, 节点,选择, 备份向导,
选项,出现, 欢迎使用创建数据库备份向导, 画面,然
后鼠标左键单击, 下一步, 按钮,出现如图 7.26所示的
对话框。
第 39页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
图 7.26 选择要备份的数据库 图 7.25,选择向导, 对话框
第 40页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 5)选择所备份的
数据库(例如
Archive),鼠标左键
单击, 下一步, 按钮,
出现, 键入备份的名称
和描述, 对话框,在该
对话框中输入备份的名
称和描述信息,然后鼠
标左键单击, 下一步,
按钮,出现如图 7.27所
示的对话框。 图 7.27选择备份类型
第 41页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 6)选择如图 7.27所示的对话框备份方法之一。选择一
种备份方法之后,鼠标左键单击, 下一步, 按钮,出现如
图 7.28所示的对话框。
图 7.27选择备份类型
第 42页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 7)选择备份目的和操作。选择, 备份设备, 选项为, 文件, 方
式,其中文件名和路径自定义;如果要将此次备份追加到原有备份数
据的后面,可以选择, 属性, 选项中的, 追加到备份媒体, 选项;如
果要用此次备份的数据覆盖原有备份数据,可以选择, 重写现有媒体,
选项。鼠标左键单击, 下一步, 按钮,出现如图 7.29所示的对话框。
图 7.28选择备份目的和操作
第 43页 2011-10-16 山东师范大学管理学院
7.5.2 多种备份方法的操作
( 8)鼠标左键单击, 更改, 按钮,确定备份的计划,然后鼠标左键
单击, 下一步, 按钮,出现备份向导的, 完成, 对话框,如图 7.30。
图 7.29备份验证和调度 图 7.30完成对话框
第 44页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
1.永久备份文件的建立
永久性的备份文件,在备份执行之前所创建的
备份文件称为永久性的备份文件,这些永久性
的备份文件也称为备份设备。
创建永久性备份文件有两种方法,使用 SQL
Server Enterprise Manager,或者执行系统
存储过程 sp_addumpdevice。
第 45页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
创建永久性的备份文件时,应该考虑下列因素,
(1)SQL Server 系统在 master 数据库中的系统表
sysdevices中创建该永久性备份文件的逻辑名称和物理
名称 。
( 2) 必须指定该备份文件的逻辑名称和物理名称 。
( 3)一个数据库最多可以创建 32个备份文件。
第 46页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
系统存储过程 sp_addumpdevice的语法形式如下,
[EXECUTE]sp_addumpdevice′ 设备类型 ′,′ 逻辑
名称 ′,′ 物理名称 ′
[,{{controller_type|′device_status′}}]
其中设备类型是 {DISK | TAPE | PIPE},磁盘、磁带
和命名管道。
在硬盘上创建一个永久性备份文件,程序清单如下,
USE master
EXEC sp_addumpdevice ′disk′,
′archivebackupfile′,′C,\Program
Files\Microsoft SQL
Server\MSSQL\BACKUP\arbackupfile.bak′
第 47页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
2.临时备份文件的建立
如果不打算重新使用某些备份文件,就可以创建
临时的备份文件。创建临时备份文件有两种方法:
使用 SQL Server Enterprise Manager,或者使用
BACKUP DATABASE语句。
BACKUP DATABASE语句的语法形式如下,
BACKUP DATABASE {database_name | @
database_name_var}TO < backup_file> [,… n]
其中,<backup_file>是 {{backup_file_name |
@ backup_file_name_evar} |
{DISK|TAPE|PIPE}={temp_file_name | @
temp_name_evar}
第 48页 2011-10-16 山东师范大学管理学院
7.5.3 临时、永久备份文件的建立
在磁盘上创建了一个临时备份文件, 并且
把 Archive数据库备份到该临时备份文件上 。
程序清单如下,
USE master
BACKUP DATABASE Archive TO DISK= ′C,
\Temp\TempArchive.bak′
第 49页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
使用 BACKUP语句可以对数据库进行全库备份、差异备份、日志备
份或文件和文件组备份。
1.全库备份
制作数据库中所有内容的一个副本,从一个全库备份
中就可以恢复整个数据库。其语法格式为,
BACKUP DATABASE 数据库名 TO备份设备名 [WITH
[NAME= ′ 备份的名称 ′][,INIT|NOINIT]]
例如,对数据库 Archive做一次全库备份,备份设备为创
建永久备份文件时建立的本地磁盘设备
archivebackupfile,并且此次备份覆盖以前所有的备份。
代码如下,
BACKUP DATABASE Archive TO DISK=
′archivebackupfile′WITH INIT,
NAME=′Archivebackup′
第 50页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
2.差异备份
从最近一次全库备份结束以来所有改变的数据备份到
数据库。当数据库从上次备份以来,数据发生很少的变化
时适合使用差异备份。其语法格式如下,
BACKUP DATABASE 数据库名 TO 备份设备名 WITH
DIFFERENTIAL[,NAME= ′ 备份的名称 ′][,INIT|NOINIT]]
对数据库 Archive进行差异备份,备份设备为创建永久
备份文件时建立的本地磁盘设备 archivebackupfile,代
码以下,
BACKUP DATABASE Archive TO DISK=
′archivebackupfile′WITH DIFFERENTIAL,NAME=
′Archivebackup′,NOINIT
第 51页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
3.日志备份
从最近一次日志备份以来所有事务日志备份到备份设
备。通常情况下日志备份经常与全库备份和差异备份结合
使用,其语法格式下,
BACKUP LOG 数据库名 TO 备份设备名 [WITH [NAME= ′
备份的名称 ′][,INIT|NOINIT]]
对数据库 Archive进行日志备份,备份设备为创建永久
备份文件时建立的本地磁盘设备 archivebackupfile,代
码以下,
BACKUP LOG Archive TO DISK=
′archivebackupfile′WITH NAME= ′Archivebackup′,
NOINIT
第 52页 2011-10-16 山东师范大学管理学院
7.5.4 BACKUP语句的操作
4.文件与文件组备份
数据很大时,可以采用文件和文件组备份方式,即对数
据库中的部分文件或文件组进行备份。其语法格式如下,
BACKUP DATABASE 数据库名 FILE=′ 文件的逻辑名称
′|FILEGROUP=′ 文件组的逻辑名称 ′ TO 备份设备名
[WITH [NAME= ′ 备份的名称 ′][,INIT|NOINIT]]
将 Archive数据库的 Archive_data文件备份到本地磁盘设
备 filebackup。代码如下,
BACKUP DATABASE Archive FILE=′Archive_data′ to
DISK=′filebackup′
第 53页 2011-10-16 山东师范大学管理学院
7.6 数据库的恢复
7.6.1数据库恢复顺序
数据库恢复 是指将数据库备份加载到系统中
的过程。
在进行数据库恢复时,系统首先进行一些安
全性检查,例如指定的数据库是否存在、数据
库文件是否有变化、数据库文件是否兼容,然
后指定数据库及其相关的文件。之后,针对不
同的数据库备份类型,采用不同的数据库恢复
方法。
第 54页 2011-10-16 山东师范大学管理学院
7.6 数据库的恢复
如表 7.2所示,某数据库在三个不同时刻分别做了不同
的数据库备份,若在时刻 3以后数据库被破坏时,要恢复
数据库就要按表中, 恢复顺序, 中所列的顺序进行。
备份方法 时刻 1 时刻 2 时刻 3 恢复顺序
全库备份 全库 1 全库 2 全库 3 全库 3
差异备份 全库 1 差异 1 差异 2 全库 1→ 差异 2
日志备份 全库 1 日志 1 日志 2 全库 1→ 日志 1→ 日志 2
文件或文件
组备份
文件 1,
日志 1
文件 2,
日志 2
文件 1,
日志 3
恢复文件 2的顺序:时刻 2的文
件 2备份 → 日志 2→ 日志 3
恢复文件 1的顺序:时刻 3的文
件 1备份 → 日志 3
表 7.2 数据库备份恢复顺序表
第 55页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
恢复总是在数据库系统运行时发生故障后进
行的,故障可以分为三种,事务故障, 系统
故障 和 介质故障 。针对不同的故障,所采用
的恢复手段也会有所不同。
1,事务故障及其恢复
事务故障,事务在运行过程中,由于输入错误、运
算溢出、应用程序错、并行事务死锁等原因,导致事
务未运行至正常终止就退出。这种情况称之为事务故
障。
事务故障是对数据库影响最小的一种故障,只
涉及一个事务对数据库的更新。
第 56页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
具体做法如下,
(1)从后向前扫描日志文件, 查找该事务的
更新操作 。
(2)对该事务执行逆操作, 即对原先的插入
操作执行删除操作, 对原先的删除操作执行
插入操作, 对原先的修改操作, 用日志文件
中, 修改前的值, 代替, 修改后的值, 。
(3)继续向前扫描日志文件,查找该事务的
其他更新操作,并作同样的处理,直到该事
务的开始。
第 57页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
2,系统故障及其恢复
系统故障,在数据库系统运行过程中,由于操作系统或
DBMS代码错误、操作员操作失误、硬件发生错误(如 CPU
故障)、突然停电等原因,致使所有正在运行的事务都非
正常终止,这样的故障称为系统故障。 具体做法如下,
( 1) 从前向后扫描日志文件, 找出在故障前已经提交
的事务记入重做队列, 这些事务既有 BEGIN TRANSACTION
记录, 又有 COMMIT记录;同时还要找出故障发生时尚未完
成 的 事 务 记 入 撤 销 队 列, 这 些 事 务 只 有 BEGIN
TRANSACTION记录, 没有 COMMIT记录 。
( 2) 对撤销队列中的各个事务进行撤销处理:反向扫
描日志文件, 将每个 UNDO事务的更新操作执行逆操作 。
( 3)对重做队列中的各个事务进行重做处理:正向扫
描日志,对每个 REDO事务重新执行登记的操作。
第 58页 2011-10-16 山东师范大学管理学院
7.6.2数据库恢复策略
3,介质故障及其恢复
介质故障,系统在运行过程 中,由于磁头损坏、磁头碰撞
或其他原因(如地震、洪水等)使外存中的数据部分或
全部丢失,这种故障称为介质故障。具体做法如下,
( 1) 装入最新的后备副本, 使数据库恢复到最近备份
时的一致性的状态 。 对于动态备份的后备副本, 需要同
时装入备份时刻的日志;对于最近的后备副本是增量备
份的, 需要先装入最近一次的海量备份的后备副本, 然
后再安装之后所有的增量备份的后备副本 。
( 2)装入有关的日志文件副本,重做已经完成的事务。
从前向后扫描日志文件,找出在故障前已经提交的事务
记入重做队列,然后对重做队列中的各个事务进行重做
处理,即正向扫描日志,对每个 REDO事务重新执行登记
的操作。
第 59页 2011-10-16 山东师范大学管理学院
7.6.3系统在恢复进程中的活动
在恢复数据库的进程中,系统将自动执行某些操作,
确保数据库安全迅速地恢复。这些操作包括执行安全
性检查,以及重建数据库及其相关文件。
在下面几种情况下, 系统不恢复数据库 。
( 1) 在备份文件中记录的数据库不同于在 RESTORE语
句中指定的数据库时 。
( 2) 服务器上的数据库文件集不同于备份集中的数据
库文件集 。
( 3) 如果没有提供用于恢复数据库的全部文件或者文
件组, 那么系统生成一个错误消息, 并要求指定用于
恢复的文件 。
第 60页 2011-10-16 山东师范大学管理学院
7.6.4恢复前备份文件的验证
在恢复数据库文件时,必须确保数据库备份文件是有效
的,并且在备份文件中包含了所需要的备份内容。
在两种方法可以得到数据库备份的信息,
一种方法是使用 SQL Server Enterprise Manager查
看每一个备份设备的属性,另外一种方法是使用一些
Transact-SQL语句。
验证备份信息常用的 Transact-SQL语句有 RESTORE
HEADERONLY和 RESTORE FILELISTONLY,RESTORE
LABELONLY,RSTORE VERIFYONLY。
第 61页 2011-10-16 山东师范大学管理学院
7.6.4恢复前备份文件的验证
RESTORE HEADERONLY
RESTORE FILELISTONLY
使用 RESTORE HEADERONLY语句可以获得指定的备份文件或者备份
集的标题信息。这些信息包括,
( 1) 备份文件或者备份集的名称和描述信息 。
( 2) 所使用的备份介质类型, 例如磁带或者硬盘 。
( 3) 所使用的备份方法, 例如完全数据库备份, 增量备份, 日志
备份或者文件备份 。
( 4) 执行备份的日期和时间 。
( 5) 备份的尺寸大小 。
( 6) 在备份文件链中某个特定备份的序列号 。
使用 RESTORE FILELISTONLY语句可以获得备份文件中包含的数据
库文件或者事务日志文件的信息 。 执行这条语句有助于避免恢复
错误的备份文件 。 当执行该条语句时, 系统可以返回下述信息,
( 1) 数据库文件和事务日志文件的逻辑名称 。
( 2) 数据库文件和事务日志文件的物理名称 。
( 3) 文件的类型, 例如是数据库文件还是事务日志文件 。
( 4) 文件组中包含的成员 。
( 5) 以 MB表示的备份集的大小尺寸 。
( 6) 以 MB表示的该文件所允许的最大尺寸 。
第 62页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
恢复数据库 就是把原来备份的数据恢复到
备份前的状态。 当还原数据库时,SQL
Server会自动将备份文件中的数据库全部拷
贝到数据库,并回滚任何未完成的事务,以
保证数据库中数据的一致性。 执行数据库的
恢复可以用语句 RESTORE DATABASE来完成,
也可以用 SQL Sever“企业管理器, 实现 。
第 63页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
用 SQL Sever“企业管
理器, 实现, 具体的操
作方法如下,
( 1) 展开指定的数据
库结点, 展开, 数据库,
结点 。
( 2)选中指定的数据
库,单击鼠标右键,选
择, 所有任务, 命令,
选择, 还原数据库, 命
令,则系统弹出如图
7.33所示的对话框。
图 7.33“还原数据库, 对话框
第 64页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 3) 在, 还原为数据库, 下拉列表中选择要还原的目
标数据库, 该数据库可以是不同于备份数据库的另一个
数据库, 即可以将一个数据库的备份还原到另一个数据
库中 。 可以从下拉列表中选择已存在的数据库, 也可以
输入一个新的数据库名称, SQL Server2000将自动新建
一个数据库, 并将数据库备份到新建的数据库中 。
( 4) 选择一种还原的方式, 可以是, 数据库,,, 文
件组或文件, 或, 从设备, 方式 。 选择第一种方式可以
很方便地还原数据库, 但这种方式要求要还原的备份必
须在 msdb数据库中保存了备份历史记录, 在其他服务器
上创建的备份在 msdb数据库中没有记录, 则此时将一个
服务器上制作的数据库备份还原到另一个服务器上时,
不能使用数据库的还原方式, 而只能使用备份设备还原 。
第 65页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 5) 当选择, 数据库, 方式时, 在, 参数, 栏的, 显
示数据库备份, 下拉列表框中选择经还原的数据库备份 。
在, 还要还原的第一个备份, 下拉列表框中列出了要还
原的数据库在 msdb中记录的所有备份历史, 从中选择在
某一日期下备份的数据库备份文件, 如图 7.33所示 。
( 6) 在, 常规, 选项卡的下部, 显示了一个备份的列
表, 表中列出了从, 要还原的第一个备份, 开始的对该
数据库进行的所有备份, 对每个备份都显示了该备份的
类型, 备份的时间, 大小, 备份的物理名称等信息 。 用
户可以从中选择所要还原的备份, 方法是选中备份前面
的, 还原, 复选框 。 默认状态下, SQL Server会为用户
选择最新的全库备份, 最后一次差异备份以及最后一次
差异备份之后进行的所有日志备份 。
第 66页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 8) 在, 选项, 选项卡中设置还原
的选项, 如图 7.34所示 。, 将数据库
文件还原为, 选项列表中给出了要还
原的数据库文件的原文件和将要还原
成的文件名, 在默认状态下, 将要还
原成的文件名与原文件名相同, 用户
可以将其改为其他的名字 。
( 9) 在, 恢复完成状态, 选项中选
择下列单选按钮之一 。
·选择第一个按钮, 数据库恢复完成后
数据库能继续运行, 但无法还原其他
事务日志 。 ·选择第二个按钮, 数据库
恢复完成后数据库不能运行, 但能还
原其他事务日志 。 ·选择第三个按钮,
数据库恢复完成后数据库自动为只读
方式, 不能对其进行修改, 但能还原
其他事务日志 。
图 7.34设置还原选项
第 67页 2011-10-16 山东师范大学管理学院
7.6.5从多种备份中恢复数据库
( 10) 鼠标左键单击, 确定, 按钮, 开始还原操作 。 如果在如图 7.32
所示的对话框中选择的还原类型是, 从设备,, 则会出现如图 7.35所
示的对话框 。 鼠标左键单击, 选择设备, 按钮, 然后在如图 7.36所示
的对话框中单击, 添加, 按钮, 选择要还原的备份文件, 再鼠标左键
单击, 确定, 按钮, 即可开始还原数据库 。
图 7.35从备份设备还原对话框 图 7.36选择还原设备对话框
第 68页 2011-10-16 山东师范大学管理学院
7.6.6系统数据库的恢复
在下列情况下, 可能需要从备份恢复 model、
msdb 或 distribution 数据库,
( 1) 使用 Rebuild master 命令提示实用工具
重建了 master 数据库 。
( 2) model,msdb 或 distribution 数据库已
损坏 ( 例如由于媒体故障 ) 。
( 3) 已经修改 model 数据库 。 在这种情况下,
重建 master 数据库时必须从备份还原 model
数据库, 因为重建主控实用工具删除和重新创建
model 数据库 。
第 69页 2011-10-16 山东师范大学管理学院
7.6.7数据库文件的间接备份和恢复
数据库是存放在文件中的。每一个数据库至少有
两个文件,即 数据文件和日志文件 。 数据文件用
于存放数据库中的数据,日志文件用于存放数据
库的事务日志。
间接恢复 的意思是, 在使用这些文件恢复数据库
时, 应该针对这些文件和数据库分别执行相应的
命令, 例如通过系统存储过程 sp_attach_db和
sp_sttach_single_file_db,可以将有关文件和
数据库的信息记录到系统数据库和系统表中, 这
样系统就可以识别这些文件和数据库, 也就可以
把文件和数据库恢复到系统中 。
第 70页 2011-10-16 山东师范大学管理学院
7.6.7数据库文件的间接备份和恢复
系统存储过程 sp_attach_db的语法形式如下,
sp_attach_ [ @ dbname=]′dbname′, [@
filename1=]′filename n′[,… 16]
系统存储过程 sp_attach_single_file_db的
语法形式如下所示,
sp_attach_single_file_db [ @
bname=]′dbname′,[ @ physname=]
′physical_name′
第 71页 2011-10-16 山东师范大学管理学院
创建 SQL数据库
ASP/ADO应用的环境, 查询, 修改数据库数据, 连接多个
数据表
Delphi6的 ADO组件, ADO访问数据库示例
数据库多种备份方法的操作, 临时, 永久备份文件的建立,
BACKUP语句的操作
数据库恢复顺序与策略, 恢复前备份文件的验证, 从多种
备份中恢复数据库, 系统数据库的恢复, 数据库文件的间接
备份和恢复
SQL Server的安全策略, SQL Server 2000的安全模式 。
本章小结
第 72页 2011-10-16 山东师范大学管理学院
第 73页 2011-10-16 山东师范大学管理学院
练习与思考
1.什么是 ODBC? 如何创建 ODBC数据库?
2.创建 SQL数据库有哪几种方式?
3.画图描述 ASP/ADO应用的环境 。
4.SQL Server的安全策略有哪些?
5.简述 SQL Server2000的安全模式 。
6.简述 SQL Server2000备份数据库的四种方法 。
7.简述数据库恢复顺序及策略 。
8.如何从多种备份中恢复数据库?
9.如何恢复系统数据库?
10.简述数据库备份与恢复的重要性。
第 74页 2011-10-16 山东师范大学管理学院
?Web数据库创建与编辑
( 1) 实验目的 。 了解 Access2000,SQL Server
2000的功能和特点, 掌握 ODBC数据库, SQL
Server数据库的创建与编辑 。
( 2) 实验资源, 工具和准备工作 。 在 Windows
2000Server 系 统 上 已 安 装 和 配 置 好 了
Access2000或 SQL Server2000。
( 3) 实验内容 。 创建 ODBC数据库 ( 准备数据库文件,
获得数据源 ) ;使用创建数据库向导创建 SQL数
据库 。
( 4) 实验步骤 。 参照 7.1.1和 7.1.2节进行, 实验结
束, 写出实验报告 。
网络实验
第 75页 2011-10-16 山东师范大学管理学院
?SQL Server2000数据库的备份
( 1) 实验目的 。 了解数据库备份的过程, 掌
握备份数据库的方法 。
( 2) 实验资源, 工具和准备工作 。 在 Windows
2000Server系统上 已安装 和配置 好了 SQL
Server2000。
( 3) 实验内容 。 使用备份向导备份数据库 。
( 4) 实验步骤 。 参照 7.5.2节进行, 实验结束,
写出实验报告 。
网络实验
第 76页 2011-10-16 山东师范大学管理学院
?SQL Server2000数据库的恢复
( 1) 实验目的 。 了解数据库恢复的过程,
掌握恢复数据库的方法 。
( 2) 实验资源, 工具和准备工作 。 在
Windows 2000Server系统上已安装和配置
好了 SQL Server2000。
( 3) 实验内容 。 使用 SQL Sever“企业管理
器, 恢复数据库 。
( 4) 实验步骤 。 参照 7.6.5节进行, 实验
结束, 写出实验报告 。
网络实验