Migrate a SQL Server database from Windows to Linux using backup and restore
事前條件:
- 安裝好SQL Server 2017 CTP2.1(Linux)
- 安裝好SQL Server Tools(Linux)及最新版SSMS管理工具
從Window下載範例備份檔案
下載AdventureWorks 2014資料庫備份檔案
https://msftdbprodsamples.codeplex.com/downloads/get/880661
從windows搬移備份檔案到linux上
1.Windows鍵 + R 輸入cmd
pscp c:/sql/adventureworks2014.bak cybercard@52.163.255.231:./
2.在Linux環境下搬移檔案
從Windows打開putty程式,用ssh登入,接著切換到super user
Sudo su
3.再輸入ls,確定檔案是否存在
ls
檔案有存在!
4.建立資料夾
mkdir -p /var/opt/mssql/backup
5.查詢目前所在目錄
Pwd
6.搬移檔案到sql備份資料夾目錄
mv /home/cybercard/adventureworks2014.bak /var/opt/mssql/backup/
使用sqlcmd工具在linux上進行還原
1.Restore
sqlcmd -S localhost -U SA
RESTORE DATABASE AdventureWorks
FROM DISK = '/var/opt/mssql/backup/AdventureWorks2014.bak'
WITH MOVE 'AdventureWorks2014_Data' TO '/var/opt/mssql/data/AdventureWorks2014_Data.mdf',
MOVE 'AdventureWorks2014_Log' TO '/var/opt/mssql/data/AdventureWorks2014_Log.ldf'
GO
還原成功!
2.試試看資料是否都有寫入
USE AdventureWorks
GO
SELECT TOP 10 Name, ProductNumber FROM Production.Product ORDER BY Name
GO
3.從Windows透過管理工具查詢
小結:
搬家似乎還蠻順利的。
參考:
如何從windows移轉資料庫到Linux
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database