首页 > 数据库 >使用备份和还原将 SQL Server 数据库从 Windows 迁移到 Linux

使用备份和还原将 SQL Server 数据库从 Windows 迁移到 Linux

时间:2023-01-28 15:24:00浏览次数:64  
标签:Windows YourDB 数据库 Linux Server SQL 备份

建议使用 SQL Server 的备份和还原功能将数据库从 Windows 上的 SQL Server 迁移到 Linux 上的 SQL Server。 在本教程中,将逐步完成使用备份和还原方法将数据库迁移到 Linux 的必需步骤。

  • 使用 SSMS 在 Windows 上创建备份文件
  • 在 Windows 上安装 Bash shell
  • 将备份文件从 Bash shell 移到 Linux
  • 在 Linux 上通过 Transact-SQL 还原备份文件
  • 运行查询以验证迁移

1.1 必备条件

若要完成本教程,需满足以下先决条件:

1.2 在 Windows 上创建备份

有多种方法可在 Windows 上创建数据库的备份文件。 以下步骤使用 SQL Server Management Studio (SSMS)。

  1. 在 Windows 计算机中启动 SQL Server Management Studio。

  2. 在连接“对话框”中,输入“localhost”。

  3. 在“对象资源管理器”中,展开“数据库”。

  4. 右键单击目标数据库,选择“任务”,再单击“备份...”。

   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

相关文章

  • Linux系统编程-文件IO
    文件IO标准库IO函数和linux系统调用IO函数的区别:标准C库的文件IO函数是跨平台的,在不同的平台上调用不同的系统API标准C库的IO函数有缓冲区,而linux系统调用的没有缓......
  • linux安装nginx
    一、安装准备(参考https://tech.powereasy.net/cpzsk/wzfwqwlaq/content_23804)1. 离线安装需要依赖GCC,通过以下命令可以检查GCC是否安装gcc–version银河麒麟是系统默......
  • DELL OpenManage Server Administrator (OMSA) for Linux安装
    1.下载和安装软件包从Dell官网(选择对应的机器和操作系统版本)下载DellOpenManageServerAdministrator软件包: 以下步骤是在DellR730和redhat7.5上运行的案例:1.使......
  • 解决pl2303在 windows 10 或windows 11 显示“PL2303HXA自2012已停产,请联系供货商”问
    解决pl2303USB转串口,在windows10或windows11显示“PL2303HXA自2012已停产,请联系供货商”问题,用如下驱动试试:Win10驱动下载:https://pan.baidu.com/s/1FgV-VPErQMJsV......
  • Windows软件推荐(持续更新)
    Windows软件推荐(持续更新)2023-1-28更新carnac键盘记录github:https://github.com/Code52/carnac适合演示★He3开发者必备的万能工具箱官网:https://he3.app/......
  • 在Windows Server 2016上无人值守部署Exchange Server 2016 CU 12
    添加相应组件:Install-WindowsFeatureNET-Framework-45-Features,Server-Media-Foundation,RPC-over-HTTP-proxy,RSAT-Clustering,RSAT-Clustering-CmdInterface,RSAT......
  • linux基本命令
    tail-1000fxx.out  实时查看文件catxx.out 查看文件more查看全部内容pwd 查看当前位置rm删除 rm-rf删除任何文件touch 创建文件grep过滤 参考:......
  • linux基础设置
    1、修改主机hostnamevi/etc/hostname修改hostsvi/etc/hosts192.168.10.201cdh201192.168.10.202cdh202192.168.10.203cdh203192.168.10.204cdh204重启电......
  • Linux find 命令
    Linuxfind命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与......
  • netstat 网络连接(Linux)
    netstat网络连接(Linux)一、前言基于tcp或udp的应用程序启动后,想要查看程序对应的端口号是否打开。netstat是一个告诉我们操作系统中所有tcp/udp/unixsocket连接状......