SQL?Server數(shù)據(jù)庫分離和附加數(shù)據(jù)庫的操作步驟
1. 概述
若要將數(shù)據(jù)庫移動(dòng)或更改到同一計(jì)算機(jī)的不同 SQL Server 實(shí)例,分離和附加數(shù)據(jù)庫會(huì)很有用;用戶可以分離數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件,再將它們重新附加到同一或其他 SQL Server 實(shí)例中;
在 64 位和 32 為環(huán)境中,SQL Server 磁盤存儲(chǔ)格式均相同,所以,能將 32 位環(huán)境中的數(shù)據(jù)庫附加到 64 位環(huán)境中,反過來也行;
從運(yùn)行在某個(gè)環(huán)境中的服務(wù)器實(shí)例上分離的數(shù)據(jù)庫可以附加到運(yùn)行在另一個(gè)環(huán)境的服務(wù)器實(shí)例;
注意: 不要從未知或不可信源附加或還原數(shù)據(jù)庫;此類數(shù)據(jù)庫可能包含執(zhí)行非預(yù)期 T-SQL 代碼的惡意代碼,或通過修改架構(gòu)或物理數(shù)據(jù)庫結(jié)構(gòu)導(dǎo)致錯(cuò)誤;在使用未知源或不可信源中的數(shù)據(jù)庫之前,在非生產(chǎn)服務(wù)器中對(duì)數(shù)據(jù)庫運(yùn)行 DBCC CHECKDB,同時(shí)檢查數(shù)據(jù)庫中的代碼;
2. 分離數(shù)據(jù)庫
分離數(shù)據(jù)庫 指從 SQL Server 實(shí)例中刪除,但使數(shù)據(jù)庫在其數(shù)據(jù)文件和事物日志文件保持不變;之后,就能使用這些文件將數(shù)據(jù)庫附加到任何 SQL Server 實(shí)例,包括分離該數(shù)據(jù)庫的服務(wù)器;
若存在以下任何情況,就不能分離數(shù)據(jù)庫;
- 已復(fù)制并發(fā)布的數(shù)據(jù)庫;若進(jìn)行復(fù)制,數(shù)據(jù)庫就必須是未發(fā)布的,必須通過運(yùn)行 sp_replicationdboption 禁用發(fā)布后,才能分離數(shù)據(jù)庫;
- 數(shù)據(jù)庫中存在數(shù)據(jù)庫快照,必須先刪除所有數(shù)據(jù)庫快照,才能分離數(shù)據(jù)庫;
- 該數(shù)據(jù)庫正在某個(gè)數(shù)據(jù)庫鏡像會(huì)話中進(jìn)行鏡像,不終止該會(huì)話,就不能分離該數(shù)據(jù)庫;
- 數(shù)據(jù)庫處于可疑狀態(tài);
- 該數(shù)據(jù)庫是系統(tǒng)數(shù)據(jù)庫;
2.1 分離數(shù)據(jù)庫的步驟
- 在 SSMS 對(duì)象資源管理器中連接到 SQL Server 數(shù)據(jù)庫引擎的實(shí)例,展開該實(shí)例;
- 展開數(shù)據(jù)庫,選擇要分離的用戶數(shù)據(jù)庫名稱;
- 右擊數(shù)據(jù)庫 → 任務(wù) → 分離;
4.分離數(shù)據(jù)庫對(duì)話框,確定;
3. 附加數(shù)據(jù)庫
通過 SSMS ,用戶同樣能附加復(fù)制的或分離的 SQL Server 數(shù)據(jù)庫;
注意: 附加數(shù)據(jù)庫時(shí),該數(shù)據(jù)庫必須已分離且所有數(shù)據(jù)文件(MDF 文件或 NDF 文件)都必須可用;
附加日志文件的要求在某些方面取決于是讀寫還是只讀的;
若讀寫數(shù)據(jù)庫具有單個(gè)日志文件,且沒有為該日志文件指定新位置,附加操作將在舊位置中查找該文件;
若找到了該就日志文件,無論數(shù)據(jù)庫上次是否完全關(guān)閉,都會(huì)使用該文件;但是,若未找到舊文件日志,數(shù)據(jù)庫上次是完全關(guān)閉且現(xiàn)在沒有活動(dòng)日志鏈,則附加操作將嘗試為數(shù)據(jù)創(chuàng)建新的日志文件;
反之,若附加的主數(shù)據(jù)文件是只讀的,則數(shù)據(jù)庫引擎假定該數(shù)據(jù)庫也是只讀的;對(duì)于只讀數(shù)據(jù)庫,日志文件在數(shù)據(jù)庫中指定的位置上必須可用;
從上述內(nèi)容能看出,用戶嘗試附加 SQL Server 數(shù)據(jù)庫前,必須具備一定的先決條件,如下所示:
- 必須先分離數(shù)據(jù)庫,任何嘗試附加未分離的數(shù)據(jù)庫都將返回錯(cuò)誤;
- 附加數(shù)據(jù)庫時(shí),所有數(shù)據(jù)文件(MDF 文件和 LDF 文件)都必須可用;若任何數(shù)據(jù)文件路徑不同于首次創(chuàng)建數(shù)據(jù)庫或上次附加數(shù)據(jù)庫時(shí)的路徑,則必須指定文件的當(dāng)前路徑;
- 在附加數(shù)據(jù)庫時(shí),若 MDF 和 LDF 文件位于不同目錄且其中一條路徑包含 \?\GlobalRoot,該操作將失?。?/li>
3.1 附加數(shù)據(jù)的操作步驟
附加數(shù)據(jù)庫到指定目標(biāo)上,操作步驟如下:
1.右擊數(shù)據(jù)庫 → 附加;
2.附加數(shù)據(jù)庫對(duì)話框中,若要指定要附加的數(shù)據(jù)庫,可單擊添加,在定位數(shù)據(jù)庫文件中選擇數(shù)據(jù)庫所在的磁盤驅(qū)動(dòng)器并展開目錄,以查找并選擇數(shù)據(jù)的**.mdf** 數(shù)據(jù)庫文件;
總結(jié)
到此這篇關(guān)于SQL Server數(shù)據(jù)庫分離和附加數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)SQLServer分離和附加數(shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- sql2005 附加數(shù)據(jù)庫出錯(cuò)(錯(cuò)誤號(hào):5123)解決方法
- MSSQL2005在networkservice權(quán)限運(yùn)行附加數(shù)據(jù)庫報(bào)(Microsoft SQL Server,錯(cuò)誤: 5120)
- sql2005附加數(shù)據(jù)庫操作步驟(sql2005還原數(shù)據(jù)庫)
- sql server2012附加數(shù)據(jù)庫問題解決方法
- MSSQL附加數(shù)據(jù)庫拒絕訪問提示5120錯(cuò)誤的處理方法
- SQL附加數(shù)據(jù)庫失敗問題的解決方法
- SQL Server附加數(shù)據(jù)庫出錯(cuò),錯(cuò)誤代碼5123
- MSSQL??附加數(shù)據(jù)庫提示“錯(cuò)誤?823”數(shù)據(jù)恢復(fù)實(shí)操
- SQL?Server附加數(shù)據(jù)庫時(shí)出現(xiàn)錯(cuò)誤的處理方法
- SQL?Server2012附加數(shù)據(jù)庫5120錯(cuò)誤(拒絕訪問)的解決方法
- SQL?Server附加數(shù)據(jù)庫報(bào)錯(cuò):無法為該請(qǐng)求檢索數(shù)據(jù)錯(cuò)誤解決辦法
- SQL Server附加數(shù)據(jù)庫及出現(xiàn)5123錯(cuò)誤的解決辦法
相關(guān)文章
sql 判斷函數(shù)、存儲(chǔ)過程是否存在的代碼整理
本文主要為大家介紹了sql下用來判斷各種資源是否存在的代碼,希望對(duì)大家學(xué)習(xí)sql的函數(shù)及數(shù)據(jù)庫能夠有所幫助2014-07-07sql使用cast進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換示例
這篇文章主要介紹了sql使用cast進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,需要的朋友可以參考下2014-03-03SQL?Server?DATEDIFF()?函數(shù)用法
這篇文章主要介紹了SQL?Server?DATEDIFF()?函數(shù)的定義和用法,通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12Sql中將datetime轉(zhuǎn)換成字符串的方法(CONVERT)
這篇文章主要介紹了Sql中將datetime轉(zhuǎn)換成字符串的方法,需要的朋友可以參考下2014-04-04執(zhí)行一條sql語句update多條記錄實(shí)現(xiàn)思路
如果你想更新多行數(shù)據(jù),并且每行記錄的各字段值都是各不一樣,你會(huì)怎么辦呢?本文以一個(gè)示例向大家講解下如何實(shí)現(xiàn)如標(biāo)題所示的情況,有此需求的朋友可以了解下2013-08-08Linq to SQL 插入數(shù)據(jù)時(shí)的一個(gè)問題
今天用LinqtoSql插入數(shù)據(jù),總是插入錯(cuò)誤,說某個(gè)主鍵字段不能為空,我檢查了半天感覺主鍵字段沒有賦空值啊,實(shí)在是郁悶。 要插入數(shù)據(jù)的表結(jié)構(gòu)是2009-08-08sqlserver設(shè)置主鍵的實(shí)現(xiàn)步驟
在SQLServer中,定義表的主鍵非常容易,本文主要介紹了sqlserver設(shè)置主鍵的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10sql server 2000中禁止創(chuàng)建表(權(quán)限設(shè)置方法)
最近發(fā)現(xiàn)數(shù)據(jù)庫中發(fā)現(xiàn)了三個(gè)臨時(shí)表,為了安全這里為大家分享下sql server 2000中禁止創(chuàng)建表的方法,網(wǎng)上都么有的,腳本之家小編原創(chuàng)2015-07-07Sql Server導(dǎo)入mdf和ldf文件的教程詳解
有時(shí)候我們需要導(dǎo)入mdf和ldf文件進(jìn)入SQL SERVER中,本文給大家介紹了Sql Server導(dǎo)入mdf和ldf文件的詳細(xì)教程,文中介紹了導(dǎo)入的兩種方法,通過圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06