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

SQL Sever 2008 R2 數據庫管理

編輯:關於SqlServer

      一、預備知識提要:

      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