SYBASE ASE代理表的应用
来源:互联网 发布:为什么要用react.js 编辑:程序博客网 时间:2024/06/18 05:37
SYBASE ASE代理表的应用
问题背景
- 在解决数字法院现场问题时发现做读写分离的省份,写库和读库经常发生库结构不一致情况,比如读库字段缺失、索引缺失、字段顺序不一致,失会导致RS队列堆积甚至复制失败,如何检查生产环境的读写库结构一致性呢?
- 公司在大力推行git-flow分布式开发模式,开发任务划分更细化,分支团队更多,每个团队维护使用的数据库也更多,怎么保证和检测代码合并后数据库的一致性呢?
解决问题
整体思路:
通过SYBASE 组件集成服务(CIS)提供的代理表功能,访问远程服务器的数据库对象。将远程数据库的系统表和业务库的配置表代码表信息收集到本地服务器做库结构和数据一致性检查分析。
- 以数字法院为例:
第一步:配置远程数据库连接
--NP_1210_6000为本地数据库--NP_1211_6000为远端数据库--sa登陆NP_1210_6000--打开cis配置use mastergosp_configure 'enable cis',1gosp_configure "cis rpc handling", 1gosp_configure "max cis remote connections", 20 go--在双方服务器interfaces中添加对方服务器信息--将本地服务名添加为localsp_addserver NP_1210_6000,localgo--重启服务器检查cis和服务名是否生效--添加远程服务器信息sp_addserver NP_1211_6000, ASEnterprise,NP_1211_6000go--添加远程登陆信息sp_addremotelogin NP_1211_6000, sa, sagosp_remoteoption NP_1211_6000, sa, sa, trusted, truego
第二步:创建PROXY库收集远程数据库信息
--创建PROXY库use mastergodisk init name='DEV_PROXY_DAT01',physname='/home/sybase/sybasedata/DEV_PROXY_DATA01.dat',size = '5G'godisk init name='DEV_PROXY_LOG01',physname='/home/sybase/sybasedata/DEV_PROXY_LOG01.dat',size = '1G'gocreate database PROXY on DEV_PROXY_DAT01='5G'log on DEV_PROXY_LOG01 = '1G'go--设置PROXY数据库属性等操作省略...--创建远程代理表use PROXYgocreate proxy_table pri_ywst_sysobjects at "NP_1211_6000.YWST.dbo.sysobjects"gocreate proxy_table pri_ywst_syscolumns at "NP_1211_6000.YWST.dbo.syscolumns"gocreate proxy_table pri_jcsz_sysobjects at "NP_1211_6000.JCSZ.dbo.sysobjects"gocreate proxy_table pri_jcsz_syscolumns at "NP_1211_6000.JCSZ.dbo.syscolumns"gocreate proxy_table pri_db_aty_sysobjects at "NP_1211_6000.DB_ATY.dbo.sysobjects"gocreate proxy_table pri_db_aty_syscolumns at "NP_1211_6000.DB_ATY.dbo.syscolumns"go--收集远程库信息create table T_TABLE_COLS ( C_SITE varchar(100) null, C_DB VARCHAR(100) NULL, C_TABLE VARCHAR(100) NULL, C_COLNAME VARCHAR(100) NULL, C_COLORDER INT NULL)goinsert into T_TABLE_COLSselect 'ST', 'YWST', obj.name, col.name, col.colid from YWST..syscolumns col, YWST..sysobjects obj where col.id = obj.id and obj.type = 'U'union allselect 'ST', 'JCSZ', obj.name, col.name, col.colid from JCSZ..syscolumns col, JCSZ..sysobjects obj where col.id = obj.id and obj.type = 'U'union allselect 'ST', 'DB_ATY', obj.name, col.name, col.colid from DB_ATY..syscolumns col, DB_ATY..sysobjects obj where col.id = obj.id and obj.type = 'U'union allselect 'PR', 'YWST', obj.name, col.name, col.colid from PROXY..pri_ywst_syscolumns col, PROXY..pri_ywst_sysobjects obj where col.id = obj.id and obj.type = 'U'union allselect 'PR', 'JCSZ', obj.name, col.name, col.colid from PROXY..pri_jcsz_syscolumns col, PROXY..pri_jcsz_sysobjects obj where col.id = obj.id and obj.type = 'U'union allselect 'PR', 'DB_ATY', obj.name, col.name, col.colid from PROXY..pri_db_aty_syscolumns col, PROXY..pri_db_aty_sysobjects obj where col.id = obj.id and obj.type = 'U'go
第三步:检查两个节点库结构和数据一致性。
--分析库结构一致性use PROXYgo--分析字段缺失 SELECT * FROM ( select p.C_SITE AS PR_SITE, p.C_DB AS PR_DB, p.C_TABLE AS PR_TABLE, p.C_COLNAME AS PR_COLNAME, s.C_SITE AS ST_SITE from T_TABLE_COLS p left join T_TABLE_COLS s on p.C_SITE = 'PR' and s.C_SITE = 'ST' AND p.C_DB = s.C_DB AND p.C_TABLE = s.C_TABLE and p.C_COLNAME = s.C_COLNAME ) t where t.ST_SITE IS NULL--分析字段一致性select * from T_TABLE_COLS p ,T_TABLE_COLS s where p.C_SITE = 'PR' and s.C_SITE = 'ST' AND p.C_DB = s.C_DB AND p.C_TABLE = s.C_TABLE and p.C_COLNAME = s.C_COLNAME and p.C_COLORDER != s.C_COLORDER--还可以做:--分析索引的一致性--分析表数据的一致性--等等
总结
同理可以将配置表、单值代码表等做代理来检测数据的一致性,各大DBMS都有远程代理的功能如ORACLE的DBLINK、ABASE的FDW等,通过远程代理我们可以做很多对开发管理和运维管理有帮助的工作!
阅读全文
0 0
- SYBASE ASE代理表的应用
- sybase ASE代理表的建立
- Sybase ASE的字符集
- Sybase ASE的字符集
- Sybase ASE的字符集
- Sybase ASE 临时表
- Sybase ASE的版本演变
- ASE中代理表的深入研究
- Sybase ASE的XA Transactions(分布式事务处理)
- 关于Sybase ASE数据库的命名来历
- sybase数据ASE的资源链接
- sybase代理表的实现
- sybase代理表的创建。
- Sybase ASE的字符集 (zt www.sybase.com.cn)
- Sybase ASE DBCC
- 学习sybase ase 12.5
- Sybase ASE 安装指南
- sybase ase 重启
- Oracle优化SQL技法—降龙十八掌
- 使用Eclipse + OpenCV + C++ 环境搭建(二)
- 【Unity知识搬运】任意两张带透明图像的一种形状过渡效果
- forward(转发)与redirect(重定向)的区别
- 替代报错,出口不存在时的解决办法
- SYBASE ASE代理表的应用
- 跟大佬看未来--设计师转型三部曲
- Problem
- 廖雪峰《python3 基础教程》读书笔记——第十八章 网络编程
- 给新手设计师的10条建议
- js 完整的非空判断
- JQuery中三元运算
- http详解
- nfs samba 文件共享