WAL��Ĵ���ˤĤ��Ƥξܺ٤���27.3�⻲�Ȥ��Ƥ���������
���Υѥ���������Ǥ���С�PostgreSQL�����Ф�fsync()
�����ƥࡦ�������ȯ�Ԥ����ꡢ�⤷����Ʊ������ˡ�ǡ�wal_sync_method�ȡ˹�����ʪ��Ū�˥ǥ������˽��ޤ줿���γξڤ����褦�Ȼ�ߤޤ�������ϥ��ڥ졼�ƥ������ƥ�⤷���ϥϡ��ɥ�����������å��夷���塢�μ¤˥ǡ����١������饹�����Ӥ������֤����줵���뤳�Ȥ��Ǥ��ޤ���
�Ȥϸ��äƤ⡢fsync�λ��Ѥ���ǽ�������ޤ����ȥ��������ߥåȤ����ȡ�PostgreSQL�ϡ����ڥ졼�ƥ������ƥब������Խ��ߤ�ǥ��������Ǥ��Ф��ޤ��Ե����ʤ���Фʤ�ޤ���fsync��̵���ˤ���ȡ����ڥ졼�ƥ������ƥ�ϡ����ߤδ˾ײ��ʥХåե���ˡ�����դ����������ٱ�˴ؤ��ƺ����ι�ư���뤳�Ȥ��Ǥ��ޤ����������������ǽ����夵���ޤ����Ȥϸ��äƤ⡢�����ƥब����å��夹��С��Ǹ�Τ����Ĥ��Υ��ߥåȤ��줿�ȥ�������ϡ������⤷���ϴ����˼������ǽ��������ޤ����ǰ��ξ�硢�����Բ�ǽ�ʥǡ������˲���ȯ�����ޤ����ʥǡ����١������եȥ��������Τ�ΤΥ���å���ϡ������Ǥϴ����װ��Ǥ� ����ޤ��������ڥ졼�ƥ������ƥ��٥�Υ���å��夬�˲��δ�����������������ޤ�����
���δ������Τ��ᡢfsync���Ф�������Ū�������������¸�ߤ��ޤ����fsync��̵���ˤ�������Ԥ�����������������Թ礬ȯ�������������ΤʺƵ�ư�ݥ���Ȥ�¸�ߤ����ͤʻ��ϡ�����������ɤ߹��ߤκݤˤΤ�̵���ˤ�������Ԥ⤤�ޤ�������˾��fsync��ͭ���ˤ�������Ԥ⤤�ޤ����ǥե���Ȥϡ�����¤ο������γ��ݤΤ��ᡢfsync��ͭ���ˤ��Ƥ���ޤ����⤷���Ѥ��Ƥ��륪�ڥ졼�ƥ������ƥࡢ�ϡ��ɥ����������ϲ�ҡʤ⤷���ϥХåƥ�Хå����åסˤ��ꤹ��ΤǤ���С�fsync��̵���ˤ��뤳�Ȥ�Ƥ���Ƥ��ɤ��Ǥ��礦��
���Υѥ�����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ��� ���Υѥ�����̵���ˤ����硢full_page_writes��Ʊ����̵���ˤ��뤳�Ȥ�Ƥ���Ƥ���������
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�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���
���Υѥ�����ͭ���ξ�硢PostgreSQL�����Фϥǥ������ڡ��������Ƥ����Ƥ����å��ݥ���Ȥθ塢���Υڡ����κǽ���ѹ�������WAL�˽��ߤޤ��� ���ڥ졼�ƥ������ƥब����å��夷�����˿ʹ���Υڡ������ߤ�����ޤǤ�������äƤ��ʤ���ǽ�������뤿�ᡢ���줬ɬ�פǤ��� ���ξ�硢�ǥ�������Υڡ����ϸŤ��ǡ����ȿ������ǡ��������ߤ�����֤ˤʤ�ޤ��� �̾�WAL�����¸�����ԥ�٥���ѹ��ǡ����ϡ�����å����Υꥫ�Х���ˤ��������ڡ��������줵����ˤ��Խ�ʬ�Ǥ��� �����ʥڡ�������������ڡ��������Τ�����Ǥ��뤳�Ȥ��ݾڤ��ޤ��� ��������WAL�˽��ޤʤ���Фʤ�ʤ��ǡ����̤����ä��ޤ��� ��WAL�����Ͼ�˥����å��ݥ���Ȥ���Ϥޤ뤿�ᡢ�����å��ݥ���ȸ�κǽ���ѹ����ˤ����Ԥ����Ȥ���ʬ�Ǥ��� ���äơ������ڡ����Ф��Υ����Ȥ��㸺������ˡ��1�Ĥϡ������å��ݥ���ȴֳ֥ѥ��������䤹���ȤǤ�����
���Υѥ�����̵���ˤ���ȡ��̾�����®�٤��夬��ޤ��� �����������ڥ졼�ƥ������ƥ�Υ���å�����Ÿ��㳲�θ�Υǡ����١�����»��⤿�餹���⤷��ޤ��� ���Υꥹ���Ͼ������ʤ���fsync��̵���ˤ������Ȼ��Ƥ��ޤ��� �ʥХåƥ�Хå����åץ���ȥ�����ʤɤΡ˥ϡ��ɥ���������ƤǤ���ۤ����٥�ޤ���ʬ���ߤδ��������㸺�Ǥ���ե����륷���ƥॽ�եȥ�������ReiserFS 4�ʤɡˤ�����С����Υѥ�����̵���ˤ��Ƥ�������⤷��ޤ���
���Υѥ�����̵���ˤ��Ƥ�ݥ���ȥ�����ꥫ�Х��PITR���Ѥ�WAL���������֤λ��Ѥ˱ƶ�����ޤ���� ��23.3�Ȥ��Ƥ��������ˡ�
���Υѥ�����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ��� �ǥե���Ȥ�on�Ǥ���
WAL�ǡ����Ѥ˶�ͭ������ǻ��Ѥ��������̤Ǥ��� �ǥե���Ȥ�64�����Х��ȡ�64kB�ˤǤ��� �ǡ����Ϥ��줾��Υȥ������ߥåȻ��˥ǥ������˽Ф���뤿�ᡢ����Ȥ��Ƥϡ�1�Ĥ�ŵ��Ū�ʥȥ�������ˤ�ä����������WAL�ǡ�������¸�Ǥ��뽼ʬ���礭���Ǥ��뤳�ȤΤߤ�ɬ�פǤ��� ���Υѥ����ϥ����е�ư���Τ������ǽ�Ǥ���
���Υѥ��������ä�����ȡ����Ѥ��Ƥ��륪�ڥ졼�ƥ������ƥ�Υǥե���ȹ��������Ƥ���System V��ͭ����θ³���ۤ������PostgreSQL���Ԥ������Ȥʤ뤳�Ȥ�����ޤ���ɬ�פǤ���С��ɤ��ͤˤ��Ƥ��Υѥ�����Ĵ�����뤫�ˤĤ�����16.4.1�Ȥ���������
���ߥåȥ쥳���ɤ�WAL�Хåե��˽�����ȡ��Хåե���ǥ��������Ǥ��Ф����Υߥ���ñ�̤λ��ֺ��ٱ�Ǥ��������ƥ���٤��⤯�����������˥��ߥåȽ������Ǥ����ȥ�������ʣ��¸�ߤ�����硢�����ʳ����ٱ���֤Ǥ����ʣ���Υȥ����������٤�fsync()
�����ƥॳ����Τߤǡ�Ϳ����줿��������ǥ��ߥåȤ��뤳�Ȥ��Ǥ��ޤ������������⤷¾�Υȥ��������ߥåȤǤ�����֤ˤʤ�ʤ���С������ٱ��̵�̤ˤʤ�ޤ����ȸ������Ȥϡ������Хץ����������Υ��ߥåȥ쥳���ɤ������ִ֤�¾�Υȥ������ʹԤ��Ƥ��� commit_siblings�ˤ������ʤ��Ȥ�¹Ԥ���ޤ����ǥե���Ȥ��ͤϥ������ٱ�̵���ˤǤ���
commit_delay�ٱ��¹Ԥ�������ɬ�פȤ����Ʊ���˳����Ƥ���ȥ�������κǾ����Ǥ��� ����礭���ͤϡ��ٱ�����δ֤ˡ����ʤ��Ȥ�1�Ĥ�¾�Υȥ��������ߥåȤν��������碌�뤳�Ȥ�μ¤ˤ��ޤ��� �ǥե���Ȥ�5�ȥ�������Ǥ���
��ưŪWAL�����å��ݥ���ȴ֤κ���ֳ֤�����ե����륻�����ȡʤ��줾��Υ������Ȥ��̾�16�ᥬ�Х��ȡˤǻ��ꤷ�ޤ��� �ǥե���Ȥ�3�������ȤǤ��� ���Υѥ�����postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���
��ưŪWAL�����å��ݥ���ȴ֤κ���ֳ֤���ñ�̤ǻ��ꤷ�ޤ��� �ǥե���Ȥ�5ʬ��5min�ˤǤ��� ���Υѥ�����postgresql.conf�ե����롢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���
�����å��ݥ���ȥ������ȥե����뤬���뤳�Ȥ������ǵ���������å��ݥ���Ȥ��������ǻ��ꤷ���ÿ��������ˤ�ȯ�������硢�����Х����˥�å�������Ф��ޤ� �ʤ���ϡ�checkpoint_segments��ƤӽФ�ɬ�פ����뤳�Ȥ����Ƥ��ޤ��ˡ� �ǥե���Ȥ�30�á�30s�ˤǤ��� ���ξ��Ϸٹ��Ф��ޤ��� ���Υѥ�����postgresql.conf�ե����롢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤ������ǽ�Ǥ���
��Ϣ��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_command�ϴ�λ����WAL�������Ȥ��Ф��ƤΤ߸ƤӽФ���ޤ��� �����Ф���������WALή�̤��ʤ��ʽ�����Ԥ�ʤ��ʤ��δ��֤�����˾�硢�ȥ�������δ�λ�ȥ��������ֳ�Ǽ�ΰ�ؤΰ����ʵ�Ͽ�Ȥδ֤�Ĺ���ˤ錄���ٱ䤬���뤳�Ȥˤʤ�ޤ��� �Ť�̤���������֤Υǡ�����ɤ����뤫�ˤĤ������¤��դ��뤿��ˡ�archive_timeout�����ꤷ�ơ�����Ū�˥����Ф���WAL�������Ȥ����Ū���ڤ��ؤ���褦�ˤ��뤳�Ȥ��Ǥ��ޤ��� ���Υѥ�����0����礭����С������Ф�����Υ������ȥե������ڤ��ؤ���������ÿ��вᤷ�����˿������������ȥե�������ڤ��ؤ��ޤ��� �����ڤ��ؤ��ˤ��������Ĥ����줿���������ֺѤߥե�����ϴ����˴�λ�����ե������Ʊ���礭������Ĥ��Ȥ����դ��Ƥ��������� ���Τ��ᡢ���˾�����archive_timeout����Ѥ��뤳�ȤϤ����ᤷ�ޤ��� ��Ǽ�ΰ����ĥ�����Ƥ��ޤ��ޤ��� �̾�ʤ��ʬñ�̤�archive_timeout���꤬����Ū�Ǥ��� ���Υѥ����� postgresql.conf�ե������⡢�ޤ��ϡ������ФΥ��ޥ�ɥ饤��ǤΤߤ������ǽ�Ǥ���