curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -;curl https://packages.microsoft.com/config/ubuntu/22.04/mssql-server.list > /etc/apt/sources.list.d/mssql-server.list;sudo apt-get update && sudo apt-get install -y mssql-server;sudo /opt/mssql/bin/mssql-conf setup。sqlcmd(命令行工具)和mssql-tools(用于连接):sudo apt-get install -y mssql-tools unixodbc-dev,添加至PATH:echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc && source ~/.bashrc。D:\backup\YourDB.bak),完成备份。<source_server>、<username>、<password>、<database_name>):sqlcmd -S <source_server> -U <username> -P <password> -Q "BACKUP DATABASE [<database_name>] TO DISK = N'/path/on/source/YourDB.bak'"。使用SCP、SFTP等工具将源服务器的备份文件(如.bak)传输至Ubuntu目标服务器。例如,从Windows传输到Ubuntu(假设Ubuntu IP为192.168.1.100,备份文件在Windows的D:\backup\YourDB.bak):
scp D:\backup\YourDB.bak username@192.168.1.100:/home/username/backup/。
在Ubuntu上使用sqlcmd执行还原命令(替换<database_name>、/path/to/backup/YourDB.bak、/var/opt/mssql/data/YourDB.mdf、/var/opt/mssql/data/YourDB_Log.ldf):
sqlcmd -S localhost -U SA -P '<your_sa_password>' -Q "RESTORE DATABASE [<database_name>] FROM DISK = N'/path/to/backup/YourDB.bak' WITH MOVE 'YourDB_Data' TO '/var/opt/mssql/data/YourDB.mdf', MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf', STATS = 1, REPLACE, RECOVERY"。
MOVE:将备份中的逻辑文件名映射到Ubuntu的目标路径(可通过RESTORE FILELISTONLY FROM DISK = '...bak'查看逻辑文件名);REPLACE:覆盖现有同名数据库;RECOVERY:将数据库恢复至可用状态。sqlcmd运行SELECT name, state_desc FROM sys.databases WHERE name = '<database_name>',确认状态为ONLINE。SELECT TOP 10 * FROM YourTable),与源数据库数据对比,确保无丢失或损坏。EXEC YourStoredProcedure)。Server=192.168.1.100;Database=<database_name>;User Id=<username>;Password=<password>;)。max server memory、tempdb配置)以优化性能。/var/opt/mssql/data/)有读写权限(可通过chown -R mssql:mssql /var/opt/mssql/data/设置)。/var/opt/mssql/data/),需确保备份文件中的逻辑文件名映射正确。