版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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)、当远程数据库发生故障,应用可以启动本地复制拷贝
5、 (2)、当WAN发生问题时,用户可以使用本地的数据库继续工作 (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所包含的信息有:复制定义、约定定义、功能函数和功能函数定义、路由信息
7、 RSSD为一个SQL Server上的数据库,可以在主SQL Server上,也可在复制SQL Server上 (6)、稳定队列 存储主服务器已经完成但还没有复制到复制服务器的中间复制信息 (7)、SQL Server或者其它数据源作为复制点数据源 3、 分类 根据复制实现方式分: (1)、一般复制环境(即表级复制): 指将定义复制的表复制到相关的复制服务器,对没有定义复制的表不做复制,所以可以实现重要的表和易复制的表复制,好处是节省带宽和相关的硬盘空间。 (2)、Warm Standby 主要定义整个数据库进行定时热备份,当主点数据库损坏以后,Clients应用的转移需要一定时间。在正常运
8、行是两个数据库的一致性由复制服务器来保证。主要好处是实现容易,而且以整个数据库的方式实现可以满足相应的Clients端需求,但需要比较复杂的维护和较大的硬盘空间。 (3)、Hot Standby 主要对整个数据库进行实时热备份,当主点数据库损坏后,Clients的应用转移能够马上转移到复制服务器。好处是能够保证数据库的高度实时性,但缺点是需要有高性能的线路质量、大量的维护工作、而且可实现性较差,容易出现问题使复制不成功。所以目前广泛采用Warm Standby方式和一般表级复制的方式来实现,很少用及Hot Standby方式。 根据复制实现种类分: (1)、单向复制:一个主点,一个或若干复制点
9、,一个RS (2)、双向复制:两个DB均为主点,两个RS,可分两种情况 两个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.s
10、o 二、 复制服务器安装范例:一般复制环境 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 Serv
11、er Name: SQL1 Database 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: S
12、QL1 Database Name: 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 Nee
13、d LTM: yes LTM 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 table t
14、ab1 (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_setreplicate tab3, true go grant all on tab3 to public go insert in
15、to 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), 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 tab
16、3(a int, b char(10), c int) go sp_setreplicate tab3, true go grant all on tab3 to public go insert into 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.D
17、B2.tab1; Replicate partial columns data from SQL2.DB2.tab2 to SQL1.DB1.tab2; 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
18、databases. 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_t
19、ab1 with 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 1use DB2 2go 1select * from tab1 2go You should see there are a row (1, AAAAA, 1) in the table tab1. If you can
20、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 1alter user sa set password password 2go And, you can execute the fo
21、llowing 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 1use DB1 2go 1insert into tab1 values(2, AAA01, 2) 2go isql -Usa -SSQL
22、2 1use DB2 2go 1select * from tab2 2go The results should contain two rows, and now replication is normal. You may do other testing to check. Example 2: isql -Usa -SREP 1create replication definition rep_tab2 with primary at SQL2.DB2 2 with all tables named tab2(a int, c char(10), e int) primary key
23、 (a ) 3go 1create subscription sub_tab2 for rep_tab2 with replicate at SQL1.DB1 2go You can use the previous method to check. isql -Usa -SSQL2 1use DB2 2go 1insert into tab2 values(2, aaaaa, bbbbb, 2, 2) 2go isql -Usa -SSQL1 1use DB1 2go 1select * from tab2 2go Example 3: isql -Usa -SREP 1create rep
24、lication definition SQL1_tab3 with primary at SQL1.DB1 2with all tables named tab3(a int, b char(10), c int) 3primary key (a) searchable columns (a) 4go 1create subscription sub_SQL1_tab3 for SQL1_tab3 2with replicate at SQL2.DB2 where ago 1create replication definition SQL2_tab3 with primary at SQL
25、2.DB2 2with all tables named tab3(a int, b char(10), c int) 3primary key (a) searchable columns(a) 4go 1create subscription sub_SQL2_tab3 for SQL2_tab3 2with replicate at SQL1.DB1 where a=10000 3go Using the same method, you can check whether or not hidirection replication is successful. isql -Usa -
26、SSQL1 1use DB1 2go 1insert into tab3 values(100, QQQQQ, 100) 2go isql -Usa -SSQL2 1use DB2 2go 1select * from tab3 2go 1insert into tab3 values(10002, WWWWW, 11) 2go isql -Usa -SSQL1 1use DB1 2go 1select * from tab3 2go 三、 复制服务器安装范例:Warm Standby应用 1:Install SQL Server, Create Database: 主结点: SQL Serv
27、er 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 Stable queue: Physical path: /data1/sybase/rs_queue1.dat Logical Name: qu
28、eue1 3:Creating the Logical Connection isql -Usa -SREP 1create logical connection to demo_lds.demo_db 2go 注:逻辑连接使用的Data Server和Database名应不同于Active Database;但如果database已存在于复制环境,则逻辑连接使用的Data Server和Database名必须与Active Database的一样。 4:Adding the Active Database to the replication System 使用:rs_init; Repli
29、cation 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 a Physical Connection for an Existing Logical Connection? yes Is This an Activ
30、e 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 1use DB3 2go 1create table tab1(a int, b char(10) 2go 1quit isql -Usa -SSQL2 1use DB3 2go 1create table tab1(a int, b char(10) 2go 1
31、quit 6:Enabling replication for Objects in the Active Database isql -Usa -SSQL1 1use DB3 2go 1sp_setreptable tab1, true 2go 7:Adding the Standby Database Maintenance User isql -Usa -SSQL2 1sp_addlogin SQL2_DB3_maint,SQL2_DB3_maint_ps,DB3 2go 1quit isql -Usa -SSQL1 1sp_addlogin SQL2_DB3_maint,SQL2_DB
32、3_maint_ps,DB3 2go 1use DB3 2go 1sp_adduser SQL2_DB3_maint 2go 1quit 注:SQL1和SQL2中的所有login ID(即suid)必须一致,这可以通过用相同的顺序建用户来实现;也可以用调整系统表syslogins和sysloginroles来实现。 8:Adding the Standby Database to Replication System isql -Usa -SREP 1suspend connection to SQL1.DB3 with nowait 2go 使用:rs_init; Replication S
33、erver Name: REP Replication SA User: sa (Password is null unless you changed) SQL Server Name: SQL2 Database Name: 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 nam
34、e: DB3 Active DB SA user: sa Active DB SA Password: Initialize Standby Using Dump and Load: yes Use Dump Marker to Start Replicating to Standby: no 9:同步两个数据库的数据 isql -Usa -SREP 1wait for create standby for demo_lds.demo_db 2go 1admin logical_status, demo_lds,demo_db 2go 1quit isql -Usa -SSQL1 1dump
35、database DB3 to /data1/sybase/db3_data.dat 2go 1quit #rcp node1:/data1/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 1load database D
36、B3 from /data1/sybase/db3_data.dat 2go 1online database DB3 2go 1quit isql -Usa -SREP 1resume connection to SQL1.DB3 2go 1resume connection to SQL2.DB3 2go 1quit 10:Enabling Replication for Objects in the Standby Database isql -Usa -SSQL1 1sp_setreptable tab1, true 2go 11:Granting Permission to the
37、Maintenance User isql -Usa -SSQL2 1use DB3 2go 1grant all on tab1 to SQL2_DB3_maint 2go 第三部分:复制服务器的运行维护 因为复制服务器是实时在线复制系统,同时又涉及到主结点和复制结点的两个运行数据库,而且往往数据库处理的数据和信息量也很大,而复制服务器本身又是一种比较复杂的技术,所以复制服务器需要专门的高级数据库管理员(DBA)经常地进行高水平和高质量的维护工作,下面仅介绍一些基本的维护和管理知识,对于复杂的维护知识和技术,请大家参考SYBASE数据库随机参考手册Replication Server Adm
38、inistration 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) 在复制服务器R
39、S主机 /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时才用到。 可用Showserve
40、r看到。启动命令为: 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 logical_status看逻辑连接方向;admin disk_sp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清远市2024年一级造价工程师《土建计量》考前冲刺预测试卷含解析
- 《流通国际化》课件
- 《儿童安全步行》课件
- 《健康基本能力》课件
- 《城市交通管理》课件
- 《儿童哮喘的噶》课件
- 《旅游资料翻译》课件
- 《施工总结报告》课件
- 《婴儿的发展》课件
- 小学第一学期工作计划
- 乳制品购销合同
- 2024-2025学年深圳市初三适应性考试模拟试卷历史试卷
- 2024政府采购评审专家考试题库附含答案
- 浙江省绍兴市上虞区2023-2024学年四年级上学期语文期末试卷
- 军人抚恤优待条例培训2024
- 提高吸入剂使用正确率品管圈成果汇报
- 2024年湖南省公务员录用考试《行测》真题及答案解析
- 工地交通安全管理培训
- 2023年EHS工作年度总结及2024年工作展望(新版)
- 2024年沪教版一年级上学期语文期末复习习题
- 康复医学概论练习题库(附答案)
评论
0/150
提交评论