這篇文章是記錄一下整個資料庫搬移過程
情形是依據使用者的需求,原資料庫是MSSQL 2014,但希望能降轉為MSSQL 2008,原因我沒問
查了一下好像沒法直接降轉,而2014到2008的備份回復會有問題(我沒試過,聽說的,你可以自己試試)
所以就用了最原始的方法,找了台電腦,裝上了MSSQL 2008,接著將2014那台的使用者搬過來
搬使用者的方法如下
1. 先到2014那台MSSQL上,按照下圖產生使用者的指令碼
2. 會出現一個視窗,裡面就是這個使用者的新增指令碼
3. 我們要去除一行,再加一行,來符合MSSQL 2008的規則
我把倒數第三行註解起來了,另外再加入了一行 ,dbuser就是你要匯出的資料庫使用者,請自己修改,sysadmin是群組,也一供依需求修改
EXEC sp_addsrvrolemember 'dbuser', 'sysadmin';
4. 請把這整段指令複製起來,到MSSQL 2008那台上面,使用「新增查詢』,將指令貼上然後按「執行』,這時你應該就能看到新使用者出現了
5. 請將你資料庫要複製的使用者一一用這方法,讓它們在2008那台上面復活吧
接下來,我們要把資料庫從2014搬到2008了,複製資料庫的方法如下
1. 一樣先到2014那台,選擇到複製到2008的資料庫,照下圖流程做
這裡我們選"結構描述和資料",如果你只想複製空的資料庫,就可以只選結構描述,伺服器版本我們選"SQL Server 2008 R2",這裡請依照你的目標伺服器選擇
選好後按「確定』,回到上一層再按「下一步』
這裡按「下一步』
完成以上的步驟就會產生資料庫的指令碼,但指令碼有二個地方要改,要改的地方是mdf和ldf的檔案路徑,因為該路徑是2014的目錄結構路徑,你要找到2008的目錄結構路徑,把它替換掉
比如說,2014的是這樣
CREATE DATABASE [DB] ON PRIMARY
( NAME = N'DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\DB.mdf' , SIZE = 8384KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'DB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\DB_log.ldf' , SIZE = 125888KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
我會把它改成在2008的路徑,像下面(請自己找你自己的路徑,不一定相同)
CREATE DATABASE [DB] ON PRIMARY
( NAME = N'DB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\DB.mdf' , SIZE = 8384KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'DB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\DB_log.ldf' , SIZE = 125888KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
改完這二行後,請把整段的指令碼複製下來,一樣到2008那台用「新增查詢』,將指令碼貼上,再按「執行』
完成後你就可以看到資料庫產生了.
使用這個方法將你要複製的資料庫一個個搬到2008上,這樣就完成了工作.
收工........