Skip to content

Commit 2016136

Browse files
lsy1968shanye997
authored andcommitted
Restore RDS instance
1 parent 1adf8fb commit 2016136

File tree

3 files changed

+129
-0
lines changed

3 files changed

+129
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## Introduction
2+
3+
<!-- DOCS_DESCRIPTION_CN -->
4+
本示例用于在阿里云上恢复RDS PostgreSQL实例,涉及到备份的创建以及按时间点和备份集恢复RDS PostgreSQL实例。
5+
详情可查看[通过 Terraform 恢复 RDS PostgreSQL 实例](http://help.aliyun.com/document_detail/456035.htm)
6+
<!-- DOCS_DESCRIPTION_CN -->
7+
8+
<!-- DOCS_DESCRIPTION_EN -->
9+
This example is used to restore RDS PostgreSQL instance on Alibaba Cloud, which involves the creation of backup and restoration by backup and time.
10+
More details in [Restore RDS instance data](http://help.aliyun.com/document_detail/456035.htm).
11+
<!-- DOCS_DESCRIPTION_EN -->
12+
13+
<!-- BEGIN_TF_DOCS -->
14+
## Providers
15+
16+
| Name | Version |
17+
|------|---------|
18+
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
19+
20+
## Modules
21+
22+
No modules.
23+
24+
## Resources
25+
26+
| Name | Type |
27+
|------|------|
28+
| [alicloud_db_instance.instance](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/db_instance) | resource |
29+
| [alicloud_rds_backup.instance](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/rds_backup) | resource |
30+
| [alicloud_rds_clone_db_instance.clone_id](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/rds_clone_db_instance) | resource |
31+
| [alicloud_rds_clone_db_instance.clone_time](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/rds_clone_db_instance) | resource |
32+
| [alicloud_vpc.main](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vpc) | resource |
33+
| [alicloud_vswitch.main](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/vswitch) | resource |
34+
| [alicloud_rds_backups.example](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/rds_backups) | data source |
35+
36+
## Inputs
37+
38+
| Name | Description | Type | Default | Required |
39+
|------|-------------|------|---------|:--------:|
40+
| <a name="input_instance_type"></a> [instance\_type](#input\_instance\_type) | n/a | `string` | `"pg.n2.2c.2m"` | no |
41+
| <a name="input_region"></a> [region](#input\_region) | n/a | `string` | `"cn-heyuan"` | no |
42+
| <a name="input_zone_id"></a> [zone\_id](#input\_zone\_id) | n/a | `string` | `"cn-heyuan-b"` | no |
43+
<!-- END_TF_DOCS -->
44+
45+
## Documentation
46+
<!-- docs-link -->
47+
48+
The template is based on Aliyun document: [Restore RDS instance](http://help.aliyun.com/document_detail/456035.htm)
49+
50+
<!-- docs-link -->
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
variable "region" {
2+
default = "cn-heyuan"
3+
}
4+
5+
variable "zone_id" {
6+
default = "cn-heyuan-b"
7+
}
8+
9+
variable "instance_type" {
10+
default = "pg.n2.2c.2m"
11+
}
12+
13+
provider "alicloud" {
14+
region = var.region
15+
}
16+
17+
# 创建VPC
18+
resource "alicloud_vpc" "main" {
19+
vpc_name = "alicloud"
20+
cidr_block = "172.16.0.0/16"
21+
}
22+
23+
# 创建交换机
24+
resource "alicloud_vswitch" "main" {
25+
vpc_id = alicloud_vpc.main.id
26+
cidr_block = "172.16.192.0/20"
27+
zone_id = var.zone_id
28+
}
29+
30+
# 创建RDS PostgreSQL实例
31+
resource "alicloud_db_instance" "instance" {
32+
engine = "PostgreSQL"
33+
engine_version = "13.0"
34+
instance_type = var.instance_type
35+
instance_storage = "30"
36+
instance_charge_type = "Postpaid"
37+
vswitch_id = alicloud_vswitch.main.id
38+
}
39+
40+
# 创建备份
41+
resource "alicloud_rds_backup" "instance" {
42+
db_instance_id = alicloud_db_instance.instance.id
43+
remove_from_state = true
44+
}
45+
46+
# 查询备份
47+
data "alicloud_rds_backups" "example" {
48+
db_instance_id = alicloud_db_instance.instance.id
49+
depends_on = [alicloud_rds_backup.instance]
50+
}
51+
52+
# 按时间点恢复实例
53+
resource "alicloud_rds_clone_db_instance" "clone_time" {
54+
source_db_instance_id = alicloud_db_instance.instance.id
55+
db_instance_description = "terraform-test-clone"
56+
db_instance_storage_type = "cloud_essd"
57+
payment_type = "PayAsYouGo"
58+
# 模拟获取查询结果中backup_end_time的参数取值。
59+
restore_time = data.alicloud_rds_backups.example.backups.0.backup_end_time
60+
db_instance_storage = "50"
61+
}
62+
63+
# 按备份集恢复实例
64+
resource "alicloud_rds_clone_db_instance" "clone_id" {
65+
db_instance_description = "terraform-test-clone-1"
66+
source_db_instance_id = alicloud_db_instance.instance.id
67+
db_instance_storage_type = "cloud_essd"
68+
payment_type = "PayAsYouGo"
69+
# 模拟获取查询结果中backup_id的参数取值。
70+
backup_id = data.alicloud_rds_backups.example.backups.0.backup_id
71+
db_instance_storage = "50"
72+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
terraform {
2+
required_providers {
3+
alicloud = {
4+
source = "aliyun/alicloud"
5+
}
6+
}
7+
}

0 commit comments

Comments
 (0)