¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

17.5. ������Խ񤭹��ߡ�WAL��

WAL��Ĵ���ˤĤ��Ƥξܺ٤���27.3�⻲�Ȥ��Ƥ���������

17.5.1. ����

fsync��boolean��

���Υѥ�᡼��������Ǥ���С�PostgreSQL�����Ф�fsync()�����ƥࡦ�������ȯ�Ԥ����ꡢ�⤷����Ʊ������ˡ�ǡ�wal_sync_method�򻲾ȡ˹�����ʪ��Ū�˥ǥ������˽񤭹��ޤ줿���γξڤ����褦�Ȼ�ߤޤ�������ϥ��ڥ졼�ƥ��󥰥����ƥ�⤷���ϥϡ��ɥ�����������å��夷���塢�μ¤˥ǡ����١������饹�����Ӥ������֤����줵���뤳�Ȥ��Ǥ��ޤ���

�Ȥϸ��äƤ⡢fsync�λ��Ѥ���ǽ�򰭲������ޤ����ȥ�󥶥�����󤬥��ߥåȤ����ȡ�PostgreSQL�ϡ����ڥ졼�ƥ��󥰥����ƥब������Խ񤭹��ߤ�ǥ��������Ǥ��Ф��ޤ��Ե����ʤ���Фʤ�ޤ���fsync��̵���ˤ���ȡ����ڥ졼�ƥ��󥰥����ƥ�ϡ��񤭹��ߤδ˾ײ��ʥХåե���󥰡ˡ�����դ����������ٱ�˴ؤ��ƺ����ι�ư���뤳�Ȥ��Ǥ��ޤ����������������ǽ����夵���ޤ����Ȥϸ��äƤ⡢�����ƥब����å��夹��С��Ǹ�Τ����Ĥ��Υ��ߥåȤ��줿�ȥ�󥶥������ϡ������⤷���ϴ����˼������ǽ��������ޤ����ǰ��ξ�硢�����Բ�ǽ�ʥǡ������˲���ȯ�����ޤ����ʥǡ����١������եȥ��������Τ�ΤΥ���å���ϡ������Ǥϴ����װ��Ǥ� ����ޤ��������ڥ졼�ƥ��󥰥����ƥ��٥�Υ���å��夬�˲��δ�����������������ޤ�����

���δ������Τ��ᡢfsync���Ф�������Ū�������������¸�ߤ��ޤ��󡣾��fsync��̵���ˤ�������Ԥ�����������������Թ礬ȯ�������������ΤʺƵ�ư�ݥ���Ȥ�¸�ߤ����ͤʻ��ϡ�����������ɤ߹��ߤκݤˤΤ�̵���ˤ�������Ԥ⤤�ޤ�������˾��fsync��ͭ���ˤ�������Ԥ⤤�ޤ����ǥե���Ȥϡ�����¤ο������γ��ݤΤ��ᡢfsync��ͭ���ˤ��Ƥ���ޤ����⤷���Ѥ��Ƥ��륪�ڥ졼�ƥ��󥰥����ƥࡢ�ϡ��ɥ����������ϲ�ҡʤ⤷���ϥХåƥ꡼�Хå����åסˤ��ꤹ��ΤǤ���С�fsync��̵���ˤ��뤳�Ȥ�Ƥ���Ƥ��ɤ��Ǥ��礦��

���Υѥ�᡼����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ��� ���Υѥ�᡼����̵���ˤ����硢full_page_writes��Ʊ����̵���ˤ��뤳�Ȥ�Ƥ���Ƥ���������

wal_sync_method��string��

WAL�ι�����ǥ������ض�������Τ˻��Ѥ������ˡ�Ǥ���fsync�����դξ�礳����������Ω���ޤ��󡣤ȸ����ΤϹ�����������������ʤ�����Ǥ�����������ͤϰʲ��Τ�ΤǤ���

  • open_datasync ��open() option O_DSYNC��WAL�ե�����ν񤭹��ߡ�

  • fdatasync �ʥ��ߥå����fdatasync()��ƤӽФ���

  • fsync_writethrough �ʤ����ʤ�ǥ������񤭹��ߥ���å����饤�ȥ��롼�����뤿�ᡢ���ߥå����fsync()��ƤӽФ���

  • fsync �ʥ��ߥå����fsync()��ƤӽФ���

  • open_sync ��open() option O_SYNC��WAL�ե�����ν񤭹��ߡ�

���ƤΥץ�åȥۡ���Ǥ�������Ƥ�����褬�Ȥ���櫓�ǤϤ���ޤ��� �ǥե���Ȥϡ���Υꥹ�Ȥǥץ�åȥե�����ǥ��ݡ��Ȥ�����Τ������Ƭ�ˤ����ΤǤ��� �ޤ���open_*���ץ����ϲ�ǽ�ʤ��O_DIRECT����Ѥ��ޤ��� ���Υѥ�᡼����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���

full_page_writes��boolean��

