代码之家  ›  专栏  ›  技术社区  ›  sander

使用PROUTIL转储数据库

  •  0
  • sander  · 技术社区  · 7 年前

    PROUTIL db1 -C DUMP "C:\var".
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Tom Bascom    7 年前

    没有。没有任何版本的proutil命令可以在一个命令中转储整个数据库。

    您需要创建一个脚本来分别转储每个表。一种(过于简单的)方法是这样的:

    output to value(  "dumpall.sh" ).
    for each _file no-lock where _tbl-type = "t":
      put unformatted "_proutil " pdbname(1) " -C dump " _file-name " ." skip.
    end. 
    output close.
    

    (ProgressMetaSchema将表称为“文件”,因为SQL术语在80年代早期还没有完全普及,tbl-type的引入要晚得多。类型“t”是普通应用表,“v”是虚拟表,“s”是系统表。您不想转储“v”或“s”,而且proutil无论如何也不会转储它们。)

    以这种方式转储(并重新加载)一个小的演示数据库非常简单。但是,如果您使用的是更大容量的数据库(比如100GB的生产数据库),那么这种方法可能会有很多改进。除了原始表数据之外,还涉及许多其他内容。具体细节因应用程序而异(并不是每个人都使用数据库的所有功能),但通常需要转储和重新加载序列值、用户和SQL权限等。

        2
  •  0
  •   Austin    7 年前

    有许多链接描述如何做到这一点。

    Using ABL Code
    Using Data Dictionary/Data Administration

    推荐文章