程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQL Sever 2008 R2 數據庫管理

SQL Sever 2008 R2 數據庫管理

編輯:更多數據庫知識

  一、預備知識提要:

  1. 創建數據庫需要的權限

  至少要擁有:

  (1)create database;

  (2)create any database;

  (3)alter any database

  2. 數據庫的上限

  在同一實例中,最多可以創建32767個數據庫,超過則會失敗!

  3. 數據庫文件和文件組

  每個SQL Server 2008數據庫至少包括2個文件:

  (1)數據文件 : 包含的是 數據庫的數據和對象。它分為:主要數據文件和次

  要數據文件,擴展名分別為 .mdf和.ndf

  (2)日志文件 : 包含的是 用於恢復數據庫時所需要的信息。它分為:主要日志

  文件和次要日志文件,擴展名都為.ldf

  技巧:

  在默認情況下,數據庫的數據文件和日志文件都保存在同一目錄下,但這並

  不是最佳方案,為了提高存儲速度,

  強烈建議:

  將數據文件和日志文件保存在不同的驅動器上!

  文件組

  為了方便對數據庫文件進行管理,可以將數據庫文件集中起來放在文件組中.

  每個數據庫都有一個主要文件組.該組包括主要數據文件和未放入其他文件組的

  所有次要文件。當然用戶也可自行定義不同的文件組。

  4. 數據庫狀態

  SQL Server 2008數據庫永遠處於特定的狀態中,包括7種狀態:

  (1)online : 可以對數據進行訪問。(在線)

  (2)offline: 數據庫無法使用。(離線)

  (3)restoring : 表示正在還原主文件組的一個或多個文件,或正在離線還原一個

  或多個輔助文件,此時數據庫不可用。(還原)

  (4)recovering : 表示正在恢復數據庫。該狀態是個暫時性的狀態,恢復成功

  後,數據庫會自動回到在線狀態。(恢復)

  (5)recovering pending : 此時數據庫並未損壞,但很有可能缺少文件。此時

  數據庫不可用,並等待用戶執行操作來完成恢復工作。(恢復等待)

  (6)suspect : 表示數據庫裡的文件組(至少是主文件組)可疑或已經損壞,SQL

  Server 2008啟動過程無法恢復數據庫,此時數據不能使用。(可疑)

  (7)emergency : 一般用於故障排除。此時數據庫處於單用戶模式,可以修復

  或還原。數據庫標記為只讀,並禁用日志記錄,只有具備sysadmin服務

  器角色的成員才能訪問。(緊急)

  二、 舉例說明

  例一: 創建一個數據庫,所有的設置采用默認值.

  create database 測試數據庫

  例二: 創建一個數據庫,指定數據庫的數據文件所在位置.

  create database 例二數據庫

  on

  (

  name='例二數據庫',

  filename='d:DBtest例二數據庫.mdf'

  )

  例三:創建一個數據庫,指定數據庫的數據文件所在位置、初始容量、最大容量

  和文件增長的數量。

  create database 例三數據庫

  on

  (

  name='例三數據庫',

  filename='d:DBtest例三數據庫.mdf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  )

  例四: 創建一個數據庫,指定數據庫的數據文件和日志文件所在位置.

  create database 例四數據庫

  on

  (

  name='例四數據庫數據文件',

  filename='D:DBtest例四數據庫數據文件.mdf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  )

  log on

  (

  name='例四數據庫日志文件’,

  filename='D:DBtest例四數據庫日志文件.ldf'

  )

  例五:創建一個數據庫,它總共包含五個數據文件和兩個自定義的文件組。

  create database 例五數據庫

  on

  (

  name='例五數據庫數據文件1',

  filename='d:DBtest例五數據庫數據文件1.mdf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  ),(

  name='例五數據庫數據文件2',

  filename='d:DBtest例五數據庫數據文件2.ndf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  ),

  filegroup 例五數據庫數據文件組1

  (

  name='例五數據庫數據文件組1的數據文件',

  filename='d:DBtest例五數據庫數據文件組1的數據文件.ndf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  ),

  filegroup 例五數據庫數據文件組2

  (

  name='例五數據庫數據文件組2的數據文件1',

  filename='d:DBtest例五數據庫數據文件組2的數據文件1.ndf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  ),(

  name='例五數據庫數據文件組2的數據文件2',

  filename='d:DBtest例五數據庫數據文件組2的數據文件2.ndf',

  size=5MB,

  maxsize=10MB,

  filegrowth=5%

  )

  log on

  (

  name='例五數據庫日志',

  filename='d:DBtest例五數據庫日志文件.ldf'

  )

  例六: 創建一個數據庫,並指定排序規則。

  create database 例六數據庫

  on

  (

  name='例六數據庫',

  filename='d:DBtest例六數據庫.mdf'

  )

  collate Chinese_PRC_CI_AS

  在使用collate指定排序規則之前,一定要先知道排序規則名。

  為何才能知道排序規則名呢?請用下面的SQL語句查詢:

  select * from ::fn_helpcollations ()

  三、修改數據庫設置

  1. 使用SQL Server Management Studio修改數據庫設置

  1) 查看數據庫的基本信息

  【數據庫屬性】---【 基本】選項頁裡,可以看到數據庫的基本信息。

  2) 增加、刪除與修改數據庫文件

  【數據庫屬性】---【文件】選項頁裡。

image

  重點: 典型案例

  例七: 將名為"例二數據庫"的數據庫改名為"例七數據庫"。

  方法一:

  alter database 例二數據庫

  modify name = 例七數據庫

  方法二:

  exec sp_renamedb '例二數據庫','例七數據庫'

  ------------------------------------------------------

  例八:為“例六數據庫”增加一個數據文件。

  alter database 例六數據庫

  add file (name=增加的數據文件,

  filename='d:DBtest例六數據庫增加的數據文件.ndf')

  --------------------------------------------------------

  例九:為“例六數據庫”增加一個日志文件。

  alter database 例六數據庫

  add log file (name=例九增加的日志文件,

  filename='d:DBtest例九增加的日志文件.ldf',

  size=3MB,

  maxsize=50MB,

  filegrowth=10% )

  --------------------------------------------------------

  例十:將“例六數據庫”中名為“增加的數據文件”的數據文件改名。

  alter database 例六數據庫

  modify file(name=增加的數據文件,

  newname = 例十數據文件,

  filename = 'd:DBtest例十數據文件.ndf')

  例十一: 修改’例六數據庫’的排序規則

  alter database 例六數據庫

  collate Chinese_PRC_CI_AS_KS

  例十二: 在’例六數據庫’裡刪除一個數據文件.

  alter database 例六數據庫

  remove file 例十數據文件

  例十三: 在’例六數據庫’裡添加一個文件組

  alter database 例六數據庫

  add filegroup 例十三文件組

  例十四: 在’例六數據庫’裡為一個文件組改名.

  alter database 例六數據庫

  modify filegroup 例十三文件組

  name=例十四文件組

  例十五: 在’例六數據庫’裡添加一個數據文件(如:例十五數據文件)到一個文件組(如:例十四文件組),並將該文件組設置為默認文件組.因alter database一次只能修改數據庫的一個屬性,故下例中使用了2個alter database語句.

  alter database 例六數據庫

  add file (name=例十五數據文件,

  filename=’d:DBtest例十五數據文件.ndf’)

  to filegroup 例十四文件組

  go

  alter database 例六數據庫

  modify filegroup 例十四文件組 default

  例十六: 在“例六數據庫”裡刪除“例十四文件組”.由於“例十四文件組”是默認文件組,其中又包含了一個文件(例十五數據文件).故,要從“例六數據庫”中刪除“例十四文件組”,必須先進行以下操作:

  (1)將其他文件組設置為默認文件組,如本例中將PRIMARY文件組設置為默認文件組。

  由於PRIMARY是保留字,故在使用它的時候,要用方括號括起來。

  alter database 例六數據庫

  modify filegroup [PRIMARY] default

  (2)刪除“例十四文件組”中包含的“例十五數據文件”。

  alter database 例六數據庫

  remove file 例十五數據文件

  (3)刪除“例十四文件組”。

  alter database 例六數據庫

  remove filegroup 例十四文件組

  例十七:將“例六數據庫”裡的一個文件組設置為只讀。

  (1)由於primary文件組是不能設置為只讀的,故先添加一個文件組(如:例十七文件組)。

  alter database 例六數據庫

  add filegroup 例十七文件組

  (2)由於空文件組(如:例十七文件組)是不能設置為只讀的,所以要再添加一個文件(如:例十七數據文件)到該文件組中。

  alter database 例六數據庫

  add file (name=例十七數據文件,

  filegroup=’d:Dbtest例十七數據文件.ndf’)

  to filegroup 例十七文件組

  (3)將文件組(例十七文件組)

  alter database 例六數據庫

  modify filegroup 例十七文件組 read_only

  例十八:將“例六數據庫”設置為只有一個用戶可訪問。

  alter database 例六數據庫

  set single_user

  例十九:設置“例六數據庫”可自動收縮。

  alter database 例六數據庫

  set auto_shrink on

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved