DSG RealSync日常维护手册

上传人:z**** 文档编号:168599426 上传时间:2022-11-11 格式:DOCX 页数:18 大小:36.07KB
返回 下载 相关 举报
DSG RealSync日常维护手册_第1页
第1页 / 共18页
DSG RealSync日常维护手册_第2页
第2页 / 共18页
DSG RealSync日常维护手册_第3页
第3页 / 共18页
点击查看更多>>
资源描述
DSG RealSync 日常维护手册迪思杰(北京)数码技术有限公司1数据同步 31.1 首次全同步与环境概述 31.1.1首先在目标端初始化复制进程 31.1.2在源端初始化复制进程 41.1.3全同步过程中源端日志监控 41.1.4全同步过程中目标端的日志监控 61.2 单独同步1张或几张表 72如何设置日志分析间隔 73 日常运行过程中的日志监控 83.1源端日常分析的进度 83.2目标端日常装载的进度 93.3源端日常传送的进度 103.4目标端日常接收的进度 103.5源端日常是否 XF1 积压 113.6目标端日常是否 XF1 积压 113.7源端传送的具体信息 113.8目标端装载的具体信息 124维护需要过滤的 DDL 操作 134.1 过滤DDL操作的意义134.2 支持的过滤操作种类 135出现停机情况时软件的维护操作 131 数据同步1.1 首次全同步与环境概述此种情况操作发生在首次初始化同步或是发生了如程序出现问题、或归档数 据时开启了大量不写日志的操作等特殊情况下,需要重新全同步所进行的操作。1.1.1 首先在目标端初始化复制进程$cd /dsg/dt/scripts 执行./stop_vagentd abort 停止当前复制进程./clean 初始化复制环境,注意该命令只在需要进行全同步时才运行,执行该 命令后现有的复制关系将被清空,只能重新发起全同步操作后才能开始同步 工作。./start_vagentd 启动复制进程. /check 检查复制进程启动状态oracledsg_test scripts$ ./checkoracle124991 0 09:46 pts/200:00:00 /dsg/bin/vagentd 4000oracle12500 12499 10 09:46 pts/200:05:20 /dsg/bin/vagentd 4000oracle125191 0 09:46 pts/200:00:00 /dsg/bin/loader -r -online_tables 1000 -qno 0 1oracle12521 12519 0 09:46 pts/200:00:00 /dsg/bin/loader -r -online_tables 1000 -qno 0 1oracle125181 0 09:46 pts/200:00:00 /dsg/bin/loader -s -qno 0 1oracle12522 12518 17 09:46 pts/200:09:09 /dsg/bin/loader -s -qno 0 1oracle125091 0 09:46 pts/200:00:00 /dsg/bin/loader -s -qno 1 1oracle12511 12509 19 09:46 pts/200:09:52 /dsg/bin/loader -s -qno 1 1oracle125231 0 09:46 pts/200:00:00 /dsg/bin/loader -s -qno 2 1oracle12524 12523 22 09:46 pts/200:11:32 /dsg/bin/loader -s -qno 2 1oracle125121 0 09:46 pts/200:00:00 /dsg/bin/loader -s -qno 3 1oracle12516 12512 27 09:46 pts/200:13:55 /dsg/bin/loader -s -qno 3 1oracle124931 0 09:46 ?00:00:00 /dsg/bin/arch_vagentd_dsg/dsg/log/log.r0 /dsg/log/archivelog/log.r0_archlog 43200上图为4个并发进程的启动情况,现场loader -进程启动个数可能根据现场启动的并发数不同而不同。1.1.2 在源端初始化复制进程$cd /dsg/ds/scripts 执行./stop_vagentd abort 停止当前复制进程./clean_vagentd 初始化复制环境,注意该命令只在需要进行全同步时才运行, 执行该命令后现有的复制关系将被清空,只能重新发起全同步操作后才能开 始同步工作。./start_vagentd 启动复制进程./check 检查复制进程启动状态oracledsg_test scripts$ ./check oracle 194451 0 09:45 pts/5oracle 194611 0 09:45 pts/5oracle 19469 19461 44 09:45 pts/5 oracle 19455 1 0 09:45 pts/5 oracle 19456 19455 0 09:45 pts/5 oracle 19434 1 0 09:45 ?00:00:00 /dsg/bin/dbpsd 400200:00:00 /dsg/bin/vagentd 400000:22:00 /dsg/bin/vagentd 400000:00:00 /dsg/bin/sender -tseq 100:00:00 /dsg/bin/sender -tseq 100:00:00 /dsg/bin/arch_vagentd_dsg/dsg/log/log.sender /dsg/log/archivelog/log.sender_archlog 43200oracle 19433 1 0 09:45 ? 00:00:00 /dsg/bin/arch_vagentd_dsg /dsg/log/log.vagentd /dsg/log/archivelog/log.vagentd_archlog 43200 如上图所有进程均正常启动表明复制进程正常启动3)源端 bin 下执行 $cd /dsg/ds/bin $ ./vman VMAN vm即可正常发起全同步操作1.1.3 全同步过程中源端日志监控$cd /dsg/ds/log1)通过tail -log.vagentd命令查看全同步抓取日志进程vagentd的日志信息 在同步导出的过程中显示导出百分之多少和导出多少M,可以监控到源端同 步导出的进度。/*开始抽取表,显示百分比(0.81%),已经抽取的大小(10MB),读取速度(R9:1.11), 压缩速度(C0: 0.00),写速度(W0: 0.13),平均速度(P: 1.11),总共耗时(E:322)rz1.63%wr2.44%rw3.25%wr4.07%r4.88%zr5.69%*/20MB (R9: 3.33,C1:16.58,W1: 0.05,P: 1.66,T:0,E:651)30MB (R9: 3.33,C5:11.11,W1: 0.06,P: 2.00,T:0,E:1010)40MB (R9: 3.33,C2:11.11,W2: 0.04,P: 2.22,T:0,E:1411)50MB (R9: 3.33,C3: 7.14,W4: 0.03,P: 2.38,T:0,E:1699)60MB (R9: 3.33,C1:12.50,W2: 0.08,P: 2.50,T:0,E:2022)grp# size seq# hws bsz nabflg dup fwd bwd blk(ofs)70MB (R9: 3.33,C2: 0.00,W2: 0.00,P: 2.59,T:0,E:2297)1 262144 15540 2 512 262145 1 1 2 0 262145(0)线程、日志大小、seq号、标志位、块大小、下一块、标志位(8为当前日志)Handling seq# 15545 - block 100245(ofs 0)-112849/*正在处理 15545号日志,在100245块,偏移量0*/rw 6.50% 80MB (R9: 3.33,C0:40.00,W1: 0.06,P: 2.67,T:0,E:2586)SCN 0x0000.00fd4561 in 2004-8-19:12:36:30 (U:1,C:1,D:400)Processed to: seq# 15545, blk:110484, ofs:448SCN 0x0000.00fd45b7 in 2004-8-19:12:36:40 (U:1,C:0,D:718)$r 7.32% 90MB (R9: 1.88,C0: 0.00,W0: 0.06,P: 2.55,T:0,E:2882)2)查看导出结束的标志在 log.vagentd 日志中出现如下的打印信息= Summary of DBPS Express Export =Tables1950 (2938)Rows141752480Extents11094Zip Level1To Read30185.69MBRead30539.13MBXF131418.00MBXF1 Zipped11625.83MB (63.00%)Elapsed575.91(s)Adding Transactions .Exporting Finished. 显示导出完成3)通过tail -log.sender命令查看发送数据进程sender的信息 sender 进程会把同步期间产生新交易的 xf1 进行发送,看这个文件是否有传 送新的 xf11.1.4 全同步过程中目标端的日志监控1) $cd /dsg/dt/log通过tail -f log.sO命令查看目标端log目录下的log.sO、log.s1log.s5 文件,看是否同步的文件在正常装载以及每个队列装载到的具体xf1文件个数,以log.s开始的文件为首次同步产生的日志文件。2) $cd /dsg/dt/rmp 通过 cat cfg.loaderno 命令查看目标端 rmp 目录下的 sync0、 sync1、 syncX 目录中源端同步导出传到这些目录下的 xf1 文件是否在减少, cfg.loaderno 文件有两列第一列的数字表示装载了多少个 xf1 文件,第二列的 数字表示从源端接收到了多少个 xf1 文件,所以可以通过判断第一列的数字 是否增长,来确定目标端同步装载的进度。3) $cd /dsg/dt/rmp 通过 cat cfg.sync 查看目标端 rmp 目录下的 cfg.sync 文件, 如果这个文件不断的增大说明源端导出传送过来的数大于目标端同步装载 的 xf1 个数;如果这个文件在不断的减少说明源端传送过来的数小于目标端 同步装载的 xf1 个数,或源端导出完毕不再传送目标端在不断的装载 xf1 文 件;当 cfg.sync 文件里面的数表示源端导出传送到目标端,目标端还有多少 个 xf1 未装的个数,所以当 cfg.sync 文件里面的数为零时,表示目标端同步 装载完成。4) $cd /dsg/dt/log通过tail -f log.r0查看目标端log目录下的log.rO文件,以 log.r开始的文件为增量装载的日志文件Loader: 1.xf1 2007-06-12:17:31:41: 6-I 0-D 0-U 0-DDL(2086 ms)Loader: 2.xf1 2007-06-12:17:31:41: 0-I 0-D 6-U 0-DDL(2086 ms)Loader:3.xf1 2007-06-12:17:31:41: 0-I 6-D 0-U 0-DDL(2086 ms)Loader: 4.xf1 2007-06-12:17:31:41: 56-I 0-D 0-U 0-DDL(2086 ms)Loader: 5.xf1 2007-06-12:17:31:41: 56-I 0-D 0-U 0-DDL(2086 ms)Loader: 6.xf1 2007-06-12:17:31:41: 56-I 0-D 0-U 0-DDL(2086 ms) 的日志,说明目标端同步装载完成。5) $cd /dsg/dt/scripts通过./mon查看目标端的装载情况。1.2 单独同步 1张或几张表由于只是想单独同步 1 张或几张表,并且不影响其他现在正在复制表的正常 复制,而且要单独同步的表已经在下面mapping.ini文件中real_where=中的o.name项中,所以只需要修改full_where =中o.name中的内容,改为要单独同 步 1 张或几张表的表名即可。操作步骤如下:$cd /dsg/ds/config当前 mapping.ini 文件内容为:TRADE TRADEreal_where=u.name=TRADEfull_where=u.name=TRADE如果需要单独同步TRADE用户下的TEST表,需要修改mapping.ini文件TRADE TRADEreal_where=u.name=TRADEfull_where=u.name=TRADE and o.name=TEST按需求修改完mapping.ini文件后进入源端bin目录$cd /dsg/ds/bin$ ./vmanVMAN vm注:只有执行此命令后,dsg才会再此查询mapping.ini里配置信息,只是修 改完 mapping.ini 或起停进程并不重新读取 mapping.ini 里配置信息查看源端 log.vagnetd 文件如果有 Finished 出现表示源端新加的表同步完成, 查看目标端log.r0进行实时装载后,表示新同步的表目标端同步完成,进入 实时同步阶段2 如何设置日志分析间隔$cd /dsg/ds/bin$ ./vmanVMAN connect :50000user root/dbpsset ds 1 -itvl 3 -state start该日志间隔可以在1 5秒间任意设置,设置成几秒中Dsg每隔几秒钟就会去读取一次 redo log 在证券行业推荐使用 3 秒注:-itvl 3读取日志间隔3 日常运行过程中的日志监控3.1 源端日常分析的进度1) 查看源端 rmp 目录下的 cfg.finishseq 文件,可以查到源端已经分析完的数据 库日志文件。第一列表示主机节点,第二列表示已经分析完的数据库日志文件号。2) 查看源端 log 目录下的 log.vagentd 文件,可以查看源端分析到什么时间的交 易。如下的日志:grp# size seq# bsz nab flg dup TH Next-SCN 2007/06/12 17:26:201 20480023551220479901 1 0x54c92ea 235.187048.02007-06-12:17:26:20: processing rba 235.187048.0 (ckp: 235.204799.x) .2007-06-12:17:26:21: processed to rba 235.197287.460 (ckp: 235.204799.x)SCN 0x0000.054c92d4 in 2007-6-12:17:26:15 (U:1:2488842,C:0:0)红色时间表示源端数据库交易操作时间蓝色时间表示源端分析此交易的时间两者相减可以得出源端分析滞后的时间3) 查看源端 vcfsa 目录下的 src_total.txt 文件,可以知道源端分析出交易的具体 信息。如下的日志:2007-06-12:17:26:37 LEN: 524286480444-I0-D0-U0-DDL2007-06-12:17:26:38 LEN: 129052019556-I0-D0-U0-DDL2007-06-12:17:28:19 LEN: 524286480444-I0-D0-U0-DDL2007-06-12:17:28:20 LEN: 129052019556-I0-D0-U0-DDL红色部分表示:源端传送此 xf1 文件的系统时间蓝色部分表示:源端传送此 xf1 文件的大小紫色部分表示:源端传送此 xf1 文件的具体交易类型及相应交易类型的个数3.2 目标端日常装载的进度1) 查看目标端log目录下的log.rO文件。如如下log.rO文件:Loader: 1.xf12007-06-12:17:31:41: 19556-I 0-D 0-U 0-DDL(2086 ms)Loader: 2.xf1 2OO7-O6-12:17:31:41: O-I 19556-D O-U O-DDL(2O86 ms)Loader: 3.xf1 2OO7-O6-12:17:31:41: O-I O-D O-U 19556-DDL(2O86 ms) 红色部分表示:目标端装载相应 xf1 文件的编号 蓝色部分表示:目标端装载此 xf1 文件的系统时间紫色部分表示:此xfl文件的具体操作的类型及相应的个数 绿色部分表示:装载此 xf1 花费的时间2) 查看目标端rmp目录下的tgt_total.txt文件,可以知道目标端装载的具体信息。 如如下的 tgt_total.txt 文件:/dsg/dt/rmp/realO/4O3833.xf1: CreateTime: 2OO7-O7-24 13:21:31(commit), SCN OxOO28.bb39c9fa, Time 2OO7-O7-24 13:21:O2(commit), SCN OxOO28.bb39cae4, Time 2OO7-O7-24 13:21:O3(commit), SCN OxOO28.bb39cb39, Time 2OO7-O7-24 13:21:O3(commit), SCN OxOO28.bb39cbb6, Time 2OO7-O7-24 13:21:O3(commit), SCN OxOO28.bb39cd14, Time 2OO7-O7-24 13:21:O32OO7-O7-24:13:21:33 LEN: 356122-I O-D 1O-U O-DDL TXN-14/dsg/dt/rmp/realO/4O3834.xf1: CreateTime: 2OO7-O7-24 13:21:33(commit), SCN OxOO28.bb39d7a2, Time 2OO7-O7-24 13:21:O3(commit), SCN OxOO28.bb39de39, Time 2OO7-O7-24 13:21:O4(commit), SCN OxOO28.bb39de6b, Time 2OO7-O7-24 13:21:O4 2OO7-O7-24:13:21:33 LEN: 483715-I9-D2-U O-DDL TXN-14红色部分表示:目标端日常接收到的 xf1 文件编号及在目标端保存创建此 xf1 文 件目标端的系统时间蓝色部分表示:目标端日常接收到此 xf1 在源端 oracle 内部的 scn 号和在源端交 易的源端系统时间紫色部分表示:目标端日常接收到此 xf1 在目标端装载完的目标端系统时间及相 应此xfl文件的大小和相应交易的类型和相关交易的个数 紫色时间减去蓝色时间:表示源端在数据库里真正交易时间和目标端真正装载到 数据库时间的相差时间(当然要保持源端主机和目标端主机系统时间一致)3.3 源端日常传送的进度1 )查看源端log目录下的log.sender文件,查看源端日常传送的进度。 如如下log.sender文件:2007-07-24:11:30:28: /dsg/ds/rmp/2.376382.xf1 (PID-1429564 PPID-6742266) .2007-07-24:11:30:28: /dsg/ds/rmp/2.376382.xf1 sent in 25ms2007-07-24:11:30:32: /dsg/ds/rmp/2.376383.xf1 (PID-1429564 PPID-6742266) .2007-07-24:11:30:32: /dsg/ds/rmp/2.376383.xf1 sent in 11ms红色部分表示:源端日常传送此 xf1 文件的系统时间蓝色部分表示:源端传送此 xf1 文件的具体编号紫色部分表示:源端传送此 xf1 文件的时间3.4 目标端日常接收的进度1)查看目标端log目录下的log.vagentd文件,查看目标端日常接受的进度。 如如下 log.vagentd 文件:2007-07-24:11:37:21: real, q# 0,XF1 36 . elapsed 33ms2007-07-24:11:37:21: real, q# 0, XF1 98 . elapsed 58ms红色部分表示:目标端日常接收此 xf1 文件的系统时间蓝色部分表示:目标端日常接收此xfl文件的类型。real表示实时,full表示紫色部分表示:目标端日常接收此xfl文件的所在队列。多队列分0,1,2等 绿色部分表示:目标端日常接收此 xf1 文件的大小 棕色部分表示:目标端日常接收此 xf1 文件花费的时间3.5 源端日常是否 xf1 积压1)查看源端 rmp 目录下是否有大量 xf1 文件积压,正常的情况下 rmp 目录下不 会有很多 xf1 文件存在。如果存在不过数量不多,并且 xf1 文件的最小编号 始终在变化,说明可能是传送的慢;2)查看源端log目录下的log.sender文件,看是否有变化(而且不是重试的信息)3)查看源端 rmp 目录下的 2.cfg.senderno 文件,看是否第一列和第二列数值是否 相差很大。第二列比第一列大很多说明源端日常 xf1 有积压,另外第一列数 值不再变化,说明源端日常 xf1 文件有积压(当然这两种情况在同步某张或 某些表的时候,会有这种情况发生,因为在这同步某张或某些表的没有完成 时,新生成的xfl文件是不会传送到目标端的,源端会造成xfl文件的阶段 时间积压)造成源端积压的可能原因:1、源端目标端之间的网络故障2、目标端进程停止3、源端发送停止或出错3.6 目标端日常是否 xf1 积压1)查看目标端 rmp 目录下的 real0 目录下是否有大量 xf1 文件积压2)查看目标端 log 目录下的 log.r0 文件是否有日志累加写入(不是重复信息)3)查看目标端 rmp/real0 目录下的 cfg.loaderno 文件,第一列和第二列的数值是否相差很大,如果第二列比第一列数值大很多说明目标端日常 xf1 文件 有累积,同时如果第一列数值长时间不变动,说明目标端日常 xf1 文件有 累积。3.7 源端传送的具体信息1)查看源端 vcfsa 目录下的 src_total.txt 文件,可以知道源端分析出交易的具 体信息。如如下的日志:2007-06-12:17:26:37 LEN: 5242864 80444-I0-D0-U0-DDL2007-06-12:17:26:38 LEN: 129052019556-I0-D0-U0-DDL2007-06-12:17:28:19 LEN: 524286480444-I0-D0-U0-DDL2007-06-12:17:28:20 LEN: 129052019556-I0-D0-U0-DDL红色部分表示:源端传送此 xf1 文件的系统时间 蓝色部分表示:源端传送此 xf1 文件的大小 紫色部分表示:源端传送此 xf1 文件的具体交易类型及相应交易类型的个数3.8 目标端装载的具体信息1)查看目标端rmp目录下的tgt_total.txt文件,可以知道目标端装载的具体信 息。如如下的 tgt_total.txt 文件:/dsg/dt/rmp/real0/403833.xf1: CreateTime: 2007-07-24 13:21:31(commit), SCN 0x0028.bb39c9fa, Time 2007-07-24 13:21:02(commit), SCN 0x0028.bb39cae4, Time 2007-07-24 13:21:03(commit), SCN 0x0028.bb39cb39, Time 2007-07-24 13:21:03(commit), SCN 0x0028.bb39cbb6, Time 2007-07-24 13:21:03(commit), SCN 0x0028.bb39cd14, Time 2007-07-24 13:21:032007-07-24:13:21:33 LEN: 3561 22-I 0-D 10-U 0-DDL TXN-14 /dsg/dt/rmp/real0/403834.xf1: CreateTime: 2007-07-24 13:21:33(commit), SCN 0x0028.bb39d7a2, Time 2007-07-24 13:21:03(commit), SCN 0x0028.bb39de39, Time 2007-07-24 13:21:04(commit), SCN 0x0028.bb39de6b, Time 2007-07-24 13:21:042007-07-24:13:21:33 LEN: 4837 15-I 9-D 2-U 0-DDL TXN-14 红色部分表示:目标端日常接收到的 xf1 文件编号及在目标端保存创建此 xf1 文 件目标端的系统时间蓝色部分表示:目标端日常接收到此 xf1 在源端 oracle 内部的 scn 号和在源端交 易的源端系统时间紫色部分表示:目标端日常接收到此xf1在目标端装载完的目标端系统时间及相 应此 xf1 文件的大小和相应交易的类型和相关交易的个数紫色时间减去蓝色时间:表示源端在数据库里真正交易时间和目标端真正装载到数据库时间的相差时间(当然要保持源端主机和目标端主机系统时间一致)4 维护需要过滤的 DDL 操作4.1过滤DDL操作的意义Dsg 提供过滤 DDL 操作功能是为了有效的防止生产系统上由于误操作执行 了 drop 或者 truncate 等 DDL 操作后,容灾系统可以对这些危险的 DDL 操作进 行过滤从而保证,一旦在主库上进行了误操作还可以将容灾库的数据恢复到主库 中去。4.2 支持的过滤操作种类源端 cd /dsg/ds/config编辑 ddl.ini 文件可供过滤的操作如下:# table create_table=y drop_table=y alter_table=y analyze_table=y truncate_table=y# index create_index=y drop_index=y alter_index=y analyze_index=y# sequence create_sequence=y alter_sequence=y drop_sequence=y# synonym create_synonym=y drop_synonym=y alter_synonym=y# view create_view=y drop_view=y alter_view=y# procedure create_procedure=y alter_procedure=y drop_procedure=y# trigger create_trigger=y alter_trigger=y drop_trigger=y# function create_function=y alter_function=y drop_function=y# package create_package=y alter_package=y drop_package=y# package body create_package_body=y alter_package_body=y drop_package_body=y# table level filter (.) table=trade.TEST drop_table=n truncate_table=n# table level filter (.) 上面的部分是控制用户级 ddl 的操作,而 # table level filter(.)下面的部分是控制表级ddl的操作,仅复制相关的表,所以只需修改# table level filter (.)下面的部分即可实现对ddl的控制。说明:drop_table=n(对此表 drop table 操作过滤,即源端不抓取此操作的交易,传送到目标端执行)查看源端日志 log/log.vagentd 会报以下日志:DDL filtered out:OP:3.0 0x000001d1 DROP TABLE BILL.DSG_TESTopc 0xc.1 fmt 0x0, flg 0 2 1 255, obj 159491/159491, pg 1/1xid 0x00a8.015.00037186 scn 0x0836.a6f57c11 .00SQL by SYS/SYS 2006-12-25:10:47:51drop table trade.TESTtruncate_table=n (对此表 truncate table 操作过滤,即源端不抓 取此操作的交易,传送到目标端执行)DDL filtered out:OP:3.0 0x000001d5 TRUNCATE BILL.DSG_TESTopc 0x55.1 fmt 0x0, flg 0 0 1 255, obj 159491/159491, pg 1/1xid 0x00a5.027.0006360a scn 0x0836.a6f22cb7 .00SQL by SYS/SYS 2006-12-25:10:46:55truncate table trade.TEST编辑 ddl.ini 保存完,进入 scripts/stop_vagentd 后,再 start_vagentd 方可生效 对 ddl 的过滤也可对# table level filter (.)上面提供的其他 ddl 操作进行过滤,只需拷贝上面 的语句到# table level filter (.)下面相应的表的 ddl 类型修改 y 为 n 即可 table=trade.TESTdrop_table=ntruncate_table=ndrop_function=ndrop_package=n此例就是添加对 trade.TEST 表 drop function 和 drop package 的过滤5 出现停机情况时软件的维护操作源端或目标端数据库重启后,查看 realsync 软件源端与目标端日志,源 端分析正常、目标端装载正常时,无需重新做初始化。主机重启后,需要启动重启的主机上的进程,启动后观察源端与目标端 日志。源端分析正常、目标端装载正常时,无需重新做初始化。源端分析不 正常、或目标端装备不正常可联系 DSG 售后维护人员进行问题排查。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!