引言
Oracle到SAP HANA实时复制系列(一):初始SRS介绍了从Oracle到SAP HANA实时复制系统的体系架构,并阐述了数据实时复制过程。在Oracle到SAP HANA实时复制系列(二):Replication Server的安装与配置文中结合截图一步步详细介绍了Replication Server的安装与配置过程。与上一篇文章类似,本文结合图片详细介绍Linux操作系统下Replication Agent软件的安装以及配置过程。
1安装环境
从第一篇介绍的Oracle到SAP HANA的复制系统架构图可知,该复制系统主要包含Oracle数据库服务器、Replication Agent、Replication Server和SAP HANA数据库服务器四个组件。其中Oracle数据库和Replication Agent必须安装在同一台机器上。
为了便于说明,这些组件安装的机器作以下说明:
- 主机A:Suse 11 SP2,IP地址:记为<IPA>,安装Oracle数据库和Replication Agent;
- 主机B:Suse 11 SP2,IP地址:记为<IPB>,安装Replication Server;
- 主机C:Suse 11 SP2,IP地址:记为<IPC>,安装SAP HANA数据库。
Replication Agent可以安装在Linux或者Windows操作系统中,本文介绍在Suse 11 SP2环境下的Replication Agent的安装和配置过程,使用的Replication Agent版本为15.7.1 SP120。本文默认读者已经安装好Oracle数据库,且对Oracle数据库有一定的了解,本文使用的Oracle数据库的版本为Oracle 11g。更多Replication Agent软件和硬件要求请参见Replication Agent 15.7.1 Installation Guide。
2 Replication Agent软件安装
2.1准备工作
1)由于Replication Agent需要读取Oracle数据库的Log信息,所以运行Replication Agent的操作系统账户需要具备读取Oracle数据库Log信息的权限。本文使用Oracle数据库所在的操作系统账户“Oracle”,读者可以使用其他账户,但此账户需具备读取Oracle数据库Log信息的权限。
2)Oracle JDBC驱动程序必须安装在 Replication Agent主机上,并且该驱动程序的安装目录必须包含在 CLASSPATH环境变量中。
3)必须在Oracle数据库上安装并运行 TNS监听器服务,以便 Replication Agent 实例可以连接到Oracle数据库。
4)从SAP Service Marketplace(SMP)上下载Replication Agent安装包,并获得相应的许可证。解压安装包并放到文件夹中,运行chown命令确保Oracle用户对该文件夹有read、write、execute权限。
2.2安装软件
1)创建一个安装目录作为Replication Agent的根目录,记为<SYBASE>。
2)运行Replication Agent安装包目录下的setup.bin
说明:Replication Agent有三种安装模式:
- 图形用户界面(GUI):用于在交互式用户模式下安装组件;
- 主控台:用于在命令行环境下安装组件;
- 响应文件:使用响应文件方式安装组件,包括无提示和使用响应文件的交互式两种方式。
GUI模式为默认的安装模式,本文使用此种模式。
3)弹出安装界面,单击Next
4)选择地区为 “People’s *(PRC)”,并选择 “I agree to the terms of the Sybase license for the
install location specified”选项,单击Next
5)选择刚创建的sybase文件夹作为Replication Agent的安装目录,单击 Next
6)选择要连接的数据库为“Oracle”,单击Next
7)选择 “continue installation without a license key”,单击 Next
说明:若已获得许可证,选择“Specify license key”并输入许可证。
8)选择“no”不配置邮件提醒,单击 Next
9)确认安装信息,单击Install
10)显示如下界面说明软件安装成功
更多Replication Agent的安装信息请参见Replication Agent 15.7.1 Installation Guide。
2.3配置系统环境变量
1)编辑.bashrc文件
2)添加source SYBASE.sh语句,并保存文件
3)运行.bashrc文件
2.4 验证安装有效性
1)打开 <SYBASE>/log 目录中的日志文件,检查是否有错误信息
2)到<SYBASE>/RAX-15_5/bin目录下运行 ra.sh命令,没有报错并显示Replication Agent版本则说明安装成功
3 配置Replication Agent
3.1 Oracle 数据库设置
1)验证Redo日志归档(archive)设置
a)使用SQLPLUS,并以数据库系统管理员账户登录Oracle数据库
b)运行如下SQL命令
- select log_mode from v$database;
如果归档日志开启,显示结果如下:
LOG_MODE
--------
ARCHIVELOG
c)如果归档日志没有开启,执行如下SQL命令来开启
- shutdown;
- startup mount;
- alter database archivelog;
- alter database open;
2)验证主键补充日志设置
默认情况下,Oracle没有将主键(primary keys)和唯一索引(unique indexes)写入日志,执行如下操作使得主键和唯一索引写入日志中。
a)使用SQLPLUS,并以数据库系统管理员账户登录Oracle数据库
b)执行如下SQL命令
- SELECT SUPPLEMENTAL_LOG_DATA_MIN,
- SUPPLEMENTAL_LOG_DATA_PK,
- SUPPLEMENTAL_LOG_DATA_UI
- FROM V$DATABASE;
如果主键和唯一索引设置写入日志中,显示如下信息
SUP SUP SUP
--- --- ---
YES YES YES
c)如果显示结果没能如上所示,则执行如下SQL命令
- ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY
- KEY, UNIQUE INDEX) COLUMNS;
- ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
3)配置Oracle LogMiner
a)如果没有安装 LogMiner,以数据库系统管理员账户执行<ORACLE_HOME>/rdbms/admin目录下的dbmslm.sql文件
b)安装LogMiner后,执行如下SQL命令创建一个public synonym
- CREATE PUBLIC SYNONYM DBMS_LOGMNR FOR SYS.DBMS_LOGMNR;
4)创建<RA_USER>和<MAINT_USER>用户
a)创建一个数据库用户,并记为<RA_USER>,该用户用于Replication Agent连接Oracle数据库。具体创建<RA_USER>和赋权限的SQL命令请参见Creating Oracle User and Grant Permissions。
b)再创建一个数据库用户,并记为<MAINT_USER>,作为Oracle的维护用户,该用户用于Replication Server创建到Oracle数据库的连接时使用,具有必要的Select权限。
5)验证<RA_USER>用户权限
以<RA_USER>用户登录Oracle数据库,运行如下SQL命令验证该用户的权限
- select GRANTED_ROLE from USER_ROLE_PRIVS;
<RA_USER>用户需要至少包含如下三个权限。
GRANTED_ROLE
--------------------
CONNECT
RESOURCE
SELECT_CATALOG_ROLE
3.2 Replication Server端创建到Oracle的连接
1)开启Replication Server,并用isql以sa账户登录到Replication Server
2)执行以下命令创建到Oracle的连接
- create connection to ORCLDS.orcl
- using profile rs_rs_to_oracle_ra;standard
- set username <MAINT_USER>
- set password <MAINT_PWD>
- with log transfer on, dsi_suspended
- go
说明:
a) ORCLDS为Replication Agent配置文件里rs_source_ds参数值;
b)orcl为Replication Agent配置文件里rs_source_db参数值;
c) <MAINT_USER>为Oracle数据库的维护用户,并具有必要的Select权限;
d)<MAINT_PWD>为Oracle数据库的维护用户密码。
3)赋予rs_username设置create object权限
RS_ra为连接Replication Server和Replication Agent的账户。为 RS_ra赋create object权限主要是为了使Replication Server端能够创建Replication definition,RS_ra为Replication Agent配置文件里rs_username参数值。如下是赋权限命令:
- grant create object to RS_ra
- go
3.2 创建Replication Agent实例
1)拷贝一份<SYBASE>/RAX-15_5/init/oracle.rs文件,并命名为ORCLDS.rs,并编辑ORCLDS.rs文件,其中的部分参数说明如下。
参数 |
说明 |
举例 |
---|---|---|
instance_name |
Replication Agent的名字 |
ORCLDS |
admin_port |
Replication Agent 端口号 |
9036 |
ltm_admin_user |
Replication Agent系统管理员账户名 |
sa |
ltm_admin_pw |
Replication Agent系统管理员账户密码 |
111111 |
pds_host_name |
主数据库服务器的主机名或IP地址 |
<IPA> |
pds_port_number |
主数据库端口号 |
1521 |
pds_database_name |
主数据库名 |
orcl |
pds_username |
Replication Agent用于连接主数据库的用户名 |
<RA_USER> |
pds_password |
Replication Agent用于连接主数据库的用户密码 |
111111 |
pds_sa_username |
主数据库的系统管理员 |
SYS AS SYSDBA |
pds_sa_password |
主数据库的系统管理员 |
111111 |
rs_host_name |
Replication Server主机名或IP地址 |
<IPB> |
rs_port_number |
Replication Server端口号 |
11755 |
rs_username |
Replication Server登录名,该登录名用于Replication Agent连接Replication Server |
RS_ra |
rs_password |
rs_username用户的密码 |
111111 |
rs_charset |
Replication Server字符集 |
utf8 |
rs_source_ds |
Replication Server端建立Oracle数据库连接时使用的服务器名(Replication Server建立Oracle数据库连接时使用的 DS.DB中的DS参数) |
ORCLDS |
rs_source_db |
Replication Server端建立Oracle数据库连接时使用的数据库名(Replication Server建立Oracle数据库连接时使用的 DS.DB中的DB参数) |
orcl |
rssd_host_name |
RSSD数据库服务器名或IP地址 |
<IPB> |
rssd_port_number |
RSSD数据库端口号 |
11756 |
rssd_database_name |
RSSD数据库名 |
ERSSD |
rssd_username |
RSSD数据库维护用户名 |
RS_RSSD_maint |
rssd_password |
RSSD数据库维护用户密码 |
111111 |
pdb_archive_path |
Oracle数据库的Log目录 |
<ORACLE_BASE>/oradata/orcl |
2)验证ORCLDS.rs的有效性,如下是验证命令:
- <SYBASE>/RAX-15_5/bin/ra_admin.sh –vr ORCLDS.rs
如出现如下提示则说明文件设置正确,否则查看相应的错误提示信息并进行改正。
Response-file processing completed
3)创建Replication Agent实例,执行如下命令
- <SYBASE>/RAX-15_5/bin/ra_admin.sh –r ORCLDS.rs
如出现如下提示则说明实例创建成功,否则查看相应的错误提示信息并进行改正。
Response-file processing completed
4)启动Replication Agent实例
创建成功后,在<SYBASE>/RAX-15_5/目录下会有一个ORCLDS目录,该目录名由配置文件中的instance_name参数值指定,运行该目录下的RUN_ORCLDS可执行文件即可启动Replication Agent。
5)验证Replication Agent实例
a)在Replication Server端的interfaces文件中添加Replication Agent连接信息(也可以在Replication Agent 端interfaces文件中添加如下相同的连接信息)
ORCLDS
master tcp ether <IPA> 9036
query tcp ether <IPA> 9036
b)在Replication Server端使用isql登陆Replication Agent。
- isql –Usa –P111111 –SORCLDS
c)测试到Oracle数据库和Replication Server的连接。
- test_connection
- go
如果出现如下的信息,则说明连接成功。
Type Connection
---- ----------
PDS succeeded
RS succeeded
6)初始化Replication Agent实例
a)执行如下命令来初始化Replication Agent实例。
- ra_admin init
- go
b)设置Replication Agent的状态为REPLICATING
- resume
- go
如果设置成功则显示的结果如下,否则根据错误提示信息进行改正。
State Action
----------------- --------------------------
REPLICATING Ready to replicate data.
c)查看Replication Agent状态
- ra_status
- go
更多Replication Agent的信息请参见Replication Agent 15.7.1 Administration Guide。
4结束语
本文结合图片详细说明了Replication Agent的安装与配置过程,本系列的下一篇文章将会介绍从Oracle表到SAP HANA表的复制操作。