From: Bruce Momjian Date: 2010年5月25日 02:56:36 +0000 (+0000) Subject: Add Japanese Implementation file to CVS. X-Git-Tag: REL9_0_BETA2~76 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=f4e9436026455f7118de094696ca33e86555979e;p=postgresql.git Add Japanese Implementation file to CVS. --- diff --git a/contrib/pg_upgrade/IMPLEMENTATION.jp b/contrib/pg_upgrade/IMPLEMENTATION.jp new file mode 100644 index 00000000000..3623b744096 --- /dev/null +++ b/contrib/pg_upgrade/IMPLEMENTATION.jp @@ -0,0 +1,97 @@ +------------------------------------------------------------------------------ +PG_MIGRATOR: ç3⁄4å ́でPOSTGRESQLをアップグレãƒ1⁄4ド +------------------------------------------------------------------------------ + +あるメ゠̧ャãƒ1⁄4ãƒaãƒaãƒ1⁄4ã‚1から他のメ゠̧ャãƒ1⁄4ãƒaãƒaãƒ1⁄4ã‚1にPostgreSQLデãƒ1⁄4タベãƒ1⁄4ã‚1をアップグレãƒ1⁄4ドするこだ̈だ̄ +è2»ç” ̈の掛かるä1⁄2œæ\­ã§ã™ã€‚マイナãƒaãƒaãƒ1⁄4ã‚1でだ̄、単に新規実行å1⁄2¢å1⁄4ã‚’イãƒ3ã‚1トãƒ1⁄4ルするだけで、ç3⁄4åœ ̈å­˜åœ ̈する +デãƒ1⁄4ã‚¿ã®æ› ́新を心配する必要がありã3⁄4せん。しかし、メ゠̧ャãƒ1⁄4アップグレãƒ1⁄4ドでだ̄、pg_dumpをä1⁄2¿ç” ̈して +å… ̈てのデãƒ1⁄4タを゠̈゠̄ã‚1ポãƒ1⁄4トし、新規ãƒaãƒaãƒ1⁄4ã‚1をイãƒ3ã‚1トãƒ1⁄4ルし、新規゠̄ラã‚1タをinitdbの実行でä1⁄2œæˆã—、 +そして旧デãƒ1⁄4タをイãƒ3ポãƒ1⁄4トしãaければãaりã3⁄4ã›ã‚“ã€‚å· ̈大ãaデãƒ1⁄4タがあるå ́合、このä1⁄2œæ\­ã ̄ç› ̧応の時間を必 +要だ̈しã3⁄4す。大きすぎるデãƒ1⁄4タにå ̄3⁄4処するにだ̄、å3⁄4“æ\のデãƒ1⁄4ã‚¿ã«åŠ ãˆã¦ã‚ ̈゠̄ã‚1ポãƒ1⁄4トされたデãƒ1⁄4タを共にæ 1⁄4 +ç ́ã™ã‚‹ã«è¶3りå3⁄4—ã‚‹ä1⁄2™è£•が必要にãaるため、さらにã‚1トレãƒ1⁄4゠̧をè31⁄4å…\しãaければãaらãaいå ́合も考えられã3⁄4す。 + +多くのアップグレãƒ1⁄4ドの際に必要だ̈ãaるä1⁄2œæ\­æ™‚間だ̈ディã‚1゠̄ç©o間をpg_migratorだ̄削æ ̧›ã—ã3⁄4す。 + +------------------------------------------------------------------------------ +ä1⁄2•を行うのか +------------------------------------------------------------------------------ + +pg_migratorだ̄ç3⁄4å ́で既存のデãƒ1⁄4ã‚¿ã®æ› ́新ä1⁄2œæ\­ã‚’行うツãƒ1⁄4ルです。アップグレãƒ1⁄4ドのä ̧­ã«ã ̄、デãƒ1⁄4タのディ +ã‚1゠̄ä ̧Šã«ãŠã‘ã‚‹è¡ ̈ç3⁄4å1⁄2¢å1⁄4ã‚’å¤‰æ› ́してしã3⁄4いã3⁄4す。pg_migratorだ̄このようãaアップグレãƒ1⁄4ドの手助けにだ̄ãa +りã3⁄4せん。しかし、多くのアップグレãƒ1⁄4ドだ̄ユãƒ1⁄4ザ定ç3⁄4©ã®ãƒ†ãƒ1⁄4ブルのディã‚1゠̄ä ̧Šã®è¡ ̈ç3⁄4å1⁄2¢å1⁄4ã‚’å¤‰æ› ́しã3⁄4せん。 +これらのå ́合、pg_migratorだ̄旧デãƒ1⁄4タベãƒ1⁄4ã‚1゠̄ラã‚1タから新デãƒ1⁄4タベãƒ1⁄4ã‚1゠̄ラã‚1タに既存のユãƒ1⁄4ザ定ç3⁄4©ã® +テãƒ1⁄4ブルを移動させるこだ̈ができã3⁄4す。 + +ç3⁄4å ́での移行がç3⁄4実性をå ̧ ̄ã3るかどうかをæ±o定するï1⁄4’つの要ç ́ ãŒå­˜åœ ̈しã3⁄4す。 + +第ä ̧€ã«ã€ã‚ ̄ラã‚1ã‚¿å†…ã®å… ̈てのテãƒ1⁄4ブルだ̄、テãƒ1⁄4ブルヘッダ、テãƒ1⁄4ブルトレイラãƒ1⁄4、およã3タプルヘッダのディ +ã‚1゠̄ä ̧Šã®è¡ ̈ç3⁄4æ–1å1⁄4ã®åŒä ̧€ã®ãƒ‡ã‚£ã‚1゠̄ä ̧Šè¡ ̈ç3⁄4å1⁄2¢å1⁄4ã‚’共有しã3⁄4す。もし、これが旧バãƒ1⁄4゠̧ョãƒ3のPostgreSQLだ̈新 +規バãƒ1⁄4゠̧ョãƒ3のPostgreSQLで変わっているだ̈したãaら、既存のテãƒ1⁄4ブルを新規゠̄ラã‚1タに、pg_migrator +だ̄移行するこだ̈ができã3⁄4せん。旧デãƒ1⁄4タをpg_dumpし、そしてそのå3⁄4Œãã®ãƒ‡ãƒ1⁄4タを新規゠̄ラã‚1タにイãƒ3ポãƒ1⁄4ト +しãaければãaりã3⁄4せん。 + +第äoŒã«ã€ï1⁄4’つのメ゠̧ャãƒ1⁄4PostgreSQLバãƒ1⁄4゠̧ョãƒ3é–“ã§ã€å… ̈てのデãƒ1⁄4タ型だ̄同ä ̧€ã®ãƒã‚¤ãƒŠãƒaå1⁄2¢å1⁄4ã§ãaければãa +りã3⁄4せん。 + +------------------------------------------------------------------------------ +どのように動くのか +------------------------------------------------------------------------------ + +アップグレãƒ1⁄4ド間でpg_migratorをä1⁄2¿ç” ̈するにだ̄、新規のディレ゠̄トãƒaで、最新のバãƒ1⁄4゠̧ョãƒ3をä1⁄2¿ç” ̈して、 +無垢の゠̄ラã‚1タをイãƒ3ã‚1トãƒ1⁄4ルするこだ̈から始めã3⁄4す。イãƒ3ã‚1トãƒ1⁄4ルがçμ‚äo†ã™ã‚‹ã ̈、新規゠̄ラã‚1タにだ̄、新 +実行å1⁄2¢å1⁄4ã ̈、通å ̧ ̧のtemplate0、template1、およã3postgresが含ã3⁄4れã3⁄4すが、ユãƒ1⁄4ザ定ç3⁄4©ã®ãƒ†ãƒ1⁄4ブル +だ̄含ã3⁄4れã3⁄4せん。この時ç‚1で、新旧のpostmasterを共に停止し、pg_migratorをèμ·å‹•させã3⁄4す。 + +pg_migratorがèμ·å‹•された時ç‚1ã§ã€å… ̈ã¦ã®å¿…é ˆå®Ÿè¡Œå1⁄2¢å1⁄4ãŒæƒã£ã¦ã„て、äoˆæœŸã™ã‚‹ãƒãƒ1⁄4゠̧ョãƒ3ç•a号が内包さ +れいているかどうかをpg_migratorがç¢oè ̈1⁄4しã3⁄4す。その検è ̈1⁄4æ‰‹é †ã ̄、同時に新旧の$PGDATAディレ゠̄トãƒa +がäoˆæœŸã™ã‚‹ãƒ•ァイルだ̈ディレ゠̄トãƒaが正しく配ç1⁄2®ã•れているかをç¢oèaã—ã3⁄4す。このç¢oèaæ‰‹é †ãŒé¦–å°3⁄4è‰ ̄く完äo† +すれば、pg_migratorだ̄旧postmasterをèμ·å‹•し、旧゠̄ラã‚1タにあるメタデãƒ1⁄4タをç¢o保するため +pg_dumpall --schema-onlyを実行しã3⁄4す。pg_dumpallで生成されたこのã‚1゠̄ãƒaプトだ̄、新規゠̄ラã‚1 +ã‚¿å†…ã®å… ̈てのユãƒ1⁄4ザ定ç3⁄4©ã‚aブ゠̧ェ゠̄トを再ä1⁄2œæˆã™ã‚‹ãŸã‚ã€å3⁄4Œã®æ‰‹é †ã§ä1⁄2¿ç” ̈されã3⁄4す。 + +pg_dumpallでä1⁄2œæˆã•れたã‚1゠̄ãƒaプトだ̄ユãƒ1⁄4ザ定ç3⁄4©ã‚aブ゠̧ェ゠̄トのみを再ä1⁄2œæˆã™ã‚‹ã けで、シã‚1テム定ç3⁄4©ã® +ã‚aブ゠̧ェ゠̄トだ̄ä1⁄2œæˆã—ãaいこだ̈にæ3 ̈意が必要です。新゠̄ラã‚1タにだ̄最新バãƒ1⁄4゠̧ョãƒ3のPostgreSQLでä1⁄2œæˆã• +れたシã‚1テム定ç3⁄4©ã‚aブ゠̧ェ゠̄ãƒˆãŒå­˜åœ ̈しã3⁄4す。 + +pg_migratorが旧゠̄ラã‚1タからメタデãƒ1⁄4タをä ̧€åo¦å–りå‡oすだ̈、既存のデãƒ1⁄4タを含んだ新規゠̄ラã‚1タを「同 +期させる」のに必要ãa数多くのè ̈ˆç®—合わせ処理を行いã3⁄4す。 + +最初に、pg_migratorだ̄旧゠̄ラã‚1ã‚¿å†…ã®å… ̈てのテãƒ1⁄4ブルç©o間ディレ゠̄トãƒa名をä ̧€æ™‚çš„ã«å¤‰æ› ́しã3⁄4す。新゠̄ +ラã‚1タだ̄同ä ̧€ã®ãƒ†ãƒ1⁄4ブルç©o間ディレ゠̄トãƒaをä1⁄2¿ç” ̈しãaければãaらず、もしも最çμ‚æ®μ階でメタデãƒ1⁄4タを +pg_migratorがイãƒ3ポãƒ1⁄4トする際にそれらのディレ゠̄トãƒaãŒå­˜åœ ̈しているだ̈、もう先にだ̄行きã3⁄4せんだ̈ä ̧ +æo€ã‚’æ1⁄4ã‚‰ã—ã3⁄4す。そして、旧ã‚μãƒ1⁄4バ列にæ 1⁄4ç ́ã•ã‚Œã¦ã„ã‚‹å… ̈てのトラãƒ3ザ゠̄ショãƒ3æƒ…å ±ã‚’å‡çμã—ã3⁄4す。 + +次にpg_migratorだ̄、ã‚3ãƒŸãƒƒãƒˆçŠ¶æ…‹æƒ…å ±ã ̈、旧゠̄ラã‚1タから新゠̄ラã‚1タだ̧「次にä ̧Žãˆã‚‰ã‚Œã‚‹ãƒˆãƒ©ãƒ3ザ゠̄シ +ョãƒ3識åˆ\子」を複写しã3⁄4ã™ã€‚ã“ã®æ‰‹é †ã«ã‚ˆã£ã¦ã€æ–°ã‚ ̄ラã‚1タからç‰1å®šã®ã‚¿ãƒ—ãƒ«ãŒå ̄視だ̈ãaるこだ̈が保è ̈1⁄4され +ã3⁄4す。pg_migratorだ̄ユãƒ1⁄4ザ定ç3⁄4©ã®ãƒ†ãƒ1⁄4ブルをイãƒ3ポãƒ1⁄4ト・゠̈゠̄ã‚1ポãƒ1⁄4トしãaいこだ̈、å3⁄4“って新゠̄ラã‚1タ +におけるトラãƒ3ザ゠̄ショãƒ3識åˆ\子だ̄旧デãƒ1⁄4タでのトラãƒ3ザ゠̄ショãƒ3識åˆ\子だ̈ä ̧€è‡ ́しãaければãaらãaいこだ̈を、 +思いå‡oしてください。pg_migratorだ̄åŒæ™‚ã«ãƒ­ã‚°å…ˆè¡Œæ› ̧きè3⁄41⁄4みï1⁄4ˆWALï1⁄4‰ã®é–‹å§‹ã‚¢ãƒ‰ãƒ¬ã‚1を旧゠̄ラã‚1タから +新゠̄ラã‚1タに複写しã3⁄4す。 + +ここã3⁄4でæ\るだ̈、pg_migratorだ̄旧゠̄ラã‚1タで定ç3⁄4©ã•れたそれぞれのデãƒ1⁄4タベãƒ1⁄4ã‚1にå ̄3⁄4しcreatedbを実 +行し、旧゠̄ラã‚1タから取å3⁄4—したメタデãƒ1⁄4タを再構ç ̄‰ã—ã3⁄4す。 + +新゠̄ラã‚1ã‚¿ã§å… ̈てのデãƒ1⁄4タベãƒ1⁄4ã‚1がä1⁄2œæˆã•れた暁にだ̄、pg_migratorだ̄TOASTãƒaレãƒ1⁄4ショãƒ3の名前付けに +挑戦しã3⁄4す。TOASTテãƒ1⁄4ブルだ̄大きすぎる行を越えたデãƒ1⁄4タï1⁄4ˆã¤ã3⁄4り、分å‰2れたテãƒ1⁄4ブルï1⁄4‰ã‚’æ 1⁄4ç ́ã™ã‚‹ãŸã‚ +にä1⁄2¿ç” ̈されã3⁄4す。タプルからTOASTテãƒ1⁄4ブルだ̧デãƒ1⁄4タを移動しようだ̈ã‚μãƒ1⁄4バが判断した時ç‚1で、タプル内の +元だ̈ãaるã‚1ロットにポイãƒ3タをæ 1⁄4ç ́ã—ã3⁄4す。そのポイãƒ3タにだ̄TOASTテãƒ1⁄4ブルのrelfilenodeï1⁄4ˆã¤ã3⁄4り、 +ファイル名ï1⁄4‰ãŒå«ã3⁄4れã3⁄4す。これがç¤o唆するだ̈ころだ̄、TOASTされたデãƒ1⁄4タを含むどんãaテãƒ1⁄4ブルでも、そ +れぞれのTOASTポイãƒ3タにおけるTOASTテãƒ1⁄4ブルのファイル名を持っているこだ̈です。å3⁄4“って、新規゠̄ラã‚1 +タ内で新しくä1⁄2œæˆã•れた時に、TOASTテãƒ1⁄4ブルが旧名称を持ち続けるこだ̈がだ̈ても大切です。 +CREATE TABLEだ̄TOASTテãƒ1⁄4ブルに名前をつけるこだ̈にä1⁄2•ã‚‚é–¢ä ̧Žã—ã3⁄4せん。TOASTテãƒ1⁄4ブル名が旧名をå1⁄4•き +継いでいるこだ̈をç¢oè ̈1⁄4するため、pg_migratorだ̄旧゠̄ラã‚1タからメタデãƒ1⁄4タをイãƒ3ポãƒ1⁄4ãƒˆã™ã‚‹å‰ã«ã€å… ̈て +のTOASTテãƒ1⁄4ブルの名称を保存しã3⁄4す。ファイル名反転のため、pg_migratorだ̄単に適切ãa名前を付けた +ç©oファイルをä1⁄2œæˆã—、ã‚μãƒ1⁄4バだ̄その名前の衝çaã‚’検å‡oするだ̈無åŠ1にしã3⁄4す。 + +次に、pg_migratorだ̄ä»\前にpg_dumpallがä1⁄2œæˆã—たã‚1゠̄ãƒaプトを実行しã3⁄4す。このã‚1゠̄ãƒaプトだ̄旧゠̄ラ +ã‚1タから新゠̄ラã‚1ã‚¿ã«å… ̈éƒ ̈揃ったユãƒ1⁄4ザ定ç3⁄4©ãƒ¡ã‚¿ãƒ‡ãƒ1⁄4タをåŠ1果的にä1⁄2œæˆã—ã3⁄4す。そのã‚1゠̄ãƒaプトが完äo†ã™ã‚‹ +だ̈、新postmasterを停止したå3⁄4Œã€pg_migratorだ̄プレãƒ1⁄4ã‚1ホルダãƒ1⁄4TOASTテãƒ1⁄4ブルを削除し、新゠̄ラã‚1 +タ内に適切ãaTOASTタプル名をè ̈­å®šã—ã3⁄4す。 + +最å3⁄4Œã«ã€pg_migratorだ̄それぞれのユãƒ1⁄4ザ定ç3⁄4©ãƒ†ãƒ1⁄4ブルだ̈それがã‚μポãƒ1⁄4トするイãƒ3デッ゠̄ã‚1だ̈TOASTテãƒ1⁄4 +ブルを旧゠̄ラã‚1タから新゠̄ラã‚1タだ̧、ãƒaãƒ3゠̄、ã3⁄4ただ̄複写しã3⁄4す。この最å3⁄4Œã®æ‰‹é †ã§pg_migratorだ̄、新 +゠̄ラã‚1タのpg_class.relfilenodeにä ̧€è‡ ́するよう、それぞれのãƒaレãƒ1⁄4ショãƒ3に新規名称をå‰2りå1⁄2“てã3⁄4す。 +ä ̧Šè ̈˜ã§æ¦‚要をç¤oしたように、TOASTファイル名だ̄維持されã3⁄4す。 + +pg_migratorè ̈­è ̈ˆã®é‡è¦ãa機èƒ1⁄2だ̄、元だ̈ãaる゠̄ラã‚1タが損傷されãaいようにãaっているこだ̈ã§ã™ã€‚æ› ́新ä ̧­ +に問題がç™o生してもä»\前のバãƒ1⁄4゠̧ョãƒ3を続けてä1⁄2¿ç” ̈するこだ̈ができã3⁄4す。

AltStyle によって変換されたページ (->オリジナル) /