<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PostgreSQL Archives - คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</title>
	<atom:link href="https://docs.ruk-com.cloud/category/postgresql/feed" rel="self" type="application/rss+xml" />
	<link>https://docs.ruk-com.cloud/category/postgresql</link>
	<description>แพลตฟอร์มที่ดีที่สุดรองรับการทำ Cluster, HA, Load Balancer, Auto Scale ผ่านการคลิ๊กเพียงไม่กี่ครั้ง พร้อมระบบจัดการที่ง่าย คิดค่าบริการตามการใช้งานจริง</description>
	<lastBuildDate>Tue, 11 May 2021 10:54:57 +0000</lastBuildDate>
	<language>th</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.2</generator>
	<item>
		<title>ติดตั้ง PostGIS Extension กับฐานข้อมูล PostgreSQL สำหรับโฮสติ้ง GeoServer</title>
		<link>https://docs.ruk-com.cloud/postgis-extension</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:42:37 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9738</guid>

					<description><![CDATA[<p>PostGIS เป็นส่วนขยายเชิงพื้นที่สำหรับฐานข้อมูล PostgreS [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/postgis-extension">ติดตั้ง PostGIS Extension กับฐานข้อมูล PostgreSQL สำหรับโฮสติ้ง GeoServer</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>PostGIS</strong> เป็นส่วนขยายเชิงพื้นที่สำหรับฐานข้อมูล PostgreSQL object-relational ซึ่งเพิ่มการสนับสนุน geographic objects ที่อนุญาตให้รันโลเคชันคิวรีใน SQL ด้วยส่วนขยาย PostGIS PostgreSQL สามารถใช้เป็นฐานข้อมูลเชิงพื้นที่ฝั่งแบ็คเอนด์สำหรับ GIS</p>



<p>ในทางกลับกัน <strong>GeoServer</strong> เป็นเซิร์ฟเวอร์ Java ซอฟต์แวร์ แบบโอเพนซอร์สที่ใช้สำหรับสร้าง แบ่งปันและจัดการข้อมูลเชิงพื้นที่ การใช้ GeoServer มาตรฐานเปิดจะเผยแพร่ข้อมูลจากแหล่งข้อมูลเชิงพื้นที่ที่สำคัญมาดูวิธีขยายฐานข้อมูล PostgreSQL ด้วย PostGIS และ deploy GeoServer เป็น Env Ruk-Com เพื่อทำงานกับข้อมูลภูมิสารสนเทศที่แชร์อยู่</p>



<h2 class="wp-block-heading" id="create-environment">การสร้าง Environment</h2>



<p>ก่อนอื่นคุณต้องสร้าง Env เพื่อเป็นพื้นฐานสำหรับแอปพลิเคชันของคุณ</p>



<p>1. ลงชื่อเข้าใช้บัญชี Ruk-Com ของคุณคลิกที่ปุ่ม Create environment</p>



<p>2. เลือก Tomcat 7 เป็นแอปพลิเคชันเซิร์ฟเวอร์ของคุณและ PostgreSQL 9 เป็นฐานข้อมูลที่คุณต้องการใช้ ตั้งค่าลิมิตทรัพยากรสำหรับแต่ละโหนดและป้อนชื่อ Env (เช่น geoserver) ยืนยันการสร้าง Env</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/create-postgis-environment.png" alt="postgis extension to postgresql for geoserver hosting create postgis environment"/></figure>



<p>3.ภายในไม่กี่นาที Env ของคุณจะปรากฏบนแดชบอร์ด</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/geoserver-environment.png" alt="postgis extension to postgresql for geoserver hosting geoserver environment"/></figure>



<h2 class="wp-block-heading" id="geosever-deployment">การ Deploy GeoServer</h2>



<p>ตอนนี้เราสามารถดำเนินการ deploy ซอฟต์แวร์ GeoServer ได้แล้ว</p>



<p>1.เปิด link # <a href="http://geoserver.org/"><strong>GeoServer official web-site</strong></a> และดาวน์โหลดเวอร์ชันล่าสุดที่มีความเสถียรที่ archive บนเว็บ</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/download-geoserver.png" alt="postgis extension to postgresql for geoserver hosting download geoserver"/></figure>



<p>2.เมื่อการดาวน์โหลดเสร็จสิ้นให้แตก archive ไฟล์ที่คุณมี</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/extracted-archive.png" alt="postgis extension to postgresql for geoserver hosting extracted archive"/></figure>



<p>3. กลับไปที่แดชบอร์ด Ruk-Com และอัปโหลดไฟล์ geoserver.war ซึ่งอยู่ในโฟลเดอร์ที่มีเนื้อหา archive ไฟล์ที่แยกออกมา</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/upload-geoserver.png" alt="postgis extension to postgresql for geoserver hosting upload geoserver"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/geoserver-war-file.png" alt="postgis extension to postgresql for geoserver hosting geoserver war file"/></figure>



<p>4. สุดท้ายให้กดปุ่ม Deploy to.. ถัดจากไฟล์ .war นี้ในลิสแพ็กเกจและเลือกสร้างก่อน Env เพื่อ deploy แอป GeoServer</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/deploy-geoserver.png" alt="postgis extension to postgresql for geoserver hosting deploy geoserver"/></figure>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/geoserver-deployment.png" alt="postgis extension to postgresql for geoserver hosting geoserver deployment"/></figure>



<h2 class="wp-block-heading" id="postgis-configurations">การกำหนดค่า PostGIS</h2>



<p>ในขั้นตอนนี้เราจะเพิ่มส่วนขยาย PostGIS สำหรับฐานข้อมูล PostgreSQL ของเรา</p>



<p>1. เปิด phpPgAdmin สำหรับฐานข้อมูล PostgreSQL ใน Env ของคุณโดยกดปุ่ม Open in browser ที่อยู่ข้าง ๆ</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/open-geoserver.png" alt="postgis extension to postgresql for geoserver hosting open geoserver"/></figure>



<p>2. เข้าสู่ระบบด้วยข้อมูลรับรอง PostgreSQL ที่คุณได้รับทางอีเมลหลังจากการสร้าง Env</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/postgresql-credentials.png" alt="postgis extension to postgresql for geoserver hosting postgresql credentials"/></figure>



<p>3. ตอนนี้คุณต้องสร้างฐานข้อมูลใหม่ สำหรับการกดปุ่ม Create database ในหน้าต่างที่เปิดอยู่</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/create-postgres-database.png" alt="postgis extension to postgresql for geoserver hosting create postgres database"/></figure>



<p>4. กรอกแบบฟอร์ม:</p>



<ul><li>ระบุชื่อสำหรับฐานข้อมูลใหม่ (ในกรณีของเราคือ nyc)</li><li>เลือกการเข้ารหัส UTF8 จากลิสรายการ</li><li>กรอกข้อมูลในช่องอื่น ๆ หากจำเป็น</li></ul>



<p>กดปุ่ม <strong>Create</strong></p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/new-database-creation.png" alt="postgis extension to postgresql for geoserver hosting new database creation"/></figure>



<p>5. เลือกฐานข้อมูลที่สร้างขึ้นใหม่ในลิสที่ขยายออกมาบนพาเนลด้านซ้ายมือและไปที่แท็บ SQL</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/sql-nyc-database.png" alt="postgis extension to postgresql for geoserver hosting sql nyc database"/></figure>



<p>6. ป้อน SQL คิวรี่ต่อไปนี้และดำเนินการ:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch; 
CREATE EXTENSION postgis_tiger_geocoder;</code></pre></div>



<p>โดยที่แอททริบิวท์คือว:</p>



<ul><li>postgis: สำหรับการเปิดใช้งาน PostGIS (รวมถึง raster)</li><li>postgis_topology: สำหรับการเปิดใช้งานโทโพโลยี</li><li>fuzzystrmatch: จำเป็นต้องมีการจับคู่แบบ fuzzy สำหรับ Tiger</li><li>postgis_tiger_geocoder: สำหรับ US Tiger Geocoder ที่เปิดใช้งาน</li></ul>



<p class="box-note"><strong>หมายเหตุ </strong>: อย่าลืมติ๊กเลือกในบรรทัด Paginate results ใต้แบบฟอร์มเพื่อไม่ให้เกิดข้อผิดพลาดใด ๆ</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/queries-executing.png" alt="postgis extension to postgresql for geoserver hosting queries executing"/></figure>



<p>เสร็จเรียบร้อยแล้ว! การเปิดใช้งานส่วนขยาย PostGIS และให้สามารถใช้งานได้</p>



<h2 class="wp-block-heading" id="dataset-import">การนำเข้าชุดข้อมูล</h2>



<p>ตอนนี้เรามานำเข้า PostGIS dump ของชุดข้อมูลไปยังฐานข้อมูล PostgreSQL ตัวอย่างเช่นเราจะใช้ link # nyc_buildings.zip กับชุดข้อมูลอาคารจากนิวยอร์กซิตี้</p>



<p>1. ดาวน์โหลดแพ็คเกจ link # nyc_buildings.zip และแตกไฟล์ คุณจะได้รับไฟล์ nyc_buildings.sql</p>



<p>2. ป้อน phpPgAdmin สำหรับ PostgreSQL ด้วยข้อมูลประจำตัวของคุณและไปที่แท็บ SQL สำหรับฐานข้อมูลอีกครั้งด้วยการกดขยาย PostGIS ออกมา (ในกรณีของเราคือฐานข้อมูล nyc)</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/sql-nyc-database.png" alt="postgis extension to postgresql for geoserver hosting sql nyc database"/></figure>



<p>3. เรียกดูชุดข้อมูลที่แยกออกมา (เช่น nyc_buildings.sql) บนคอมพิวเตอร์ของคุณและอัปโหลดเป็นสคริปต์ SQL</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/execute-sql-query.png" alt="postgis extension to postgresql for geoserver hosting execute sql query"/></figure>



<p>4. <em>ติ๊กช่อง Paginate results</em> ที่อยู่ใต้ใต้แบบฟอร์มออกและ <strong>Execute </strong>สคริปต์</p>



<h2 class="wp-block-heading" id="connect-geoserver-with-database">เชื่อมต่อ GeoServer กับฐานข้อมูล</h2>



<p>ตอนนี้เราต้องเชื่อมต่อแอปพลิเคชัน GeoServer กับฐานข้อมูล PostgreSQL เราจะสร้างที่เก็บข้อมูลสำหรับฐานข้อมูล nyc</p>



<p>1. ไปที่แดชบอร์ด Ruk-Com และเปิด GeoServer Env (กด <strong>Open in browser ที่อยู่</strong>ข้าง ๆ)</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/open-geoserver.png" alt="postgis extension to postgresql for geoserver hosting open geoserver"/></figure>



<p>2. ในแท็บ opened browser ให้เข้าสู่ระบบด้วยข้อมูลรับรอง GeoServer ที่เป็นค่าเริ่มต้น (admin/geoserver)</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/log-in-to-geoserver.png" alt="postgis extension to postgresql for geoserver hosting log in to geoserver"/></figure>



<p>3. จากนั้นไปที่ <strong>Data > Stores</strong> ในพาเนลด้านซ้ายมือแล้วคลิก <strong>Add new Store</strong> </p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/add-new-store.png" alt="postgis extension to postgresql for geoserver hosting add new store"/></figure>



<p>4. ในหน้าต่าง <strong>New data source</strong> ให้กดตัวเลือก <strong><em>PostGIS &#8211; PostGIS Database</em></strong></p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/postgis-source.png" alt="postgis extension to postgresql for geoserver hosting postgis source"/></figure>



<p>5. ในหน้าต่าง <strong>New Vector Data Source</strong>ที่ปรากฏให้กรอกข้อมูลในฟิลด์ต่อไปนี้:</p>



<ul><li><strong>Basic Store Info</strong><br>เลือก <strong>cite </strong>ในส่วนของ <em>Workspace </em>จากลิสรายการป้อน <strong>Data Source Name</strong> (ตัวอย่างเช่น nyc_buildings) และคำอธิบายสั้น ๆ ตรง <strong>Description</strong></li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/basic-store-info.png" alt="postgis extension to postgresql for geoserver hosting basic store info"/></figure>



<ul><li>PostGIS database <strong>Connection Parameters</strong><br><em><em><strong>host</strong></em> – โฮสต์ฐานข้อมูลสามารถนำมาจากปุ่ม Info</em></li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/database-host.png" alt="postgis extension to postgresql for geoserver hosting database host"/></figure>



<p><strong><em>database</em></strong> &#8211; ชื่อฐานข้อมูลที่คุณสร้างด้วยส่วนขยาย PostGIS (ในกรณีของเราคือ nyc)<br><strong><em>user</em></strong> และ <strong><em>passwd</em></strong>&#8211; ข้อมูลรับรองสำหรับ PostgreSQL ที่คุณได้รับขณะสร้างสภาพ Env</p>



<p>ช่องอื่น ๆ จะเป็นค่าเริ่มต้นสามารถปล่อยให้เป็นค่าตามนั้นได้</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="319" height="293" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/data-source-connection-parameters.png" alt="" class="wp-image-16230" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/data-source-connection-parameters.png 319w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/data-source-connection-parameters-300x276.png 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/data-source-connection-parameters-24x22.png 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/data-source-connection-parameters-36x33.png 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/data-source-connection-parameters-48x44.png 48w" sizes="(max-width: 319px) 100vw, 319px" /></figure>



<p>นอกจากนี้ให้เลื่อนลงเล็กน้อยและตรวจสอบว่ามีการติ๊กที่ <strong>Validate connections</strong> หรือไม่ จากนั้นกด <strong>Save</strong></p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/validate-connections.png" alt="postgis extension to postgresql for geoserver hosting validate connections"/></figure>



<p>The connection is established and as a result you can see the uploaded to PostreSQL&nbsp;<em>nyc_buildings</em> in the list of application resources.</p>



<h2 class="wp-block-heading" id="publish-and-preview-dataset">เผยแพร่ และ พรีวิว ชุดข้อมูล</h2>



<p>ในที่สุดเราต้องกำหนดค่าอีกเล็กน้อยเพื่อ publish ชุดข้อมูล (เช่น nyc_buildings) และเพื่อให้ geographical object ที่ต้องการพร้อมใช้งาน</p>



<p>1. <strong>New Vector Data Source</strong> (บันทึกไว้ในขั้นตอนก่อนหน้า) จะปรากฏในลิส <strong>New Layers</strong><br>กด Publish ถัดจากเลเยอร์ที่เพิ่ม (เช่น nyc_buildings)</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/layer-publishing.png" alt="postgis extension to postgresql for geoserver hosting layer publishing"/></figure>



<p>2. ในหน้าต่าง Edit Layer ที่เปิดอยู่ให้ป้อน <strong>Title </strong>และ  <strong>Abstract</strong> สำหรับทรัพยากรของคุณ</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/layer-title.png" alt="postgis extension to postgresql for geoserver hosting layer title"/></figure>



<p>3. เลื่อนลงมาเล็กน้อยแล้วกดปุ่ม <strong><em>Compute from data</em></strong> และ <strong><em>Compute from native bounds </em></strong>ในบล็อกการกำหนดค่า <strong>Bounding Boxes</strong></p>



<p>4. จากนั้นเปลี่ยนไปที่แท็บ Publishing และตรวจสอบให้แน่ใจว่าได้เลือกเลเยอร์สไตล์ <strong>polygon </strong>เป็นค่าเริ่มต้น</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/layer-style.png" alt="postgis extension to postgresql for geoserver hosting layer style"/></figure>



<p>5. สุดท้ายเลื่อนลงไปที่ด้านล่างของหน้าแล้วกดปุ่ม Save เลเยอร์ถูก publish แล้ว</p>



<p>6. ตอนนี้คุณสามารถไปที่เมนู Data> Layer Preview จะเห็นลิสของเลเยอร์ทั้งหมดที่กำหนดค่าไว้ใน GeoServer พร้อมตัวอย่างที่มีให้ในรูปแบบต่าง ๆ สำหรับแต่ละเลเยอร์</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/layer-preview.png" alt="postgis extension to postgresql for geoserver hosting layer preview"/></figure>



<p>7. กดปุ่ม OpenLayers ถัดจากเลเยอร์ของคุณ (ในกรณีของเราคือ NYC buildings)</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/openlayers.png" alt="postgis extension to postgresql for geoserver hosting openlayers"/></figure>



<p class="box-note"><strong>หมายเหตุ</strong> : คุณสามารถเลือกโหมดการแสดงตัวอย่างอื่น ๆ หรือดาวน์โหลดทรัพยากรของคุณในรูปแบบต่าง ๆ โดยใช้ตัวเลือกในลิสถัดจากเลเยอร์ที่ต้องการ</p>



<p>8. ดังนั้นคุณจะเห็น geographical object ที่ต้องการ ในกรณีของเรานี่คือแผนที่แบบ interactive ของอาคารในเมืองนิวยอร์ก</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgis-extension-to-postgresql-for-geoserver-hosting/nyc-map.png" alt="postgis extension to postgresql for geoserver hosting nyc map"/></figure>



<p>คุณสามารถใช้แผนที่แสดงตัวอย่างเพื่อซูมและเลื่อนไปรอบ ๆ ตลอดจนแสดงแอททริบิวท์ของฟีเจอร์ต่าง ๆ ขอให้สนุกไปกับมัน</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/postgis-extension">ติดตั้ง PostGIS Extension กับฐานข้อมูล PostgreSQL สำหรับโฮสติ้ง GeoServer</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>การนำเข้าและส่งออก Dump Files ไปยัง PostgreSQL</title>
		<link>https://docs.ruk-com.cloud/dump-import-export-to-postgresql</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:41:31 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9736</guid>

					<description><![CDATA[<p>สร้าง Environment ฐานข้อมูล 2 อัน และเชื่อมต่อโดยใช้ de [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/dump-import-export-to-postgresql">การนำเข้าและส่งออก Dump Files ไปยัง PostgreSQL</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>สร้าง Environment ฐานข้อมูล 2 อัน และเชื่อมต่อโดยใช้ desktop client (ทางเราใช้ pgAdmin4 เป็นตัวอย่าง เรียนรู้เพิ่มเติมใน  tutorial ของเรา</p>



<figure class="wp-block-image size-large"><img decoding="async" width="424" height="351" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-env-1.jpg" alt="" class="wp-image-16147" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-env-1.jpg 424w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-env-1-300x248.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-env-1-24x20.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-env-1-36x30.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-env-1-48x40.jpg 48w" sizes="(max-width: 424px) 100vw, 424px" /></figure>



<h2 class="wp-block-heading" id="dump-export-from-postgresql">การส่งออก Dump จาก PostgreSQL</h2>



<p>1. เราใส่ Environment 2 อัน <strong>db-cluster.app.ruk-com.cloud</strong> เป็นฐานข้อมูลต้นฉบับ และ <strong>db-destination.app.ruk-com.cloud</strong> เป็นแหล่งข้อมูลสำรองปลายทาง ของกลุ่มเซิร์ฟเวอร์ ในโปรแกรม <strong>pgAdmin4</strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="800" height="392" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1.jpg" alt="" class="wp-image-16154" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1.jpg 800w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1-300x147.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1-768x376.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1-36x18.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/backup-screen-1-48x24.jpg 48w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>2. คลิกขวาที่ฐานข้อมูลที่ต้องการเพื่อสำรองข้อมูล เช่น Ruk-Com และเลือก <strong>Backup</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="574" height="613" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup.jpg" alt="" class="wp-image-16182" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup.jpg 574w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-281x300.jpg 281w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-34x36.jpg 34w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-45x48.jpg 45w" sizes="(max-width: 574px) 100vw, 574px" /></figure>



<p>3. ระบุชื่อไฟล์ dump ของคุณและรูปแบบของไฟล์เอาต์พุต เช่น <strong>mybackup</strong> และรูปแบบไฟล์ <strong>Tar</strong> ตามลำดับ</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="701" height="401" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup.jpg" alt="" class="wp-image-16183" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup.jpg 701w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup-300x172.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup-36x21.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup-48x27.jpg 48w" sizes="(max-width: 701px) 100vw, 701px" /></figure>



<p>4. คลิกที่แท็บ <strong>Dump options </strong>และเลือกตัวเลือก backup สำหรับ database objects</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="661" height="691" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup2.jpg" alt="" class="wp-image-16185" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup2.jpg 661w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup2-287x300.jpg 287w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup2-24x24.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup2-34x36.jpg 34w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-backup-popup2-46x48.jpg 46w" sizes="(max-width: 661px) 100vw, 661px" /></figure>



<p>5. สุดท้ายคลิกปุ่ม <strong>Backup</strong> หน้าต่างแสดงสถานะสำเร็จจะปรากฏขึ้น</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="364" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done.jpg" alt="" class="wp-image-16190" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done.jpg 800w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done-300x137.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done-768x349.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done-24x11.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done-36x16.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-backup-done-48x22.jpg 48w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>ไฟล์ dump ของคุณจะถูกเก็บไว้ในโฮมไดเรกทอรีของผู้ใช้หรือตามเส้นทางที่คุณระบุไว้ที่โฮสต์ที่ pgAdmin4 กำลังทำงานอยู่</p>



<p></p>



<h2 class="wp-block-heading" id="dump-import-to-postgresql">การนำเข้า dump ไปยัง PostgreSQL</h2>



<p>1. สร้างฐานข้อมูลว่างเปล่าที่เซิร์ฟเวอร์ปลายทาง</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="503" height="287" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db.jpg" alt="" class="wp-image-16191" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db.jpg 503w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-300x171.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-36x21.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-48x27.jpg 48w" sizes="(max-width: 503px) 100vw, 503px" /></figure>



<p>2. ตั้งชื่อ <strong>Database</strong> ให้เหมือนกัน เช่น rukcomcloud หรือ ชื่ออื่นตามตามความต้องการ</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="704" height="552" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-step1.jpg" alt="" class="wp-image-16194" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-step1.jpg 704w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-step1-300x235.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-step1-24x19.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-step1-36x28.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-create-db-step1-48x38.jpg 48w" sizes="(max-width: 704px) 100vw, 704px" /></figure>



<p>3. ในการดำเนินการนำเข้า dump ไปยังฐานข้อมูล PostgreSQL ให้คลิกขวาที่ฐานข้อมูลที่สร้างขึ้นใหม่และเลือก <strong>Restore</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="439" height="480" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-db-restore-1.jpg" alt="" class="wp-image-16196" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-db-restore-1.jpg 439w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-db-restore-1-274x300.jpg 274w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-db-restore-1-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-db-restore-1-33x36.jpg 33w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-db-restore-1-44x48.jpg 44w" sizes="(max-width: 439px) 100vw, 439px" /></figure>



<p>4. เลือกรูปแบบไฟล์ที่ใช้ระหว่างการดำเนินการสำรองฐานข้อมูล สำหรับตัวอย่างเราใช้รูปแบบ tar ระบุชื่อของไฟล์สำรอง หรือ browse file ที่ด้านขวาของฟิลด์ <strong>Filename </strong>เพื่อเลือกไฟล์ที่จะใช้ restore</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="701" height="403" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-brows-file.jpg" alt="" class="wp-image-16199" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-brows-file.jpg 701w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-brows-file-300x172.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-brows-file-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-brows-file-36x21.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-brows-file-48x28.jpg 48w" sizes="(max-width: 701px) 100vw, 701px" /></figure>



<p>5. ตั้งค่าตัวเลือกการกู้คืนขั้นสูงหากมีความต้องการที่จะตั้ง</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="700" height="401" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-step2.jpg" alt="" class="wp-image-16200" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-step2.jpg 700w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-step2-300x172.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-step2-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-step2-36x21.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-step2-48x27.jpg 48w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p>6. สุดท้ายคลิกที่ปุ่ม <strong>Restore</strong></p>



<p>7. กลับไปที่ฐานข้อมูล rukcomcloud ที่กลุ่มเซิร์ฟเวอร์ปลายทาง และตรวจสอบให้แน่ใจว่าฐานข้อมูลได้รับการกู้คืนอย่างถูกต้องพร้อมเนื้อหาทั้งในเซิร์ฟเวอร์ Master และ Slave</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1586" height="804" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck.jpg" alt="" class="wp-image-16203" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck.jpg 1586w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-300x152.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-1024x519.jpg 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-768x389.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-1536x779.jpg 1536w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-36x18.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-restore-done-recheck-48x24.jpg 48w" sizes="(max-width: 1586px) 100vw, 1586px" /></figure>



<p>เพียงเท่านี้ก็ restore ข้อมูลเรียบร้อยแล้ว หวังว่าวิธีการนี้จะเป็นประโยชน์สำหรับคุณ</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/dump-import-export-to-postgresql">การนำเข้าและส่งออก Dump Files ไปยัง PostgreSQL</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>วิธีสร้าง PostgreSQL และเชื่อมต่อกับ pgAdmin</title>
		<link>https://docs.ruk-com.cloud/remote-access-to-postgresql</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:40:06 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9733</guid>

					<description><![CDATA[<p>คุณสามารถจัดการฐานข้อมูลได้ โดยไม่ต้องล็อกอินเข้าใช้งาน [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/remote-access-to-postgresql">วิธีสร้าง PostgreSQL และเชื่อมต่อกับ pgAdmin</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>คุณสามารถจัดการฐานข้อมูลได้ โดยไม่ต้องล็อกอินเข้าใช้งานแดชบอร์ดของ Ruk-Com Cloud นี่คือวิธีสร้าง และใช้งาน</p>



<h2 class="wp-block-heading"><strong>การสร้าง Environment</strong></h2>



<p><span style="font-weight: 400;">หน้าจอการจัดการฐานข้อมูลสามารถเข้าถึงได้ผ่าน public IP หรือ Ruk-Com Endpoints (ไม่ต้องใช้ public IP) มาดูทั้งสองตัวเลือกในการสร้าง Environment ฐานข้อมูลกันดีกว่า</span></p>



<h2 class="wp-block-heading"><strong>วิธี Environment ด้วย public IP</strong></h2>



<p><span style="font-weight: 400;">1. ล็อกอินเข้าสู่ Ruk-Com Cloud</span></p>



<p><span style="font-weight: 400;">2. คลิกปุ่ม <strong>New Environment</strong> ที่ด้านบนซ้ายของแดชบอร์ด</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="548" height="113" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-env.jpg" alt="" class="wp-image-15656" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-env.jpg 548w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-env-300x62.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-env-24x5.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-env-36x7.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-env-48x10.jpg 48w" sizes="(max-width: 548px) 100vw, 548px" /></figure>



<p><span style="font-weight: 400;"><span>3. ใน <strong>Environment Topology wizard</strong> เลือก PostgreSQL เป็นฐานข้อมูลที่คุณต้องการใช้ ในกรณีที่คุณต้องการใช้ database cluster เพียงแค่เลื่อนสวิตช์ Auto-Clustering ไปทางขวาให้เป็น ON จากนั้นเพิ่ม Public IPv4 โดยการเลื่อนสวิตช์ไปทางขวาเช่นกัน หลังจากนั้นให้ป้อนชื่อของ Environment ตัวอย่างเช่น mypostgres และคลิกปุ่ม <span>Create</span></span><br></span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="979" height="609" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip.jpg" alt="" class="wp-image-15664" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip.jpg 979w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip-300x187.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip-768x478.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip-24x15.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/new-postgresql-cluster-public-ip-48x30.jpg 48w" sizes="(max-width: 979px) 100vw, 979px" /></figure>



<p><span style="font-weight: 400;"><span style="font-weight: 400;"></span></span></p>



<p>อาจใช้เวลาสักครู่หนึ่งในการสร้าง Environment</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="855" height="350" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip.jpg" alt="" class="wp-image-15668" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip.jpg 855w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip-300x123.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip-768x314.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip-24x10.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip-36x15.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgres-public-ip-48x20.jpg 48w" sizes="(max-width: 855px) 100vw, 855px" /></figure>



<p>ทั้ง 2 โหนดจะมี public IP</p>



<h2 class="wp-block-heading"><strong>วิธีสร้าง Environment แบบไม่ใช้ public IP</strong></h2>



<p>1. <span style="font-weight: 400;">วิธีการสร้างจะเหมือนกับด้านบน แต่ไม่ต้องเลื่อนสวิตช์ Public IP เป็น ON</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="978" height="608" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip.jpg" alt="" class="wp-image-15674" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip.jpg 978w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip-300x187.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip-768x477.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip-24x15.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-postgress-no-public-ip-48x30.jpg 48w" sizes="(max-width: 978px) 100vw, 978px" /></figure>



<p><span style="font-weight: 400;">2. เมื่อ Environment พร้อมแล้วให้ไปที่ Settings <img loading="lazy" decoding="async" width="27" height="26" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/Screen-Shot-2021-05-05-at-12.28.00.png" alt="" class="alignnone size-full wp-image-15683" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/Screen-Shot-2021-05-05-at-12.28.00.png 27w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/Screen-Shot-2021-05-05-at-12.28.00-24x24.png 24w" sizes="(max-width: 27px) 100vw, 27px" /> แล้วคลิกที่แท็บ Endpoints และคลิก Add เพื่อสร้างการแมปพอร์ตใหม่</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="671" height="613" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-setting-endpoint.jpg" alt="" class="wp-image-15681" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-setting-endpoint.jpg 671w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-setting-endpoint-300x274.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-setting-endpoint-24x22.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-setting-endpoint-36x33.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-setting-endpoint-48x44.jpg 48w" sizes="(max-width: 671px) 100vw, 671px" /></figure>



<p>3. <span style="font-weight: 400;">เลือก Node ที่คุณต้องการเข้าถึงและ Name เลือกเป็น PostgreSQL  พารามิเตอร์ที่เหลือ Private Port, Protocol, Public Port, และ Access URL จะถูกสร้างขึ้นโดยอัตโนมัติ</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="489" height="301" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-add-endpoint.jpg" alt="" class="wp-image-15689" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-add-endpoint.jpg 489w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-add-endpoint-300x185.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-add-endpoint-24x15.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-add-endpoint-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgress-add-endpoint-48x30.jpg 48w" sizes="(max-width: 489px) 100vw, 489px" /></figure>



<p><span style="font-weight: 400;">4. การแมปพอร์ตกับ database master node เสร็จแล้วจะมีลักษณะเช่นนี้</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="997" height="197" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint.jpg" alt="" class="wp-image-15688" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint.jpg 997w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint-300x59.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint-768x152.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint-24x5.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint-36x7.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/after-adding-endpoint-48x9.jpg 48w" sizes="(max-width: 997px) 100vw, 997px" /></figure>



<p><span style="font-weight: 400;">หากจำเป็นต้องใช้งานทั้ง Master และ Slave ให้ทำเหมือนกันได้เลย</span></p>



<p></p>



<h2 class="wp-block-heading"><strong>การ Remote เข้ามาใช้งาน PostgreSQL บนคลาวด์</strong></h2>



<p><span style="font-weight: 400;">การเชื่อมต่อกับฐานข้อมูลโดยใช้​ Desktop Client หรือ Web Client </span><span style="font-weight: 400;">เราใช้ pgAdmin4 ซึ่งเป็นแพลตฟอร์มการบริหารและการพัฒนาโอเพนซอร์สที่ได้รับความนิยมมากที่สุด และมีคุณลักษณะหลากหลายสำหรับ PostgreSQL สามารถดาวน์โหลดได้ที่&nbsp; </span><a href="https://www.pgadmin.org/download/"><span style="font-weight: 400;">https://www.pgadmin.org/download/</span></a><span style="font-weight: 400;"> หรือถ้าคุณต้องการใช้งานผ่าน Web client คุณสามารถติดตั้งเพิ่มเติมได้เอง ด้วยการติดตั้ง&nbsp; pgAdmin (yaml <a href="https://github.com/jelastic-jps/pgadmin/blob/master/manifest.yaml">manifest</a>) ผ่านช่องทาง import environment ได้ (วิธีการ <a href="https://docs.jelastic.com/environment-import/">import</a> )</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1340" height="803" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen.jpg" alt="" class="wp-image-15692" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen.jpg 1340w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen-300x180.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen-1024x614.jpg 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen-768x460.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-screen-48x29.jpg 48w" sizes="(max-width: 1340px) 100vw, 1340px" /></figure>



<p><span style="font-weight: 400;"></span></p>



<p>1. หากคุณมี database cluster จะมีความสะดวกมากกว่าในการจัดการกลุ่มของเซิร์ฟเวอร์ทั้งหมดที่อยู่ใน cluster</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="590" height="327" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group.jpg" alt="" class="wp-image-15694" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group.jpg 590w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group-300x166.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group-24x13.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group-36x20.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group-48x27.jpg 48w" sizes="(max-width: 590px) 100vw, 590px" /></figure>



<p><span style="font-weight: 400;">2. จากนั้นป้อนชื่อกลุ่ม เช่น Remote Postgres</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="501" height="203" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group2.jpg" alt="" class="wp-image-15696" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group2.jpg 501w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group2-300x122.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group2-24x10.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group2-36x15.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-group2-48x19.jpg 48w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<p><span style="font-weight: 400;"><span>3. หลังจากนั้นให้เพิ่มเซิร์ฟเวอร์ฐานข้อมูลทั้งหมดในกลุ่มทีละรายการ มาดูว่าจะมีวิธีทำสำหรับ ฐานข้อมูลหลักได้อย่างไร คลิกขวาที่กลุ่ม (เช่น remotepostgres) แล้วเลือก Create > Server.</span></span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="535" height="260" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server.jpg" alt="" class="wp-image-15699" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server.jpg 535w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-300x146.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-36x17.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-48x23.jpg 48w" sizes="(max-width: 535px) 100vw, 535px" /></figure>



<p>4. ป้อนชื่อเซิร์ฟเวอร์ (เช่น Master สำหรับฐานข้อมูลหลักของ cluster ของคุณ) ที่แท็บ General</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="502" height="550" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server2.jpg" alt="" class="wp-image-15702" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server2.jpg 502w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server2-274x300.jpg 274w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server2-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server2-33x36.jpg 33w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server2-44x48.jpg 44w" sizes="(max-width: 502px) 100vw, 502px" /></figure>



<p>5. ในขั้นตอนนี้คุณต้องระบุการตั้งค่าการเข้าถึงเซิร์ฟเวอร์ขึ้นอยู่กับว่าคุณสร้างฐานข้อมูลโดยมี หรือไม่มี public IP ตามที่อธิบายไว้ข้างต้น</p>



<p></p>



<h3 class="wp-block-heading"><strong>การเชื่อมผ่าน Public IP</strong></h3>



<p><span style="font-weight: 400;">ไปที่แท็บ Connection และป้อน public IP ของฐานข้อมูลหลักของคุณที่ฟิลด์&nbsp; Host name/address ระบุ Username และ Password ที่คุณได้รับในขณะสร้าง Environment ฐานข้อมูลทางอีเมล</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="500" height="553" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-public-ip.jpg" alt="" class="wp-image-15704" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-public-ip.jpg 500w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-public-ip-271x300.jpg 271w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-public-ip-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-public-ip-33x36.jpg 33w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-public-ip-43x48.jpg 43w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<p></p>



<h3 class="wp-block-heading"><strong>การเชื่อมต่อผ่าน Endpoints</strong></h3>



<p><span style="font-weight: 400;">ใช้ URL และ Public Port จากการแมปพอร์ตที่สร้างขึ้น และตั้งค่าการเชื่อมต่อเซิร์ฟเวอร์ฐานข้อมูล ชื่อผู้ใช้และรหัสผ่านเหมือนกับที่อธิบายไว้ข้างต้น</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="502" height="551" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-endpoint.jpg" alt="" class="wp-image-15706" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-endpoint.jpg 502w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-endpoint-273x300.jpg 273w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-endpoint-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-endpoint-33x36.jpg 33w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-via-endpoint-44x48.jpg 44w" sizes="(max-width: 502px) 100vw, 502px" /></figure>



<p><span style="font-size: inherit;">คุณอาจเปลี่ยนตัวเลือกเฉพาะอื่น ๆ ได้หากคุณค่อนข้างมั่นใจในการกระทำการนั้น ๆ </span>สุดท้ายกด <strong>Save</strong> เพื่อการเปลี่ยนแปลงและคุณจะเห็นว่าการเชื่อมต่อถูกสร้างขึ้นสำเร็จ</p>



<p><span style="font-weight: 400;">สำหรับตัวอย่างของเราทั้งฐานข้อมูล master และฐานข้อมูล slave จะแสดงดังต่อไปนี้</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1340" height="803" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen.jpg" alt="" class="wp-image-15707" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen.jpg 1340w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen-300x180.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen-1024x614.jpg 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen-768x460.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/postgres-mange-screen-48x29.jpg 48w" sizes="(max-width: 1340px) 100vw, 1340px" /></figure>



<p><span style="font-weight: 400;">ตอนนี้สามารถใช้งาน PostgreSQL บนคลาวด์ผ่านการ Remote ได้แล้ว</span></p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/remote-access-to-postgresql">วิธีสร้าง PostgreSQL และเชื่อมต่อกับ pgAdmin</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL Replication</title>
		<link>https://docs.ruk-com.cloud/postgresql-replication</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:39:07 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9732</guid>

					<description><![CDATA[<p>Replication&#160;เป็นเทคโนโลยีพื้นฐานสำหรับเซิร์ฟเวอร์ฐ [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/postgresql-replication">PostgreSQL Replication</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>Replication</strong>&nbsp;เป็นเทคโนโลยีพื้นฐานสำหรับเซิร์ฟเวอร์ฐานข้อมูล เนื่องจากการหยุดทำงาน หรือข้อมูลสูญหายอาจส่งผลให้ลดความสามารถในการเข้าถึง ลดประสิทธิภาพการทำงาน และความเชื่อมั่นของผลิตภัณฑ์</p>



<p>การใช้การจำลองข้อมูลจากเซิร์ฟเวอร์หลัก (master) ไปยัง standby เซิร์ฟเวอร์ (slaves) อย่างน้อยหนึ่งตัวจะลดความเป็นไปได้ที่ข้อมูลจะสูญหายได้ ด้วย PostgreSQL คุณสามารถสร้างคลัสเตอร์ฐานข้อมูลของ Master-Slave topology ด้วย standby เซิร์ฟเวอร์ ตั้งแต่หนึ่งตัวขึ้นไป</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgresql-database-replication/postgresql-replication-scheme.png" alt="postgresql replication scheme"/></figure>



<p>การใช้ WAL (Write-Ahead Logging) เป็นวิธีการจำลองแบบที่เร็วที่สุดพร้อมประสิทธิภาพที่ยอดเยี่ยมซึ่งเรียกว่า asynchronous replication ในกรณีนี้เซิร์ฟเวอร์ฐานข้อมูลตัวหลัก (Master) จะทำงานในโหมดการเก็บข้อมูลถาวร เพียงแค่เขียนไฟล์ WAL ไปยังหน่วยจัดเก็บข้อมูล (Storage) และกระจายข้อมูลไปยังเซิร์ฟเวอร์ฐานข้อมูล Standby (slave) ที่ทำงานในโหมด recovery ไฟล์เหล่านี้จะถูกโอนไปยังฐานข้อมูล Standby ทันทีหลังจากการเขียนเสร็จสิ้น</p>



<p>ดังนั้นเรามาดูว่าพารามิเตอร์การกำหนดค่าหลักถูกตั้งค่าเพื่อกำหนดค่าคลัสเตอร์ฐานข้อมูล PostgreSQL ของ Master-Slave topology ที่มีความพร้อมใช้งานสูงโดยการตั้งค่าการจำลองแบบ hot_ standby (หรือสตรีมมิ่ง) ให้กับ slaves อย่างน้อยหนึ่งรายการที่สามารถคิวรี่เป็นฐานข้อมูลแบบอ่านได้อย่างเดียว</p>



<p>เนื่องจาก PostgreSQL เปลี่ยนการกำหนดค่าในทุกรุ่นที่มาใหม่บทความนี้จะใช้ได้กับเวอร์ชัน 13.2 ซึ่งเป็นเวอร์ชันล่าสุดในขณะนี้</p>



<h2 class="wp-block-heading" id="create-environment">สร้าง Environment</h2>



<p>ในหน้า Dashbard ของ Ruk-Com Cloud จะมี PostgresSQL ที่มาพร้อมกับฟีเจอร์ Auto-Clustering สามารถเรียกได้จากตัวช่วยสร้าง Environment Topology wizard (ปุ่ม NEW ENVIRONMENT) เมื่อเปิดขึ้นมาแล้วให้เลือกซอร์ฟแวร์ฐานข้อมูลเป็น PostgresSQL 12.3 และเปิดสวิตช์ <strong>Auto-Clustering</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="984" height="654" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env.jpg" alt="" class="wp-image-15902" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env.jpg 984w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-300x199.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-768x510.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-24x16.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-36x24.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-48x32.jpg 48w" sizes="(max-width: 984px) 100vw, 984px" /></figure>



<p>หากต้องการข้อมูลเพิ่มเติมสามารถวางเมาส์เหนือเครื่องหมายคำแนะนำเครื่องมือ จะมีคำแนะนำเกี่ยวกับ Topology ขึ้นมา</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="322" height="487" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-help.jpg" alt="" class="wp-image-15903" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-help.jpg 322w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-help-198x300.jpg 198w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-help-16x24.jpg 16w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-help-24x36.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-env-help-32x48.jpg 32w" sizes="(max-width: 322px) 100vw, 322px" /></figure>



<h2 class="wp-block-heading" id="master-postgresql-configuration">การตั้งค่า Master PostgreSQL</h2>



<p>มาดูพารามิเตอร์การกำหนดค่า master node ที่ใช้ในการทำ auto-clustering</p>



<p>1. ค้นหา Environment ของฐานข้อมูลตัว master ในลิสรายการ Environment คลิกปุ่ม Config ของโหนด PostgreSQL ตัว Master</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="854" height="239" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf.png" alt="" class="wp-image-15906" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf.png 854w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf-300x84.png 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf-768x215.png 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf-24x7.png 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf-36x10.png 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-master-conf-48x13.png 48w" sizes="(max-width: 854px) 100vw, 854px" /></figure>



<p>2. เปิดไดเร็กทอรี conf และไปที่ไฟล์ postgresql.conf</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="882" height="424" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf.jpg" alt="" class="wp-image-15908" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf.jpg 882w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf-300x144.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf-768x369.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf-36x17.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conf-48x23.jpg 48w" sizes="(max-width: 882px) 100vw, 882px" /></figure>



<p>การตั้งค่าต่อไปนี้จะเกี่ยวข้องกับ WAL สามารถเปลี่ยนแปลงได้ตามความต้องการ:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>wal_level = hot_standby
max_wal_senders = 10
archive_mode = on
archive_command = &#39;cd .&#39;</code></pre></div>



<p>โดยที่:</p>



<ul><li>พารามิเตอร์ <strong>wal_level</strong> กำหนดปริมาณข้อมูลที่เขียนไปยัง WAL มีสามค่าที่มีความเป็นไปได้:<br>&#8211; <em>minimal</em>&nbsp;– เหลือเพียงข้อมูลที่จำเป็นในการกู้คืนจากความล้มเหลวหรือการปิดระบบฉุกเฉิน<br>&#8211; <em>replica</em>&nbsp;– ค่า default ซึ่งเขียนข้อมูลเพียงพอที่จะรองรับการเก็บถาวรและการจำลองแบบ WAL รวมถึงการรันคิวรีแบบอ่านอย่างเดียวบน standby&nbsp; เซิร์ฟเวอร์ ในรุ่นก่อนหน้านี้ถึงรุ่น 9.6 ค่าที่เก็บถาวรและค่า hot_standby จะได้รับอนุญาตสำหรับพารามิเตอร์นี้ ในรุ่นหลังจากนี้จะเป็นที่ยอมรับในการใช้งานได้ แต่เป็นการแมปกับแบบจำลอง<br>&#8211; <em>logical</em>&nbsp;– ค่าจะเพิ่มข้อมูลที่จำเป็นเพื่อสนับสนุนการ decoding ลอจิกไปยังระดับการบันทึกแบบจำลอง</li><li><strong>max_wal_senders</strong> กำหนดจำนวนสูงสุดของกระบวนการถ่ายโอน WAL ที่รันพร้อมกัน</li><li><strong>archive_mode</strong> อนุญาตให้เก็บ WAL พร้อมกับพารามิเตอร์ <strong>wal_level</strong> (ค่าทั้งหมดเปิดใช้งานการเก็บถาวรยกเว้นค่าที่ต่ำสุด)- archive_command คำสั่ง local shell ที่จะดำเนินการเพื่อเก็บเซ็กเมนต์ WAL ที่เสร็จสมบูรณ์อย่างถาวร โดยค่าเริ่มต้นจะไม่มีการทำอะไรโดยการเรียกใช้งาน ‘cd’ นั่นหมายความว่าการเก็บถาวรถูกปิดใช้งาน คุณอาจลองเปลี่ยนสิ่งต่อไปนี้เพื่อคัดลอก archive ไฟล์ของ WAL ไปยังไดเร็กทอรีปลายทางที่คุณต้องการ (เช่น /tmp/mydata):</li></ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>archive_command = &#39;test ! -f /var/lib/pgsql/data/pg_wal/%f && cp %p /tmp/mydata/%f&#39;</code></pre></div>



<p>หลังจากตั้งค่าเสร็จแล้วกดปุ่ม <strong>Save</strong>&nbsp;ด้านบน</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/postgresql-database-replication/postgresql-conf-archive-command.png" alt="postgresql conf archive command"/></figure>



<ol start="3"><li>เปิดไฟล์ config <strong>pg_hba.conf</strong> อนุญาตให้เชื่อมต่อฐานข้อมูล Standby (slave) โดยระบุพารามิเตอร์ต่อไปนี้:</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>host replication all {standby_IP_address}/32 trust</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1015" height="801" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave.jpg" alt="" class="wp-image-15911" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave.jpg 1015w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave-300x237.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave-768x606.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave-24x19.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave-36x28.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-slave-48x38.jpg 48w" sizes="(max-width: 1015px) 100vw, 1015px" /></figure>



<p>เสร็จสิ้นการกำหนดค่าสำหรับโหนด master มาดำเนินการต่อในการกำหนดค่าสำหรับโหนด Standby (slave)</p>



<h2 class="wp-block-heading" id="configuring-standby">กำหนดค่าโหนด Standby (slave)</h2>



<p>มาตรวจสอบไฟล์การกำหนดค่าที่โหนด Slave มีเพียงสามตัวเลือกที่แยกความแตกต่างของ slave ออกจาก master:</p>



<p>1. เปิดไฟล์ postgresql.conf ค้นหาส่วน Standby Servers ดังที่เห็นเซิร์ฟเวอร์นี้ จะเป็นโหมด Standby อยู่ เพราะว่าพารามิเตอร์ hot_standby นั้นมีสถานะเป็น on ไม่เหมือนกับ master node ที่พารามิเตอร์นี้ถูกคอมเมนต์ไว้</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="910" height="746" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf.jpg" alt="" class="wp-image-15913" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf.jpg 910w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf-300x246.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf-768x630.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf-24x20.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf-36x30.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-conf-48x39.jpg 48w" sizes="(max-width: 910px) 100vw, 910px" /></figure>



<p>2. เลื่อนลงไปที่ท้ายไฟล์ config มีพารามิเตอร์ primary_conninfo ที่ระบุการเชื่อมต่อซึ่ง standby เซิร์ฟเวอร์จะใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่เป็นผู้ส่ง สตริงการเชื่อมต่อต้องระบุชื่อโฮสต์ (หรือ address) ของเซิร์ฟเวอร์ที่ส่งรวมทั้งหมายเลขพอร์ต นอกจากนี้ยังมีชื่อผู้ใช้ที่สอดคล้องกันพร้อมสิทธิ์ที่เหมาะสมบนเซิร์ฟเวอร์ที่ส่ง ต้องระบุรหัสผ่านใน primary_conninfo หรือในไฟล์&nbsp;~/.pgpass แยกต่างหากบนเซิร์ฟเวอร์สำรองหากผู้ส่งต้องการการยืนยันตัวตนด้วยรหัสผ่าน</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="984" height="505" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info.jpg" alt="" class="wp-image-15914" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info.jpg 984w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info-300x154.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info-768x394.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info-36x18.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-conn-info-48x25.jpg 48w" sizes="(max-width: 984px) 100vw, 984px" /></figure>



<p>3. ตัวเลือกสุดท้ายที่ทำให้เซิร์ฟเวอร์ฐานข้อมูลเป็น slave คือความพร้อมใช้งานของไฟล์ <strong>standby.signal</strong> ซึ่งบ่งชี้ว่าเซิร์ฟเวอร์ควรเริ่มการทำงานแบบ hot standby ไฟล์ต้องอยู่ในไดเร็กทอรี PostgreSQL data และอาจว่างเปล่าหรือมีข้อมูลใด ๆ อยู่ เมื่อ slave ได้รับการเลื่อนขึ้นเป็น master ไฟล์นี้จะถูกลบไป</p>



<div class="wp-block-group box-warning"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><strong>หมายเหตุ</strong> :</p>



<p>โปรดทราบว่าตัวเลือกส่วนใหญ่ที่มีการเปลี่ยนแปลงจำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ สามารถทำได้สองวิธี:</p>



<p>1. จากแดชบอร์ดคุณสามารถรีสตาร์ทโหนดใดโหนดหนึ่งหรือทั้งสองโหนดก็ได้</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="649" height="119" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-rep-restart-node.jpg" alt="" class="wp-image-16041" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-rep-restart-node.jpg 649w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-rep-restart-node-300x55.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-rep-restart-node-24x4.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-rep-restart-node-36x7.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-rep-restart-node-48x9.jpg 48w" sizes="(max-width: 649px) 100vw, 649px" /></figure>



<p>2. ทำผ่าน command line interface ผ่านไปยัง Web SSH client โดยคลิกที่ปุ่ม Web SSH ที่โหนดที่ต้องการ เช่น slave</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="607" height="337" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-ssh-restart-node.jpg" alt="" class="wp-image-16042" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-ssh-restart-node.jpg 607w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-ssh-restart-node-300x167.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-ssh-restart-node-24x13.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-ssh-restart-node-36x20.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-ssh-restart-node-48x27.jpg 48w" sizes="(max-width: 607px) 100vw, 607px" /></figure>



<p>และป้อนคำสั่งเพื่อรีสตาร์ทเซิร์ฟเวอร์ฐานข้อมูล:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo service postgresql restart</code></pre></div>
</div></div>



<h2 class="wp-block-heading" id="replication-check">ตรวจสอบการ Replication</h2>



<p>1. เปิดพาเนล <strong>phpPgAdmin</strong> สำหรับฐานข้อมูล <strong>master</strong> โดยคลิกปุ่ม Open in Browser ที่อยู่ข้าง ๆ</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="716" height="170" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-pgadmin.jpg" alt="" class="wp-image-15931" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-pgadmin.jpg 716w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-pgadmin-300x71.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-pgadmin-24x6.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-pgadmin-36x9.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-pgadmin-48x11.jpg 48w" sizes="(max-width: 716px) 100vw, 716px" /></figure>



<p>2. ล็อกอินด้วยข้อมูลรับรองฐานข้อมูลที่ได้รับทางอีเมลก่อนหน้านี้และสร้างฐานข้อมูลใหม่</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="670" height="390" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replicate-create-db.jpg" alt="" class="wp-image-15941" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replicate-create-db.jpg 670w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replicate-create-db-300x175.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replicate-create-db-24x14.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replicate-create-db-36x21.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replicate-create-db-48x28.jpg 48w" sizes="(max-width: 670px) 100vw, 670px" /></figure>



<p>3. จากนั้นคุณควรเปิดพาเนลแอดมินของเซิร์ฟเวอร์ฐานข้อมูลโหนด standby (ในลักษณะเดียวกับ master) และตรวจสอบว่าฐานข้อมูลใหม่ถูกสร้างขึ้นสำเร็จหรือไม่</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="749" height="488" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-create-db-recheck.jpg" alt="" class="wp-image-15944" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-create-db-recheck.jpg 749w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-create-db-recheck-300x195.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-create-db-recheck-24x16.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-create-db-recheck-36x23.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-create-db-recheck-48x31.jpg 48w" sizes="(max-width: 749px) 100vw, 749px" /></figure>



<h2 class="wp-block-heading">Failover Scenario</h2>



<p>PostgreSQL ไม่มี native automatic failover scenario สำหรับคลัสเตอร์ฐานข้อมูลในทางกลับกันเนื่องจากมีโซลูชัน third-party มากมายที่คุณสามารถใช้เพื่อปรับใช้เพื่อให้แน่ใจว่าระบบของคุณมีความพร้อมใช้งานสูง ในขณะเดียวกันคุณอาจสร้างโซลูชันของคุณเองเพื่อหยุดความล้มเหลวของคลัสเตอร์ฐานข้อมูล สถานการณ์หลายอย่างของความล้มเหลวของคลัสเตอร์เป็นไปได้ในชีวิตจริง ในที่นี้เราจะพิจารณาขั้นตอนการทำงานที่พบบ่อยที่สุดเพียงขั้นตอนเดียวเท่านั้นที่สามารถช่วยคุณในการทำ automate failover scenario</p>



<p>Topology เริ่มต้นประกอบด้วยสองโหนด:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="300" height="364" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/postgresql-master-slave-scheme.png" alt="" class="wp-image-15939" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/postgresql-master-slave-scheme.png 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/postgresql-master-slave-scheme-247x300.png 247w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/postgresql-master-slave-scheme-20x24.png 20w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/postgresql-master-slave-scheme-30x36.png 30w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/postgresql-master-slave-scheme-40x48.png 40w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>เมื่อ master node ล้มเหลว slave node จะต้องเลื่อนระดับเป็นโหนด master ใหม่ สามารถทำได้ด้วยยูทิลิตี้ pg_ctl ซึ่งใช้ในการเตรียมใช้งานเริ่มต้นหยุดหรือควบคุมเซิร์ฟเวอร์ PostgreSQL ในการล็อกอินเข้าสู่เซิร์ฟเวอร์ standby ผ่าน Web SSH และใช้คำสั่งดังนี้:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>/usr/pgsql-13/bin/pg_ctl promote -D /var/lib/pgsql/data</code></pre></div>



<p>โดยที่ /var/lib/pgsql/data คือไดเร็กทอรีข้อมูลของฐานข้อมูล</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="719" height="190" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-promote.jpg" alt="" class="wp-image-15947" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-promote.jpg 719w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-promote-300x79.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-promote-24x6.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-promote-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-promote-48x13.jpg 48w" sizes="(max-width: 719px) 100vw, 719px" /></figure>



<p>เมื่อเลื่อนขั้นฐานข้อมูล slave เป็น master แล้ว คุณควรเปลี่ยนสตริงการเชื่อมต่อแอปพลิเคชัน เปลี่ยน entry point ของคลัสเตอร์ฐานข้อมูลเป็นชื่อโฮสต์หรือ IP address ใหม่</p>



<p>กระบวนการ Failover สามารถอาศัยการใช้งาน <strong>pg_isready</strong> utility ที่ตรวจสอบการเชื่อมต่อกับฐานข้อมูล PostgreSQL ได้</p>



<p class="box-note">คุณสามารถสร้างสคริปต์ง่าย ๆ ที่ตรวจสอบความพร้อมใช้งานของเซิร์ฟเวอร์ฐานข้อมูล master&nbsp; และส่งเสริมการ standby ในกรณีที่ master เกิดความล้มเหลว รันสคริปต์ผ่าน link # crontab ที่ slave node ด้วยช่วงเวลาที่เหมาะสม สคริปต์อาจมีลักษณะดังนี้ เรียกว่า failover.sh:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>#!/bin/bash
master=&quot;10.100.2.84&quot;
slave=&quot;10.100.2.85&quot;
status=$(/usr/pgsql-13/bin/pg_isready -d postgres -h $master)
response=&quot;$master:5432 - no response&quot;
if [ &quot;$status&quot; == &quot;$response&quot; ]
then
/usr/pgsql-13/bin/pg_ctl promote -D /var/lib/pgsql/data
echo &quot;Slave promoted to new Master. Change your app connection string to new Master address $slave&quot;
else
echo &quot;Master is alive. Nothing to do.&quot;
fi</code></pre></div>



<p>เมื่อสคริปต์ถูก trigger การเลื่อนขั้น slave เป็น master ผลลัพธ์ของสคริปต์ควรมีลักษณะดังนี้:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="801" height="212" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh.jpg" alt="" class="wp-image-15948" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh.jpg 801w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh-300x79.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh-768x203.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh-24x6.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-sh-48x13.jpg 48w" sizes="(max-width: 801px) 100vw, 801px" /></figure>



<p>ตอนนี้ฐานข้อมูลของคุณกลับมาใช้งานได้แล้วและพร้อมที่จะจัดการ read/write ตาม master address ใหม่</p>



<h2 class="wp-block-heading">Cluster Restoration</h2>



<p>ด้วย master address ใหม่คุณสามารถหลีกเลี่ยงการปรับแต่งสตริงการเชื่อมต่อแอปพลิเคชันของคุณโดยเปลี่ยน ip address ของฐานข้อมูล master ได้อย่างง่ายดาย ในการดำเนินการนี้คุณต้องวาง load balancer ที่ด้านหน้าของคลัสเตอร์ที่จะตรวจสอบสถานะของส่วนประกอบและกำหนดเส้นทางการรับส่งข้อมูลไปยัง master ปัจจุบัน แต่สิ่งนี้อยู่นอกขอบเขตของเอกสารนี้ เราจะสาธิตวิธีการคืนค่าดั้งเดิมของ cluster topology ดังนั้นจึงไม่จำเป็นต้องมีการเปลี่ยนแปลงใด ๆ ที่ส่วน frontend&nbsp;</p>



<p>อีกเหตุผลหนึ่งที่ควรกู้คืน topology เกี่ยวข้องกับการรับรองความสามารถในการปรับสเกลของคลัสเตอร์ Topology แบบดั้งเดิมเท่านั้นที่สามารถปรับสเกลเข้า / ออกในแนวนอนได้</p>



<p>มาดูวิธีการกู้คืนคลัสเตอร์ฐานข้อมูล PostgreSQL หลังจากที่ master เก่าถูกละทิ้งออกจากคลัสเตอร์และ slave เดิมได้รับการเลื่อนขั้นเป็น master</p>



<p>ดังนั้นงานคือ: master ที่ถูกละทิ้งควรกลายเป็น master ที่แท้จริงและ master ในปัจจุบัน (ที่เลื่อนขั้นมาจาก slave) ควรกลายเป็น slave ที่แท้จริงแทน</p>



<p>ข้อมูลเบื้องต้นคือ:<br>&#8211; ข้อมูลเริ่มต้นคือคลัสเตอร์ฐานข้อมูลประกอบด้วยโหนด master สองโหนด (IP: 10.2.100.84) และ slave (IP: 10.2.100.85)<br>&#8211; Master node หยุดทำงานและฐานข้อมูลหลักหยุดทำงาน<br>&#8211; ฐานข้อมูล Standby ได้รับการเลื่อนระดับเป็นตัว master<br>&#8211; ตอนนี้ slave ยังคง reads/writes<br>&#8211; master node เดิมได้รับการแก้ไขแล้ว และพร้อมที่จะแนะนำให้รู้จักกับการจำลองแบบเป็นหลัก</p>



<p>ทำตามขั้นตอนต่อไปนี้เพื่อรับคลัสเตอร์ของโทโพโลยีเริ่มต้น:</p>



<ol><li>เพื่อจำลองการพังของฐานข้อมูล จะทำการลบข้อมูลออก ให้เข้าไป web SSH ที่ master node  และ ป้อนคำสั่ง: </li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>rm -rf /var/lib/pgsql/data/*</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="566" height="475" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restore.jpg" alt="" class="wp-image-15976" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restore.jpg 566w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restore-300x252.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restore-24x20.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restore-36x30.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restore-48x40.jpg 48w" sizes="(max-width: 566px) 100vw, 566px" /></figure>



<p>2. เพิ่ม master IP address เดิม 10.100.2.84 ไปยัง <strong>pg_hba.conf</strong> ที่ master node ปัจจุบัน (ตอนนี้เป็นโหนด secondary):</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>host replication replication 10.100.2.84/32 trust</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="880" height="394" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1.jpg" alt="" class="wp-image-16027" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1.jpg 880w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1-300x134.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1-768x344.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1-24x11.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1-36x16.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-1-48x21.jpg 48w" sizes="(max-width: 880px) 100vw, 880px" /></figure>



<p>จะทำให้ โหนด master เดิม สามารถเข้าถึง master ปัจจุบันได้ จากนั้นรีสตาร์ทฐานข้อมูลหลักในปัจจุบัน (ตอนนี้เป็นโหนด secondary) เพื่อทำการเปลี่ยนแปลงค่า</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo service postgresql restart</code></pre></div>



<p>3. ไปยัง master node เดิม ผ่านทาง Web SSH และ ป้อนคำสั่ง:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>pg_basebackup -U replication -h 10.100.2.85 -D /var/lib/pgsql/data -Fp -Xs -P -R</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="930" height="188" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup.jpg" alt="" class="wp-image-16031" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup.jpg 930w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup-300x61.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup-768x155.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup-24x5.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup-36x7.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-backup-48x10.jpg 48w" sizes="(max-width: 930px) 100vw, 930px" /></figure>



<p>โดยที่:</p>



<ul><li>link # <a href="https://www.postgresql.org/docs/current/app-pgbasebackup.html">pg_basebackup</a>&nbsp;&#8211; ใช้เพื่อสำรองข้อมูลพื้นฐานของคลัสเตอร์ฐานข้อมูล PostgreSQL ที่รันอยู่</li><li>10.100.2.85&nbsp;&#8211; IP address ของ master node ปัจจุบัน</li><li>/var/lib/pgsql/data&nbsp;&#8211; ไดเร็กทอรีข้อมูล PostgreSQL</li></ul>



<p>4. ตรวจสอบให้แน่ใจว่า ip address ในโฮสต์พารามิเตอร์ที่อธิบายไว้ในข้อ #2 ของการ link #<a href="https://docs.jelastic.com/postgresql-database-replication/#standby">Configuring Standby</a> มี ip address ที่เหมาะสมกับ master เดิม</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="698" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-1024x698.jpg" alt="" class="wp-image-16030" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-1024x698.jpg 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-300x205.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-768x524.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-24x16.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-36x25.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2-48x33.jpg 48w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-config-2.jpg 1182w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>5. สร้างไฟล์ standby.signal ที่ master ปัจจุบัน:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>touch /var/lib/pgsql/data/standby.signal</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="819" height="422" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal.jpg" alt="" class="wp-image-16034" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal.jpg 819w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal-300x155.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal-768x396.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal-36x19.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-standby-signal-48x25.jpg 48w" sizes="(max-width: 819px) 100vw, 819px" /></figure>



<p>และรีสตาร์ทโหนดเพื่อรับฐานข้อมูล slave ใหม่:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo service postgresql restart</code></pre></div>



<p>ลบไฟล์ standby.signal ที่ master เดิม:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>rm /var/lib/pgsql/data/standby.signal</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="605" height="470" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-rm-standby-signal.jpg" alt="" class="wp-image-16037" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-rm-standby-signal.jpg 605w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-rm-standby-signal-300x233.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-rm-standby-signal-24x19.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-rm-standby-signal-36x28.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-rm-standby-signal-48x37.jpg 48w" sizes="(max-width: 605px) 100vw, 605px" /></figure>



<p>และรีสตาร์ทโหนดเพื่อรับฐานข้อมูล master ใหม่</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo service postgresql restart</code></pre></div>



<p>6. สุดท้ายเพื่อให้ได้สถานะการกู้คืนที่สอดคล้องกันสำหรับทั้งฐานข้อมูลหลักและฐานข้อมูล standby จำเป็นต้องมีการรีสตาร์ทครั้งสุดท้ายซึ่งสามารถทำได้ผ่านแดชบอร์ดดังนี้:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="806" height="314" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart.jpg" alt="" class="wp-image-16038" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart.jpg 806w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart-300x117.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart-768x299.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart-24x9.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart-36x14.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/pg-replication-restart-48x19.jpg 48w" sizes="(max-width: 806px) 100vw, 806px" /></figure>



<p>เมื่อกระบวนการรีสตาร์ทเสร็จสิ้นคลัสเตอร์จะกลับมาที่โทโพโลยีดั้งเดิมและอาจถูกปรับสเกลในแนวนอน</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/postgresql-replication">PostgreSQL Replication</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>การสร้างการเชื่อมต่อ SSL กับฐานข้อมูล PostgreSQL Server</title>
		<link>https://docs.ruk-com.cloud/ssl-connection-to-postgresql</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:37:02 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9730</guid>

					<description><![CDATA[<p>เมื่อพยายามรักษาข้อมูลในฐานข้อมูล PostgreSQL ให้ปลอดภัย [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/ssl-connection-to-postgresql">การสร้างการเชื่อมต่อ SSL กับฐานข้อมูล PostgreSQL Server</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span style="font-weight: 400;">เมื่อพยายามรักษาข้อมูลในฐานข้อมูล PostgreSQL ให้ปลอดภัยสิ่งแรกที่ต้องทำคือเข้ารหัสการเชื่อมต่อทั้งหมดเพื่อปกป้องข้อมูลรับรองการพิสูจน์ตัวตน (ชื่อผู้ใช้ / รหัสผ่าน) คู่มือนี้จัดทำขึ้นเพื่อช่วยในการสร้างการเชื่อมต่อ SSL ที่ปลอดภัยกับคอนเทนเนอร์ PostgreSQL ซึ่งโฮสต์อยู่ที่ Ruk-Com Cloud</span></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="517" height="221" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/01-ssl-for-postgresql-logo-e1620303837586.jpg" alt="" class="wp-image-15782" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/01-ssl-for-postgresql-logo-e1620303837586.jpg 517w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/01-ssl-for-postgresql-logo-e1620303837586-300x128.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/01-ssl-for-postgresql-logo-e1620303837586-24x10.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/01-ssl-for-postgresql-logo-e1620303837586-36x15.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/01-ssl-for-postgresql-logo-e1620303837586-48x21.jpg 48w" sizes="(max-width: 517px) 100vw, 517px" /></figure>



<p>ด้านล่างนี้เราจะสำรวจ <a href="#postgresql-server-configuration" data-type="internal" data-id="#postgresql-server-configuration">การปรับแต่ง PostgreSQL Server</a> ที่เหมาะสมซึ่งจำเป็นสำหรับการเปิดใช้ SSL และการสร้างใบรับรอง จากนั้นเราจะสร้างและเพิ่มใบรับรองสำหรับเครื่อง link # <a href="https://docs.jelastic.com/ssl-for-pgsql/#client-certificates">client</a> และสุดท้ายจะสร้าง <a href="#establish-connection-via-pgadmin" data-type="internal" data-id="#establish-connection-via-pgadmin">connection</a> ที่ปลอดภัยกับเซิร์ฟเวอร์ของเราผ่านเครื่องมือ pgAdmin ไปดูกันต่อเลย</p>



<p></p>



<h2 class="wp-block-heading" id="postgresql-server-configuration">การกำหนดค่า PostgreSQL Server</h2>



<p>เห็นได้ชัดว่าสำหรับบทนี้เราจะใช้ Environment ที่มีฐานข้อมูล PostgreSQL อยู่ภายในซึ่งคุณสามารถ link #&nbsp;<a href="#">create</a> ได้อย่างง่ายดายหากคุณยังไม่ได้ทำมาก่อน</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="978" height="606" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create.jpg" alt="" class="wp-image-15758" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create.jpg 978w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create-300x186.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create-768x476.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create-24x15.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-env-create-48x30.jpg 48w" sizes="(max-width: 978px) 100vw, 978px" /></figure>



<div class="wp-block-group box-note"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><strong>Tip:</strong><span> ในกรณีที่คุณไม่เคยดำเนินการที่คล้ายกันมาก่อนคุณจำเป็นต้องรู้เรืองเหล่านี้</span></p>



<ul><li><a href="https://docs.jelastic.com/ssh-generate-key/">สร้าง</a>&nbsp;SSH keypair</li><li>เพิ่ม <a href="https://docs.jelastic.com/ssh-add-key/">public SSH key</a> ของคุณที่แดชบอร์ด</li><li><a href="https://docs.jelastic.com/ssh-access/">เข้าถึงบัญชีของคุณ</a><span> ผ่านทาง </span>SSH protocol</li></ul>
</div></div>
</div></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="864" height="193" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh.jpg" alt="" class="wp-image-15760" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh.jpg 864w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh-300x67.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh-768x172.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh-24x5.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh-36x8.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-postgres-with-ssh-48x11.jpg 48w" sizes="(max-width: 864px) 100vw, 864px" /></figure>



<p>2. ตอนนี้เพื่อให้สามารถทำงานกับ SSL ได้ คุณต้องเพิ่มไฟล์ 3 ไฟล์ต่อไปนี้ในไดเร็กทอรีเซิร์ฟเวอร์ <strong>/var/lib/pgsql/data&nbsp;</strong></p>



<ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">server.key&nbsp;&#8211; </span><span style="font-weight: 400;">ไพรเวทคีย์</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">server.crt&nbsp;&#8211; ใบรับรองเซิร์ฟเวอร์</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">root.crt&nbsp;– ใบรับรองหลักที่เชื่อถือได้</span></li></ul>



<div class="wp-block-group box-note"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><span style="font-weight: 400;">เคล็ดลับ :</span></p>



<ul><li><span style="font-weight: 400;">เราจะไม่อธิบายรายละเอียดเกี่ยวกับพารามิเตอร์คำสั่งในที่นี้ แต่หากคุณต้องการทราบข้อมูลเพิ่มเติม เพียงแค่ดูหน้า link # Self-Signed Custom SSL ในเอกสารของเราหรือตรวจสอบเว็บไซต์ official</span> <span style="font-weight: 400;">link # OpenSSL เพื่อดูลิสการดำเนินการทั้งหมดที่มีอยู่</span></li><li><span style="font-weight: 400;">คุณยังสามารถใช้ใบรับรอง link # </span><a href="https://docs.jelastic.com/custom-ssl/"><span style="font-weight: 400;">custom SSL</span></a><span style="font-weight: 400;"> ได้เช่นเดียวกับที่อธิบายไว้ด้านล่าง (ทำตามส่วนสร้างใบรับรอง Custom SSL ของคำแนะนำที่เชื่อมโยงกันเพื่อรับข้อมูลดังกล่าว) ในกรณีหลังนี้คุณสามารถข้ามขั้นตอนการสร้างและข้ามไปยัง link # </span><a href="https://docs.jelastic.com/ssl-for-pgsql/#custom-ssl"><span style="font-weight: 400;">6th step</span></a><span style="font-weight: 400;"> ของคำสั่งนี้ได้โดยตรง</span></li></ul>
</div></div>



<p><span style="font-weight: 400;">ไปที่โฟลเดอร์ที่กล่าวถึงและดำเนินการตามขั้นตอนด้านล่าง</span></p>



<p><span style="font-weight: 400;">3. ก่อนอื่นมาทำการสร้างไฟล์แรก &#8211; ไพรเวทคีย์:<br><br></span>&#8211; ดำเนินการคำสั่งต่อไปนี้:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>cd /var/lib/pgsql/data
openssl genrsa -des3 -out server.key 1024</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="726" height="180" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key.jpg" alt="" class="wp-image-15762" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key.jpg 726w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-300x74.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-24x6.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-36x9.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-48x12.jpg 48w" sizes="(max-width: 726px) 100vw, 726px" /></figure>



<p><span style="font-weight: 400;">ในระหว่างการสร้าง server.key คุณจะถูกขอ </span><span style="font-weight: 400;">pass phrase</span><span style="font-weight: 400;"> – ระบุและยืนยันเพื่อเสร็จสิ้นการสร้าง</span></p>



<p>&#8211; ตอนนี้เพื่อที่จะทำงานกับคีย์นี้ต่อไปจำเป็นต้องลบรหัสผ่านที่คุณได้เพิ่มไว้ก่อนหน้านี้ ให้ดำเนินการคำสั่งต่อไปนี้:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>openssl rsa -in server.key -out server.key</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="713" height="102" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-2.jpg" alt="" class="wp-image-15763" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-2.jpg 713w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-2-300x43.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-2-24x3.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-2-36x5.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-generate-private-key-2-48x7.jpg 48w" sizes="(max-width: 713px) 100vw, 713px" /></figure>



<p>ป้อนรหัส passphase อีกครั้ง เพื่อยืนยันอีกครั้ง<br><br>&#8211; ตั้งค่า การอนุญาต และสิทธิ์การเป็นเจ้าของที่เหมาะสมสำหรับไฟล์ไพรเวทคีย์ของคุณด้วยคำสั่งถัดไป<span style="font-size: inherit;">:</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>chmod 400 server.key
chown postgres.postgres server.key</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="643" height="69" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssh-key.jpg" alt="" class="wp-image-15764" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssh-key.jpg 643w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssh-key-300x32.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssh-key-24x3.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssh-key-36x4.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssh-key-48x5.jpg 48w" sizes="(max-width: 643px) 100vw, 643px" /></figure>



<p><span style="font-weight: 400;"><span style="font-weight: 400;">4. ตอนนี้ต้องสร้างใบรับรองเซิร์ฟเวอร์ตามไฟล์ server.key ของคุณเช่น:</span></span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj &#39;/C=US/ST=Nontaburi/L=Nontaburi/O=RukCom/CN=mysite.com/emailAddress=mail@ruk-com.cloud&#39;</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="736" height="84" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert.jpg" alt="" class="wp-image-15766" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert.jpg 736w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-300x34.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-24x3.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-36x4.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-48x5.jpg 48w" sizes="(max-width: 736px) 100vw, 736px" /></figure>



<div class="wp-block-group box-note"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p class="p1"><strong>Note: </strong>นี่คือข้อมูลที่ต้องใส่สำหรับพารามิเตอร์ &#8211;<em>subj</em> ถ้าใบรับรองนี้ ใช้กับ Production:</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Unit</th><th>Meaning</th><th>Example</th></tr></thead><tbody><tr><td>/C=</td><td>Country</td><td>GB</td></tr><tr><td>/ST=</td><td>State</td><td>London</td></tr><tr><td>/L=</td><td>Location</td><td>London</td></tr><tr><td>/O=</td><td>Organization</td><td>Global Security</td></tr><tr><td>/OU= (<em>optional</em>)</td><td>Organizational Unit</td><td>IT Department</td></tr><tr><td>/CN=</td><td>Common Name</td><td>example.com</td></tr><tr><td>/emailAddress=</td><td>Email</td><td><a href="mailto:email@example.com">email@example.com</a></td></tr><tr><td>ถ้าคุณไม่ใส่พารามิเตอร์ <em>-subj</em> ในคำสั่ง จะเป็นการ inquiry โดยอัตโนมัติ.</td><td></td><td></td></tr></tbody></table></figure>
</div></div>



<p><span style="font-weight: 400;">5. เนื่องจากเรากำลังจะลงนามใบรับรองด้วยตัวเอง&nbsp; ใบรับรองเซิร์ฟเวอร์ที่สร้างขึ้นจึงสามารถใช้เป็นใบรับรองหลักที่เชื่อถือได้เช่นกัน ดังนั้นเพียงแค่ทำสำเนาด้วยชื่อที่เหมาะสม:</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>cp server.crt root.crt</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="542" height="59" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-copy.jpg" alt="" class="wp-image-15768" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-copy.jpg 542w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-copy-300x33.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-copy-24x3.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-copy-36x4.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-cert-copy-48x5.jpg 48w" sizes="(max-width: 542px) 100vw, 542px" /></figure>



<p><span style="font-weight: 400;">ตอนนี้คุณมีไฟล์ใบรับรองทั้ง 3 ไฟล์ คุณสามารถดำเนินการต่อในการกำหนดค่าฐานข้อมูล PostgreSQL ซึ่งจำเป็นสำหรับการเปิดใช้งานและใช้งาน SSL</span></p>



<p><span style="font-size: inherit;">6. </span><span style="font-weight: 400;">เปิดไฟล์ <strong>pg_hba.conf</strong> ซึ่งอยู่ในโฟลเดอร์เดียวกันเพื่อแก้ไขด้วย terminal editor ที่ต้องการ (ตัวอย่างเช่น vim) หรือโดยตรงผ่านแดชบอร์ด</span><span style="font-size: inherit;"></span></p>



<p><span style="font-weight: 400;">แทนที่เนื้อหาเริ่มต้นด้วยบรรทัดต่อไปนี้:</span><span style="font-size: inherit;"></span><span style="font-size: inherit;"><span style="font-size: inherit;"></span></span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code># TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# &quot;local&quot; is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv4 remote connections for authenticated users
hostssl all         webadmin    0.0.0.0/0             md5 clientcert=1</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="580" height="159" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-config-1.jpg" alt="" class="wp-image-15771" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-config-1.jpg 580w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-config-1-300x82.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-config-1-24x7.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-config-1-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-config-1-48x13.jpg 48w" sizes="(max-width: 580px) 100vw, 580px" /></figure>



<p class="box-note"><strong>เคล็ดลับ</strong> : ในกรณีที่คุณกำลังจะทำงานกับฐานข้อมูลที่ไม่ใช่ผู้ใช้ webadmin เริ่มต้นให้เปลี่ยนค่าที่เหมาะสมภายในบรรทัดสุดท้ายของไฟล์เป็นชื่อที่ต้องการ โปรดทราบว่าในกรณีนี้คุณจะต้องใช้ชื่อผู้ใช้เดียวกันสำหรับคำสั่งเพิ่มเติมทั้งหมด (เราจะระบุตำแหน่งที่จำเป็นไว้)<span style="font-size: inherit;"></span></p>



<p>7. เพื่อเสร็จสิ้นการกำหนดค่าคุณต้องใช้การเปลี่ยนแปลงเพิ่มเติมกับไฟล์ <strong>postgresql.conf</strong> ไปที่ส่วน ecurity และ Authentication&nbsp; (ประมาณบรรทัดที่ 80) และเปิดใช้งานการใช้งาน SSL โดยการนำคอมเมนต์ออกและเปลี่ยนค่าเป็น “on”&nbsp; นอกจากนี้ให้เพิ่มพารามิเตอร์ <strong>ssl_ca_file</strong> ใหม่ด้านล่าง:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>ssl = on
ssl_ca_file = &#39;root.crt&#39;</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="640" height="254" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssl-config.jpg" alt="" class="wp-image-15774" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssl-config.jpg 640w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssl-config-300x119.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssl-config-24x10.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssl-config-36x14.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-ssl-config-48x19.jpg 48w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p><span style="font-size: inherit;"><span style="font-size: inherit;"><span style="font-weight: 400;">อย่าลืมบันทึกการแก้ไข</span></span></span></p>



<p><span style="font-size: inherit;"><span style="font-size: inherit;">8. </span></span><span style="font-weight: 400;">สุดท้ายรีสตาร์ทคอนเทนเนอร์ PostgreSQL ของคุณเพื่อใช้การตั้งค่าใหม่:</span><span style="font-size: inherit;"><span style="font-size: inherit;"></span></span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo service postgresql restart</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="616" height="93" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-restart-service.jpg" alt="" class="wp-image-15775" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-restart-service.jpg 616w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-restart-service-300x45.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-restart-service-24x4.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-restart-service-36x5.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-restart-service-48x7.jpg 48w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<p></p>



<h2 class="wp-block-heading" id="client-certificates">Client Certificates</h2>



<p><span style="font-weight: 400;">ตอนนี้เรามาสร้างไฟล์ใบรับรอง SSL สำหรับ client instance เพิ่มอีกหนึ่งชุดเพื่อรองรับการเชื่อมต่อที่ปลอดภัยทั้งสองด้าน</span></p>



<p><span style="font-weight: 400;">1. กลับไปที่หน้าต่างเทอร์มินัลพร้อมการเชื่อมต่อ SSH ไปยังเซิร์ฟเวอร์ PostgreSQL </span><span style="font-weight: 400;">เมื่อเข้าไปข้างในแล้วให้สร้างไพรเวทคีย์สำหรับไคลเอนต์ ตัวอย่างเช่นในไดเร็กทอรี /tmp:<br></span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>openssl genrsa -des3 -out /tmp/postgresql.key 1024  
openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="827" height="233" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key.jpg" alt="" class="wp-image-15786" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key.jpg 827w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key-300x85.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key-768x216.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key-24x7.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-key-48x14.jpg 48w" sizes="(max-width: 827px) 100vw, 827px" /></figure>



<p>2. จากนั้นสร้างใบรับรอง SSL สำหรับผู้ใช้ฐานข้อมูล PostgreSQL (โดยค่าเริ่มต้นเป็น webadmin) และลงนามด้วยไฟล์ <strong>root.crt</strong> ที่เชื่อถือได้ของเราบนเซิร์ฟเวอร์</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>openssl genrsa -des3 -out /tmp/postgresql.key 1024
openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key</code></pre></div>



<div class="wp-block-group box-note"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p><span style="font-weight: 400;">หมายเหตุ :</span></p>



<ul><li><span style="font-weight: 400;">ในขณะที่ข้อมูลทั่วไปสำหรับพารามิเตอร์ subj สามารถเปลี่ยนเป็นข้อมูลส่วนบุคคลของคุณได้ที่นี่ Common Name (/ CN =) ต้องเท่ากับชื่อผู้ใช้ฐานข้อมูลที่คุณตั้งไว้ในระหว่างการสร้างใบรับรองครั้งแรกในไฟล์การกำหนดค่าเซิร์ฟเวอร์ (ในกรณีของเราคือ webadmin)</span></li><li><span style="font-weight: 400;">ไฟล์ root.crt และ server.key ควรอยู่ในโฟลเดอร์เดียวกันคำสั่งที่ 2 ที่ถูกเรียกใช้ มิฉะนั้นควรระบุพาธแบบเต็ม</span></li></ul>
</div></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="825" height="160" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert.jpg" alt="" class="wp-image-15787" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert.jpg 825w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert-300x58.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert-768x149.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert-24x5.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert-36x7.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-gen-client-cert-48x9.jpg 48w" sizes="(max-width: 825px) 100vw, 825px" /></figure>



<p>3. หลังจากสร้างไฟล์ &#8211; postgresql.key, postgresql.crt, root.crt เสร็จแล้ว ต้องย้ายไฟล์เหล่านี้ไปยังโฟลเดอร์ .postgresql ที่เครื่องไคลเอนต์ของคุณ (คุณสามารถใช้โปรแกรมเสริม FTP หรือเพียงแค่คัดลอกและวางไฟล์เนื้อหาลงไป)</p>



<p class="box-note"><strong>เคล็ดลับ</strong> : หากยังไม่มีไดเร็กทอรีดังกล่าวให้สร้างด้วย mkdir ~/.postgresql หรือคำสั่งที่คล้ายกันตามระบบปฏิบัติการของคุณ</p>



<figure class="wp-block-image"><img decoding="async" src="https://docs.jelastic.com/images/middleware-stacks/databases/postgresql-database/ssl-for-pgsql/14.png" alt="SSL certificates for client"/></figure>



<p><span style="font-weight: 400;">นอกจากนี้หากจำเป็นคุณสามารถตั้งค่าสิทธิ์ในการอ่านคีย์สำหรับเจ้าของเท่านั้นด้วยคำสั่ง chmod 0400 ~/.postgresql/postgresql.key เพื่อให้เกิดความปลอดภัยมากขึ้น</span></p>



<p class="box-note"><strong>เคล็ดลับ</strong> : อย่าลืมลบคีย์ออกจากไดเร็กทอรี tmp บนเซิร์ฟเวอร์ฐานข้อมูลของคุณในภายหลัง</p>



<p></p>



<h2 class="wp-block-heading" id="establish-connection-via-pgadmin"><strong>สร้างการเชื่อมต่อผ่าน PgAdmin</strong></h2>



<p>ในที่สุดหลังจากการกำหนดค่าเซิร์ฟเวอร์และไคลเอ็นต์เสร็จสิ้นคุ ณก็พร้อมที่จะสร้างการเชื่อมต่อ ในกรณีของเราจะใช้เครื่องมือ &nbsp;pgAdmin 4 เป็นตัวอย่างดังนั้นจึงควรติดตั้งแอปพลิเคชันนี้ (หรือแอปพลิเคชันอื่น ๆ ที่ต้องการ) ไว้ล่วงหน้า</p>



<p>1. ในการเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลผ่าน SSL คุณต้องเชื่อมต่อ link # public IP หรือ link # endpoint สำหรับคอนเทนเนอร์ฐานข้อมูล PostgreSQL&nbsp;</p>



<p>เราจะพิจารณากรณีส่วนหลัง – เข้าถึงการตั้งค่า Environment เปลี่ยนไปที่ส่วน Endpoints และ Add จุด endpoint ใหม่ด้วยปุ่มชื่อเดียวกันที่หน้าต่างด้านบน</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="412" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-1024x412.jpg" alt="" class="wp-image-15791" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-1024x412.jpg 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-300x121.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-768x309.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-24x10.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-36x14.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin-48x19.jpg 48w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/ssl-to-pg-pgadmin.jpg 1391w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>2. ตอนนี้เมื่อคุณมีจุดเชื่อมต่อแล้วให้เรียกใช้ไคลเอนต์ pgAdmin 4 และเลือก Create Server</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="535" height="260" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server.jpg" alt="" class="wp-image-15699" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server.jpg 535w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-300x146.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-36x17.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pgadmin-create-server-48x23.jpg 48w" sizes="(max-width: 535px) 100vw, 535px" /></figure>



<p>3. เลือกที่ tab Connection ป้อนข้อมูล hostname และ port</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="502" height="553" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-create-server.jpg" alt="" class="wp-image-15794" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-create-server.jpg 502w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-create-server-272x300.jpg 272w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-create-server-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-create-server-33x36.jpg 33w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-create-server-44x48.jpg 44w" sizes="(max-width: 502px) 100vw, 502px" /></figure>



<p>4. เลือกที่แถบ SSL และ ที่ SSL Mode ให้เลือกเป็น Require เสร็จแล้วใหักด Save</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="501" height="553" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-ssl-2.jpg" alt="" class="wp-image-15798" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-ssl-2.jpg 501w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-ssl-2-272x300.jpg 272w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-ssl-2-22x24.jpg 22w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-ssl-2-33x36.jpg 33w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/pg-admin-ssl-2-43x48.jpg 43w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<p>ตอนนี้คุณสามารถเชื่อมต่อแอปพลิเคชันของคุณกับฐานข้อมูลได้แล้ว (ใช้คำแนะนำ <a href="https://docs.ruk-com.cloud/database-connection-strings" data-type="post" data-id="9699">เชื่อมต่อกับฐานข้อมูล</a> เป็นตัวอย่าง) และเปิดใช้งานการกำหนดค่า SSL สำหรับโปรเจ็กต์ของคุณเพื่อเข้ารหัสข้อมูลของคุณในขณะที่ดึง / ถ่ายโอนข้อมูล</p>



<p class="box-note">หากคุณประสบปัญหาใด ๆ ขณะกำหนดค่าการเชื่อมต่อ SSL โปรดอย่าลังเลที่จะขอความช่วยเหลือจากผู้เชี่ยวชาญด้านเทคนิคของเราที่ Stackoverflow</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/ssl-connection-to-postgresql">การสร้างการเชื่อมต่อ SSL กับฐานข้อมูล PostgreSQL Server</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>การเชื่อมต่อไปยัง PostgreSQL สำหรับ PHP</title>
		<link>https://docs.ruk-com.cloud/php-connection-to-postgresql</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:35:23 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9728</guid>

					<description><![CDATA[<p>ทำตามคำแนะนำด้านล่างเพื่อเรียนรู้วิธีเชื่อมต่อแอปพลิเคช [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/php-connection-to-postgresql">การเชื่อมต่อไปยัง PostgreSQL สำหรับ PHP</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>ทำตามคำแนะนำด้านล่างเพื่อเรียนรู้วิธีเชื่อมต่อแอปพลิเคชัน PHP ไปยังโฮสต์ภายใน Ruk-Com Cloud กับเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL</p>



<p></p>



<ul><li><a href="#create-environment" data-type="internal" data-id="#create-environment">สร้าง Environment</a></li><li><a href="#configure-database-connection" data-type="internal" data-id="#configure-database-connection">กำหนดค่าการเชื่อมต่อฐานข้อมูล</a></li><li><a href="#connection-check-up" data-type="internal" data-id="#connection-check-up">ตรวจสอบการเชื่อมต่อ</a></li></ul>



<p></p>



<h2 class="wp-block-heading" id="create-environment">สร้าง Environment</h2>



<p>1. ล็อกอินไปยังแดชบอร์ด Ruk-Com Cloud สร้าง Environment โดยเลือกที่แท็บ PHP เว็บเซิร์ฟเวอร์เป็ฯ Apache และ ระบบฐานข้อมูล PostgreSQL </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="975" height="606" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env.jpg" alt="" class="wp-image-15873" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env.jpg 975w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env-300x186.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env-768x477.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env-24x15.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/php-pg-create-env-48x30.jpg 48w" sizes="(max-width: 975px) 100vw, 975px" /></figure>



<p>3. ข้อมูลการเข้าใช้งานจะถูกส่งไปยังอีเมลของคุณ</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="616" height="732" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-env-success.jpg" alt="" class="wp-image-15876" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-env-success.jpg 616w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-env-success-252x300.jpg 252w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-env-success-20x24.jpg 20w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-env-success-30x36.jpg 30w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-env-success-40x48.jpg 40w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<p>ตอนนี้คุณสามารถเข้าถึงฐานข้อมูลของคุณผ่านแอดมินพาเนล และเชื่อมต่อกับแอปพลิเคชัน PHP</p>



<h2 class="wp-block-heading" id="configure-database-connection">กำหนดค่าการเชื่อมต่อฐานข้อมูล</h2>



<p>1. คลิกปุ่ม <strong>Config</strong> ของเซิร์ฟเวอร์ Apache</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="864" height="254" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf.jpg" alt="" class="wp-image-15877" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf.jpg 864w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf-300x88.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf-768x226.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf-24x7.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf-36x11.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-db-conf-48x14.jpg 48w" sizes="(max-width: 864px) 100vw, 864px" /></figure>



<p>2. ไปที่โฟลเดอร์ <strong><em>etc</em></strong> และเปิดไฟล์ <strong><em>php.ini</em></strong></p>



<p>เพิ่ม <strong>extension=pgsql.so</strong> ในบรรทัดตามที่แสดงในภาพด้านล่าง</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="899" height="440" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini.jpg" alt="" class="wp-image-15879" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini.jpg 899w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini-300x147.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini-768x376.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini-24x12.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini-36x18.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-php-ini-48x23.jpg 48w" sizes="(max-width: 899px) 100vw, 899px" /></figure>



<p>3. บันทึกการเปลี่ยนแปลง และรีสตาร์ทโหนดของ Apache</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="657" height="182" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-restart.jpg" alt="" class="wp-image-15880" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-restart.jpg 657w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-restart-300x83.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-restart-24x7.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-restart-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-restart-48x13.jpg 48w" sizes="(max-width: 657px) 100vw, 657px" /></figure>



<p>4. มีฟังก์ชัน PG หลักสองฟังก์ชัน <a href="http://php.net/manual/en/ref.pgsql.php"><strong>PG functions</strong></a><strong> </strong>สำหรับปฏิบัติการกับเซิร์ฟเวอร์ฐานข้อมูล</p>



<ul><li>ตัวอย่างโค้ดสำหรับเชื่อมต่อ PostgreSQL:</li></ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>pg_connect(“host={host} port={port} dbname={dbname} user={user} password={password}&quot;); </code></pre></div>



<ul><li><em><strong>{host}</strong></em> &#8211; the PostgreSQL server Host (i.e. access URL <em><strong>without http://</strong></em>) that you’ve received via email, for example <em>node171206-php-postgresql.jelastic.com</em></li><li><em><strong>{port}</strong></em> &#8211; a connection port (the default one is <em>5432</em>)</li><li><em><strong>{dbname}</strong></em> &#8211; a name of your database</li><li><em><strong>{user}</strong></em> &#8211; an account name to access database with (we’ll use the default <em>webadmin</em> one)</li><li><em><strong>{password}</strong></em> &#8211; a password for the appropriate user</li><li>closing PostgreSQL connection: <em>pg_close(<a id="check"></a>)</em></li></ul>



<p></p>



<p>5. คุณต้องเขียนฟังก์ชันที่จำเป็นในทุกหน้า <strong>* .php</strong> ที่เชื่อมต่อกับฐานข้อมูล</p>



<h2 class="wp-block-heading" id="connection-check-up">ตรวจสอบการเชื่อมต่อ</h2>



<p>&#8211; ตรวจสอบการเชื่อมต่อโดยใช้โค้ดนี้:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php  
$dbconn = pg_connect(&quot;host=php-postgressql.app.ruk-com.cloud port=5432 dbname=postgres user=webadmin password=passw0rd&quot;);  
//connect to a database named &quot;postgres&quot; on the host &quot;host&quot; with a username and password  
if (!$dbconn){  
echo &quot;&lt;center&gt;&lt;h1&gt;Doesn&#39;t work =(&lt;/h1&gt;&lt;/center&gt;&quot;;  
}else  
 echo &quot;&lt;center&gt;&lt;h1&gt;Good connection&lt;/h1&gt;&lt;/center&gt;&quot;;  
pg_close($dbconn);  
?&gt;  </code></pre></div>



<p>&#8211; วางโค้ดที่ใช้ทดสอบไว้ที่ Path /var/www/webroots/ROOT/connect.php</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="779" height="421" src="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test.jpg" alt="" class="wp-image-15887" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test.jpg 779w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test-300x162.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test-768x415.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test-24x13.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test-36x19.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-pg-test-48x26.jpg 48w" sizes="(max-width: 779px) 100vw, 779px" /></figure>



<p>&#8211; โค้ดตัวอย่างสำหรับการส่งออกเป็นตาราง:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php  
$conn = pg_connect(&quot;host=postgres.jelastic.com port=5432 dbname=postgres user=webadmin password=passw0rd&quot;);  
if (!$conn) {  
 echo &quot;An error occurred.\n&quot;;  
 exit;  
}  
$result = pg_query($conn, &quot;SELECT * FROM test_table&quot;);  
if (!$result) {  
 echo &quot;An error occurred.\n&quot;;  
 exit;  
}  
while ($row = pg_fetch_row($result)) {  
 echo &quot;value1: $row[0]  value2: $row[1]&quot;;  
 echo &quot;&lt;br /&gt;\n&quot;;  
}  
?&gt;  </code></pre></div>



<p>คุณสามารถใช้ตัวอย่างที่อธิบายไว้ข้างต้นเพื่อสร้างแอปพลิเคชัน PHP ของคุณเองซึ่งใช้การเชื่อมต่อกับฐานข้อมูล PostgreSQL</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/php-connection-to-postgresql">การเชื่อมต่อไปยัง PostgreSQL สำหรับ PHP</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>วิธีเชื่อมต่อ PostgreSQL กับ Java Application</title>
		<link>https://docs.ruk-com.cloud/java-connection-to-postgresql</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 19 Aug 2020 05:34:23 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">https://help.ruk-com.in.th/?post_type=dt_articles&#038;p=9726</guid>

					<description><![CDATA[<p>PostgreSQL เป็นฐานข้อมูล SQL แบบโอเพนซอร์สที่มีประสิทธิ [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/java-connection-to-postgresql">วิธีเชื่อมต่อ PostgreSQL กับ Java Application</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span style="font-weight: 400;">PostgreSQL เป็นฐานข้อมูล SQL แบบโอเพนซอร์สที่มีประสิทธิภาพพร้อมด้วยโครงสร้างเชิงสัมพันธ์เชิงวัตถุ และคุณสมบัติที่แข็งแกร่งมากมายเพื่อให้มั่นใจถึงประสิทธิภาพและความน่าเชื่อถือ ในบทนี้เราจะแสดงวิธีเชื่อมต่อฐานข้อมูล PostgreSQL กับแอปพลิเคชัน Java โฮสต์ เข้ากับ Ruk-Com Cloud</span></p>



<p>1. ล็อกอินเข้าสู่แดชบอร์ด Ruk-Com Cloud <a href="#">สร้าง Environment</a> ใหม่ ที่เป็นเซิร์ฟเวอร์ Java Application และเลือกฐานข้อมูล PostgreSQL</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="979" height="608" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen.jpg" alt="" class="wp-image-15728" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen.jpg 979w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen-300x186.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen-768x477.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen-24x15.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen-36x22.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/env-screen-48x30.jpg 48w" sizes="(max-width: 979px) 100vw, 979px" /></figure>



<p>2. หลังจากสร้างคุณจะได้รับอีเมลพร้อมข้อมูลรับรองการเข้าถึงฐานข้อมูล (โฮสต์ การล็อกอินและรหัสผ่าน)</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="602" height="708" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-sample-credential.jpg" alt="" class="wp-image-15732" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-sample-credential.jpg 602w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-sample-credential-255x300.jpg 255w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-sample-credential-20x24.jpg 20w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-sample-credential-31x36.jpg 31w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-sample-credential-41x48.jpg 41w" sizes="(max-width: 602px) 100vw, 602px" /></figure>



<p></p>



<p>3. คลิกปุ่ม Config ถัดจากแอปพลิเคชันเซิร์ฟเวอร์ของคุณ (ในกรณีของเราคือ Tomcat) เพื่อเข้าถึง <a href="#">configuration file manager</a> และสร้างไฟล์ <strong>mydb.cfg</strong> ใหม่ในโฟลเดอร์ /opt/tomcat/temp</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="783" height="744" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen.jpg" alt="" class="wp-image-15731" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen.jpg 783w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen-300x285.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen-768x730.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen-24x24.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen-36x34.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-screen-48x46.jpg 48w" sizes="(max-width: 783px) 100vw, 783px" /></figure>



<p>4. ระบุรายละเอียดการเชื่อมต่อต่อไปนี้ในไฟล์ mydb.cfg:</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>host=jdbc:postgresql://{host}/{db_name}
username={user}
password={password}
driver=org.postgresql.Driver</code></pre></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="709" height="196" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config.jpg" alt="" class="wp-image-15733" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config.jpg 709w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-300x83.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-24x7.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-config-48x13.jpg 48w" sizes="(max-width: 709px) 100vw, 709px" /></figure>



<p><span style="font-weight: 400;"><br>และส่วนนี้</span></p>



<ul><li><b><i>{host}</i></b><span style="font-weight: 400;"> &#8211; ลิงก์ไปยังโหนดฐานข้อมูลโดยไม่มีส่วนโปรโตคอล</span></li><li><b><i>{db_name}</i></b><span style="font-weight: 400;"> &#8211; ชื่อของฐานข้อมูล (ในกรณีของเรา คือ postgres)</span></li><li><b><i>{user}</i></b><span style="font-weight: 400;"> และ {password} – ข้อมูลรับรองผู้ใช้ของแอดมิน</span></li></ul>



<div class="wp-block-group box-note"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>หมายเหตุ :&nbsp;</p>



<p><span style="font-weight: 400;">โดยปกติสำหรับการใช้งานจริงขอแนะนำให้กำหนดผู้ใช้ที่ถูกจำกัดสิทธิ์ใหม่ผ่าน phpPgAdmin สำหรับแอปพลิเคชันด้วยเข้าถึงฐานข้อมูลเฉพาะได้เท่านั้น</span></p>



<p><span style="font-weight: 400;">อย่างไรก็ตามสำหรับตัวอย่างนี้เราจะใช้ user ที่เป็นค่าเริ่มต้น (เช่น webadmin ที่มีสิทธิ์เข้าถึงเซิร์ฟเวอร์ระดับผู้ดูแลระบบเต็มรูปแบบ) และฐานข้อมูล (postgres)</span></p>
</div></div>



<p><span style="font-weight: 400;"></span><span style="font-size: inherit;">5. ด้านล่างนี้คุณจะเห็นโค้ดของแอปพลิเคชันที่ใช้ในบทการสอนนี้</span></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>package connection;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DbManager {
public String date = new SimpleDateFormat(&quot;dd-MM-yyyy-HH-mm&quot;).format(new Date());
private final String createTable = &quot;CREATE TABLE \&quot;&quot; + date + &quot;\&quot; (id INT, data VARCHAR(100));&quot;;
private static final int LoginTimeout = 10;
public DbManager() {

}

public Connection createConnection() throws IOException, ClassNotFoundException, SQLException {
Properties prop = new Properties();
System.out.println(&quot;\n\n=======================\nJDBC Connector Test &quot; + date);
System.out.println(&quot;User home directory: &quot; + System.getProperty(&quot;user.home&quot;));
String host;
String username;
String password;
String driver;
try {
prop.load(new java.io.FileInputStream(System.getProperty(&quot;user.home&quot;) + &quot;/mydb.cfg&quot;));
host = prop.getProperty(&quot;host&quot;).toString();
username = prop.getProperty(&quot;username&quot;).toString();
password = prop.getProperty(&quot;password&quot;).toString();
driver = prop.getProperty(&quot;driver&quot;).toString();
} catch (IOException e) {
System.out.println(&quot;Unable to find mydb.cfg in &quot; + System.getProperty(&quot;user.home&quot;) + &quot;\n Please make sure that configuration file created in this folder.&quot;);
host = &quot;Unknown HOST&quot;;
username = &quot;Unknown USER&quot;;
password = &quot;Unknown PASSWORD&quot;;
driver = &quot;Unknown DRIVER&quot;;
}

System.out.println(&quot;host: &quot; + host + &quot;\nusername: &quot; + username + &quot;\npassword: &quot; + password + &quot;\ndriver: &quot; + driver);
Class.forName(driver);
System.out.println(&quot;--------------------------&quot;);
System.out.println(&quot;DRIVER: &quot; + driver);
System.out.println(&quot;Set Login Timeout: &quot; + LoginTimeout);
DriverManager.setLoginTimeout(LoginTimeout);
Connection connection = DriverManager.getConnection(host, username, password);
System.out.println(&quot;CONNECTION: &quot; + connection);
return connection;
}

public String runSqlStatement() {
String result = &quot;&quot;;
try {
Statement statement = createConnection().createStatement();
System.out.println(&quot;SQL query: &quot; + createTable);
statement.execute(createTable);
} catch (IOException | ClassNotFoundException ex) {
Logger.getLogger(DbManager.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(&quot;Exception occurred: &quot; + ex);
result = ex.getMessage();
} catch (SQLException ex) {
ex.printStackTrace();
result = ex.getMessage();
}
return result;
}
}</code></pre></div>



<p>6. สามารถใช้ Code ดังต่อไปนี้ deploy เพื่อทดสอบได้</p>



<p><a href="https://download.jelastic.com/public.php?service=files&amp;t=18753849900d2461b3162bd4355f834d&amp;download">https://download.jelastic.com/public.php?service=files&amp;t=18753849900d2461b3162bd4355f834d&amp;download</a></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="994" height="268" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2.jpg" alt="" class="wp-image-15737" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2.jpg 994w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2-300x81.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2-768x207.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2-24x6.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2-36x10.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-deploy-2-48x13.jpg 48w" sizes="(max-width: 994px) 100vw, 994px" /></figure>



<p></p>



<p>หมายเหตุ  : แอปพลิเคชันตัวอย่างของเรามี Library <a href="https://jdbc.postgresql.org/download.html"><i><span style="font-weight: 400;">jdbc-connector</span></i></a> สำหรับการเชื่อมต่อฐานข้อมูล PostgreSQL อยู่แล้ว อย่างไรก็ตามสำหรับโปรเจ็กต์อื่น ๆ คุณอาจต้องอัปโหลด Libary ไปยังโฟลเดอร์ webapps/{app_context}/WEB-INF/lib บนเซิร์ฟเวอร์ของคุณด้วยตนเอง (อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ในภายหลังเพื่อบันทึกการเปลี่ยนแปลงค่า)</p>



<p><span style="font-weight: 400;"></span><span style="font-weight: 400;">7. หลังจากติดตั้งสำเร็จให้คลิก </span><b style="font-size: inherit;">Open in Browser</b><span style="font-weight: 400;"> ที่ถัดจากแอปพลิเคชันเซิร์ฟเวอร์</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1188" height="245" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open.jpg" alt="" class="wp-image-15739" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open.jpg 1188w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open-300x62.jpg 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open-1024x211.jpg 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open-768x158.jpg 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open-24x5.jpg 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open-36x7.jpg 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-postgres-open-48x10.jpg 48w" sizes="(max-width: 1188px) 100vw, 1188px" /></figure>



<p><span style="font-weight: 400;"></span><span style="font-weight: 400;">8. ภายในแท็บเบราว์เซอร์ที่เปิดอยู่ให้คลิกปุ่ม </span><b style="font-size: inherit;">Create test table in your database</b></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="370" height="98" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-jdbc-connection.png" alt="" class="wp-image-15741" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-jdbc-connection.png 370w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-jdbc-connection-300x79.png 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-jdbc-connection-24x6.png 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-jdbc-connection-36x10.png 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/java-jdbc-connection-48x13.png 48w" sizes="(max-width: 370px) 100vw, 370px" /></figure>



<p><span style="font-size: inherit;">คำขอของคุณจะได้รับการดำเนินการในไม่ช้าโดยจะแสดงข้อความผลลัพธ์ที่ได้<br></span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="470" height="139" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-postgresql-database-in-java.png" alt="" class="wp-image-15742" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-postgresql-database-in-java.png 470w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-postgresql-database-in-java-300x89.png 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-postgresql-database-in-java-24x7.png 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-postgresql-database-in-java-36x11.png 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/connect-postgresql-database-in-java-48x14.png 48w" sizes="(max-width: 470px) 100vw, 470px" /></figure>



<p><span style="font-size: inherit;"></span><span style="font-size: inherit;">9. มาเข้าถึงฐานข้อมูลของเราผ่าน <strong>phpPgAdmin</strong> เพื่อให้แน่ใจว่ามีการสร้างตารางใหม่ (ข้อมูลรับรองการเข้าถึงอยู่ในอีเมลที่อธิบายไว้ในขั้นตอนที่สองของคู่มือนี้)</span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1067" height="212" src="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table.png" alt="" class="wp-image-15743" srcset="https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table.png 1067w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table-300x60.png 300w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table-1024x203.png 1024w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table-768x153.png 768w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table-24x5.png 24w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table-36x7.png 36w, https://docs.ruk-com.cloud/wp-content/uploads/2020/08/create-postgresql-table-48x10.png 48w" sizes="(max-width: 1067px) 100vw, 1067px" /></figure>



<p><span style="font-weight: 400;">อย่างที่คุณเห็น ตารางใหม่ (ตั้งชื่อตามวันที่และเวลาที่สร้าง) ได้รับการเพิ่มเรียบร้อยแล้วโดยแอปพลิเคชัน Java ของเรา สร้างการเชื่อมต่อสำเร็จแล้ว! ลองใช้ </span><span style="font-weight: 400;">link </span><a href="https://jelastic.cloud/" style="font-size: inherit;" data-wplink-edit="true"><span>globally-available Ruk-Com service providers</span></a><span style="font-weight: 400;"> สักอันดูสิ</span></p>
<p>The post <a rel="nofollow" href="https://docs.ruk-com.cloud/java-connection-to-postgresql">วิธีเชื่อมต่อ PostgreSQL กับ Java Application</a> appeared first on <a rel="nofollow" href="https://docs.ruk-com.cloud">คู่มือการใช้งาน Ruk-Com Cloud (PAAS)</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
