常用数据库全库备份命令和还原命令(随手笔记)

1.人大金仓(kingbase)

备份命令【自定义格式】

./sys_dump -h x.x.x.x -p 54321 -U name -d xgz-db -F c  >  /data/xgz-db.dmp

还原命令:

./sys_restore -h x.x.x.x -p 54321 -U name -d xgz-db -F c   <  /data/xgz-db.dmp

备份命令【sql格式】

./sys_dump -h x.x.x.x -p 54321 -U name -d xgz-db   >  /data/xgz-db.sql

还原命令:

./ksql -h x.x.x.x -p 54321 -U name -d xgz-db  <  /data/xgz-db.sql

注释:

    -h  指定数据库地址
    -p  端口
    -U  用户名
    -d  数据库名称
    -F  输出格式化 (c 表示 custom 自定义导出文件一般为 .dmp或.dump;p 为默认格式 sql 脚本文件格式)

    -w --no-passwod  无需密码

    

    -n 指定模式

    -a 只备份数据

    -t 指定表

常见问题:

        1.密码参数 

        (1)取决于数据库的安全配置是否不需要本地密码连接

        (2)取决于身份验证方法,基于宿主机的身份验证宿主机就可以不需要提供密码,所以上述命令未指定密码相关参数  

        2.非宿主机需要密码或定时备份脚本的情况,可以通过导入环境变量

                定时备份脚本中导入export PGPASSWORD='pwd' 

        或

                ~./.bashrc中引用 export PGPASSWORD='pwd'

        3.普通用户通过 crontab 定时备份的情况

        (1)需确认普通用户是否有使用crontab的权限

                编辑/etc/cron.allow,添加用户名

        (2)需确认该用户是否可以使用当前环境变量

                如无法备份数据,可在脚本中添加 source /~.bashrc 引用当前变量

2.greenplum/postgres 数据库

备份命令【sql格式】:

pg_dump -h x.x.x.x -p 5432 -U gpadmin -d xgz-db   >  /data/xgz-db.sql

备份到远程服务器命令:

pg_dump -h x.x.x.x -p 5432 -U gpadmin -d xgz-db  | sshpass -p pwd ssh x.x.x.x "cat >  /data/xgz-db.sql" (前提条件:需做免密或使用sshpass 插件)

还原命令:

psql -h x.x.x.x -p 5432 -U gpadmin -d xgz-db  -f  /data/xgz-db.sql

备份命令【自定义格式】:

pg_dump -h x.x.x.x -p 5432 -U gpadmin -d xgz-db -F c   -f  /data/xgz-db.backup

还原命令:

pg_restore -h x.x.x.x -p 5432 -U gpadmin -d xgz-db  -f  /data/xgz-db.backup

注释:

    -h  指定数据库地址
    -p  端口
    -U  用户名
    -d  数据库名

    -F  输出格式化 (c 表示 custom 自定义导出文件一般为 .backup;p 为默认格式 sql 脚本文件格式)

    -w --no-passwod  无需密码

常见问题:

        1.密码参数 

        (1)取决于数据库的安全配置是否不需要本地密码连接

        (2)取决于身份验证方法,基于宿主机的身份验证宿主机就可以不需要提供密码,所以上述命令未指定密码相关参数  

        2.非宿主机需要密码或定时备份脚本的情况,可以通过导入环境变量

                定时备份脚本中导入    export PGPASSWORD='pwd' 

        或

                ~./.bashrc中引用          export PGPASSWORD='pwd'

        3.使用密码文件,当前用户下  vim ~/.pgpass (pgpass内容格式)

主机名/ip端口数据库名称用户数据库密码
db1/ip5432xgz-dbgpadmingpadmin

                export PGPASSFILE=~/.pgpass

3.达梦数据库

{待补充}

4.Clickhouse 数据库

需要安装clickhouse-backup工具,下载地址

【备份参数介绍】

clickhouse-backup  create 
    --table value, --tables value, -t value   指定备份表可以指定多个,可使用正则表达式
    --schema, -s                                           只备份模式(及结构),跳过数据

