一.window下sql-server management 打开本地数据库,点备份
二.拷贝到centos下对应目录
mkdir -p /var/opt/mssql/backup
三.在 Linux 上还原数据库
下列步骤使用 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
应收到已成功还原数据库的消息。
备注:如果想重新备份,那么需要离线数据库,然后删除对应文件,最后重新跑RESTORE DATABASE 命令即可
/*使数据库离线*/
ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE
/*删除对应文件*/
rm -rf /var/opt/mssql/data/YourDB.mdf rm -rf /var/opt/mssql/data/YourDB_Log.ldf
3.通过列出服务器上的所有数据库来验证还原。 应该会列出已还原的数据库。
SELECT Name FROM sys.Databases GO
4.在已迁移的数据库上运行其他查询。 以下命令将上下文切换到 YourDB 数据库,并从其一个表中选择行。
USE YourDB SELECT * FROM YourTable GO
※另外,更改sa密码方法如下:
cd /opt/mssql/bin
./mssql-conf -h
停止服务后(systemctl stop mssql-server),执行以下命令
./mssql-conf set-sa-password
※注,windows导入脚本命令:
命令行工具
win+r键入:cmd命令,开启命令行工具
输入 sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d databasename-i filename.sql
参数介绍:
-S 服务器地址 -U 用户名 -P 密码 -d 数据库名称 -i 脚本文件路径