引言
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 Republic of China(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_ERSSD_maint |
rssd_password | RSSD数据库维护用户密码 | 111111 |
pdb_archive_path | Oracle数据库的Log目录 | <ORACLE_HOME>/oradata/orcl |
2)验证ORCLDS.rs的有效性,如下是验证命令:
<SYBASE>/RAX-15_5/bin/ra.sh –vr ORCLDS.rs
如出现如下提示则说明文件设置正确,否则查看相应的错误提示信息并进行改正。
Response-file processing completed
3)创建Replication Agent实例,执行如下命令
<SYBASE>/RAX-15_5/bin/ra.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表的复制操作。
参考资料
Replication Agent 15.7.1 Installation Guide
Replication Agent 15.7.1 Administration Guide
想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!
转载本文章请注明作者和出处<文章url>,请勿用于任何商业用途。