【发布时间】:2015-06-25 09:06:08
【问题描述】:
我产品的 Sybase 服务器将从版本 12 升级到 15。
我正在寻找一个脚本来在升级之前和升级之后拍摄服务器的快照,目的是快速比较并确保自己所有的表/索引/视图/存储的过程/用户和权限都在那里。
我是开发人员(而不是 DBA),我只能通过命令行访问生产服务器(这是一个 Solaris 机器)。
感谢您的帮助。
【问题讨论】:
标签: sybase
我产品的 Sybase 服务器将从版本 12 升级到 15。
我正在寻找一个脚本来在升级之前和升级之后拍摄服务器的快照,目的是快速比较并确保自己所有的表/索引/视图/存储的过程/用户和权限都在那里。
我是开发人员(而不是 DBA),我只能通过命令行访问生产服务器(这是一个 Solaris 机器)。
感谢您的帮助。
【问题讨论】:
标签: sybase
一个非常低技术的答案,但这应该有效。从两台 Sybase 服务器获取以下信息并检查它们是否匹配。一个快速的 CSV 比较,也许?
-- Compare name of all tables, views and triggers.
SELECT ob.name, ob.type FROM sysobjects ob WHERE ob.type in ('U', 'V', 'TR') ORDER BY ob.name
-- Compare name of stored procs
SELECT ob.name FROM sysobjects ob WHERE ob.type ="P" ORDER BY ob.name
-- Compare list of all columns of all table and views.
select ob.name, c.name, c.type, c.length, c.prec, c.scale
from sysobjects ob, syscolumns c
where ob.type in ('U','V') and ob.id=c.id
order by ob.name
【讨论】:
像这样在 sysobjects 上创建一个视图:CREATE VIEW myview as SELECT name, user_name(uid) as objectowner, type from sysobjects order by 1,2,3 然后从视图中执行 BCP-out:
bcp yourdb..myview out myfile.txt -Usa -Pyourpaswd -SYOURSERVER -c
在升级前后执行此操作,并在文件之间进行“差异”。
【讨论】: