SQL Server-数据库的创建、分离、备份、附加和删除

在SQL Server中,每个数据库至少拥有两个操作系统文件:一个数据文件和一个日志文件。

数据文件包含数据和对象;例如数据库表( table),索引( index)、存储过程( storage)、触发器( trigger)和视图(view)等。

日志文件包含数据库中所有更新事务的全部信息,用于恢复数据库。为了便于分配和管理,可以将数据文件集合成若干文件组。在创建数据库对象之前应首先创建数据库。

数据库文件:SQL Server数据库具有三种类型的文件

主要数据文件:主要数据文件( primary data file)包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。主要数据文件的建议文件扩展名是. mdf。

次要数据文件:次要数据文件(no-primary data file)是可选的,由用户定义并存储用户数据。将数据库中的数据分散在不同的文件中有两个好处。其一,次要文件可用于将数据分散到多个磁盘上,这样系统就可以同时对多个硬盘做存取,加快数据处理的速度,提高系统工作效率。其二,如果数据库超过了单个Windows文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长。次要数据文件的建议文件扩展名是. ndf。

事务日志文件:事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。事务日志的建议文件扩展名是.ldf。

在SQL Server 2005 中,数据库中所有文件的位置都记录在数据库的主文件master系统数据库中。大多数情况下,数据库引擎使用master数据库中的文件位置信息。

文件组:

文件组是指将构成数据库的数个文件集合起来组合成为一个个群体,并给定一个组名。当在数据库中创建数据库对象时,可以特别指定要将某些对象存储在某一特定的组上。SQL  Server 2005 中的数据库可由数个文件组组成,其中一个称为主要文件组( primary filegroup),其他则由用户定义,称为非主要文件组。

当创建数据库时,主要文件组包含有主要数据文件和未指定加入组的其他文件,该数据库所属的系统表(systemtable)也是建立在主要文件组上。在其他非主要文件组中,用户可指定其中一个为默认文件组(default filegroup),当用户在数据库上创建对象时,如果未指明该对象要建立在哪一个文件组时,系统会将该对象建立在默认文件组上。默认文件组中的文件必须足够大,能够容纳未分配给其他文件组的所有新对象。如果没有默认文件组的话,则主要文件组为默认的文件组。使用文件组的目的也是为提高执行效率。

事务日志:

在创建一个数据库的同时,系统一定要创建一个对应的事务处理日志文件(transaction log),该文件是用来记录数据库的更新情况的,凡对数据库数据有改变的事务操作都会记录在这个文件中,如insert , update, delete操作等。事务日志的作用是当数据库被破坏时,可以利用它来恢复数据库内容。每个数据库也可以有多个日志文件。其建议文件扩展名为.ldf。

逻辑和物理文件名称:

逻辑文件名(logical_file_name)是在所有Transact-SQL语句中引用数据库物理文件时所使用的名称。逻辑文件名必须符合SQL Server标识符规则,而且在数据库中的逻辑文件名必须是唯一的。

物理文件名(os_file_name)是包括目录路径的数据库物理文件名。它必须符合操作系统文件命名规则。

 

创建数据库

1.交互式创建数据库

打开SQL Server ,在对象资源管理器中,右击“数据库”,选择“新建数据库”。在窗口中可以对数据库文件进行操作。设置好参数后确认。

2.使用create database语句指定参数创建数据库

2.1 创建数据库

在查询编辑器窗口中输入T-SQL语句:

create database testbase1  --数据库名
on
(  name = testbase1_data,  --逻辑文件名
     filename = 'F:testbase1_data.mdf')  --物理文件名
log on
(  name = testbase1_log,
     filename = 'F:testbase1_log.ldf')
go

2.2 指定多个参数创建数据库

在查询编辑器窗口中输入T-SQL语句:

