# 将PostgreSQL更改/迁移到MS-SQL服务器

通过简单三步，迁移PostgreSQL数据库并使用MS SQL运行RecoveryManager Plus服务器。

- 备份PostgreSQL Data
- 配置MS SQL服务器
- 将PostgreSQL数据迁移到MS SQL服务器

## 备份PostgreSQL数据

1. 停止RecoveryManager Plus服务器/服务。
2. 在命令提示符下调用 <RecoveryManager Plus Home>\bin\backupDB.bat ，备份PostgreSQL数据库中可用的数据。 默认情况下，备份文件将存储在 <RecoveryManager Plus Home>\Backup\OfflineBackup_YYYYMMDDHHmmss 目录下。

## 配置MS SQL服务器

在MS SQL Server中执行的通用设置

1. 打开SQL Server配置管理器。
2. 转到“ SQL Server服务”并确保服务'SQL Server Browser'在运行。
3. 转到SQL Server网络配置→ SQLEXPRESS的协议（配置MS SQL时的给定实例） →启用TCP / IP。 然后重新启动SQL Server（SQLEXPRESS-给定实例）服务。
4. 为SQL Server配置管理器设置以下配置：

- SQL Server网络配置→ 协议<实例> → 启用所有
- SQL本地客户端配置→客户端协议 →启用所有

向域中的其他用户提供凭证

- 转到SQL Server Management Studio.
- 展开以下内容→ MACHINE_NAME → \SQLEXPRESS → Security → Logins.
- 检查RecoveryManager Plus服务中提供的用户是否已在列表中；

如果不是，请右键单击“登录名”，“新登录名”并提供相应的用户名。 新用户必须具有db_owner的sysadmin服务器级角色和数据库级角色。
请按照以下步骤提供sysadmin角色权限：
右键单击用户，然后单击“属性”
转到'服务器角色' → 检查系统管理员，然后单击“确定”

| 注意: 有关用户角色的详细信息：请参阅以下链接中的文档： 对于服务器级角色: http://msdn.microsoft.com/en-us/library/ms188659.aspx 对于数据库级角色： http://msdn.microsoft.com/en-us/library/ms189121.aspx 有关其他资源：http://www.mssqlcity.com/Articles/Adm/SQL70Roles.htm 用户的服务器角色应为'sysadmin' 并且用户的数据库角色应为 'db_owner'.

sysadmin的成员，服务器角色可以在SQL Server中执行任何活动，并且可以完全控制所有数据库功能。

db_owner的成员,数据库角色可以在数据库中执行任何活动。

本地计算机中的MS SQL Server

将以下文件复制到 <RecoveryManager Plus Home>\bin 文件夹

1. bcp.exe- <MSSQL Installation Dir>\Tools\Binn\bcp.exe
2. bcp.rll- <MSSQL Installation Dir>\Tools\Binn\Resources\1033\bcp.rll

远程计算机中的MS SQL Server

注意: 请根据Recovery Manager Plus计算机的MS SQL Server版本和CPU类型，在RecoveryManager Plus计算机中安装相应的SQL Native Client /命令行实用工具。

SQLServer版本 | 命令行实用程序 | 本地客户端
2008 R2 | 下载 | 下载
2012 | 下载 | 下载
2014 | 下载 | 下载
2016 | 下载 | 下载

安装命令行实用程序后，请复制以下文件：
拷贝文件到→ RecoveryManager Plus Home → \bin文件夹

1. bcp.exe → MSSQL Installation Dir → \Tools\Binn\bcp.exe
2. bcp.rll → MSSQL Installation Dir → \Tools\Binn\Resources\1033\bcp.rll

Windows防火墙设置

如果在MS SQL Server计算机中启用了防火墙，则需要打开TCP和UDP端口。

UDP端口通常是1434。

要检查 TCP端口设置，打开“ SQL配置管理器”：

- SQL Server网络配置→ 协议<实例>
- 右键单击TCP / IP→ 属性 → 转到IP地址选项卡并滚动直到TCP动态端口，然后在防火墙中输入当前值。

## 将PostgreSQL数据迁移到MS SQL

1. 开始菜单停止服务器或调用<RecoveryManager Plus Home>\bin\shutdown.bat在命令提示符下停止RecoveryManager Plus服务器。
2. 要将数据库所有数据完整从PostgreSQL迁移到MSSQL：
   打开命令提示符并导航到位置<RecoveryManager Plus Home>\bin
   输入命令"changeDB.bat"迁移数据库完整数据

   (或者)

   要将数据库从PostgreSQL更改为MSSQL没有数据:
   打开命令提示符并导航到位置<RecoveryManager Plus Home>\bin
   输入命令"changeDB.bat false"无数据迁移数据库。

4. 数据库设置向导 弹出。

5. 在向导屏幕中，选择 服务器类型 as MSSQL Server. 可用的SQL Server实例 在组合框中列出。 输入 主机名 and 命名实例 of the SQL Server from the instances。
6. 使用以下命令选择身份验证类型"Connect Using:"选项。
7. 选项为:

1. Windows验证

   对于Windows身份验证，将自动获取域用户的凭据。

2. SQL Server验证

   对于MS SQL Server身份验证，请输入 用户名 和 密码。

8. 点击测试连接检查凭证是否正确。 如果测试失败，则凭证可能有误，请重新检查并输入正确的凭证。
9. 点击保存 按钮保存MS SQL Server配置。 请注意，将花费几分钟来配置SQL Server数据库的设置。
10. 启动RecoveryManager Plus服务器/服务以将MS SQL SERVER作为数据库使用。

Get download link