如何确定创建只读副本操作是否完成并完成
How to identify if create read replica action is complete and finished
我正在尝试创建生产数据库的只读副本,然后我想将只读副本提升为测试数据库。
我已经使用这个 awscli 命令创建了一个只读副本
aws rds create-db-instance-read-replica --db-instance-identifier test-database --source-db-instance-identifier production-database --region eu-central-1
我知道我不能立即发出升级只读副本命令,因为我会收到错误消息。
bash-3.2$ aws rds promote-read-replica --db-instance-identifier test-database --region eu-central-1
An error occurred (InvalidDBInstanceState) when calling the PromoteReadReplica operation: DB Instance is not in an available state.
如何检查只读副本是否已成功创建,以便发出升级只读副本命令?
我试图查询数据库的事件,但它返回的是空的。
bash-3.2$ aws rds describe-events --source-identifier test-database --source-type db-instance
{
"Events": []
}
我正在尝试在 Jenkins 管道中执行此操作,因此必须以编程方式对其进行检查。
请指教。
您可以使用 describe-db-instances 并创建一个简单的 while-based 等待程序以使副本可用。
例如:
while true; do
db_status=$(aws rds describe-db-instances \
--db-instance-identifier test-database \
--query 'DBInstances[0].DBInstanceStatus' \
--output text)
[[ $db_status != "available" ]] \
&& (echo $db_status; sleep 5) \
|| break
done
echo "Finally ${db_status}"
以上将每 5 秒检查一次 test-database
的状态,直到其 available
。
我正在尝试通过添加参数组并重新启动只读副本来继续上述脚本。
db_status=$(aws rds describe-db-instances \
--db-instance-identifier db-replica \
--profile xxx \
--region us-west-2 \
--query 'DBInstances[0].DBInstanceStatus' \
--output text)
[[ $db_status != "available" ]] \
&& (echo $db_status; sleep 15)\
|| break
echo "Finally ${db_status}"
if [ $db_status == "available" ]
then
echo "replica created successfully"
echo "Rebooting replica"
aws rds reboot-db-instance --db-instance-identifier db-replica
sleep 5;
else
echo "replica rebooted successfully"
fi
exit 1
我正在尝试创建生产数据库的只读副本,然后我想将只读副本提升为测试数据库。
我已经使用这个 awscli 命令创建了一个只读副本
aws rds create-db-instance-read-replica --db-instance-identifier test-database --source-db-instance-identifier production-database --region eu-central-1
我知道我不能立即发出升级只读副本命令,因为我会收到错误消息。
bash-3.2$ aws rds promote-read-replica --db-instance-identifier test-database --region eu-central-1
An error occurred (InvalidDBInstanceState) when calling the PromoteReadReplica operation: DB Instance is not in an available state.
如何检查只读副本是否已成功创建,以便发出升级只读副本命令?
我试图查询数据库的事件,但它返回的是空的。
bash-3.2$ aws rds describe-events --source-identifier test-database --source-type db-instance
{
"Events": []
}
我正在尝试在 Jenkins 管道中执行此操作,因此必须以编程方式对其进行检查。
请指教。
您可以使用 describe-db-instances 并创建一个简单的 while-based 等待程序以使副本可用。
例如:
while true; do
db_status=$(aws rds describe-db-instances \
--db-instance-identifier test-database \
--query 'DBInstances[0].DBInstanceStatus' \
--output text)
[[ $db_status != "available" ]] \
&& (echo $db_status; sleep 5) \
|| break
done
echo "Finally ${db_status}"
以上将每 5 秒检查一次 test-database
的状态,直到其 available
。
我正在尝试通过添加参数组并重新启动只读副本来继续上述脚本。
db_status=$(aws rds describe-db-instances \
--db-instance-identifier db-replica \
--profile xxx \
--region us-west-2 \
--query 'DBInstances[0].DBInstanceStatus' \
--output text)
[[ $db_status != "available" ]] \
&& (echo $db_status; sleep 15)\
|| break
echo "Finally ${db_status}"
if [ $db_status == "available" ]
then
echo "replica created successfully"
echo "Rebooting replica"
aws rds reboot-db-instance --db-instance-identifier db-replica
sleep 5;
else
echo "replica rebooted successfully"
fi
exit 1