【问题标题】:Comparing two Sybase databases比较两个 Sybase 数据库
【发布时间】:2015-06-25 09:06:08
【问题描述】:

我产品的 Sybase 服务器将从版本 12 升级到 15。

我正在寻找一个脚本来在升级之前和升级之后拍摄服务器的快照,目的是快速比较并确保自己所有的表/索引/视图/存储的过程/用户和权限都在那里。

我是开发人员(而不是 DBA),我只能通过命令行访问生产服务器(这是一个 Solaris 机器)。

感谢您的帮助。

【问题讨论】:

    标签: sybase


    【解决方案1】:

    一个非常低技术的答案,但这应该有效。从两台 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
    

    【讨论】:

      【解决方案2】:

      像这样在 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

      在升级前后执行此操作,并在文件之间进行“差异”。

      【讨论】:

        猜你喜欢
        • 2011-11-28
        • 1970-01-01
        • 2017-10-29
        • 2011-05-29
        • 1970-01-01
        • 2010-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多