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/ip 5432 xgz-db gpadmin gpadmin export PGPASSFILE=~/.pgpass
3.达梦数据库
{待补充}
4.Clickhouse 数据库
需要安装clickhouse-backup工具,下载地址
alias ck='clickhouse-backup'
ck create
--table value, --tables value, -t value 指定备份表可以指定多个,可使用正则表达式
--diff-from-remote value Create incremental embedded backup or upload incremental object disk data based on other remote backup name
--schema, -s Backup schemas only, will skip data
ck restore
--table value, --tables value, -t value Restore only database and objects which matched with table name patterns, separated by comma, allow ? and * as wildcard
--schema, -s Restore schema only
--data, -d Restore data only
--rm, --drop Drop exists schema objects before restore
-i, --ignore-dependencies Ignore dependencies when drop exists schema objects
【本机备份-异机还原】
1.全量备份:
ck create {备份名}1.全量还原:
ck restore {备份名}
2.指定库表备份
ck create -t db_name.table.name {备份名}--可省略默认为服务器时间格式命名ck create -t db_zbk.t_name bfbak (单表)
ck create -t db_zbk.t_name,db_zbk.t_class bfbak (指定多表)
ck create -t db_zbk.t_* bfbak (模糊多表)
ck create -t db_zbk.* bfbak (db_zbk全库所有表)
2.指定库表还原
ck restore -t db_name.table.name {备份名}ck restore -t db_zbk.t_name bfbak (恢复单表)
ck restore -t db_zbk.t_name,db_zbk.t_class bfbak (恢复指定多表)
ck restore -t db_zbk.t_* bkbak (模糊多表)
ck restore -t db_zbk.* bkbak (恢复db_zbk全库所有表)
ck restore -s -t db_zbk.t_name bfbak (恢复单表结构)
ck restore -d -t db_zbk.t_name bfbak (恢复单表数据)
注意:数据库中表结构如发生了变化后,直接恢复数据不会报错,只会按当前表结构进行数据写入,如备份文件中字段少于现有库中的字段,数据库中的字段将自动补充0。如备份文件中字段多于现有库中的字段,将丢弃多余数据。所以需要先恢复表结构(即模式)后再倒入数据。
清除数据库中的数据
/var/lib/clickhouse/data 目录下的数据,{保留default和system相关数据}
/var/lib/clickhouse/metadata 目录下的数据,{保留default和system相关数据}
5.elasticsearch 数据库
见已发布的文章 https://blog.youkuaiyun.com/wanglolaini/article/details/139841150?spm=1001.2014.3001.5502