zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    greybox关闭/刷新父窗口
    C# 获取文件编码
    框架页,URL中文参数乱码
    用来代替SQLSERVERAGENT的VBS脚本。
    jQuery的radio,checkbox,select操作
    mssql 的sp_help好难看
    如何判断网通、电信、铁通IP地址分配段
    IE8取不到 select 的option值
    如何识别当前的 SQL Server 版本号以及对应的产品级别
    控诉我的电脑
  • 原文地址:https://www.cnblogs.com/ddbear/p/14888772.html
Copyright © 2011-2022 走看看