数据库复习—数据库的创建和管理

数据库创建和管理

数据库文件介绍
  1. 至少具有两个操作系统文件:一个数据文件和一个日志文件
  2. 数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库中的所有事物所需的信息
  3. 为了便于分配和管理,可以将数据文件集合起来,放到文件组中。
数据文件
  1. 数据文件:
  • 主要数据文件
  • 次要数据文件
    主要数据文件的建议文件扩展名是.mdf
  1. 次要数据文件是可选的
    次要数据文件的建议文件扩展名是.ndf
日志文件
  1. 事务日志的建议文件扩展名是.ldf
文件组
  1. 每个数据库有一个主要文件组。此文件组包含主要数据文件和未放入其他文件组的所有次要文件。
  2. 默认文件组:只能将一个文件组指定为默认文件组。默认文件组中的文件必须足够大,能够容纳未分配给其他文件组的所有新对象。PRIMARY文件组是默认文件组。
SQL Server 2005 文件名称
  1. SQL Server 2005 文件有两个文件名称:逻辑和物理文件名称
文件和文件组的设计规则
  1. 一个文件和文件组不能由多个数据库使用。
  2. 一个文件只能是一个文件组的成员。
  3. 数据和事务日志信息不能属于同一个文件或文件组。
  4. 事务日志文件不能属于任何文件组。
创建数据库
  1. 创建数据库的方法
  • 实例1:
    使用CREATE DATABASE创建一个student数据库,所有参数均取默认值。
    create database student
  • 实例2:
    创建一个Student2数据库,该数据库的主文件逻辑名称为Student2_data,物理文件名为Student2.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Student2_log,物理文件名为Student2.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。
    create database student2
    on primary
    (name = student2_data,
    filename = ‘g:\study\SQL\database\student2.mdf’,
    size = 10,
    maxsize = unlimited,
    filegrowth = 10%)
    log on
    (name = student2_log,
    filename = ‘g:\study\SQL\database\student2.ldf’,
    size = 1,
    maxsize = 5,
    filegrowth = 1)
  • 实例3:
    创建一个指定多个数据文件和日志文件的数据库。该数据库名称为student3,有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为student3_data1和student3_data2,物理文件名为student3_data1.mdf和student3_data2.ndf。主文件是student3_data1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为student3_log1和student3_log2,物理文件名为student3_log1.ldf和student3_log2.ldf,最大尺寸均为50MB,文件增长速度为1MB。
    create database student3
    on primary
    (name = student_data1,
    filename = ‘g:\study\SQL\database\student3_data1.mdf’,
    size = 10,
    maxsize = unlimited,
    filegrowth = 10%),
    (name = student3_data2,
    filename = ‘g:\study\SQL\database\student3_data2.ndf’,
    size = 20,
    maxsize = 100,
    filegrowth = 1)
    log on
    (name = student3_log1,
    filename = “g:\study\SQL\database\student3_log1.ldf”(路径名不可用双引号)
    size = 10,
    maxsize = 50,
    filegrowth = 1),
    (name = student3_log2,
    filename = ‘g:\study\SQL\database\student3_log2.ldf’,
    size = 10,
    maxsize = 50,
    filegrowth = 1)
删除数据库

drop database 数据库名称[,…n]

  • 示例
    drop database student3
重命名数据库

sp_renamedb[@dbname = ]‘old_name’,[@newname = ]‘newname’

  • 示例
    sp_renamedb ‘student2’ ,‘student21’
收缩数据库

dbcc shrinkdatabase
(‘database_name’|database_id|
0 [,target_percent] [,{notruncate|truncateonly}])

  • target_percent:
    数据库收缩后的数据库文件中所需的剩余可用空间百分比
  • notruncate
    导致在数据库文件中保留所释放的文件空间。如果未指定,将释放的文件按空间释放给操作系统
  • truncateonly
    导致数据文件中任何未使用空间被释放给操作系统,并将文件收缩到最后分配的区,从而无需任何移动数据即可减小文件大小。不会尝试将行重新定位到未分配的页。使用truncateonly时,将忽略target_percent。
收缩文件

dbcc shrinkfile({‘file_name’|file_id}
{[[,target_size][,{ontruncate|truncateonly}]]})

  • target_size
    用兆字节表示的文件大小(用整数表示)。如果未指定,则dbcc shrinkfile 将文件大小减小到默认文件大小。如果指定了target_size,则dbcc shrinkfile 尝试将文件收缩到指定大小。
    示例
    dbcc shrinkdatabase (student,50,notruncate)
    示例
    use student
    go
    dbcc shrinkfile(student_log,20)
修改数据库

包括增加文件、修改大小、属性等
:: =
{ add file[,…n][to filegroup{filegroup_name|default}]
|add log file [,…n]
|remove file logical_file_name
|modify file }
示例
将一个包含两个数据文件的文件组和一个事务日志文件添加到student数据库中。
alter database student
add filegroup data1
alter database student
add file
(name = student_a1,
filename = ‘g:\study\SQL\database\student_al.ndf’,
size = 1,
maxsize = 50,
filegrowth = 1),
(name = student_a2,
filename = ‘g:\study\SQL\database\student_a2.ndf’,
size = 2,
maxsize = 50,
filegrowth = 10%)
to filegroup data1
alter database student
add log file
(name = student_log1,
filename = ‘g:\study\SQL\databae\student_log1.ldf’,
size = 1,
maxsize = 50,
filegrowth = 1)

示例
将student数据库中的数据文件student的初始容量增加到10MB,并将容量上限增加到100MB,递增量增加到2MB。
alter database student
modify file
(name = student,
size = 10,
maxsize = 100,
filegrowth = 2)

示例
alter database student
set single_user with rollback immediate

你可能感兴趣的:(数据库)