SYBASE-REP 安装、调优、备份参考手册_第1页
SYBASE-REP 安装、调优、备份参考手册_第2页
SYBASE-REP 安装、调优、备份参考手册_第3页
SYBASE-REP 安装、调优、备份参考手册_第4页
SYBASE-REP 安装、调优、备份参考手册_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、随着网络和通讯日新月异的开展,在银行、邮电、学校、企业已经大量地使用各种数据库系统来管理信息和数据,很多在线效劳要求这些信息和数据永远都不中断效劳的前提下,数据库系统的实时性、可靠性和高度可维护性成为越来越迫切的需要。而在线热备份技术(Online Replication Server)正是为实现永不中断效劳的需求的一种比拟成功的数据库解决方案。本文以UNIX Sun Solaris系统下的Sybase数据库基于一般表级复制和Warming Standing by方式的在线热备份为例,从热备份的概念原理、实现步骤、运行维护等三个方面介绍SYBASE Replication Server复制效劳

2、器。 第I局部:Sybase数据库Replication Server的概念与原理 一、 数据分布与复制: 1、在线系统在出于平安性的考虑,对非常重要的数据库的数据和信息需要保存在不同的物理设备上,而且最好放置在不同的地方,以防止比拟严重的物理损害比方自然火灾之类造成的物理损坏而引起数据丧失,这样需要通过网络在异地不同物理设备的多个数据效劳器之间异步地复制数据,以保证分布数据的一致性和完整性; 2、为了使每个Client前端对数据库数据信息的存取和查询都能够高效快速地完成,最好的情况是能够操作区域网内LAN的数据库,而在广域网WAN中要求与之数据一致的数据库通过数据复制的方式来实现。这样每个区

3、域网都通过Replication Server与中心数据库相连,即实现了数据分布和复制。 3、SYBASE数据库的分布处理技术: 1)、两阶段提交同步事务: 最紧密地保持数据的一致性。 事务的速度将受限域最慢的效劳器。 整个系统任何一局部有问题都会使事务不成功。 网络拓扑的变化需要修改应用 2、松散一致性异步事务: SYBASE的复制机制。 表级卸出和装入bcp in/out。 事务的log下载,传输,上载(dump,transfer,load)。 对修改的记录做标记,定时传输。 二、 复制效劳器概念: 复制效劳器,就是一种通过网络在多个数据库之间实现数据复制,以保证数据的一致性和完整性。它可

4、以实现各个Clients客户端用户都操作本地区域网的数据,然后通过复制效劳器复制到中心数据库,也可以保证一个数据库出现物理损坏的情况下,能够及时地起用备份效劳器而维持不中断的数据库信息效劳。 三、采用复制效劳器的好处: 1、改良整个系统性能: 1、在区域网(LAN)传输数据比在广域网(WAN)快。 2、防止了随着WAN上用户数的增加使得响应时间会明显增加从而影响应用的问题。 3、由于决策支持系统-DSS的数据存于本地数据库,减少了数据库的锁碰撞和冲突,减少死锁的发生率。 2、提高了数据的可用性 1、当远程数据库发生故障,应用可以启动本地复制拷贝 2、当WAN发生问题时,用户可以使用本地的数据库

5、继续工作 3、当本地发生故障时,应用可以连接到另一个有复制数据的节点继续工作 3、数据库复制需要传输大量的数据,所以在占用网络带宽、传输的数据的可靠性和可维护性方面存在比拟明显的缺陷。 四、SYBASE数据库复制: 1、 根本原理: 用户事务被提交给主点数据库,事务被记入LOG,LOG被读出并按事务一级传给复制效劳器,复制效劳器完成接收、判断、迁移、组装和发送,事务发送给复制点效劳器,复制点效劳器完本钱数据库的相同操作。 2、 组成结构: 复制效劳器系统是由Dataserver、RS、LTM和网络等组成的集成综合系统,主要包括: (1)、网络:完成数据复制和传输的必须的物理连接线路和相关的硬件

