first pass
This commit is contained in:
parent
f2b3dfb70a
commit
7d84a4d5e1
|
@ -315,7 +315,7 @@ How many database connections to pool in the process. This value should cover ev
|
|||
|
||||
#### `DB_SSLMODE`
|
||||
|
||||
Postgres's [SSL mode](https://www.postgresql.org/docs/10/libpq-ssl.html). Defaults to `prefer`.
|
||||
PostgreSQL [SSL mode](https://www.postgresql.org/docs/10/libpq-ssl.html). Defaults to `prefer`.
|
||||
|
||||
#### `DATABASE_URL`
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ This guide was written with Ubuntu Server in mind; your mileage may vary for oth
|
|||
|
||||
1. Set up a new Mastodon server using the [Production Guide]({{< relref "install" >}}) (however, don’t run `mastodon:setup`).
|
||||
2. Stop Mastodon on the old server (e.g. `systemctl stop 'mastodon-*.service'`).
|
||||
3. Dump and load the Postgres database using the instructions below.
|
||||
3. Dump and load the PostgreSQL database using the instructions below.
|
||||
4. Copy the `system/` files using the instructions below. (Note: if you’re using S3, you can skip this step.)
|
||||
5. Copy the `.env.production` file.
|
||||
6. Run `RAILS_ENV=production bundle exec rails assets:precompile` to compile Mastodon
|
||||
|
@ -34,7 +34,7 @@ This guide was written with Ubuntu Server in mind; your mileage may vary for oth
|
|||
At a high level, you’ll need to copy over the following:
|
||||
|
||||
* The `~/live/public/system` directory, which contains user-uploaded images and videos (if using S3, you don’t need this)
|
||||
* The Postgres database (using [pg_dump](https://www.postgresql.org/docs/9.1/static/backup-dump.html))
|
||||
* The PostgreSQL database (using [pg_dump](https://www.postgresql.org/docs/9.1/static/backup-dump.html))
|
||||
* The `~/live/.env.production` file, which contains server config and secrets
|
||||
|
||||
Less crucially, you’ll probably also want to copy the following for convenience:
|
||||
|
@ -43,9 +43,9 @@ Less crucially, you’ll probably also want to copy the following for convenienc
|
|||
* The systemd config files (`/etc/systemd/system/mastodon-*.service`), which may contain your server tweaks and customizations
|
||||
* The pgbouncer configuration under `/etc/pgbouncer` (if you’re using it)
|
||||
|
||||
### Dump and load Postgres {#dump-and-load-postgres}
|
||||
### Dump and load PostgreSQL {#dump-and-load-postgresql}
|
||||
|
||||
Instead of running `mastodon:setup`, we’re going to create an empty Postgres database using the `template0` database (which is useful when restoring a Postgres dump, [as described in the pg_dump documentation](https://www.postgresql.org/docs/9.1/static/backup-dump.html#BACKUP-DUMP-RESTORE)).
|
||||
Instead of running `mastodon:setup`, we’re going to create an empty PostgreSQL database using the `template0` database (which is useful when restoring a PostgreSQL dump, [as described in the pg_dump documentation](https://www.postgresql.org/docs/9.1/static/backup-dump.html#BACKUP-DUMP-RESTORE)).
|
||||
|
||||
Run this as the `mastodon` user on your old system:
|
||||
|
||||
|
|
|
@ -127,9 +127,9 @@ As a solution, it is possible to start different Sidekiq processes for the queue
|
|||
|
||||
### Why you might need PgBouncer {#pgbouncer-why}
|
||||
|
||||
If you start running out of available Postgres connections (the default is 100) then you may find PgBouncer to be a good solution. This document describes some common gotchas as well as good configuration defaults for Mastodon.
|
||||
If you start running out of available PostgreSQL connections (the default is 100) then you may find PgBouncer to be a good solution. This document describes some common gotchas as well as good configuration defaults for Mastodon.
|
||||
|
||||
Note that you can check “PgHero” in the administration view to see how many Postgres connections are currently being used. Typically Mastodon uses as many connections as there are threads both in Puma, Sidekiq and the streaming API combined.
|
||||
Note that you can check “PgHero” in the administration view to see how many PostgreSQL connections are currently being used. Typically Mastodon uses as many connections as there are threads both in Puma, Sidekiq and the streaming API combined.
|
||||
|
||||
### Installing PgBouncer {#pgbouncer-install}
|
||||
|
||||
|
@ -143,7 +143,7 @@ sudo apt install pgbouncer
|
|||
|
||||
#### Setting a password {#pgbouncer-password}
|
||||
|
||||
First off, if your `mastodon` user in Postgres is set up without a password, you will need to set a password.
|
||||
First off, if your `mastodon` user in PostgreSQL is set up without a password, you will need to set a password.
|
||||
|
||||
Here’s how you might reset the password:
|
||||
|
||||
|
@ -193,7 +193,7 @@ In both cases the password is just `password`.
|
|||
|
||||
Edit `/etc/pgbouncer/pgbouncer.ini`
|
||||
|
||||
Add a line under `[databases]` listing the Postgres databases you want to connect to. Here we’ll just have PgBouncer use the same username/password and database name to connect to the underlying Postgres database:
|
||||
Add a line under `[databases]` listing the PostgreSQL databases you want to connect to. Here we’ll just have PgBouncer use the same username/password and database name to connect to the underlying PostgreSQL database:
|
||||
|
||||
```text
|
||||
[databases]
|
||||
|
@ -219,13 +219,13 @@ Make sure the `pgbouncer` user is an admin:
|
|||
admin_users = pgbouncer
|
||||
```
|
||||
|
||||
**This next part is very important!** The default pooling mode is session-based, but for Mastodon we want transaction-based. In other words, a Postgres connection is created when a transaction is created and dropped when the transaction is done. So you’ll want to change the `pool_mode` from `session` to `transaction`:
|
||||
**This next part is very important!** The default pooling mode is session-based, but for Mastodon we want transaction-based. In other words, a PostgreSQL connection is created when a transaction is created and dropped when the transaction is done. So you’ll want to change the `pool_mode` from `session` to `transaction`:
|
||||
|
||||
```ini
|
||||
pool_mode = transaction
|
||||
```
|
||||
|
||||
Next up, `max_client_conn` defines how many connections PgBouncer itself will accept, and `default_pool_size` puts a limit on how many Postgres connections will be opened under the hood. (In PgHero the number of connections reported will correspond to `default_pool_size` because it has no knowledge of PgBouncer.)
|
||||
Next up, `max_client_conn` defines how many connections PgBouncer itself will accept, and `default_pool_size` puts a limit on how many PostgreSQL connections will be opened under the hood. (In PgHero the number of connections reported will correspond to `default_pool_size` because it has no knowledge of PgBouncer.)
|
||||
|
||||
The defaults are fine to start, and you can always increase them later:
|
||||
|
||||
|
@ -242,7 +242,7 @@ sudo systemctl reload pgbouncer
|
|||
|
||||
#### Debugging that it all works {#pgbouncer-debug}
|
||||
|
||||
You should be able to connect to PgBouncer just like you would with Postgres:
|
||||
You should be able to connect to PgBouncer just like you would with PostgreSQL:
|
||||
|
||||
```bash
|
||||
psql -p 6432 -U mastodon mastodon_production
|
||||
|
@ -266,7 +266,7 @@ PREPARED_STATEMENTS=false
|
|||
|
||||
Since we’re using transaction-based pooling, we can’t use prepared statements.
|
||||
|
||||
Next up, configure Mastodon to use port 6432 (PgBouncer) instead of 5432 (Postgres) and you should be good to go:
|
||||
Next up, configure Mastodon to use port 6432 (PgBouncer) instead of 5432 (PostgreSQL) and you should be good to go:
|
||||
|
||||
```bash
|
||||
DB_HOST=localhost
|
||||
|
|
|
@ -53,7 +53,7 @@ bundle install
|
|||
yarn install
|
||||
```
|
||||
|
||||
In the development environment, Mastodon will use PostgreSQL as the currently signed-in Linux user using the `ident` method. Ensure that you have created a Postgres user and database for your current signed-in user:
|
||||
In the development environment, Mastodon will use PostgreSQL as the currently signed-in Linux user using the `ident` method. Ensure that you have created a PostgreSQL user and database for your current signed-in user:
|
||||
|
||||
```sh
|
||||
sudo -u postgres createuser $YOUR_USERNAME_HERE --createdb
|
||||
|
|
|
@ -101,7 +101,7 @@ sudo apt install pgbouncer
|
|||
#### 设置密码 {#pgbouncer-password}
|
||||
|
||||
首先,如果你的Postgres中`mastodon`帐户没有设置密码的话,你需要设置一个密码。
|
||||
First off, if your `mastodon` user in Postgres is set up without a password, you will need to set a password.
|
||||
First off, if your `mastodon` user in PostgreSQL is set up without a password, you will need to set a password.
|
||||
|
||||
下面是如何重置密码:
|
||||
|
||||
|
@ -212,7 +212,7 @@ PREPARED_STATEMENTS=false
|
|||
|
||||
因为我们使用基于事务(transaction-based)的连接池,我们不能使用参数化查询(prepared statement)。
|
||||
|
||||
接下来,配置Mastodon使用6432端口(PgBouncer)而不是5432端口(Postgres)就可以了:
|
||||
接下来,配置Mastodon使用6432端口(PgBouncer)而不是5432端口(PostgreSQL)就可以了:
|
||||
|
||||
```bash
|
||||
DB_HOST=localhost
|
||||
|
|
Loading…
Reference in New Issue