建议使用 SQL Server 的备份和还原功能将数据库从 Windows 上的 SQL Server 迁移到 Linux 上的 SQL Server。 在本教程中,将逐步完成使用备份和还原方法将数据库迁移到 Linux 的必需步骤。
- 使用 SSMS 在 Windows 上创建备份文件
- 在 Windows 上安装 Bash shell
- 将备份文件从 Bash shell 移到 Linux
- 在 Linux 上通过 Transact-SQL 还原备份文件
- 运行查询以验证迁移
1.1 必备条件
若要完成本教程,需满足以下先决条件:
-
安装了以下内容的 Windows 计算机:
- SQL Server。
- SQL Server Management Studio。
- 要迁移的目标数据库。
-
安装了以下内容的 Linux 计算机:
1.2 在 Windows 上创建备份
有多种方法可在 Windows 上创建数据库的备份文件。 以下步骤使用 SQL Server Management Studio (SSMS)。
-
在 Windows 计算机中启动 SQL Server Management Studio。
-
在连接“对话框”中,输入“localhost”。
-
在“对象资源管理器”中,展开“数据库”。
-
右键单击目标数据库,选择“任务”,再单击“备份...”。
5. 在“备份数据库”对话框中,验证“备份类型”是否为“完全”,以及“备份到”是否为“磁盘”。 注意文件的名称和位置。 例如,SQL Server 2016 上名为“YourDB”的数据库的默认备份路径为 C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak
。
6.选择“确定”以备份数据库。
1.3 Xshell登录服务器,再用Xftp上传备份文件到linux
登录服务器:
创建新的备份目录。 如果目录已存在,-p 参数不会执行任何操作。
mkdir -p /var/opt/mssql/backup
上传备份文件:
1.4 在 Linux 上还原数据库
要还原数据库备份,可以使用 RESTORE DATABASE Transact-SQL (TQL) 命令。
备注:
下列步骤使用 sqlcmd 工具。 如果尚未安装 SQL Server 工具,请按照以下步骤安装:
- (1)用命令连接到微软官方下载配置文件
命令:
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
- (2)如果带有旧版本的mssql 工具,删除旧的unixODBC包,若没有直接到第三步
命令:
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
- (3)安装下载的配置文件中新版本的mssql-tools和unixODBC开发人员包
命令:
sudo yum install -y mssql-tools unixODBC-devel
(4)配置命令路径
vim /etc/profile.d/mssqltools.sh
输入内容:
export PATH=$PATH:/opt/mssql-tools/bin/
然后 source一下
source /etc/profile.d/mssqltools.sh
还原数据库:
1.在同一终端中,启动 sqlcmd。 下面的示例以 SA 用户身份连接到本地 SQL Server。 出现提示时输入密码,或使用 -P 参数指定密码。
sqlcmd -S localhost -U SA
2.在 >1
提示符下,输入以下 RESTORE DATABASE 命令,并在每行后按 Enter(无法同时复制和粘贴整个多行命令)。 将出现的所有 YourDB
替换为数据库的名称。
RESTORE DATABASE YourDB FROM DISK = '/var/opt/mssql/backup/YourDB.bak' WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf', MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf' GO
应收到已成功还原数据库的消息。
3.通过列出服务器上的所有数据库来验证还原。 应该会列出已还原的数据库。
SELECT Name FROM sys.Databases GO
4.在已迁移的数据库上运行其他查询。 以下命令将上下文切换到 YourDB 数据库,并从其一个表中选择行。
USE YourDB SELECT * FROM YourTable GO
标签:Windows,YourDB,数据库,Linux,Server,SQL,备份 From: https://www.cnblogs.com/RobertYu666/p/17070368.html