6、设施。 (2)、SQL Server作为主点数据源 Log可以支持LTM所需的第二个Truncation point 对于已定义成可复制表的update操作将采用delete+insert方式 Log可以记录被复制的存储过程,Database Dump,Transaction log Dump (3)、复制效劳器RS 记录复制和约定信息 接收数据事务并传止约定的数据库和其它复制效劳器 (4)、LOG传输管理(LTM)。 (5)、复制效劳器系统数据库(RSSD) RSSD所包含的信息有:复制定义、约定定义、功能函数和功能函数定义、路由信息 RSSD为一个SQL Server上的数据库,可以在主S

7、QL Server上,也可在复制SQL Server上 (6)、稳定队列 存储主效劳器已经完成但还没有复制到复制效劳器的中间复制信息 (7)、SQL Server或者其它数据源作为复制点数据源 3、 分类 根据复制实现方式分: (1)、一般复制环境即表级复制: 指将定义复制的表复制到相关的复制效劳器,对没有定义复制的表不做复制,所以可以实现重要的表和易复制的表复制,好处是节省带宽和相关的硬盘空间。 (2)、Warm Standby 主要定义整个数据库进行定时热备份,当主点数据库损坏以后,Clients应用的转移需要一定时间。在正常运行是两个数据库的一致性由复制效劳器来保证。主要好处是实现容易,

8、而且以整个数据库的方式实现可以满足相应的Clients端需求,但需要比拟复杂的维护和较大的硬盘空间。 (3)、Hot Standby 主要对整个数据库进行实时热备份,当主点数据库损坏后,Clients的应用转移能够马上转移到复制效劳器。好处是能够保证数据库的高度实时性,但缺点是需要有高性能的线路质量、大量的维护工作、而且可实现性较差,容易出现问题使复制不成功。所以目前广泛采用Warm Standby方式和一般表级复制的方式来实现,很少用及Hot Standby方式。 根据复制实现种类分: (1)、单向复制:一个主点,一个或假设干复制点,一个RS (2)、双向复制:两个DB均为主点,两个RS,可

9、分两种情况 两个DB中的表分别为主点表,属于双向中的单向 - 两个DB中的表全为主点表,不保证一致性 第II局部: SYBASE Replication 的安装配置: 一、 用sybload安装产品;$SYBASE/rs_init配置Replication Server 假设rs_init起不来: # cd /usr/shlib # ln -s ./libdnet_stub.so libdnet.so In user environment, setenv _RLD_ARGS "-ignore_version libdnet_stub.so" 二、 复制效劳器安装范例:一般

10、复制环境 1:安装SQL Server和创立数据库,为一般的安装SYBASE数据库和创立数据库步骤,参考?SYBASE 数据库根底?局部: 主结点: SQL Server Name: SQL1 Database Name: DB1 复制结点: SQL Server Name: SQL2 Database Name: DB2 2:安装复制效劳器,RS Server: 以sybase用户身份,在sybase/install目录,执行rs_init: Replication Server Name: REP ID Server: yes RSSD位置: SQL Server Name: SQL1 D

11、atabase Name: RSSD Need LTM: no Stable queue: Physical path: /data1/sybase/dbfile/rs_queue1.dat Logical Name: queue1 3:Add The First Database to Replication System 使用:rs_init; Replication Server Name: REP Replication SA User: sa (Password is null unless you changed) SQL Server Name: SQL1 Database Na

12、me: DB1 Need LTM: yes (Primary Database -yes, Replication Database - no) LTM Name:DB1_LTM 4:Add The Second Database to Replication System 使用:rs_init; Replication Server Name: REP Replication SA User: sa (Password is null unless you changed) SQL Server Name: SQL2 Database Name: DB2 Need LTM: yes LTM

