diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx index 2d40b33cba4..2073fa11286 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx @@ -21,7 +21,7 @@ CREATE TABLE nyse_symbol ( A scenario where Autocluster would be useful is with an Internet of Things (IoT) data, which are usually inserted with many rows that relate to each other and often use append-only data. When using heap instead of Autocluster, Postgres can't cluster together these related rows, so access to the set of rows touches many data blocks, can be very slow, and input/output heavy. -The following example is for an IoT of thermostats which report a houses's temperature and temperature settings every 60 seconds: +The following example is for an IoT of thermostats which report house temperatures and temperature settings every 60 seconds: ```sql CREATE TABLE iot ( @@ -63,14 +63,14 @@ When you select the data from the IoT table, you can see from the ctid location ```sql SELECT ctid, thermostat_id, recordtime FROM iot; __OUTPUT__ - ctid | thermostat_id | recordtime --------+-------+--------- - (0,1) | 456 | 12:01 - (2,2) | 8945| 04:55 - (0,2) | 456 | 15:32 - (3,2) | 6785| 01:36 - (0,3) | 456 | 19:25 - (2,5) | 5678| 03:44 +ctid | thermostat_id | recordtime +-------+---------------+------------ + (0,1) | 456 | 12:01 + (2,2) | 8945 | 04:55 + (0,2) | 456 | 15:32 + (3,2) | 6785 | 01:36 + (0,3) | 456 | 19:25 + (2,5) | 5678 | 03:44 (6 rows) ``` @@ -184,7 +184,7 @@ Select the ctid from the data for a given stock symbol to see in the output how ```sql SELECT ctid, * FROM nyse_trade WHERE nyse_symbol_id = 1000 ORDER BY trade_time DESC LIMIT 10; __OUTPUT__ - ctid | nyse_symbol_id | trade_time | trade_price | trade_volume +ctid | nyse_symbol_id | trade_time | trade_price | trade_volume -----------+----------------+--------------------------+-------------+-------------- (729,71) | 1000 | Fri Nov 18 11:13:51 2022 | 11.265938 | 72662 (729,22) | 1000 | Fri Nov 18 11:08:39 2022 | 11.262747 | 50897 diff --git a/product_docs/docs/biganimal/release/free_trial/detail/connect_to_a_cluster/connect_using_pgadmin.mdx b/product_docs/docs/biganimal/release/free_trial/detail/connect_to_a_cluster/connect_using_pgadmin.mdx index 061aead708e..6f668496a7a 100644 --- a/product_docs/docs/biganimal/release/free_trial/detail/connect_to_a_cluster/connect_using_pgadmin.mdx +++ b/product_docs/docs/biganimal/release/free_trial/detail/connect_to_a_cluster/connect_using_pgadmin.mdx @@ -10,7 +10,7 @@ indexCards: none [The pgAdmin project](https://www.pgadmin.org/download/) allows you to inspect, monitor, manage, and query your cluster's databases from a desktop or web UI. -From the welcome page, select **Add New Server**. You'll be prompted to configure the connection. +From the welcome page of pgAdmin, select **Add New Server**. You'll be prompted to configure the connection. Enter `BigAnimal Trial` for the name (or use the name you gave to your cluster!), and then select **Connection**. @@ -19,7 +19,7 @@ Enter `BigAnimal Trial` for the name (or use the name you gave to your cluster!) 3. Enter `edb_admin` in the **Username** field. 4. Enter the password you provided when configuring your cluster in the **Password** field (you might want to save this for convenience while testing). -Select **SSL** and change SSL mode to **Require**. +Select **SSL** tab and change SSL mode to **Require**. Finally, select the **Save** button. pgAdmin tries to establish a connection to your database. When successful, it displays the dashboard along with the list of available databases on the left. diff --git a/product_docs/docs/biganimal/release/free_trial/detail/create_a_cluster/create_cluster_portal.mdx b/product_docs/docs/biganimal/release/free_trial/detail/create_a_cluster/create_cluster_portal.mdx index 884e0878c81..24cdd1c2671 100644 --- a/product_docs/docs/biganimal/release/free_trial/detail/create_a_cluster/create_cluster_portal.mdx +++ b/product_docs/docs/biganimal/release/free_trial/detail/create_a_cluster/create_cluster_portal.mdx @@ -20,30 +20,33 @@ You should now find yourself at the [Create Cluster page](https://portal.biganim In the free trial, the range of cluster options is somewhat limited but should be more than sufficient for demonstrating the capabilities of BigAnimal. +1. First you select your **Cluster Type**. Pick **Single Node**. If you're interested in learning more about the BigAnimal's high availability deployment options, see [Cluster types](/biganimal/release/overview/02_high_availability). +1. **Provider** is either AWS or Azure; BigAnimal works the same on either one, so choose the one you're familiar with. 1. Use **Cluster Name** to describe the purpose of the cluster. For example, "Test for Advanced Server on AWS." -2. **Password** is the admin password for the cluster, so pick a strong one! Note that this is independent of your EDB account. -3. **Database Type** is one of: +1. **Password** is the admin password for the cluster, so pick a strong one! Note that this is independent of your EDB account. +1. **Database Type** is one of: - **EnterpriseDB PostgreSQL Advanced Server** for Oracle database compatibility - **PostgreSQL** for official community builds of standard PostgreSQL So if you're interested in EDB's enhancements to PostgreSQL for Oracle database compatibility, choose Advanced Server; otherwise, choose PostgreSQL. -4. **Postgres Version** allows you to select from among the supported versions for either database type. -4. **Provider** is either AWS or Azure; BigAnimal works the same on either one, so choose the one you're familiar with. -5. **Region** options depend on the provider you chose; pick the one closest to you. -6. **Network Connectivity** is restricted to a public IP for the trial, but you can restrict access to trusted networks by +1. **Postgres Version** allows you to select from among the supported versions for either database type. + +1. **Region** options depend on the provider you chose; pick the one closest to your application. + +1. For **Instance Type** and **Storage**, only one option is available for each field during the trial, so just choose that. The full set of instance types and storage options are available in the BigAnimal paid subscriptions. +1. **Network Connectivity** is restricted to a public IP for the trial, but you can restrict access to trusted networks by selecting the **Use allowlists to restrict network access** check box and specifying one or more [CIDR blocks](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) to allow access from. -For **Instance Type** and **Storage**, only one option is available for each field during the trial, so just choose that. ### The DB Configuration tab This is entirely optional, but if you're curious, you can find a full set of PostgreSQL configuration options on this tab, allowing you to tune a cluster for specific needs or resource constraints. -### The Availability tab +### The Additional Settings tab -This page configures high availability, but that feature isn't available in the trial. Skip this tab unless you're curious. +This page has backup retention period, ready-only workload, and IAM authentication settings, but those features aren't available in the trial. Skip this tab unless you're curious. ## Provisioning diff --git a/product_docs/docs/biganimal/release/getting_started/activating_regions.mdx b/product_docs/docs/biganimal/release/getting_started/activating_regions.mdx index 1d701ed5c77..b8927315b25 100644 --- a/product_docs/docs/biganimal/release/getting_started/activating_regions.mdx +++ b/product_docs/docs/biganimal/release/getting_started/activating_regions.mdx @@ -13,15 +13,15 @@ Each region you activate displays a status. The status is available on the Creat ## Activate a new region from the Regions page -You can activate a region ahead of time using the **Admin > Regions** page. Alternatively, you can activate a region by selecting an inactive region at the time of cluster creation or restore. +You can activate a region ahead of time using the **Regions** page. Alternatively, you can activate a region by selecting an inactive region at the time of cluster creation or restore. -1. To activate a region ahead of cluster creation, go to the **Admin > Regions** page. +1. To activate a region ahead of cluster creation, go to the **Regions** page. 1. If you haven't set up your cloud server provider (CSP), you are prompted to do so. See [Connecting your cloud](/biganimal/latest/getting_started/02_connecting_to_your_cloud/). 1. When your cloud server provider is set up, you see a list of regions associated with it on the Regions page. -1. Select the region you want to activate. You can activate multiple regions where you plan on adding clusters. +1. Select **Activate New Region**, select your cloud provider, and the region you want to activate. You can activate multiple regions where you plan on adding clusters. 1. Select **Activate Region(s)**. @@ -29,7 +29,7 @@ You can activate a region ahead of time using the **Admin > Regions** page. Alte Before you suspend or delete a region you must delete all clusters in that region. -1. On the left panel, under Admin, select **Regions**. +1. On the left panel, select **Regions**. 1. A list of previously activated regions appears. diff --git a/product_docs/docs/biganimal/release/reference/cli.mdx b/product_docs/docs/biganimal/release/reference/cli.mdx index be1584845d6..2fb570d726a 100644 --- a/product_docs/docs/biganimal/release/reference/cli.mdx +++ b/product_docs/docs/biganimal/release/reference/cli.mdx @@ -142,7 +142,7 @@ biganimal config set interactive_mode on ``` ## Sample use cases -These examples show Azure as the cloud provider. The functionality is the same when using AWS. +These examples show Azure as the cloud provider unless indicated otherwise. The functionality is the same when using AWS. ### Create a cluster in interactive mode @@ -157,29 +157,22 @@ biganimal create-cluster __OUTPUT__ Cluster architecture: High Availability Number of standby replicas: 2 Replicas +Enable read-only workloads: No Provider: Azure Cluster Name: my-biganimal-cluster Password: **************** PostgreSQL type: Oracle Compatible PostgreSQL version: 14 Region: (US) East US -Instance type: D4s v3(4vCPU, 16GB RAM) +Instance type: E2s v3(2vCPU, 16GB RAM) Volume type: Azure Premium Storage -Volume properties? - ▸ P1 (4 Gi, 120 Provisioned IOPS, 25 Provisioned MB/s) - P2 (8 Gi, 120 Provisioned IOPS, 25 Provisioned MB/s) - P3 (16 Gi, 120 Provisioned IOPS, 25 Provisioned MB/s) - P4 (32 Gi, 120 Provisioned IOPS, 25 Provisioned MB/s) - P6 (64 Gi, 240 Provisioned IOPS, 50 Provisioned MB/s) - P10 (128 Gi, 500 Provisioned IOPS, 100 Provisioned MB/s) - P20 (512 Gi, 2300 Provisioned IOPS, 150 Provisioned MB/s) - P40 (2 Ti, 7500 Provisioned IOPS, 250 Provisioned MB/s) - P70 (16 Ti, 18000 Provisioned IOPS, 750 Provisioned MB/s) - P60 (8 Ti, 16000 Provisioned IOPS, 500 Provisioned MB/s) - P15 (256 Gi, 1100 Provisioned IOPS, 125 Provisioned MB/s) - P80 (32 Ti, 20000 Provisioned IOPS, 900 Provisioned MB/s) - P30 (1 Ti, 5000 Provisioned IOPS, 200 Provisioned MB/s) - P50 (4 Ti, 7500 Provisioned IOPS, 250 Provisioned MB/s) +Volume properties: P1 (4 Gi, 120 Provisioned IOPS, 25 Provisioned MB/s) +Networking: Public +By default your cluster allows all inbound communications, add IP allowed list to restrict the access: Yes +Add CIDR blocks "192.168.1.1/16=Sample Description" leave empty to stop adding: +Add database config in the format "application_name=sample_app&array_nulls=true", Leave empty for default configuration: +Backup Retention Period, note backups will incur storage charges from the cloud provider directly. e.g. "7d", "2w" or "3m": 30d + ``` You are prompted to confirm you want to create the cluster. After the cluster creation process is completed, it generates a cluster ID. @@ -199,13 +192,13 @@ Check your cluster was created successfully using the `show-clusters` command sh ```shell biganimal show-clusters --id p-gxhkfww1fe __OUTPUT__ -┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ -│ Clusters │ -├──────────────┬──────────────────────┬────────────────────┬──────────┬──────────────┬──────────────┬──────────────────────────────┬─────────┤ -│ ID │ Name │ Status │ Provider │ Region │ Instance Type │ Postgres Type │ Version │ -├──────────────┼──────────────────────┼────────────────────┼──────────┼──────────────┼───────────────┼──────────────────────────────┼─────────┤ -│ p-gxhkfww1fe │ my-biganimal-cluster │ Setting up primary │ Azure │ (US) East US │ D4s v4 │ Oracle Compatible │ 14 │ -└──────────────┴─────────────────────┴────────────────────┴──────────┴──────────────┴───────────────┴──────────────────────────────┴─────────┘ +┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────------───────────────────┐ +│ Clusters │ +├──────────────┬──────────────────────┬────────────────────------┬──────────┬──────────────┬───────-───────┬──────────────────────────────┬─────────┤ +│ ID │ Name │ Status │ Provider │ Region │ Instance Type │ Postgres Type │ Version │ +├──────────────┼──────────────────────┼─────────────────------───┼──────────┼──────────────┼───────────────┼──────────────────────────────┼─────────┤ +│ p-gxhkfww1fe │ my-biganimal-cluster │ Cluster in healthy state │ Azure │ (US) East US │ E2s v3 │ Oracle Compatible │ 14 │ +└──────────────┴──────────────────-───┴──────────────────------──┴──────────┴──────────────┴───────────────┴──────────────────────────────┴─────────┘ ``` @@ -218,29 +211,31 @@ Here is a sample configuration file in YAML format with Azure specified as the p ```yaml # config_file.yaml --- - clusterArchitecture: ha # - haStandbyReplicas: 2 # - provider: azure # - clusterName: my-biganimal-cluster # - password: ************ # - postgresType: epas # - postgresVersion: "14" # - region: eastus # - instanceType: azure:Standard_D4s_v4 # - volumeType: azurepremiumstorage # - volumeProperties: P1 # - volumePropertySize: "4Gi" # - volumePropertyIOPS: 3000 # : Applicable to AWS gp3 and Azure Ultradisk, volume Input/Output Operations Per Second> - networking: public # - allowIpRangeMap: # - - cidr: 9.9.9.9/28 # - description: Allow traffic from App A # - - cidr: 10.10.10.10/27 # - description: Allow traffic from App B # - pgConfigMap: # - application_name: test_app # - array_nulls: true # - backupRetentionPeriod: 30d # + clusterArchitecture: ha # + haStandbyReplicas: 2 # + provider: azure # + clusterName: my-biganimal-cluster # + password: ************ # + iamAuthentication: false # + postgresType: epas # + postgresVersion: "14" # + region: eastus # + instanceType: azure:Standard_E2s_v3 # + volumeType: azurepremiumstorage # + volumeProperties: P1 # + volumePropertySize: "4Gi" # + volumePropertyIOPS: 3000 # : Applicable to AWS gp3 and Azure Ultradisk, volume Input/Output Operations Per Second> + networking: public # + allowIpRangeMap: # + - cidr: 9.9.9.9/28 # + description: Allow traffic from App A # + - cidr: 10.10.10.10/27 # + description: Allow traffic from App B # + pgConfigMap: # + application_name: test_app # + array_nulls: true # + backupRetentionPeriod: 30d # + readOnlyWorkloads: # --- ``` @@ -261,7 +256,7 @@ biganimal create-cluster --clusterConfigFile ./config_file.yaml To query an enumeration of valid values for above BigAnimal and cloud service provider related properties, CLI provides you a series of subcommands, for example: you can use `show-cluster-architecture` to list all available cloud architecture to your current login account. ```shell -biganimal show-cluster-architecture +biganimal show-cluster-architectures __OUTPUT__ ┌──────────────────────────────────────────────┐ │ Architecture │ @@ -325,6 +320,8 @@ After the cluster is created, you can update attributes of the cluster including - Allowed IP list - Postgres database configuration - Retention period +- Read-only workloads +- IAM authentication For example, to set the public allowed IP range list, use the `--cidr-blocks` flag: @@ -386,7 +383,8 @@ biganimal restore-cluster \ --networking "public" \ --cidr-blocks="10.10.10.10/27=Traffic from App B" \ --restore-point "2022-01-26T15:04:05+0800" \ - --backup-retention-period 3m + --backup-retention-period "2w" \ + --read-only-workloads: "true" ``` The password for the restored cluster is a mandatory. The other parameters, if not specified, inherit the source database's settings. In interactive mode, the source database's settings appear as the default input, or appear as the first option in a selection list. @@ -409,3 +407,12 @@ biganimal delete-cluster \ ``` You can list all deleted clusters with the `show-deleted-clusters` command and restore them from their history backups as needed. + +### Using IAM authentication on AWS + +To create a cluster that is enabled for IAM authentication, set the `--iam-authentication` flag on the create-cluster command or in the configuration file to `Yes` or `true`, respectively. + +To change the IAM authentication setting after creating a cluster, use the `--iam-authentication` flag on the `update-cluster` command. + +To change the IAM authentication setting when restoring a cluster, use the `--iam-authentication` flag on the `restore-cluster` command. + diff --git a/product_docs/docs/biganimal/release/using_cluster/01_postgres_access.mdx b/product_docs/docs/biganimal/release/using_cluster/01_postgres_access.mdx index 83d9e5fb8dd..9e545cdbc71 100644 --- a/product_docs/docs/biganimal/release/using_cluster/01_postgres_access.mdx +++ b/product_docs/docs/biganimal/release/using_cluster/01_postgres_access.mdx @@ -87,6 +87,8 @@ Provision your cluster before configuring IAM for Postgres. 1. In BigAnimal, turn on the IAM authentication feature when creating or modifying the cluster: 1. On the **Additional Settings** tab, under **Authentication**, select **Identity and Access Management (IAM) Authentication**. 1. Select **Create Cluster** or **Save**. + !!!note + To turn on IAM authentication using the CLI, see the [Using IAM authentication on AWS](biganimal/latest/reference/cli/#using-iam-authentication-on-aws) section in the Using the BigAnimal CLI topic. 1. In AWS, get the ARN of each IAM user requiring database access. In the AWS account connected to BigAnimal, use AWS Identity and Access Management (IAM) to perform user management. See the [AWS documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html). 1. In Postgres, if the IAM role doesn’t exist yet, run this Postgres command: diff --git a/product_docs/docs/pgd/3.7/bdr/durability.mdx b/product_docs/docs/pgd/3.7/bdr/durability.mdx index ff74df7eaec..289f7d9e70e 100644 --- a/product_docs/docs/pgd/3.7/bdr/durability.mdx +++ b/product_docs/docs/pgd/3.7/bdr/durability.mdx @@ -44,6 +44,13 @@ Replication](https://www.postgresql.org/docs/11/warm-standby.html#SYNCHRONOUS-RE (PSR), which is uni-directional, but offers a synchronous variant that can used in combination with BDR. +!!! WARNING + This only works when using a single database per node. When using multiple + BDR enabled databases per node, which is not generally recommended, the + LSN based confirmations may originate from any one of the databases from + a node specified in `synchronous_standby_names` and thus not assure the + data is really flushed to disk. + This chapter covers the various forms of synchronous or eager replication and its timing aspects. diff --git a/product_docs/docs/pgd/4/bdr/durability.mdx b/product_docs/docs/pgd/4/bdr/durability.mdx index 77767abbb70..7cbde8b757d 100644 --- a/product_docs/docs/pgd/4/bdr/durability.mdx +++ b/product_docs/docs/pgd/4/bdr/durability.mdx @@ -46,6 +46,14 @@ For backward compatibility, BDR still supports configuring synchronous replication with `synchronous_commit` and `synchronous_standby_names`. See [Legacy synchronous replication](durability#legacy-synchronous-replication-using-bdr), but consider using [Group Commit](group-commit) instead. + +!!! WARNING + This only works when using a single database per node. When using multiple + BDR enabled databases per node, which is not generally recommended, the + LSN based confirmations may originate from any one of the databases from + a node specified in `synchronous_standby_names` and thus not assure the + data is really flushed to disk. + ## Terms and definitions BDR nodes can take different diff --git a/product_docs/docs/pgd/4/harp/09_consensus-layer.mdx b/product_docs/docs/pgd/4/harp/09_consensus-layer.mdx index 81f852cad74..55a6643c208 100644 --- a/product_docs/docs/pgd/4/harp/09_consensus-layer.mdx +++ b/product_docs/docs/pgd/4/harp/09_consensus-layer.mdx @@ -21,7 +21,7 @@ The `bdr` native consensus layer is available from BDR versions and [3.7.3](/bdr/3.7/release-notes/#bdr-373). For the purpose of maintaining a voting quorum, BDR Logical Standby -nodes don't participate in consensus communications in a EDB Postgres Distributed cluster. Don't count these in the total node list to fulfill DCS quorum requirements. +nodes and BDR Subscriber-Only nodes don't participate in consensus communications in a EDB Postgres Distributed cluster. Don't count these in the total node list to fulfill DCS quorum requirements. ## Maintaining quorum