���Υѥ�᡼����ͭ���ξ�硢PostgreSQL�����Фϥǥ������ڡ��������Ƥ����Ƥ򡢥����å��ݥ���Ȥθ塢���Υڡ����κǽ���ѹ�������WAL�˽񤭹��ߤޤ��� ���ڥ졼�ƥ��󥰥����ƥब����å��夷�����˿ʹ���Υڡ����񤭹��ߤ�����ޤǤ�������äƤ��ʤ���ǽ�������뤿�ᡢ���줬ɬ�פǤ��� ���ξ�硢�ǥ�������Υڡ����ϸŤ��ǡ����ȿ������ǡ��������ߤ�����֤ˤʤ�ޤ��� �̾�WAL�����¸�����ԥ�٥���ѹ��ǡ����ϡ�����å����Υꥫ�Х���ˤ��������ڡ��������줵����ˤ��Խ�ʬ�Ǥ��� �����ʥڡ������᡼�������ڡ��������Τ�����Ǥ��뤳�Ȥ��ݾڤ��ޤ��� ��������WAL�˽񤭹��ޤʤ���Фʤ�ʤ��ǡ����̤����ä��ޤ��� ��WAL�����Ͼ�˥����å��ݥ���Ȥ���Ϥޤ뤿�ᡢ�����å��ݥ���ȸ�κǽ���ѹ����ˤ����Ԥ����Ȥ���ʬ�Ǥ��� ���äơ������ڡ����񤭽Ф��Υ����Ȥ��㸺������ˡ��1�Ĥϡ������å��ݥ���ȴֳ֥ѥ�᡼�������䤹���ȤǤ�����

���Υѥ�᡼����̵���ˤ���ȡ��̾�����®�٤��夬��ޤ��� �����������ڥ졼�ƥ��󥰥����ƥ�Υ���å�����Ÿ��㳲�θ�Υǡ����١�����»��⤿�餹���⤷��ޤ��� ���Υꥹ���Ͼ������ʤ���fsync��̵���ˤ������Ȼ��Ƥ��ޤ��� �ʥХåƥ�Хå����åץ���ȥ�����ʤɤΡ˥ϡ��ɥ���������ƤǤ���ۤ����٥�ޤ���ʬ�񤭹��ߤδ��������㸺�Ǥ���ե����륷���ƥॽ�եȥ�������ReiserFS 4�ʤɡˤ�����С����Υѥ�᡼����̵���ˤ��Ƥ�������⤷��ޤ���

���Υѥ�᡼����̵���ˤ��Ƥ�ݥ���ȥ��󥿥���ꥫ�Х��PITR���Ѥ�WAL���������֤λ��Ѥ˱ƶ�����ޤ���� ��23.3�򻲾Ȥ��Ƥ��������ˡ�

���Υѥ�᡼����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ��� �ǥե���Ȥ�on�Ǥ���

wal_buffers��integer��

WAL�ǡ����Ѥ˶�ͭ������ǻ��Ѥ��������̤Ǥ��� �ǥե���Ȥ�64�����Х��ȡ�64kB�ˤǤ��� �ǡ����Ϥ��줾��Υȥ�󥶥�����󥳥ߥåȻ��˥ǥ������˽񤭽Ф���뤿�ᡢ����Ȥ��Ƥϡ�1�Ĥ�ŵ��Ū�ʥȥ�󥶥������ˤ�ä����������WAL�ǡ�������¸�Ǥ��뽼ʬ���礭���Ǥ��뤳�ȤΤߤ�ɬ�פǤ��� ���Υѥ�᡼���ϥ����е�ư���Τ������ǽ�Ǥ���

���Υѥ�᡼�������ä�����ȡ����Ѥ��Ƥ��륪�ڥ졼�ƥ��󥰥����ƥ�Υǥե���ȹ��������Ƥ���System V��ͭ����θ³���ۤ����׵��PostgreSQL���Ԥ������Ȥʤ뤳�Ȥ�����ޤ���ɬ�פǤ���С��ɤ��ͤˤ��Ƥ��Υѥ�᡼����Ĵ�����뤫�ˤĤ�����16.4.1�򻲾Ȥ���������

commit_delay��integer��

���ߥåȥ쥳���ɤ�WAL�Хåե��˽񤭹�����ȡ��Хåե���ǥ��������Ǥ��Ф����Υߥ���ñ�̤λ��ֺ��ٱ�Ǥ��������ƥ���٤��⤯�����������˥��ߥåȽ������Ǥ����ȥ�󥶥������ʣ��¸�ߤ�����硢�����ʳ����ٱ���֤Ǥ����ʣ���Υȥ�󥶥���������٤�fsync()�����ƥॳ����Τߤǡ�Ϳ����줿��������ǥ��ߥåȤ��뤳�Ȥ��Ǥ��ޤ������������⤷¾�Υȥ�󥶥�����󤬥��ߥåȤǤ�����֤ˤʤ�ʤ���С������ٱ��̵�̤ˤʤ�ޤ����ȸ������Ȥϡ������Хץ����������Υ��ߥåȥ쥳���ɤ�񤭹�����ִ֤�¾�Υȥ�󥶥�����󤬿ʹԤ��Ƥ��� commit_siblings�ˤ������ʤ��Ȥ�¹Ԥ���ޤ����ǥե���Ȥ��ͤϥ������ٱ�̵���ˤǤ���

