============ ALTER SYSTEM ============ .. container:: refentry :name: SQL-ALTERSYSTEM .. container:: titlepage .. container:: refnamediv .. rubric:: ALTER SYSTEM :name: alter-system ALTER SYSTEM — 更改一个服务器配置参数 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT } ALTER SYSTEM RESET configuration_parameter ALTER SYSTEM RESET ALL .. container:: refsect1 :name: id-1.9.3.34.5 .. rubric:: 描述 :name: 描述 ``ALTER SYSTEM``\ 被用来在整个数据库集簇范围内更改 服务器配置参数。它比传统的手动编辑\ ``postgresql.conf`` 文件的方法更方便。\ ``ALTER SYSTEM``\ 会把给出的参数 设置写入到\ ``postgresql.auto.conf``\ 文件中,该文件会随着 ``postgresql.conf``\ 一起被读入。把一个参数设置为 ``DEFAULT``\ 或者使用\ ``RESET``\ 变体可以 把该配置项从\ ``postgresql.auto.conf``\ 文件中移除。使用 ``RESET ALL``\ 可以移除所有这类配置项。 用\ ``ALTER SYSTEM``\ 设置的值将在下一次重载服务器 配置后生效,那些只能在服务器启动时更改的参数则会在下一次服务器重启后生效。 重载服务器配置可以通过以下做法实现:调用 SQL 函数\ ``pg_reload_conf()``\ , 运行\ ``pg_ctl reload``\ 或者向主服务器进程发送一个SIGHUP信号。 只有超级用户能够使用\ ``ALTER SYSTEM``\ 。还有,由于 这个命令直接作用于文件系统并且不能被回滚,不允许在一个事务块或者函数中使用它。 .. container:: refsect1 :name: id-1.9.3.34.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist *``configuration_parameter``* 一个可设置配置参数的名称。 *``value``* 该参数的新值。值可以被指定为字符串常量、标识符、数字或者以上这些构成的 逗号分隔的列表,值的具体形式取决于特定的参数。写上 ``DEFAULT``\ 可以用来把该参数及其值从 ``postgresql.auto.conf``\ 中移除。 .. container:: refsect1 :name: id-1.9.3.34.7 .. rubric:: 注解 :name: 注解 不能用这个命令来设置\ `data_directory `__\ 以及 ``postgresql.conf``\ 中不被允许的参数(例如 `preset options `__\ )。 .. container:: refsect1 :name: id-1.9.3.34.8 .. rubric:: 示例 :name: 示例 设置\ ``wal_level``\ : .. code:: programlisting ALTER SYSTEM SET wal_level = replica; 撤销以上的设置,恢复\ ``postgresql.conf``\ 中有效的设置: .. code:: programlisting ALTER SYSTEM RESET wal_level; .. container:: refsect1 :name: id-1.9.3.34.9 .. rubric:: 兼容性 :name: 兼容性 ``ALTER SYSTEM``\ 语句是一种 PostgreSQL扩展。 .. container:: refsect1 :name: id-1.9.3.34.10 .. rubric:: 另见 :name: 另见 `SET `__, `SHOW `__