13、Name:DB2_LTM 5:Checking Whether All Server Is Running normally. SQL Server: SQL1 and SQL2 Replication Server: REP LTM for DB1: DB1_LTM LTM for DB2: DB2_LTM 使用 isql -Usa -SREP 1 >admin who_is_down 2 >go The result should be empty. 6:Create Table isql -Usa -SSQL1 >use DB1 >go >create ta

14、ble tab1 (a int, b char(10), c int) >go >sp_setreplicate tab1, true >go >create table tab2 (a int, c char(10), e int) >go >insert into tab1 values(1, "AAAAA", 1) >go >grant all on tab2 to public >go >create table tab3(a int, b char(10), c int) >go >sp_se

15、treplicate tab3, true >go >grant all on tab3 to public >go >insert into tab3 values(1, "CCCCC", 1) >go isql -Usa -SSQL2 >use DB2 >go >create table tab1 (a int, b char(10), c int) >go >grant all on tab1 to public >go >create table tab2 (a int, b char(10),

16、 c char(10), d int, e int) >go >insert into tab2 values(1, "AAAAA","BBBBB", 1, 1) >go > sp_setreplicate tab2, true >go >create table tab3(a int, b char(10), c int) >go >sp_setreplicate tab3, true >go >grant all on tab3 to public >go >insert int

17、o tab3 values(10000, "DDDDD", 1) >go 注释:Now, We create three table tab1, tab2, tab3 in two database, SQL1.DB1, SQL2.DB2.We show three representative examples: Relicate data from SQL1.DB1.tab1 to SQL2.DB2.tab1; Replicate partial columns data from SQL2.DB2.tab2 to SQL1.DB1.tab2; Replicate

18、 data only a<10000 from SQL1.DB1.tab3 to SQL2.DB2.tab3, and replicate data only a>=10000 from SQL2.DB2.tab3 to SQL1.DB1.tab3. The first example help you testing whether or not replication succeed. The second show you that replication server can hidirection replicate data between two databases.

19、 The third show you that replication server can hidirection replicate data between two tables, this require data divide into two part, the first part from A to B, and the second part from B to A. 7:Create Replication Definition Example 1: isql -Usa -SREP >create replication definition rep_tab1 wi