commit_siblings��integer��

commit_delay�ٱ��¹Ԥ�������ɬ�פȤ����Ʊ���˳����Ƥ���ȥ�󥶥������κǾ����Ǥ��� ����礭���ͤϡ��ٱ�����δ֤ˡ����ʤ��Ȥ�1�Ĥ�¾�Υȥ�󥶥�����󤬥��ߥåȤν��������碌�뤳�Ȥ�μ¤ˤ��ޤ��� �ǥե���Ȥ�5�ȥ�󥶥������Ǥ���

17.5.2. Checkpoints

checkpoint_segments��integer��

��ưŪWAL�����å��ݥ���ȴ֤κ���ֳ֤�����ե����륻�����ȡʤ��줾��Υ������Ȥ��̾�16�ᥬ�Х��ȡˤǻ��ꤷ�ޤ��� �ǥե���Ȥ�3�������ȤǤ��� ���Υѥ�᡼����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���

checkpoint_timeout��integer��

��ưŪWAL�����å��ݥ���ȴ֤κ���ֳ֤���ñ�̤ǻ��ꤷ�ޤ��� �ǥե���Ȥ�5ʬ��5min�ˤǤ��� ���Υѥ�᡼����postgresql.conf�ե����롢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���

checkpoint_warning��integer��

�����å��ݥ���ȥ������ȥե����뤬���뤳�Ȥ������ǵ���������å��ݥ���Ȥ��������ǻ��ꤷ���ÿ��������ˤ�ȯ�������硢�����Х����˥�å�������񤭽Ф��ޤ� �ʤ���ϡ�checkpoint_segments��ƤӽФ�ɬ�פ����뤳�Ȥ򼨺����Ƥ��ޤ��ˡ� �ǥե���Ȥ�30�á�30s�ˤǤ��� ���ξ��Ϸٹ��Ф��ޤ��� ���Υѥ�᡼����postgresql.conf�ե����롢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���

17.5.3. ��Ǽ

archive_command��string��

��Ϣ��WAL�ե�����δ�λ�����������Ȥγ�Ǽ��¹Ԥ��륷���륳�ޥ�ɤǤ��� �⤷����ʸ���󤬶��Ǥ���Сʥǥե���ȤǤ��ˡ�WAL���������ֽ�����̵���Ǥ��� ʸ������Τ����ʤ�%p�ϡ���Ǽ�����ե���������Хѥ����֤�������졢�����ơ�%f�ϥե�����̾�Τ��ִ����ޤ��� �ʤ��Υѥ�̾�ϥ����Фκ���ѥǥ��쥯�ȥꡢ�Ĥޤꡢ���饹���Υǡ����ǥ��쥯�ȥ꤫������Хѥ��Ǥ����� ���ޥ����Ǽºݤ�%ʸ����������ˤ�%%����Ѥ��ޤ��� ���ܤ�������23.3.1�򻲾Ȥ��������� ���Υѥ�᡼����postgresql.conf�ե����롢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���

�����������˸¤äơ��ޤ����λ��˸¤äơ�������ȴ������֤��֤��ͤˤ��뤳�Ȥ����Υ��ޥ�ɤǤϽ��פǤ����ʲ�����򼨤��ޤ���

archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
archive_command = 'copy "%p" /mnt/server/archivedir/"%f"'  # Windows

archive_timeout (integer)

archive_command�ϴ�λ����WAL�������Ȥ��Ф��ƤΤ߸ƤӽФ���ޤ��� �����Ф���������WALή�̤��ʤ��ʽ�����Ԥ�ʤ��ʤ��δ��֤�����˾�硢�ȥ�󥶥������δ�λ�ȥ��������ֳ�Ǽ�ΰ�ؤΰ����ʵ�Ͽ�Ȥδ֤�Ĺ���ˤ錄���ٱ䤬���뤳�Ȥˤʤ�ޤ��� �Ť�̤���������֤Υǡ�����ɤ����뤫�ˤĤ������¤��դ��뤿��ˡ�archive_timeout�����ꤷ�ơ�����Ū�˥����Ф򿷤���WAL�������Ȥ����Ū���ڤ��ؤ���褦�ˤ��뤳�Ȥ��Ǥ��ޤ��� ���Υѥ�᡼����0����礭����С������Ф�����Υ������ȥե������ڤ��ؤ���������ÿ��вᤷ�����˿������������ȥե�������ڤ��ؤ��ޤ��� �����ڤ��ؤ��ˤ��������Ĥ����줿���������ֺѤߥե�����ϴ����˴�λ�����ե������Ʊ���礭������Ĥ��Ȥ����դ��Ƥ��������� ���Τ��ᡢ���˾�����archive_timeout����Ѥ��뤳�ȤϤ����ᤷ�ޤ��� ��Ǽ�ΰ����ĥ�����Ƥ��ޤ��ޤ��� �̾�ʤ��ʬñ�̤�archive_timeout���꤬����Ū�Ǥ��� ���Υѥ�᡼���� postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤߤ������ǽ�Ǥ���