已在K8s成功导出PostgreSQL备份,如何执行对应恢复命令?
Kubernetes中PostgreSQL数据库恢复命令
对应你提供的导出命令,恢复数据库的命令如下:
cat [database].sql | kubectl -n [namespace] exec -i [pod name] -- bash -c "export PGPASSWORD='[db password]'; psql -U [db user] -d [db name]"
注意事项:
- 替换命令中的
[namespace]、[pod name]、[db password]、[db user]、[db name]以及[database].sql为实际值 - 使用
-i而非导出时的-it,因为通过管道传递备份文件内容,不需要交互式终端 - 确保执行命令的当前目录下存在指定的
[database].sql备份文件 - 如果目标数据库尚未创建,需先在Pod中执行创建命令:
kubectl -n [namespace] exec -it [pod name] -- bash -c "export PGPASSWORD='[db password]'; createdb -U [db user] [db name]" - 若需要覆盖现有数据库数据,可在psql命令中添加
--clean参数(会先删除现有对象再恢复,操作前请确认数据可覆盖):cat [database].sql | kubectl -n [namespace] exec -i [pod name] -- bash -c "export PGPASSWORD='[db password]'; psql -U [db user] -d [db name] --clean"
内容的提问来源于stack exchange,提问作者Vikram selva
相关产品推荐
相关产品推荐