20、th primary at SQL1.DB1 >with all table named 'tab1' (a int, b char(10), c int) primary key(a) >go >create subscription sub_tab1 for rep_tab1 with replicate at SQL2.DB2 >go isql -Usa -SSQL2 1>use DB2 2>go 1>select * from tab1 2>go You should see there are a row (1, &qu

21、ot;AAAAA", 1) in the table tab1. If you can't see, you should wait a moment and retry. You should sure that the password of user sa of replication server REP has the same as the password of sa of SQL Server SQL1. If not, you can execute the following command: isql -Usa -SREP 1>alter user

22、 sa set password password 2>go And, you can execute the following command to check the replication status: Isql -Usa -SREP 1> check subscription sub_tab1 for rep_tab1 with replicate at SQL2.DB2 2> go If the result contains two VALID, you can execute the following command: isql -Usa -SSQL1 1

23、>use DB1 2>go 1>insert into tab1 values(2, "AAA01", 2) 2>go isql -Usa -SSQL2 1>use DB2 2>go 1>select * from tab2 2>go The results should contain two rows, and now replication is normal. You may do other testing to check. Example 2: isql -Usa -SREP 1>create replic

24、ation definition rep_tab2 with primary at SQL2.DB2 2> with all tables named 'tab2'(a int, c char(10), e int) primary key (a ) 3>go 1>create subscription sub_tab2 for rep_tab2 with replicate at SQL1.DB1 2>go You can use the previous method to check. isql -Usa -SSQL2 1>use DB2 2

25、>go 1>insert into tab2 values(2, "aaaaa", "bbbbb", 2, 2) 2>go isql -Usa -SSQL1 1>use DB1 2>go 1>select * from tab2 2>go Example 3: isql -Usa -SREP 1>create replication definition SQL1_tab3 with primary at SQL1.DB1 2>with all tables named 'tab3'(

26、a int, b char(10), c int) 3>primary key (a) searchable columns (a) 4>go 1>create subscription sub_SQL1_tab3 for SQL1_tab3 2>with replicate at SQL2.DB2 where a<10000 3>go 1>create replication definition SQL2_tab3 with primary at SQL2.DB2 2>with all tables named 'tab3'(

27、a int, b char(10), c int) 3>primary key (a) searchable columns(a) 4>go 1>create subscription sub_SQL2_tab3 for SQL2_tab3 2>with replicate at SQL1.DB1 where a>=10000 3>go Using the same method, you can check whether or not hidirection replication is successful. isql -Usa -SSQL1 1>

28、;use DB1 2>go 1>insert into tab3 values(100, "QQQQQ", 100) 2>go isql -Usa -SSQL2 1>use DB2 2>go 1>select * from tab3 2>go 1>insert into tab3 values(10002, "WWWWW", 11) 2>go isql -Usa -SSQL1 1>use DB1 2>go 1>select * from tab3 2>go 三、 复制效劳器安装

29、范例:Warm Standby应用 1:Install SQL Server, Create Database: 主结点: SQL Server Name: SQL1 Database Name: DB3 复制结点: SQL Server Name: SQL2 Database Name: DB3 2:Install Replication Server 使用rs_init: Replication Server Name: REP ID Server: yes RSSD位置: SQL Server Name: SQL1 Database Name: RSSD Need LTM: no Sta

30、ble queue: Physical path: /data1/sybase/rs_queue1.dat Logical Name: queue1 3:Creating the Logical Connection isql -Usa -SREP 1>create logical connection to demo_lds.demo_db 2>go 注:逻辑连接使用的Data Server和Database名应不同于Active Database;但如果database已存在于复制环境,那么逻辑连接使用的Data Server和Database名必须与Active Databa

31、se的一样。 4:Adding the Active Database to the replication System 使用:rs_init; Replication Server Name: REP Replication SA User: sa (Password is null unless you changed) SQL Server Name: SQL1 Database Name: DB3 Need LTM: yes (Primary Database -yes, Replication Database - no) LTM Name:SQL1_DB3_LTM Is This

32、 a Physical Connection for an Existing Logical Connection? yes Is This an Active connection or standby connection? active Logical DS Name: demo_lds Logical DB Name: demo_db 5:Create Table in the Active Database & Standby Database isql -Usa -SSQL1 1>use DB3 2>go 1>create table tab1(a int

33、, b char(10) 2>go 1>quit isql -Usa -SSQL2 1>use DB3 2>go 1>create table tab1(a int, b char(10) 2>go 1>quit 6:Enabling replication for Objects in the Active Database isql -Usa -SSQL1 1>use DB3 2>go 1>sp_setreptable tab1, true 2>go 7:Adding the Standby Database Mainten

34、ance User isql -Usa -SSQL2 1>sp_addlogin SQL2_DB3_maint,SQL2_DB3_maint_ps,DB3 2>go 1>quit isql -Usa -SSQL1 1>sp_addlogin SQL2_DB3_maint,SQL2_DB3_maint_ps,DB3 2>go 1>use DB3 2>go 1>sp_adduser SQL2_DB3_maint 2>go 1>quit 注:SQL1和SQL2中的所有login ID即suid必须一致,这可以通过用相同的顺序建用户来实现;也

35、可以用调整系统表syslogins和sysloginroles来实现。 8:Adding the Standby Database to Replication System isql -Usa -SREP 1>suspend connection to SQL1.DB3 with nowait 2>go 使用:rs_init; Replication Server Name: REP Replication SA User: sa (Password is null unless you changed) SQL Server Name: SQL2 Database Name:

36、DB3 Need LTM: yes LTM Name:SQL2_DB3_LTM Is This an Active Connection or Standby Connection? Standby Logical DS name: demo_lds Logical DB name: demo_db Active DS name: SQL1 Active DB name: DB3 Active DB SA user: sa Active DB SA Password: Initialize Standby Using Dump and Load: yes Use Dump Marker to

37、Start Replicating to Standby: no 9:同步两个数据库的数据 isql -Usa -SREP 1>wait for create standby for demo_lds.demo_db 2>go 1>admin logical_status, demo_lds,demo_db 2>go 1>quit isql -Usa -SSQL1 1>dump database DB3 to "/data1/sybase/db3_data.dat" 2>go 1>quit #rcp node1:/data1/

38、sybase/db3_data.dat, /data1/sybase #chown sybase /data1/sybase/db3_data.dat You can also use ftp with the sybase user from node1:/data1/sybase/dbfile/db3_data.dat to node2 with the same location. isql -Usa -SSQL2 1>load database DB3 from "/data1/sybase/db3_data.dat" 2>go 1>online

39、database DB3 2>go 1>quit isql -Usa -SREP 1>resume connection to SQL1.DB3 2>go 1>resume connection to SQL2.DB3 2>go 1>quit 10:Enabling Replication for Objects in the Standby Database isql -Usa -SSQL1 1>sp_setreptable tab1, true 2>go 11:Granting Permission to the Maintenance

40、 User isql -Usa -SSQL2 1>use DB3 2>go 1>grant all on tab1 to SQL2_DB3_maint 2>go 第三局部:复制效劳器的运行维护 因为复制效劳器是实时在线复制系统,同时又涉及到主结点和复制结点的两个运行数据库,而且往往数据库处理的数据和信息量也很大,而复制效劳器本身又是一种比拟复杂的技术,所以复制效劳器需要专门的高级数据库管理员(DBA)经常地进行高水平和高质量的维护工作,下面仅介绍一些根本的维护和管理知识,对于复杂的维护知识和技术,请大家参考SYBASE数据库随机参考手册?Replication Serv

41、er Administration Guide?、?Replication Server Commands Reference?。 一、 数据库复制系统的启动和关闭步骤: 1、数据库复制系统启动顺序: 1在主点数据库DB1主机 /database/sybase/install目录下执行 db1% startserver-f RUN_SYSBASE1 启动SYBASE1 SQL Server 2 在复制点数据库DB2主机 /database/sybase/install目录下执行 db2% startserver-f RUN_SYBASE2 启动SYBASE2 SQL Server 3 在复制效

42、劳器RS主机 /database/sybase/install目录下执行 db2% startserver-f RUN_RSCC 启动RSCC复制效劳器 4 在复制效劳器RS主机 /database/sybase/install目录下执行 db2% startserver-f RUN_SYSBASE1_aicntmng_ltm 启动主点数据库LOG传输管理进程 5 检查 % ps -ef 可看到以上全部进程 % showserver 可看到SQL Server进程 如SYBASE1 SYBASE2 6 备份效劳器: 只用于数据库备份,即dump和load时才用到。 可用Showserver看到

43、。启动命令为: db1% startserver -f RUN_BACKUP1 db2% startserver -f RUN_BACKUP2 2、数据库复制系统关闭顺序: 与启动顺序相反 1。db2% isql -Usa -SSYBASE1_aicntmng_ltm 1> shutdown 2> go 关闭LTM进程 2。db2% isql -Usa -SRSCC 1> shutdown 2> go 关闭复制效劳器 3。Db2 % isql -Usa -SSYBASE2 1> shutdown SYB_BACKUP 2> go 1> shutdown 2> go 关闭复制点数据库SQL效劳器 4。db1% isql -Usa -SSYBASE1 1> shutdown SYB_BACKUP 2> go 关闭BACKUP效劳器 1> Shutdown 2> go 关闭主点数据库SQL效劳器 二、 监视复制效劳器系统运行状态 1、在RSCC上监视,用admin who 看所有进程是否正常,主要选项down、suspent、active和awaiting;admin health看连接状态;admin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论