常用的几款国产数据库,包含人大金仓,神舟通用,达梦,PostgreSQL,他们都有自己有原生的备份还原工具,就像mysql一样,以下是对这些数据库原生工具的使用归总,
1PostgreSQL数据库(11.7)
备份:
pg_dump "host=${DATABASE_IP_VALUE} port=${DATABASE_PORT_VALUE} user=${DATABASE_USERNAME_VALUE} dbname=${DATABASE_DB_VALUE} password=${DATABASE_PASSWORD_VALUE}" -f ${BACKUP_BASE_DIR}/nativebackup${filename}.sql
还原
psql "host=${DATABASE_IP_VALUE} port=${DATABASE_PORT_VALUE} user=${DATABASE_USERNAME_VALUE} dbname=${DATABASE_DB_VALUE} password=${DATABASE_PASSWORD_VALUE}" -f ${BACKUP_BASE_DIR}/nativebackup{filename}.sql
2达梦(DM8)
备份:
dexp '${DATABASE_USERNAME_VALUE}/"""${DATABASE_PASSWORD_VALUE}"""@${DATABASE_IP_VALUE}:${DATABASE_PORT_VALUE}' file=${BACKUP_BASE_DIR}/nativebackup{filename}.dmp
还原:
dimp '${DATABASE_USERNAME_VALUE}/"""${DATABASE_PASSWORD_VALUE}"""@${DATABASE_IP_VALUE}:${DATABASE_PORT_VALUE}' fromuser=${DATABASE_USERNAME_VALUE} touser=${DATABASE_USERNAME_VALUE} table_exists_action=replace file=${BACKUP_BASE_DIR}/backup{filename}.dmp
3人大金仓(V8R6)
备份:
sys_dump -h ${DATABASE_USERNAME_VALUE} -p ${DATABASE_PORT_VALUE} -U ${DATABASE_USERNAME_VALUE} -W ${DATABASE_PASSWORD_VALUE} -d ${DATABASE_DB_VALUE} -f ${BACKUP_BASE_DIR}/nativebackup${filename}.dmp #-t table_name
还原:
ksql -h ${DATABASE_USERNAME_VALUE} -p ${DATABASE_PORT_VALUE} -U ${DATABASE_USERNAME_VALUE} -d ${DATABASE_DB_VALUE} -f ${BACKUP_BASE_DIR}/nativebackup${filename}.dmp
人大金仓V8R6版本不支持密码明文参数,V8R3版本支持。
4神舟通用(7.0.8.191204)
备份:
osrexp -u${DATABASE_USERNAME_VALUE}/${DATABASE_PASSWORD_VALUE} -h${DATABASE_IP_VALUE} -p${DATABASE_PORT_VALUE} -d${DATABASE_DB_VALUE} level=schema file=${BACKUP_BASE_DIR}/nativebackup{filename}.osr log=${BACKUP_BASE_DIR}/nativebackup{filename}.log schema=${DATABASE_USERNAME_VALUE}
还原:
osrimp -u${DATABASE_USERNAME_VALUE}/${DATABASE_PASSWORD_VALUE} -h${DATABASE_IP_VALUE} -p${DATABASE_PORT_VALUE} -d${DATABASE_DB_VALUE} level=schema file=${BACKUP_BASE_DIR}/nativebackup{filename}.osr log=${BACKUP_BASE_DIR}/nativebackup{filename}.log ignore=true nocheckvalidate=true schema=${DATABASE_USERNAME_VALUE}
备注:
${DATABASE_IP_VALUE}数据库ip
${DATABASE_PORT_VALUE}数据库端口
${DATABASE_USERNAME_VALUE}数据库用户名
${DATABASE_DB_VALUE}数据库database名称
${DATABASE_PASSWORD_VALUE}数据库密码
${BACKUP_BASE_DIR}备份还原路径
${filename}备份还原文件名称
补充:以上都为全量备份,如果有备份指定表的需要,在上面命令的基础上,加如下参数
1postgressql数据库
-t table_name
2达梦数据库
TABLES=table1,table2 表名大写或转义"\"tabname\"\"\""
3人大金仓
-t table_name
4神舟通用
table=({DATABASE_USERNAME_VALUE}.table1,{DATABASE_USERNAME_VALUE}.table2)