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

张开发
2026/5/18 23:07:44 15 分钟阅读
常用数据库全库备份命令和还原命令(随手笔记)
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或.dumpp 为默认格式 sql 脚本文件格式-w --no-passwod 无需密码-n 指定模式-a 只备份数据-t 指定表常见问题1.密码参数1取决于数据库的安全配置是否不需要本地密码连接2取决于身份验证方法基于宿主机的身份验证宿主机就可以不需要提供密码所以上述命令未指定密码相关参数2.非宿主机需要密码或定时备份脚本的情况可以通过导入环境变量定时备份脚本中导入export PGPASSWORDpwd或~./.bashrc中引用export PGPASSWORDpwd3.普通用户通过 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 -Ugpadmin-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 -Ugpadmin-d xgz-db -f /data/xgz-db.backup注释-h 指定数据库地址-p 端口-U 用户名-d 数据库名-F 输出格式化 c 表示 custom 自定义导出文件一般为 .backupp 为默认格式 sql 脚本文件格式-w --no-passwod 无需密码常见问题1.密码参数1取决于数据库的安全配置是否不需要本地密码连接2取决于身份验证方法基于宿主机的身份验证宿主机就可以不需要提供密码所以上述命令未指定密码相关参数2.非宿主机需要密码或定时备份脚本的情况可以通过导入环境变量定时备份脚本中导入export PGPASSWORDpwd或~./.bashrc中引用export PGPASSWORDpwd3.使用密码文件当前用户下 vim ~/.pgpass pgpass内容格式主机名/ip端口数据库名称用户数据库密码db1/ip5432xgz-dbgpadmingpadminexport PGPASSFILE~/.pgpass3.达梦数据库{待补充}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_tables和skip_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查看备份文件其他相关操作通过clickhouse-client 工具将dat文件插入数据库cat /db/ckDat/1.dat | clickhouse-client --host192.168.1.2 --port9000 \ --userdefault --password123456 --format_csv_delimiter$ \ --queryINSERT INTO new_database.t_test FORMAT CSV #--format_csv_delimiter 判断数据文件中的分隔符5.elasticsearch 数据库见已发布的文章 https://blog.csdn.net/wanglolaini/article/details/139841150?spm1001.2014.3001.5502

更多文章