• PG数据库急着上线前,快速上线后,计划时间备份清理历史数据


    工具:
    1.PG数据库
    2.navicat软件
    思路:
    1.确认清理的表名
    2.备份表结构和索引
    3.查询所有表名和索引名,重命名表名,索引名
    ALTER TABLE t_xxx RENAME TO t_xxx2;
    ALTER INDEX pk_t_xxx RENAME TO pk_t_xxx2;
    4.建新表和新索引
    5.备份数据
    6.清理数据
     
    具体操作:
    -- 1.确认清理的表名,这一步主要是确认要清理的表名,如果已明确知道需要清理的是哪些表,则可以跳过这一步
    select *
    from pg_tables
    where tablename like 'xxx_%'
    and tablename not in (
    -- 排除掉不需要清理的表名
    );
     
    -- 2.备份表结构和索引
    -- 1)打开数据库zljcjg--public,右击public,选择“转储SQL文件”--“仅结构”,输入文件名(如:zl.sql),保存,开始备份表结构和索引
    -- 2)打开zl.sql文件, 将无关的表名和备注,索引删除
     
    -- 3.查询所有表名和索引名,重命名表名,索引名
    -- 查询所有表名
    select *
    from pg_tables
    where tablename like 'xxx_%'
    and tablename not in (
    -- 排除掉不需要清理的表名
    );
     
    -- 重命名表名
    -- 复制列名tablename的值,用以下语句。重命名表名
    ALTER TABLE t_xxx RENAME TO t_xxx2;
     
     
    -- 查询所有索引名
    select *
    from pg_indexes
    where tablename like 'xxx_%';
     
    -- 重命名索引名
    -- 复制列名indexname的值,用以下语句。重命名索引名
    ALTER INDEX pk_t_xxx RENAME TO pk_t_xxx2;
     
     
    -- 4.建新表和新索引
    -- 1)打开数据库zljcjg--public,右击public,选择“运行SQL文件”,选择文件(如:zl.sql),开始,开始创建新表和新索引
    ------------------------- 至此,系统可以投入正式使用,剩下备份可以计划时间实施---------------------------------------------
     
    -- 5.备份数据(这个耗费的时间比较长,耗费的时间和数据量成正比)
    -- 1)打开数据库zljcjg--public--表,右击表,选择“导出向导”--“SQL脚本文件(*.sql)”,选择相应的表名,开始备份表数据
     
    -- 6.清理数据
    -- 查询所有表名
    select *
    from pg_tables
    where tablename like 'xxx_%'
    and tablename not in (
    -- 排除掉不需要清理的表名
    );
     
    -- 删除表
    -- 复制列名tablename的值,用以下语句。删除表,删除前先确认是否已备份完毕
    truncate table t_xxx2;
    drop table t_xxx2;

  • 相关阅读:
    堆排序
    上线打包不常见错误整理
    ios开发者相关的几个apple邮箱
    App被拒选择回复还是重新提审,如何选择最高效的应对方式?
    iOS证书(.p12)和描述文件(.mobileprovision)申请
    OC与Swift混编
    tableViewCell重用
    tabBar选择不同item设置标题不同颜色
    iOS 关于TouchID指纹解锁的实现
    cocoaPods报错You need at least git version 1.8.5 to use CocoaPods
  • 原文地址:https://www.cnblogs.com/ddbear/p/14888772.html
Copyright © 2020-2023  润新知