【还原参数介绍】
clickhouse-backup restore
   --table value, --tables value, -t value     指定还原表
   --schema, -s                                           只还原模式(即结构)
   --data, -d                                                 只还原数据
   --rm, --drop                                             还原前删除之前已存在的项(-d --rm 即删除之前存在的数据后进行还原数据)
   -i, --ignore-dependencies                       删除已存在的项时忽略其他依赖

1.备份命令【全量备份】:
        clickhouse-backup create  {备份名}

还原命令【全量还原】
        clickhouse-backup restore --rm  {备份名}

2.备份命令【指定库表备份】
    [用法] clickhouse-backup create  -t db_name.table_name  {备份名}

                                                                                           

    clickhouse-backup create -t db_zbk.t_name  bfbak (单表)

    clickhouse-backup create -t db_zbk.t_name,db_zbk.t_class bfbak (指定多表)

    clickhouse-backup create -t db_zbk.t_* bfbak  (模糊多表)

    clickhouse-backup create -t db_zbk.* bfbak  (db_zbk全库所有表)


   还原命令【指定库表还原】
     [用法] clickhouse-backup restore -t db_name.table.name  {备份名}

   

    clickhouse-backup restore -t db_zbk.t_name bfbak (单表)

    clickhouse-backup restore -t db_zbk.t_name,db_zbk.t_class bfbak (指定多表)
    clickhouse-backup restore -t db_zbk.t_* bkbak   (模糊多表)
    clickhouse-backup restore -t db_zbk.* bkbak  (db_zbk全库所有表)

    
    clickhouse-backup restore -s -t  db_zbk.t_name bfbak (恢复单表结构)
    clickhouse-backup restore -d -t  db_zbk.t_name bfbak (恢复单表数据)

    [ 不加-d 或 -s 代表全部恢复或备份 ]

3.备份还原其他设置【过滤某表不进行备份和还原】

    [用法]修改clickhouse-backup的配置文件,通过配置 skip_tablesskip_databases参数来过滤不需要备份的表或数据库

clickhouse:
  username: default
  password: "123456"
  skip_tables: 

【默认配置无需备份表】
    - "system.*"
    - "information_schema.*"     #定于当前实例的状态信息,在还原时可能会造成冲突或不一致
    - "INFORMATION_SCHEMA.*"     #系统自动生成的元数据视图,还原时ClickHouse会自动重建
    - "temporary_and_external_tables"   #这是一个特殊的标识,代表临时表和外部表

【新增】
    - "dy.*"          # 过滤所有dy开头的表
    - "session_data"  # 过滤特定表名
    - "test_db\\.temp.*"  # 精确匹配test_db库下temp开头的表

  skip_databases: 
    - "test_db"       # 过滤整个数据库
    - "log_.*"        # 过滤log_开头的所有库


批注:
    在正则表达式中,点号.是一个特殊字符,表示匹配任意单个字符(除了换行符)。但是,在配置文件中,我们需要匹配字面意义上的点号(例如分隔数据库名和表名的点号),因此需要使用反斜杠进行转义,即\.
    然而,在YAML配置文件中,字符串中的反斜杠本身也是转义字符,所以为了表示正则表达式中的\.,我们需要使用两个反斜杠:\\.。

注意

(1)数据库中表结构如发生了变化后,直接恢复数据不会报错,只会按当前表结构进行数据写入。

(2)如备份文件中字段少于现有库中的字段,数据库中的字段将自动补充该字段的值为0。

(3)如备份文件中字段多于现有库中的字段,将丢弃多余数据。

所以需要先恢复表结构(即模式)后再倒入数据。

清除数据库中的数据

        删除相关目录文件
        /var/lib/clickhouse/data 目录下的数据,{保留default和system相关数据}
        /var/lib/clickhouse/metadata 目录下的数据,{保留default和system相关数据}

清除备份数据

        clickhouse-backup clean 

        默认读取clickhouse-backup配置文件中的保留策略,清除时按保留天数进行清理

general:
    backups_to_keep_local: 7   #保留最近的本地备份7份【值为0时不清理备份】

        clickhouse-backup list

        查看备份文件

5.elasticsearch 数据库

 见已发布的文章 https://blog.youkuaiyun.com/wanglolaini/article/details/139841150?spm=1001.2014.3001.5502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值