# 将内置数据库服务器(PostgreSQL)迁移到Microsoft SQL服务器或其他PostgreSQL服务器实例。

## 支持的数据库迁移:

- PostgreSQL服务器到Microsoft SQL服务器或其他实例的PostgreSQL服务器。
- 从Microsoft SQL Server到PostgreSQL Server或其他Microsoft SQL Server实例。

## 支持的数据库版本:

- PostgreSQL: 9.3 to 9.5
- MS SQL: 2005 或更高

要将内置的PostgreSQL迁移到另一个数据库，请遵循下面列出的步骤。

- 备份PostgreSQL中的数据
- 配置MS SQL Server
- 迁移数据库

## PostgreSQL备份数据

- 停止Log360服务器/服务.
- 在命令提示符中调用<Log360 Home>\bin\backupDB.bat 备份PostgreSQL数据库中可用的数据. By default, 默认情况下，备份文件将存储在\ backup \Log360_Backup目录下， <Log360 Home>\Backup\Log360_Backup<Backup_time> 。

## 配置Microsoft SQL Server

### 在Microsoft SQL Server中执行的常见设置

- 打开SQL Server配置管理器。
- 跳转到SQL Server服务,并确保服务SQL Server浏览正在运行.
- 转到SQL Server 网络配置 →SQLEXPRESS协议 (配置MS SQL时的给定实例) → 启用TCP/IP. 然后重新启动SQL Server(SQLEXPRESS-给定实例)服务。
- 为SQL Server配置管理器设置以下配置：
  - SQL Server网络配置 →协议; → 全部启用.
  - SQL本机客户端配置→客户端协议 → 启用全部。

### 向域中的其他用户提供凭据

- 进入SQL Server Management Studio.
- 展开<MACHINE_NAME>\SQLEXPRESS → 安全性 → 登录.
- 检查在Log360服务中提供的用户是否已经在列表中。

如果不是，右键单击登录，新建登录并提供相应的用户名。新用户必须具有sysadmin服务器级角色和数据库级角色db_owner。

按照以下步骤提供sysadmin角色权限:
右键单击用户，单击“属性”
进入‘Server Roles → 检查sysadmin并点击‘OK’

注意: 有关用户角色的详细信息:请参阅以下链接中的文档:
对于服务器级角色:http://msdn.microsoft.com/en-us/library/ms188659.aspx
对于数据级角色: http://msdn.microsoft.com/en-us/library/ms189121.aspx

用户的服务器角色应该是“sysadmin”，用户的数据库角色应该是“db_owner”。
sysadmin server角色的成员可以执行SQL server中的任何活动，并完成对所有数据库功能的控制。
db_owner数据库角色的成员可以执行数据库中的任何活动。

### 本地计算机中的MS SQL服务器

将下列文件复制到<Log360安装目录>\bin文件夹.

- bcp.exe- <MSSQL_installed_folder>\Client SDK\ODBC\130\Tools\Binn\bcp.exe
- bcp.rll- <MSSQL_installed_folder>\Client SDK\ODBC\130\Tools\Binn\Resources\1033\bcp.rll

### 远程计算机中的MS SQL Server

注意: 请参照Log360服务器的MS SQL Server版本和CPU类型，在安装了Log360服务器上安装相应的SQL原生客户端/命令行工具。

MS SQL Server版本 | 命令行实用程序和本机客户端
2005 | 下载
2008 | 下载
2008 R2 (x64) | 下载
2008 R2 (x86) | 下载
2012 | 下载
2014 | 下载
2016 | 下载
2017 | 下载

安装命令行实用程序后，请复制以下文件:

将文件复制到<Log360安装目录>\bin 文件夹.

- bcp.exe- <MSSQL_installed_folder>\Client SDK\ODBC\130\Tools\Binn\bcp.exe
- bcp.rll- <MSSQL_installed_folder>\Client SDK\ODBC\130\Tools\Binn\Resources\1033\bcp.rll

### Windows防火墙设置

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

UDP端口通常是1434.

要检查TCP Port设置, 请打开SQL配置管理器:

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

## 迁移数据库

1. 作为管理员登录到log360。
2. 导航到 管理→常规设置→ 数据库设置→数据库配置.
3. 在组件名称下选择Log360.
4. 从选择数据库服务器菜单中, 选择要更改为的数据库服务器.
5. 如果您选择的是PostgreSQL服务器,那么:

- 在数据库服务器名称/IP和端口字段中, 输入PostgreSQL数据库服务器的主机名或IP地址和端口号。
- 输入有权创建新数据库的用户的用户名和密码 of a user who has permission to create a new database.

6. 如果您选择的是MS SQL Server,那么:

- 在数据库服务器名称/IP和端口字段中 , 输入MS SQL数据库服务器的主机名或IP地址和端口号。
- 在DB服务器实例字段中, 选择要使用的SQL服务器实例.
- 如果您已经移动了bcp.exe和bcp.rll文件, 则在 选择bcp.exe 文件和选择bcp.rll文件字段中会看到相同的内容. 如果没有，请单击浏览，然后从SQL Server安装目录中选择bcp.exe和bcp.rll文件。
- 对于身份验证，您可以使用Windows凭据或SQL Server用户帐户。
- 如果要使用SQL Server用户帐户，请选择SQL身份验证并输入用户名和密码。
- 如果要使用Windows身份验证，请选择“Windows身份验证”，然后输入Windows域用户帐户的用户名和密码。要自动填写当前登录到计算机的用户的用户名和密码，请选中 使用默认Windows身份验证复选框。

注意: 使用的用户帐户必须具有在选定的MS SQL服务器中创建数据库的权限。.

7. 选中现有的数据迁移旁边的复选框，将数据从旧数据库复制到新数据库

   重要提示: 仅当您要更改全新安装的Log360或其组件的数据库时，才保留此框为未选中状态。

8. 点击保存.