MS SQL 遷移資料庫檔案

2021-09-23 21:23:17 字數 3169 閱讀 5515

ms sql 資料庫遷移檔案,這裡說的不是將資料庫遷移到另外一台伺服器,只是在伺服器不同磁碟目錄內做遷移。

移動資料庫檔案的情況大致有下面一些:

1: 事先沒有規劃好,資料庫檔案或日誌檔案增長過快,導致某個盤或整個磁碟空間不足,需要移動資料檔案或日誌檔案

2: 純粹由於業務需求,資料增長過快。

3: 為了更好的io的效能,需要將資料檔案、日誌檔案分布到不同磁碟,減輕io壓力,提供io效能。

4:故障恢復。例如,資料庫處於可疑模式或因硬體故障而關閉。

案例:現在我在資料庫例項中有資料庫myassistant,(假設)由於事先沒有規劃好,導致資料檔案位於e:\database目錄下, 我們需要將資料檔案移動到d:\database_data目錄下,

將日誌檔案移動到f:\database_log目錄下。

步驟1:對資料庫中每個要移動的檔案(資料檔案/日誌檔案),通過下面命令指定到新的目錄

use master

goalter database myassistant

modify file(name='myassistant', filename='d:\database_data\myassistant.mdf');

goalter database myassistant

modify file(name='myassistant_log', filename='f:\database_log\myassistant_log.ldf');

go

如果有多個資料庫的資料檔案/日誌檔案需要移動,可以通過一系列上述命令執行

alter database database_id1

modify file(name='database_name', filename='....mdf');

alter database database_id2

modify file(name='database_name', filename=.....mdf');

.......

步驟2:停止sql server例項,你可以在sql server management studio的配置工具sql server configuration manager下停止。也可用net stop mssqlserver命令實現。

步驟3:將那些資料檔案或日誌檔案手工移動到對應的目錄(也就是上面命令中filename對應的目錄)

步驟4:重啟sql server例項,驗證資料檔案遷移是否成功。

selectname, physical_name

fromsys.master_files

wheredatabase_id = db_id('myassistant');

二:遷移系統資料庫檔案

遷移系統資料庫檔案與遷移使用者資料庫檔案稍微有些不同,主要是master資料庫有點特殊,下面介紹一下遷移master系統資料庫的步驟:

步驟1:如果sql server例項已經啟動,那麼停止該例項;這一步也完全可以忽略不做。

步驟2:修改啟動引數(配置管理器-高階標籤-啟動引數)

步驟3:關閉例項服務,拷貝master資料庫的相關檔案到目標檔案。如上所示,把master資料的資料檔案和日誌檔案分別從c:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data下拷貝到d:\sqldata 和e:\sqllog\目錄下。

步驟4:啟動服務。檢查ok沒有問題後,刪除master資料庫在原c:\program files\microsoft sql server\mssql10_50.mssqlserver\mssql\data下的檔案。

遷移model、msdb、tempdb資料庫的步驟如下:

步驟1: 執行下面腳步

use mastergo 

alter database msdb

modify file(name='msdbdata', filename='d:\sqldata\msdbdata.mdf') ;go

alter database msdb

modify file(name='msdblog', filename='e:\sqllog\msdblog.ldf') ;go

alter database model

modify file(name='modeldev', filename='d:\sqldata\model.mdf') ;

goalter database model

modify file(name='modellog' , filename='e:\sqllog\modellog.ldf') ;go

alter database tempdb

modify file(name='tempdev', filename='d:\sqldata\tempdb.mdf') ;go

alter database tempdb

modify file(name='templog', filename='e:\sqllog\templog.ldf') ;

go

步驟2:停止sql server服務,移動資料檔案到制定路徑,需要注意的是:對於臨時資料庫,由於每次啟動 mssqlserver 服務時都會重新建立 tempdb,因此不需要從物理意義上移動資料和日誌檔案。

步驟3: 啟動sql server服務,驗證修改是否生效。

步驟4: 刪除原來的資料檔案。

ORACLE資料庫檔案遷移

介紹一種比較簡單的方法,舉例如下 step1 關閉資料庫,啟動至mount狀態 sql shutdown immediately sql startup mount step2 用rman命令將檔案系統的資料檔案拷貝至目標目錄處 如果想加快速度,可以使用allocate channel rman t...

Flask遷移資料庫

在開發程式的過程中,你會發現有時需要修改資料庫模型,而且修改之後還需要更新資料庫。僅當資料庫表不存在時,flask sqlalchemy 才會根據模型進行建立。因此,更新表的唯一方式就是先刪除舊表,不過這樣做會丟失資料庫中的所有資料。更新表的更好方法是使用資料庫遷移框架。原始碼版本控制工具可以跟蹤原...

django bug 遷移資料庫

1 執行 python manage.py makemigrations 報錯,遷移失敗 解決辦法 新增預設值 default,重新進行遷移 class author models.model name models.charfield max length 50 email models.emai...