網站首頁 編程語言 正文
1. 概述
若要將數據庫移動或更改到同一計算機的不同 SQL Server 實例,分離和附加數據庫會很有用;用戶可以分離數據庫的數據和事務日志文件,再將它們重新附加到同一或其他 SQL Server 實例中;
在 64 位和 32 為環境中,SQL Server 磁盤存儲格式均相同,所以,能將 32 位環境中的數據庫附加到 64 位環境中,反過來也行;
從運行在某個環境中的服務器實例上分離的數據庫可以附加到運行在另一個環境的服務器實例;
注意: 不要從未知或不可信源附加或還原數據庫;此類數據庫可能包含執行非預期 T-SQL 代碼的惡意代碼,或通過修改架構或物理數據庫結構導致錯誤;在使用未知源或不可信源中的數據庫之前,在非生產服務器中對數據庫運行 DBCC CHECKDB,同時檢查數據庫中的代碼;
2. 分離數據庫
分離數據庫 指從 SQL Server 實例中刪除,但使數據庫在其數據文件和事物日志文件保持不變;之后,就能使用這些文件將數據庫附加到任何 SQL Server 實例,包括分離該數據庫的服務器;
若存在以下任何情況,就不能分離數據庫;
- 已復制并發布的數據庫;若進行復制,數據庫就必須是未發布的,必須通過運行 sp_replicationdboption 禁用發布后,才能分離數據庫;
- 數據庫中存在數據庫快照,必須先刪除所有數據庫快照,才能分離數據庫;
- 該數據庫正在某個數據庫鏡像會話中進行鏡像,不終止該會話,就不能分離該數據庫;
- 數據庫處于可疑狀態;
- 該數據庫是系統數據庫;
2.1 分離數據庫的步驟
- 在 SSMS 對象資源管理器中連接到 SQL Server 數據庫引擎的實例,展開該實例;
- 展開數據庫,選擇要分離的用戶數據庫名稱;
- 右擊數據庫 →?任務?→?分離;
4.分離數據庫對話框,確定;
3. 附加數據庫
通過 SSMS ,用戶同樣能附加復制的或分離的 SQL Server 數據庫;
注意: 附加數據庫時,該數據庫必須已分離且所有數據文件(MDF 文件或 NDF 文件)都必須可用;
附加日志文件的要求在某些方面取決于是讀寫還是只讀的;
若讀寫數據庫具有單個日志文件,且沒有為該日志文件指定新位置,附加操作將在舊位置中查找該文件;
若找到了該就日志文件,無論數據庫上次是否完全關閉,都會使用該文件;但是,若未找到舊文件日志,數據庫上次是完全關閉且現在沒有活動日志鏈,則附加操作將嘗試為數據創建新的日志文件;
反之,若附加的主數據文件是只讀的,則數據庫引擎假定該數據庫也是只讀的;對于只讀數據庫,日志文件在數據庫中指定的位置上必須可用;
從上述內容能看出,用戶嘗試附加 SQL Server 數據庫前,必須具備一定的先決條件,如下所示:
- 必須先分離數據庫,任何嘗試附加未分離的數據庫都將返回錯誤;
- 附加數據庫時,所有數據文件(MDF 文件和 LDF 文件)都必須可用;若任何數據文件路徑不同于首次創建數據庫或上次附加數據庫時的路徑,則必須指定文件的當前路徑;
- 在附加數據庫時,若 MDF 和 LDF 文件位于不同目錄且其中一條路徑包含 \?\GlobalRoot,該操作將失敗;
3.1 附加數據的操作步驟
附加數據庫到指定目標上,操作步驟如下:
1.右擊數據庫 → 附加;
2.附加數據庫對話框中,若要指定要附加的數據庫,可單擊添加,在定位數據庫文件中選擇數據庫所在的磁盤驅動器并展開目錄,以查找并選擇數據的**.mdf** 數據庫文件;
總結?
原文鏈接:https://blog.csdn.net/weixin_43960383/article/details/124086987
相關推薦
- 2022-04-25 Python中的圖形繪制簡單動畫實操_python
- 2022-09-19 C語言中switch語句基本用法實例_C 語言
- 2022-09-17 C++實現圖的遍歷算法(DFS,BFS)的示例代碼_C 語言
- 2022-02-18 RuntimeError: CUDA error: invalid device ordinal
- 2022-10-23 C#位運算符的基本用法介紹_C#教程
- 2022-05-12 webshell及木馬詳解
- 2022-04-28 WPF路由事件之邏輯樹和可視樹遍歷_實用技巧
- 2022-11-16 Python中使用__hash__和__eq__方法的問題_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支