create database testbase2  --数据库名
on
    primary  --文件组
        ( name = testbase2_prim_sub_dat1,  --逻辑文件名
            filename = 'F:testbase2_prim_sub1_dat.mdf',  --物理文件名
            size = 5mb,
            maxsize = 50mb,
            filegrowth = 20%),
        ( name = testbase2_prim_sub_dat2,
            filename = 'F:testbase2_prim_sub2_dat.ndf',
            size = 5mb,
            maxsize = 50mb,
            filegrowth = 20%),
    filegroup testbase2_group1
        ( name = testbase2_group1_sub1,
            filename = 'F:testbase2_group1_sub1_dat.ndf',
            size = 5mb,
            maxsize = 50mb,
            filegrowth = 5mb),
        ( name = testbase2_group1_sub2,
            filename = 'F:testbase2_group1_sub2_dat.ndf',
            size = 5mb,
            maxsize = 50mb,
            filegrowth = 5mb),
    filegroup testbase2_group2
        ( name = testbase2_group2_sub1,
            filename = 'F:testbase2_group2_sub1_dat.ndf',
            size = 5mb,
            maxsize = 50mb,
            filegrowth = 15%),
        ( name = testbase2_group2_sub2,
            filename = 'F:testbase2_group2_sub2_dat.ndf',
            size = 5mb,
            maxsize = 50mb,
            filegrowth = 15%)
log on
( name = testbase2_testbase2_log,
    filename = 'F:testbase2_log_file.ldf',
    size = 20mb,
    maxsize = 500mb,
    filegrowth = 10mb)
go

  

分离数据库

1.交互式分离数据库

打开SQL Server Management Studio,连接到服务器后,在对象资源管理器中右击testbase1,选择“任务”->“分离”,打开“分离数据库”对话框。

如果“状态”列为“就绪”,表明该数据库 testbasel正处于非活动连接状态,则单击“确定”按钮即可完成分离。

如果 “状态”列为“非就绪”,表明该数据库 testbasel正处于活动连接状态,即正在使用中,则需选中“删除连接”列中的复选框,再单击“确定”按钮即可完成分离。

2.使用系统存储过程分离数据库

在查询编辑器窗口中输入T-SQL语句:

exec sp_detach_db testbase2, true

  

数据库文件备份

复制数据库testbase1 物理文件到移动硬盘或其他文件夹有两种方法:

1.分离数据库

根据“分离数据库”中的方法,先分离数据库,然后就可以在文件资源管理器中复制数据库文件了。

2.停止 SQL Server 服务

打开SQL Server配置管理器,单击左窗格中的“SQL Server服务”,查看右窗格中列出的所有SQL Server服务项目,如果SQL Server(MSSQLSERVER)项的“状态”是“正在运行”,则右击SQL Server(MSSQLSERVER),在打开的快捷菜单中选择“停止”或“暂停”,系统即打开一个显示停止SQL Server服务的进度指示窗口,停止运行后,SQL Server(MSSQLSERVER)项的“状态”变为“已停止”。

也可以在SQL Server Management Studio中停止 SQL Server 服务。在“对象资源管理器”中右击MXM,左击停止选项。

在SQL Server Management Studio中,查看“对象资源管理器”中 MXM 左侧的图标已变成红色方点(表示此服务已停止运行,服务运行时显示为绿色三角符号)。

服务停止后,就可以在文件资源管理器中复制数据库文件了。

 

注:如果连接到服务器时出现下面的问题,需要在SQL Server配置管理器中重新启动服务。

 

附加数据库

1.交互式

(1)使用交互式方法将分离的数据库 testbase1 附加到 SQL Server 服务中。

打开SQL Server Management Studio,连接到服务器后,在对象资源管理器中右击数据库,左击“附加”。
在“附加数据库”对话框中点击“添加”,打开“定位数据库文件”对话框,选择数据库testbase1的数据物理文件后确定。
在“附加数据库”对话框中查看数据库的详细信息。

2.系统存储过程

(2)使用系统存储过程附加数据库。

新建查询,在查询编辑器窗口中输入如下T-SQL语句后执行:

exec sp_attach_single_file_db @dbname = 'testbase1',  --数据库名
    @physname = 'F:testbase1_data.mdf'  --物理文件名

  

删除数据库

1.交互式

打开SQL Server Management Studio,连接到服务器后,在对象资源管理器中展开“数据库”文件夹。

右击数据库 testbase1,选择“删除”选项。在“删除对象”对话框中点击确定。

2.drop database语句

新建查询,在查询编辑器窗口中输入如下T-SQL语句后执行:

drop database testbase2

  

posted @ 2022-04-09 23:50  Khru  阅读(746)  评论(0编辑  收藏  举报