在啟動的資料庫實例上點擊右鍵菜單項【屬性】,在【伺服器屬性】窗口選擇【資料庫設置】選項卡,可以更改資料庫的默認存儲位置,如以下圖片所示。
B. 如何獲取SQL Server 2008資料庫數據文件的位置
在SQL Server中,要獲取資料庫數據文件的物理位置,有三種方法:
sp_helpdb bright
name filename filegroup size
------------- ------------------------------- ---------- -----------
Bright Z:\MSSQL\data\Bright.mdf PRIMARY 10130240 KB
Bright_log Z:\MSSQL\data\Bright_log.LDF NULL 3456 KB
Bright01 Z:\MSSQL\data\Bright01.mdf PRIMARY 10919616 KB
Bright01_log Z:\MSSQL\data\Bright01_log.LDF NULL 265344 KB
Bright02 Z:\MSSQL\DATA\Bright02.ndf PRIMARY 102080 KB
select type_desc,name,physical_name,size from Bright.sys.database_files
type_desc name physical_name size
--------- ------------- -------------------------------- -----------
ROWS Bright Z:\MSSQL\data\Bright.mdf 1266280
LOG Bright_log Z:\MSSQL\data\Bright_log.LDF 432
ROWS Bright01 Z:\MSSQL\data\Bright01.mdf 1364952
LOG Bright01_log Z:\MSSQL\data\Bright01_log.LDF 33168
ROWS Bright02 Z:\MSSQL\DATA\Bright02.ndf 12760
select type_desc,name,physical_name,sizefrom master.sys.master_files where database_id=DB_ID(Bright)
type_desc name physical_name size
--------- ------------- -------------------------------- -----------
ROWS Bright D:\MSSQL\DATA\Bright.mdf 1266280
LOG Bright_log D:\MSSQL\DATA\Bright.LDF 432
ROWS Bright01 D:\MSSQL\DATA\Bright01.mdf 1364952
LOG Bright01_log D:\MSSQL\DATA\Bright01.LDF 33168
ROWS Bright02 D:\MSSQL\DATA\Bright02.mdf 12760
對於一般的資料庫,用「sp_helpdb」命令獲得的文件大小更直觀,其他二個命令返回的大小實際是數據塊的數量,數據塊的大小是8KB。
但是,如果一個資料庫是用「Restore database with STANDBY」恢復的只讀資料庫,那隻有第三種方法即從MASTER資料庫中獲得的文件位置才是真實的。
C. sql server2008資料庫中幾種類型文件
三種類型文件:主數據文件,輔助數據文件、日誌文件。
都可以有一個或是多個。
1、主數據文件,輔助數據文件 存儲數據用的。
2、日誌文件存儲事務日誌用的,日誌文件可以循環使用
D. 如何備份sql server 2008資料庫文件
SQL Server 通常有兩種備份資料庫的操作方法:
通過備份命令進行
備份的命令是
Backup DataBase XXXX To Disk="c:XXX.Bak"
(其中XXXX是待備份的資料庫名稱)
這種備份的好處是可以將命令集成到所開發軟體的內部,允許用戶通過點擊按鈕或菜單的形式來進行,並且隔離用戶和資料庫本身,提高安全性。
相對應的,恢復資料庫的命令是Restore database XXXXfrom disk='c:xx.bak'
2.通過SQL Server Managment Studio執行
這個是通過資料庫管理器來操作,需要有資料庫管理許可權和Windows操作許可權。
步驟如下:
選中需要備份的資料庫,右鍵點擊滑鼠,選擇「任務」菜單下的"備份「子菜單
備份完成後會有對話框提示備份完成,關閉對話框即可。
E. 在sqlserver2008下面一個資料庫可能由哪些文件組成,簡述每個文件作用,是否兼
在Microsoft SQL Server 2005中,用於數據存儲的實用工具是資料庫。資料庫的物理表現是操作系統文件,即在物理上,一個資料庫由一個或多個磁碟上的文件組成。這種物理表現只對資料庫管理員是可見的,而對用戶是透明的。邏輯上,一個資料庫由若干個用戶可視的組件構成,
如表、視圖、角色等,這些組件稱為資料庫對象。用戶利用這些邏輯資料庫的資料庫對象存儲或讀取資料庫中的數據,也直接或間接地利用這些對象在不同應用程序中完成存儲、操作和檢索等工作。邏輯資料庫的資料庫對象可以從企業管理器中查看. 每個SQL Server 2005資料庫(無論是系統資料庫還是用戶資料庫)在物理上都由至少一個數據文件和至少一個日誌文件組成。
出於分配和管理目的,可以將資料庫文件分成不同的文件組。 數據文件:分為主要數據文件和次要數據文件兩種形式。每個資料庫都有且只有一個主要數據文件。主要數據文件的默認文件擴展名是.mdf。它將數據存儲在表和索引中,包含資料庫的啟動信息,還包含一些系統表,這些表記載資料庫對象及其他文件的位置信息。
次要數據文件包含除主要數據文件外的所有數據文件。有些資料庫可能沒有次要數據文件,而有些資料庫則有多個次要數據文件。次要數據文件的默認文件擴展名是.ndf。 日誌文件:SQL Server具有事務功能,以保證資料庫操作的一致性和完整性。所謂事務就是一個單元的工作,
該單元的工作要麼全部完成,要麼全部不完成。日誌文件用來記錄資料庫中已發生的所有修改和執行每次修改的事務。SQL Server是遵守先寫日誌再執行資料庫修改的資料庫系統,因此如果出現資料庫系統崩潰,
資料庫管理員(DBA)可以通過日誌文件完成資料庫的修復與重建。每個資料庫必須至少有一個日誌文件,但可以 不止一個。日誌文件的默認文件擴展名是.1df。建立資料庫時,SQI。Server會自動建立資料庫的日誌文件。
文件組:一些系統可以通過控制在特定磁碟驅動器上放置的數據和索引來提高自身的性能。文件組可以對此進程提供幫助。系統管理員可以為每個磁碟驅動器創建文件組,然後將特定的表、索引、或表中的text、ntext或image數據指派給特定的文件組。
SQI.Server有兩種類型的文件組:主文件組和用戶定義文件組。主文件組包含主要數據文件和任何沒有明確指派給其他文件組的文件,系統表的所有頁均分配在主文件組中;用戶定義文件組是在CR E_ATE DATA_BASE或AI,TER DATA.BASE語句中,
使用FII,EGROUP關鍵字指定的文件組。SQt.Server 2005在沒有文件組時也能有效地工作,因此許多系統不需要指定用戶定義文件組。在這種情況下,所有文件都包含在主文件組中,而且SQI。Server 2005可以在資料庫內的任何位置分配數據。
每個資料庫中都有一個文件組作為默認文件組運行。當SQI。Server給創建時沒有為其指定文件組的表或索引分配頁時,將從默認文件組中進行分配。一次只能有一個文件組作為默認文件組。如果沒有指定默認的文件組,主文件組則成為默認的文件組。F. SQLServer2008資料庫怎樣備份還原和數據恢復
在完整恢復模式或大容量日誌恢復模式下,必須先備份活動事務日誌(稱為日誌尾部),然後才能在SQLServerManagementStudio中還原資料庫。有關詳細信息,請參閱如何備份事務日誌(SQLServerManagementStudio)。若要還原已加密的資料庫,您必須有權訪問用於加密資料庫的證書或非對稱密鑰。如果沒有證書或非對稱密鑰,資料庫將無法還原。
認識資料庫備份和事務日誌備份
資料庫備份與日誌備份是資料庫維護的日常工作,備份的目的是在於當資料庫出現故障或者遭到破壞時可以根據備份的資料庫及事務日誌文件還原到最近的時間點將損失降到最低點。
資料庫備份
資料庫備份可以手動備份和語句備份
一.手動備份資料庫
1.滑鼠右鍵選擇你要進行備份的資料庫-任務-備份
可以在常規選項頁面你可以選擇備份類型是進行完整資料庫備份還是差異資料庫備份
2.點擊添加選項,選擇資料庫文件的存放路徑
注意文件名記得加後綴.bak,便於恢復時的查找
3.你還可以在選項頁面是追加到現有的備份集,還是覆蓋所有的現有備份集,還可以選擇備份驗證完整性(建議選擇),還可以選擇是否壓縮備份等。
二.語句備份資料庫
use master goBACKUP DATABASE [test] TO DISK = N'D:Microsoft sql serverMSSQL10.MSSQLSERVERMSSQLBackup est.bak' WITH NOFORMAT, NOINIT, NAME = N'test-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
資料庫日誌備份
首先需要注意,資料庫日誌的備份是基於資料庫完整備份,也就是說你備份資料庫日誌之前你首先要先對資料庫進行一次完整的備份,因為之間會涉及到堅持到檢查點 lsn, 這也是本文接下來要講的重點。
一.手動備份資料庫日誌
1.右鍵資料庫-任務-備份-選擇備份類型(事務日誌)
2.點添加,添加日誌文件備份存儲路徑
3.同資料庫完整備份一樣,你也可以選擇覆蓋現有備份集或者追加到現有備份集,這里現在覆蓋現有備份集、驗證完整性,然後確認備份
二.語句備份資料庫事務日誌
BACKUP LOG [test] TO DISK = N'D: est.trn' WITH NOFORMAT, INIT, NAME = N'test-事務日誌 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10GO
資料庫還原
右鍵資料庫-還原資料庫-添加需要進行還原的資料庫文件路徑
在還原源選項中你可以選擇『源資料庫』,『源設備』。1.選擇源資料庫工具會自動顯示該資料庫之前的一些備份,然後直接選擇需要還原的資料庫備份集。
2.選擇源設備點擊後面的...,添加需要還原的資料庫文件
2.點擊確認還原資料庫
資料庫恢復
資料庫恢復的前提是1.一個完整的資料庫備份2.包含這個完整資料庫備份的事務日誌備份3.完整備份之間也可以存在數個差異備份
對於資料庫維護空間始終是一個比較頭疼的問題,特別是對於大型資料庫而言,每天的日誌文件增長是龐大的,很多資料庫管理員會定時對資料庫日誌文件進行收縮,但是經常收縮會存在收縮完日誌文件還是不能減少,這是因為存在很多活動的日誌無法收縮可以用
DBCC LOGINFO('資料庫名稱')
我們看到
status=0的日誌,代表已經備份到磁碟的日誌文件;而
status=2的日誌還沒有備份。當我們收縮日誌文件時,收縮掉的空
間其實就是
status=0的空間,如果日誌物理文件無法減小,這里一
定能看到非常多status=2的記錄解決辦法:1.可以分離要收縮的資料庫,然後手動刪除日誌文件,然後附加資料庫,資料庫就會產生一個很小的日誌文件(不推薦使用這種方法)
2.右鍵要出來的資料庫選擇「屬性」-"選項",將恢復模式改成"簡單",然後利用收縮工具可以講日誌文件收縮到很小,收縮完記得講恢復模式改成"完整"
也可以用語句進行處理(dbname是你要進行收縮的資料庫名,dbname_log是你要進行收縮的資料庫的邏輯日誌名稱)
USE [master]
GO ALTER DATABASE [dbname] SET recovery SIMPLE WITH NO_WAIT GO
ALTER DATABASE [dbname] SET RECOVERY SIMPLE --簡單模式
GO
USE [dbname]
GO
DBCC SHRINKFILE (N'dbname_log' , 11, TRUNCATEONLY) GO
USE [master]
GO
ALTER DATABASE [dbname] SET RECOVERY FULL WITH NO_WAIT ALTER DATABASE [dbname] SET RECOVERY FULL對於第一種方法不贊同使用,首先對於資料庫的分離與附加有時候會破壞資料庫,造成資料庫無法還原,還有就是對於在線資料庫也不允許進行分離操作。
對於第二種方法是slq2008收縮日誌文件的一種方法,但是此方法也不能使用過於頻繁,因為進行資料庫恢復模式的更改會截斷事務日誌文件,這樣的話當時利用事務日誌文件進行恢復的時候檢查點不能包含資料庫文件,而且當你要對事務日誌進行備份的時候會重新提示你需要對資料庫進行完整備份。
舉個例子:比如你昨天晚上進行了一次完整備份,然後同時你也進行了一次日誌備份(提前日誌未被截斷),然後你每個小時進行過一次差異備份,最近的差異備份時間點是14點,如果此時資料庫錯誤修改了數據,你可以立馬備份一個日誌文件將資料庫恢復到日誌備份開始到日誌備份終點前的任意時間點 。
如果此時你進行了修改資料庫模式,截斷日誌進行了收縮,那麼你的數據只能恢復到昨天晚上備份的那個日誌備份時間前的任意時間點,也就是今天所做的資料庫更改無法再恢復了,因為日誌文件已經被截斷了,不知道這樣解釋是否明白
因為日誌文件的檢查點(lsn)是連續的,每一次日誌備份都是在上一次備份的基礎上lsn往後增加的,lsn的范圍也包括了資料庫文件的lsn,也只有日誌文件的lsn包括了資料庫文件的lsn,才能將資料庫文件進行回滾。
上圖中總共有三個備份文件,一個完整備份、一個差異備份、一個日誌備份,大家可以注意觀察完整備份的第一個lsn與最後一個lsn,和檢查點
第二個差異備份文件的的第一個lsn與最後一個lsn,和檢查點,最後的日誌備份的第一個lsn和最後一個lsn包含了前面兩個備份文件的lsn,這種情況資料庫就可以恢復到日誌文件備份前的任意時間點,如果日誌文件沒有包含資料庫文件的最後一個lsn也就無法恢復了。
G. 在SQL server 2008怎麼附加資料庫文件
1.首先從開始菜單著手,打開開始菜單欄,在菜單欄上找到我們已經安裝的SQL server 2008,單擊打開它
2.打開SQL server 2008資料庫,來到登錄界面,在這里我們只需要輸入登錄伺服器名(電腦IP地址)、登錄身份、賬號、密碼,然後單擊登錄
注意:我們用的是SQL身份登錄,這里還可以選擇windows身份登錄,許可權會更大
3.成功登錄進入SQL 資料庫,可以看到連接的資料庫基本信息,展開資料庫結點,單擊資料庫然後使用滑鼠右鍵,在彈出的菜單中選擇附加
4.接著彈出附加資料庫的界面,這里我們只需要單擊界面上的添加按鈕就可以了
5.單擊添加按鈕後,新彈出來一個框,讓你選擇你要附加的數據文件路徑,選擇到我們要附加的資料庫文件,單擊確定按鈕
注意:我們一幫都會要附加的資料庫文件放在SQL資料庫的安裝目錄下,這樣才能避免有時候附加出來的資料庫是只讀狀態的問題
6.返回到附加資料庫的界面,這是我們可以從界面上看到選擇的附加資料庫文件信息,然後在上方可以修改要附加的資料庫名稱(紅色框出來部分)
7.單擊確定按鈕後,資料庫的附加功能就啟動了,這時候我們可以從界面上看到附加的進度。
附加成功後,附加資料庫的界面窗口會關閉,然後我們可以從左邊的樹形菜單看到已經附加完成的資料庫
注意事項
附加資料庫的功能類似還原資料庫,只是它使用的是mdf文件,還原資料庫使用的是備份文件H. 在SQL server 2008怎麼附加資料庫文件
SQL2008附加資料庫方法步驟
1.首先從開始菜單著手,打開開始菜單欄,在菜單欄上找到我們已經安裝的SQL server 2008,單擊打開它
2.打開SQL server 2008資料庫,來到登錄界面,在這里我們只需要輸入登錄伺服器名(電腦IP地址)、登錄身份、賬號、密碼,然後單擊登錄
注意:我們用的是SQL身份登錄,這里還可以選擇windows身份登錄,許可權會更大
3.成功登錄進入SQL 資料庫,可以看到連接的資料庫基本信息,展開資料庫結點,單擊資料庫然後使用滑鼠右鍵,在彈出的菜單中選擇附加
4.接著彈出附加資料庫的界面,這里我們只需要單擊界面上的添加按鈕就可以了
5.單擊添加按鈕後,新彈出來一個框,讓你選擇你要附加的數據文件路徑,選擇到我們要附加的資料庫文件,單擊確定按鈕
注意:我們一幫都會要附加的資料庫文件放在SQL資料庫的安裝目錄下,這樣才能避免有時候附加出來的資料庫是只讀狀態的問題
6.返回到附加資料庫的界面,這是我們可以從界面上看到選擇的附加資料庫文件信息,然後在上方可以修改要附加的資料庫名稱(紅色框出來部分)
7.單擊確定按鈕後,資料庫的附加功能就啟動了,這時候我們可以從界面上看到附加的進度。
附加成功後,附加資料庫的界面窗口會關閉,然後我們可以從左邊的樹形菜單看到已經附加完成的資料庫
注意事項
附加資料庫的功能類似還原資料庫,只是它使用的是mdf文件,還原資料庫使用的是備份文件I. 在SQL server 2008怎麼附加資料庫文件
打開SQL Server Management Studio,並連接上資料庫。右鍵「資料庫」彈出快捷菜單,點擊「附加」菜單。
附加資料庫界面點擊「添加」按鈕,瀏覽到需要附加的資料庫文件。
選擇需要附加的資料庫文件後,在資料庫詳細信息列表中則會顯示該資料庫的數據文件以及日誌文件。
按確定之後在資料庫列表就可以找到剛才附加進去的資料庫了!