一、降级背景
由于客户的要求,我们需要把一个在 sqlsever 2014版本 的有几千万数据的数据库,降到导入到一个 sqlserver 2012版本 的数据库中。
二、降级步骤
步骤一
使用 Microsoft SQL Server Management Studio 18 连接需要降级的数据库,在数据库上 右键 —> 任务—>生成脚本 进行如下操作。
步骤二
修改创建数据库脚本,由于更换了数据库版本,且数据库数据存储的位置也发生了变化,所以要把sql文件 创建数据的语句进行简单的调整。如下图红框所示的要注释掉。
如果文件过大还需要将文件进行切割,然后进行编辑,最后在合并回去便于执行脚本。
--1. 先放到 ftp上, 如果用vim 编辑时发生乱码,可以用**file** 命令查看当前文件的编码然后使用 **iconv** 命令进行编码转换 或者 iconv -c -s -f UTF-16 -t UTF-8 script-all.sql -o 1.txt --2. 分割文件便于进行文本编辑 split -l10000 -d 1.txt split_script_ --verbose --3.编辑第一个脚本 修改数据库创建语句 vim split_script_00.txt --4. 合并拆分的文件,便于执行sql cat split_script_* > result.sql
步骤三
使用管理员打开 shell 窗口,进入对应的脚本文件目录 执行如下语句,语句执行时间根据由数据的多少决定。
osql -S localhost -U sa -P 123456 -i result.sql
步骤四
导入完成,使用sql对比工具查看 两个数据库数据差异 ,如 Navicat 的 数据同步工具,同步的时候会先进行对比。操作步骤: 顶部 工具–>数据同步—>选择你要对比的数据库 它会自动进行比对。
参考连接:
SQL SERVER数据库降级方案 数据量大的情况下建议使用第二种