1、 安装Replication Server前必须要有ASE数据库用来存放复制服务器的数据库信息。本次安装Replication Server和ASE数据库是安装在同一台机器上的。
2、 安装前备份/etc/ld.so.conf文件,运行REP12.6的rpm程序会清空该文件,导致无法运行Xwindow。
3、 用root用户,解包安装。
上传CD20076-55-1260-01-zh-linux.tgz,EBF16970.tgz到安装rep的的ASE服务器
tar -zxvf CD20076-55-1260-01-zh-linux.tgz
./setup –console
tar –zxvf EBF16970.tgz
./ installEBF16970 -console
缺省安装在/opt/sybase-12.5.4目录下。
4、 恢复原备份的/etc/ld.so.conf文件,修改该文件,在文件末尾增加以下两行:
/opt/sybase-12.5.4/REP-12_6/lib
/opt/sybase-12.5.4/RSM-12_6/lib
存盘退出。运行ldconfig。
5、 更改/opt/sybase-12.5.4目录的所有者为sybase用户
chown –R sybase:sybase /opt/sybase-12.5.4
6、 换为sybase用户继续以下步骤。
7、 修改sybase用户的.bash_profile文件。
vi ~/.bash_profile
增加export SYBASE_REP=REP-12_6
export SYBASE_RSM=RSM-12_6
在export LD_LIBRARY_PATH中增加${SYBASE}/${SYBASE_REP}/lib: ${SYBASE}/${SYBASE_RSM}/lib
在export PATH中增加${SYBASE}/${SYBASE_REP}/bin: ${SYBASE}/${SYBASE_RSM}/bin
退出当前登录,用sybase用户重新登录。
8、 开始安装Replication Server,首先要确保ASE数据库已启动。
9、 运行~/REP-12_6/install/目录下的rs_init
~/REP-12_6/install/rs_init
10、 输入2,即选择Configure a Server Product,按回车继续。
11、 输入1,即选择Replication Server,按回车继续。
12、 输入1,即选择Install a new Replication server,按回车继续。
13、 输入1,即选择Replication Server Information,按回车继续。当此画面上的5项信息均为complete时,安装新的Replication Server的工作就完成了。
14、 输入1,即选择Replication Server Name,按回车继续。录入服务器名称,按回车继续。这里输入为syb_rep。按Ctrl-a继续。
15、 输入1,将这个Replication Server设为ID Server。
16、 输入8,按回车继续,配置interfaces信息。这里需要再打开一个操作屏幕,可以按Ctrl-Alt-F2完成。修改interfaces文件。
vi ~/interfaces
增加下列信息:
syb_rep(注释:就是刚才配置的Replication Server的名称)
master tcp ether 192.168.1.150 6000
query tcp ether 192.168.1.150 6000
17、 按ctrl-a继续,此时第8项Replication server interfaces information应该显示为complete。按ctrl-a继续。
18、 此时第1、2、5项应该显示为complete。输入3,即选择Replication Server System Database,按回车继续。
19、 输入1,即选择RSSD SQL Server name,按回车继续。录入ASE的服务器名称,按回车继续。这里输入为etoh2。
20、 输入5,即选择Create RSSD。
21、 如果ASE服务器的sa用户有密码,输入7,即选择SA password,录入密码,按回车继续。如果没有密码则不用进行上述操作。按ctrl-a继续。
22、 输入4,即选择RSSD Device Information,按回车继续。
23、 输入1,即选择Size of the RSSD database,录入数据库大小,按回车继续。这里输入为50。
24、 输入2,即选择RSSD device name,录入数据库名称,按回车继续。这里输入为syb_rep。
25、 输入3,即选择Create the RSSD device。
26、 输入4,即选择RSSD device physical name,录入数据库设备物理地址,按回车继续。这里输入为/opt/sybase-12.5.4/data/syb_rep.dat。
27、 输入5,即选择RSSD device size,录入数据库设备大小,按回车继续。这里输入为50。
28、 输入6,即选择Size of the RSSD log,录入数据库日志大小,按回车继续。这里输入为60。
29、 输入7,即选择RSSD log device name,录入数据库日志名称,按回车继续。这里输入为syb_replog。
30、 输入8,即选择Create the RSSD log device。
31、 输入9,即选择RSSD log device physical name,录入数据库日志设备物理地址,按回车继续。这里输入为/opt/sybase-12.5.4/data/syb_replog.dat。
32、 输入10,即选择RSSD log size,录入数据库日志设备大小,按回车继续。这里输入为60。按ctrl-a继续。
33、 输入5,即选择Disk Partition,按回车继续。
34、 输入1,即选择Disk Partition Path,按回车继续。录入稳定队列的物理路径,按回车继续。这里输入为/opt/sybase-12.5.4/data/rep_queue。这里需要再打开一个操作屏幕,用touch命令事先创建这个文件,touch /opt/sybase-12.5.4/data/rep_queue。
35、 输入2,即选择Logical Identifier For Disk Partition,按回车继续。录入稳定队列的逻辑名,按回车继续。这里输入为rep_queue。
36、 按ctrl-a继续,此时应该所有项目均为Complete。按ctrl-a继续,输入y,按回车开始创建Replication Server。
37、 接下来开始配置复制系统。在复制系统设计到的ASE的interfaces中必须要配置Replication Server的信息,否则数据复制系统无法正常运行。配置方法参考前面第16条的说明。
38、 运行rs_init程序。这次输入2,即选择Add a database to the replication system,按回车继续。
39、 输入1,即选择Replication Server Information,按回车继续。
40、 输入1,即选择Replication Server Name,按回车继续。录入复制服务器名,按回车继续。这里录入syb_rep。按两次ctrl-a继续。
41、 输入2,即选择Database Information,按回车继续。
42、 输入1,即选择SQL Server Name,按回车继续。录入ASE服务器名,按回车继续。这里录入etoh2。
43、 输入4,即选择Database Name,按回车继续。录入数据库名,按回车继续。这里录入etoh_sc。
44、 对于主数据库,输入5,即选择此数据将被复制,这样Replication会在此数据库上创建Rep Agent线程。
45、 按ctrl-a继续,完成数据库的添加。如果复制系统中有多个数据库重复此操作。
46、 运行Replication Server使用下面的命令:~/REP-12_6/install/RUN_syb_rep
47、 停止Replication Server使用下面的命令:
isql -Usa -P -Ssyb_rep
shutdown
go
48、 在data2上为将要创建复制定义和预定的用户创建一个登录帐户。这里登录名为"repsys",在"etoh"数据库中添加用户,并授予用户对要复制的表的select权限。
isql -Usa -Sdata2 -P123456
sp_addlogin repsys, repsys_ps
go
use etoh
go
sp_adduser repsys
go
grant select on s_usercount to repsys
go
49、 将"repsys"添加到Replication Server上,将create object权限授予该用户。"repsys"在Replication Server和data2上必须拥有相同的用户名和口令。
isql -Usa -Ssyb_rep -P
create user repsys
set password repsys_ps
go
grant create object to repsys
go
50、 为表s_usercount创建复制定义。注意对于numeric和decimal类型不可以指定精度,否则无法创建成功。
isql -Urepsys -Prepsys_ps -Ssyb_rep
create replication definition s_usercount
with primary at data2.etoh
with all tables named 's_usercount'
(
c_userid varchar(13) ,
c_password char(40) ,
c_username varchar(40) ,
c_email varchar(40) ,
c_usertype char(1) ,
c_schid c_schid ,
c_serial varchar(20) ,
c_regdate datetime ,
c_active char(1) ,
c_mobile char(11) ,
c_nickname varchar(40) ,
c_lastlogin datetime ,
c_count int ,
c_favorite varchar(100),
c_modify char(1) ,
c_breakdate datetime
)
primary key (c_userid)
go
51、 将data2上etoh数据库中的s_usercount表的复制设为"on"。
isql -Usa -Sdata2 -P123456
use etoh
go
sp_setreptable s_usercount, true
go
52、 在data3上的etoh数据库中,将对表s_usercount的权限授予维护用户。
isql -Usa -Sdata3 -P123456
use etoh
go
grant select, insert, delete, update on s_usercount to etoh_maint
go
53、 在Replication Server上为s_usercount表创建预订。
isql -Urepsys -Prepsys_ps -Ssyb_rep
create subscription s_usercount_sub
for s_usercount
with replicate at data3.etoh
go
54、 至此完成了一个数据复制系统的基本配置。
附录:
1、 删除预订。
isql -Urepsys -Prepsys_ps -Ssyb_rep
drop subscription s_usercount_sub
for s_usercount
with replicate at data3.etoh
with purge
go
2、 删除复制定义。
drop replication definition s_usercount
go
3、 修改Replication Server字符集的方法。
Replication Server使用的字符集必须和复制系统中数据库使用的字符集兼容,否则会造成复制失败或其他未知错误。
将Replication Server服务停止
首先修改%SYBASE%/REP-12_5/install/syb_rep.cfg文件,其中syb_rep是配置的Replication Server的名字。将RS_charset设为cp936。
然后将%SYBASE%/locales/us_english目录下的cp850目录复制一份改目录名为cp936放在同一目录下,cp -R cp850 cp936
重新启动Replication Server服务即可
4、 查看复制系统当前状态。
isql -Usa -P -Ssyb_rep
admin health
go
其中quiesce为True时表示复制系统当前没有进行操作,status为healthy时表示复制系统当前没有关闭或挂起的线程。
5、 查看复制系统涉及到的线程。