مقدمه
سيستم هاي مديريت ديتابيس هاي منطقي يك مؤلفه اصلي بسياري از وب سايت ها و برنامه ها است. آنها روشي ساختاري براي ذخيره ، سازماندهي و دسترسي به اطلاعات را ارائه مي دهند.
PostgreSQL يا Postgres يك سيستم مديريت ديتابيس منطقي است كه اجراي زبان جستجوي SQL را فراهم مي كند. و يك انتخاب متداول براي بسياري از پروژه هاي كوچك و بزرگ است و اين مزيت را دارد كه مطابق با استانداردها مي باشد و داراي بسياري از ويژگي هاي پيشرفته مانند تعاملات مطمئن و همزماني بدون قفل خواندن است.
در اين راهنما؛ Postgres را بر روي سرور مجازي CentOS 7 نصب خواهيد كرد و برخي از روش هاي اصلي براي استفاده از آن را فرا مي گيريد.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
يك سرور مجازي CentOS 7 كه با پيروي از راهنماي راه اندازي سرور مجازي اوليه ما با CentOS 7 و مراحل توصيه شده بعدي براي سرورهاي جديد CentOS 7 ما ، شامل كاربر غير ريشه با امتيازات sudo و فايروال تنظيم شده با firewalld پيكربندي شده باشد.
براي راه اندازي firewalld ، بخش پيكربندي يك فايروال اساسي در آموزش ستاپ توصيه شده براي سرورهاي جديد CentOS 7 را دنبال كنيد.
اگر ديتابيس ها بسيار فعال باشند و داراي نشان زماني در سوابق داخلي باشند ، مي توانند به ويژه در برابر تغييرات زمان سيستم آسيب پذير باشند. براي جلوگيري از برخي رفتارهاي متناقض كه در اثر ساعتهاي خارج از همگام سازي ناشي مي شود ، حتماً با دنبال كردن بخش همگام سازي پروتكل زماني شبكه و محدوده هاي زماني پيكربندي در آموزش مراحل اضافي براي سرور مجازيCentOS 7 جديد، همگام سازي پروتكل زماني شبكه را (NTP) تنظيم كنيد. .
مرحله 1 – نصب PostgreSQL
Postgres را مي توان با استفاده از منابع پيش فرض CentOS نصب كرد. اما در مورد نوشتن اين آموزش ، نسخه اي كه در منبع پايه CentOS 7 موجود است منسوخ شده است. بنابراين ، در اين آموزش از منبع رسمي Postgres استفاده خواهد شد.

قبل از اقدام به ايجاد منبع جديد ، جستجوي بسته هاي postgresql را از منبع CentOS-Base حذف كنيد. در غير اين صورت ، وابستگي ها ممكن است نسبت به postgresql تهيه شده توسط منبع پايه برطرف شود.
فايل پيكربندي منبع را با استفاده از ويرايشگر متن مورد نظر خود باز كنيد. در اين آموزش از vim استفاده مي شود:
$sudo vi /etc/yum.repos.d/CentOS-Base.repo
بخش هاي [base] و [update] را پيدا كنيد ، با فشار دادن i وارد حالت insert شويد و خط exclud = postgresql * را در هر دو بخش وارد كنيد. در نتيجه ، فايل شما به شرح زير خواهد بود ، با خطوط جديد برجسته شده است:
/etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

exclude=postgresql*

#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
exclude=postgresql*

پس از اتمام ، ESC را فشار دهيد تا از حالت درج خارج شويد، سپس: wq و ENTER را براي ذخيره و خروج از فايل بزنيد. براي كسب اطلاعات بيشتر در مورد ويرايشگر متن vi و جانشين آن vim ، نصب و استفاده از ويرايشگر متن Vim را در آموزش Cloud Server ببينيد.
اكنون با استفاده از منبع رسمي PostgreSQL براي CentOS ، يك بسته تنظيمات منبع را نصب كنيد:

$sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
هنگامي كه اعلان به شما داده شد ، نصب را با y تأييد كنيد.
منبع PostgreSQL شامل اطلاعات مربوط به همه نسخه هاي موجود PostgreSQL است. با استفاده از دستور زير مي توانيد تمام بسته ها و نسخه هاي موجود را مشاهده كنيد:
$yum list postgresql*
نسخه مورد نظر PostgreSQL را انتخاب و نصب كنيد. در اين راهنما از نسخه PostgreSQL 11 استفاده خواهيد كرد.
براي نصب سرور مجازي PostgreSQL از دستور زير استفاده كنيد:
$sudo yum install postgresql11-server
در طي مراحل نصب از شما خواسته مي شود تا كليد GPG را با اعلاني مانند موارد زير وارد كنيد:

Importing GPG key 0x442DF0F8:
Userid : “PostgreSQL RPM Building Project
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-5.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Is this ok [y/N]:

آن را با y تأييد كنيد تا نصب كامل شود.
اكنون كه نرم افزار نصب شده است ، شما براي تهيه خوشه ديتابيس جديد براي PostgreSQL مراحل ابتدايي را انجام خواهيد داد.
مرحله 2 – ايجاد يك خوشه ديتابيس جديد PostgreSQL
شما بايد قبل از استفاده از ديتابيس Postgres ، يك ديتابيس PostgreSQL  جديد ايجاد كنيد. يك خوشه ديتابيس مجموعه اي از بانكهاي داده است كه توسط يك سرور مجازي واحد مديريت مي شود. ايجاد يك خوشه ديتابيس شامل ايجاد دايركتوري هايي است كه در آن داده هاي ديتابيس قرار مي گيرد ، جداول كاتولوگ اشتراكي و بانكهاي اطلاعاتي template1 و postgres. را ايجاد ميكنند.
براي ايجاد يك ديتابيس جديد ، ديتابيس template1 لازم است. هر چيزي كه در آن ذخيره شده باشد ، هنگام ايجاد در يك ديتابيس جديد قرار مي گيرد. ديتابيس postgres يك ديتابيس پيش فرض است كه براي استفاده كاربران ، برنامه هاي كاربردي و برنامه هاي شخص ثالث طراحي شده است.

يك خوشه جديد براي ديتابيس PostgreSQL با initdb ايجاد كنيد:
$ sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
خروجي زير را مشاهده خواهيد كرد:
Initializing database … OK

اكنون PostgreSQL را با استفاده از systemctl شروع و فعال كنيد:
$ sudo systemctl start postgresql-11
$ sudo systemctl enable postgresql-11
خروجي زير را مي دهد
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.

اكنون كه PostgreSQL به روز شده و در حال اجرا است ، شما مي توانيد با استفاده از نقش ها ، ياد بگيريد كه چگونه Postgres كار مي كند و تفاوت آن با سيستم هاي مديريت ديتابيس مشابه شما كه ممكن است در گذشته استفاده كرده باشيد چيست.
مرحله 3 – استفاده از نقشها و بانكهاي اطلاعاتي PostgreSQL
به طور پيش فرض ، Postgres از مفهومي به نام نقش ها براي تأييد اعتبار و مجوز استفاده مي كند. اينها از بعضي جهات شبيه به حسابهاي معمولي يونيكس هستند اما Postgres بين كاربران و گروه ها فرق نمي گذارد و در عوض نقش انعطاف پذير تري را ترجيح مي دهد.
پس از نصب ، Postgres براي استفاده احراز هويت شناسايي تنظيم ميشود ، به اين معني كه نقش هاي Postgres با يك حساب كاربري سيستم Unix / Linux مرتبط مي شود. اگر نقشي در Postgres وجود داشته باشد ، يك نام كاربري يونيكس / لينوكس با همين نام قادر به ورود به عنوان آن نقش است.
روش نصب يك حساب كاربري به نام postgres ايجاد كرده است كه با نقش پيش فرض Postgres همراه است. براي استفاده از Postgres مي توانيد وارد آن حساب شويد.
چند روش براي استفاده از اين حساب براي دسترسي به Postgres وجود دارد.
انتقال به حساب Postgres
با تايپ كردن دستور زير به حساب Postgres در سرور مجازي خود سوييچ كنيد:
$ sudo -i -u postgres
اكنون مي توانيد با تايپ اين دستور فوراً به Postgres دسترسي پيدا كنيد:

$ psql
با اين كار شما وارد اعلان PostgreSQL مي شويد و از اينجا مي توانيد بلافاصله با سيستم مديريت ديتابيس ارتباط برقرار كنيد.
با تايپ كردن اين دستور از اعلان PostgreSQL خارج شويد:
Postgres=# q
اين شما را به خط فرمان سريع postgres Linux بازميگرداند. اكنون با دستور زير به حساب sudo اصلي خود برگرديد:
$ exit
دسترسي به يك Postgres سريع بدون تعويض حساب
همچنين مي توانيد دستور مورد نظر خود را با حساب postgres به طور مستقيم با sudo اجرا كنيد.
به عنوان مثال ، در نمونه آخر ، به شما دستور داده شد كه ابتدا با سوييچ كردن به كاربر Postgres و سپس اجراي psql براي باز كردن اعلان Postgres ، سريعاً بهPostgres برسيد. شما مي توانيد اين كار را در يك مرحله با اجراي فرمان واحد psql به عنوان كاربر postgres با sudo انجام دهيد ، مانند اين:
$ sudo -u postgres psql
با اين كار بدون پوسته bash مستقيماً وارد Postgres خواهيد شد.
دوباره مي توانيد با تايپ كردن اين دستور از بخش Postgres تعاملي خارج شويد:
Postgres=# q
در اين مرحله، از حساب Postgres براي رسيدن به اعلان psql استفاده كرديد. اما بسياري از موارد استفاده بيشتر به يك نقش Postgres نياز دارند. براي يادگيري نحوه پيكربندي نقشهاي جديد به خواندن متن ادامه دهيد.
مرحله 4 – ايجاد نقش جديد
در حال حاضر ، شما فقط نقش postgres ها را در ديتابيس پيكربندي كرده ايد. مي توانيد با استفاده از دستور Createrole نقش هاي جديدي را از خط فرمان ايجاد كنيد. فلگ –interactive نام نقش جديد را به شما اعلان ميكند و همچنين سؤال ميكند كه آيا مجوزهاي فوق كاربري بايد داته باشد يا خير.
اگر به عنوان حساب postgres وارد شويد ، مي توانيد با تايپ كردن اين دستور كاربر جديدي ايجاد كنيد:
postgres@server:$ createuser –interactive
در عوض ، اگر ترجيح مي دهيد بدون تغيير حساب عادي خود از sudo براي هر دستور استفاده كنيد ، تايپ كنيد:
$ sudo -u postgres createuser –interactive
اين متن با انتخاب هاي مختلفي شما را باخبر مي كند و بر اساس پاسخ هاي شما ، دستورات درست Postgres را براي ايجاد يك كاربر براي مشخصات شما اجرا مي كند. براي اين آموزش ، يك كاربر sammy ايجاد كنيد و به آن امتيازات فوق كاربر بدهيد:
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y

با عبور برخي از فلگ هاي اضافي مي توانيد كنترل بيشتري به دست آوريد. گزينه ها را با مراجعه به صفحه man بررسي كنيد:
$ man createuser
نصب شما در Postgres اكنون كاربر جديدي دارد ، اما شما هنوز هيچ ديتابيسي اضافه نكرده ايد. در بخش بعدي اين روند توضيح داده شده است.
مرحله 5 – ايجاد يك ديتابيس جديد
فرض ديگري كه سيستم تأييد اعتبار Postgres بطور پيش فرض انجام مي دهد اين است كه براي هر نقشي كه براي ورود به سيستم استفاده مي شود ، آن نقش يك ديتابيس با همان نام دارد كه مي تواند به آن دسترسي داشته باشد.
اين بدان معني است كه ، اگر كاربري كه در آخرين بخش ايجاد كرده ايد ، sammy خوانده شود ، اين نقش سعي خواهد كرد به يك ديتابيس وصل شود كه به طور پيش فرض نيز sammy ناميده مي شود. مي توانيد با دستور createdb  ديتابيس مناسب ايجاد كنيد.
اگر به عنوان حساب postgres وارد ميشويد، مطمئناً شما مي توانيد چيزي شبيه اين تايپ خواهيد كرد:
postgres@server:$ createdb sammy
در عوض ، اگر ترجيح مي دهيد بدون تغيير از حساب عادي خود ، از sudo براي هر فرمان استفاده كنيد ، تايپ كنيد:
$ sudo -u postgres createdb sammy
اين انعطاف پذيري در صورت نياز چندين مسير براي ايجاد ديتابيس جديد فراهم مي كند.
اكنون كه يك ديتابيس جديد ايجاد كرده ايد ، با نقش جديد خود وارد آن خواهيد شد.

مرحله ششم – باز كردن اعلان Postgres با نقش جديد
براي ورود به تأييد هويت مبتني بر ident ، به يك كاربر لينوكس با همان نام و نقش ديتابيس Postgres خود نياز داريد.
اگر يك كاربر سازگار با لينوكس در دسترس نداريد ، مي توانيد يكي از آنها را با دستور adduser ايجاد كنيد. شما بايد اين كار را از حساب غير ريشه خود با امتيازات sudo انجام دهيد (به اين معني كه به عنوان كاربر postgres وارد نشده ايد):
$ sudo adduser sammy
پس از در دسترس بودن اين حساب جديد ، مي توانيد با تايپ كردن به ديتابيس سوييچ كنيد و وصل شويد:
$ sudo -i -u sammy
$ psql
يا مي توانيد اين كار را بصورت درون خطي انجام دهيد:
$ sudo -u sammy psql
اين دستور شما را به طور خودكار وارد مي كند.
اگر مي خواهيد كاربر شما به يك ديتابيس ديگر متصل شود ، مي توانيد با مشخص كردن ديتابيس مانند دستور زير اين كار را انجام دهيد:
$ psql -d postgres
پس از ورود به سيستم ، مي توانيد اطلاعات اتصال فعلي خود را با تايپ كردن دستور زير بررسي كنيد:
Sammy=# conninfo
خروجي زير را نشان خواهد داد:
You are connected to database “sammy” as user “sammy” via socket in “/var/run/postgresql” at port “5432”.

اين امر در صورت اتصال به ديتابيس هاي غير پيش فرض يا با كاربران غير پيش فرض مفيد است.
با اتصال به ديتابيس خود ، اكنون مي توانيد ايجاد و حذف جداول را امتحان كنيد.
مرحله 7 – ايجاد و حذف جداول
اكنون كه مي دانيد چگونه به سيستم ديتابيس PostgreSQL وصل شويد ، مي توانيد برخي از وظايف اساسي مديريت Postgres را ياد بگيريد.
ابتدا يك جدول براي ذخيره برخي داده ها ايجاد كنيد. به عنوان نمونه ، جدولي را تهيه خواهيد كرد كه برخي از تجهيزات زمين بازي را شرح مي دهد.
تركيب اصلي اين دستور به شرح زير است:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
اين دستورات به جدول اسمي مي دهند و سپس ستون ها و همچنين نوع ستون و حداكثر طول داده هاي ميدان را مشخص مي كنند. همچنين مي توانيد محدوديت هاي جدول را براي هر ستون به صورت اختياري اضافه كنيد.
مي توانيد اطلاعات بيشتري در مورد نحوه ايجاد ، حذف و مديريت جداول در PostgreSQL در يك آموزش Cloud Server دريافت كنيد.
براي اهداف توضيحي ، يك جدول ساده مانند اين ايجاد كنيد:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
install_date date
);

اين دستورات يك جدول ايجاد مي كند كه تجهيزات زمين بازي را ذخيره مي كند. اين كار با يك شناسه تجهيزات شروع مي شود كه از نوع serial  است. اين نوع داده يك عدد صحيح است كه به طور خودكار رو به افزايش است. شما همچنين به اين ستون محدوديت primary keyرا داده ايد ، به اين معني كه مقادير بايد منحصر به فرد باشند و خنثي نباشند.
براي دو ستون (equip_id و install_date) ، دستورات طول فيلد را مشخص نمي كنند. دليل اين امر اين است كه برخي از انواع ستونها به طول مشخصي نياز ندارند زيرا طول دلالت بر نوع است.
دو دستور بعدي به ترتيب ستونهايي را براي نوع و رنگ تجهيزات ايجاد مي كنند كه هر يك از آنها نمي تواند خالي باشد. دستور بعد از اينها يك ستون مكان و يك محدوديت ايجاد مي كند كه نياز دارد اين مقدار يكي از هشت مقدار ممكن باشد. دستور آخر يك ستون تاريخ ايجاد مي كند كه تاريخ نصب تجهيزات را ثبت مي كند.
مي توانيد جدول جديد خود را با تايپ كردن دستور زير مشاهده كنيد:
Sammy=# d
خروجي زير را نشان مي دهد:
List of relations
Schema | Name | Type | Owner
——–+————————-+———-+——-
public | playground | table | sammy
public | playground_equip_id_seq | sequence | sammy
(2 rows)

جدول زمين بازي شما اينجاست ، اما چيزي به نام playground_equip_id_seq نيز وجود دارد كه از نوع sequence است. اين نمايشي از نوع serial  است كه شما به ستون equip_id خود داده ايد. اين شماره بعدي را در ترتيب دنبال مي كند و به طور خودكار براي ستون هاي اين نوع ايجاد مي شود.
اگر مي خواهيد فقط جدول بدون ترتيب را ببينيد ، مي توانيد تايپ كنيد:
Sammy=# dt
به خروجي زير منجر ميشود:
List of relations
Schema | Name | Type | Owner
——–+————+——-+——-
public | playground | table | sammy
(1 row)

در اين مرحله يك جدول نمونه ايجاد كرده ايد. در مرحله بعد ، سعي در اضافه كردن ، درخواست و حذف مطالب در آن جدول خواهيد كرد.
مرحله 8 – اضافه كردن ، جستجو و حذف داده ها در يك جدول
اكنون كه جدول داريد ، مي توانيد برخي از داده ها را در آن وارد كنيد.
به عنوان نمونه ، با فراخواني جدول موردنظر براي افزودن ، نامگذاري ستونها ، و سپس تهيه داده براي هر ستون ، يك slide و swing را اضافه كنيد:
Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2017-04-28’);
Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2018-08-16’);
شما بايد هنگام وارد كردن داده ها مراقب باشيد تا از معدود مشكلات معمول جلوگيري شود. براي يك ، نام ستون ها را در علامت نق قول نگذاريد ، اما مقادير ستون كه وارد مي كنيد به نقل قول نياز دارند.
نكته ديگري كه بايد در نظر داشته باشيد اين است كه براي ستون equip_id مقداري وارد نمي كنيد. به اين دليل است كه هر زمان كه يك رديف جديد در جدول ايجاد شود ، به طور خودكار شكل ميگيرد.
با تايپ كردن دستور زير اطلاعاتي كه اضافه كرده ايد بازيابي كنيد:
Sammy=# SELECT * FROM playground;
خروجي زير را مشاهده خواهيد كرد:

equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
1 | slide | blue | south | 2017-04-28
2 | swing | yellow | northwest | 2018-08-16
(2 rows)

در اينجا ، مي بينيد كه equip_id شما با موفقيت پر شده است و تمام داده هاي ديگر شما به درستي سازماندهي شده اند.
اگر slide روي زمين بازي خراب شد و مجبور شديد آن را حذف كنيد ، مي توانيد با تايپ كردن دستور زير سطر را از جدول خود حذف نماييد:
Sammy=# DELETE FROM playground WHERE type = ‘slide’;
جدول را دوباره فراخواني كنيد:
Sammy=# SELECT * FROM playground;
موارد زير را مشاهده خواهيد كرد:
equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
2 | swing | yellow | northwest | 2018-08-16
(1 row)

توجه كنيد كه اسلايد شما ديگر جزئي از جدول نيست.
اكنون كه ورودي هاي خود را در جدول خود اضافه كرده ايد و حذف كرده ايد ، مي توانيد ستون ها را اضافه و حذف كنيد.

مرحله 9 – اضافه كردن و حذف ستون ها از يك جدول
پس از ايجاد جدول ، مي توانيد آن را تغيير دهيد تا ستون ها اضافه يا حذف شوند. براي نمايش آخرين بازديد نگهداري براي هر قطعه تجهيزات ، يك ستون اضافه كنيد:
Sammy=# ALTER TABLE playground ADD last_maint date;
اگر اطلاعات جدول خود را دوباره مشاهده كنيد ، مي بينيد كه ستون جديد اضافه شده است (اما هيچ داده اي وارد نشده است(:
Sammy=# SELECT * FROM playground;
خروجي زير را مشاهده خواهيد كرد:
equip_id | type | color | location | install_date | last_maint
———-+——-+——–+———–+————–+————
2 | swing | yellow | northwest | 2018-08-16 |
(1 row)

حذف ستون به همين سادگي است. اگر متوجه شديد كه خدمه كاري شما از يك ابزار جداگانه براي پيگيري تاريخچه نگهداري استفاده مي كنند ، مي توانيد ستون را با تايپ كردن اين دستور حذف كنيد:
Sammy=# ALTER TABLE playground DROP last_maint;
اين ستون last_maint و مقادير موجود در آن را حذف مي كند ، اما تمام داده هاي ديگر را دست نخورده مي گذارد.
با افزودن و حذف ستونها، مي توانيد داده هاي موجود را در مرحله آخر به روز كنيد.
مرحله 10 – به روزرساني داده ها در يك جدول
تاكنون ياد گرفته ايد كه چگونه مي توانيد سوابق را به يك جدول اضافه كنيد و چگونه آنها را حذف كنيد ، اما اين آموزش هنوز نحوه تغيير ورودي هاي موجود را پوشش نداده است.
مي توانيد مقادير ورودي موجود را با فراخواني ركورد مورد نظر خود به روز كنيد و ستون را روي مقدار مورد نظر خود تنظيم كنيد. مي توانيد از سوابق swing  (با هر swing در جدول شما منطبق ميشود) استفاده كنيد و رنگ آن را به رنگ قرمز تغيير دهيد:
Sammy=# UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;
با فراخواني داده ها دوباره مي توانيد تأييد كنيد كه اين عمليات با موفقيت انجام شد:
Sammy=# SELECT * FROM playground;
خروجي زير را مشاهده خواهيد كرد:
equip_id | type | color | location | install_date
———-+——-+——-+———–+————–
2 | swing | red | northwest | 2010-08-16
(1 row)

همانطور كه مشاهده مي كنيد ، اكنون اسلايدها به عنوان قرمز ثبت شده است.
نتيجه
اكنون تنظيم PostgreSQL در سرور مجازي CentOS 7 خود را انجام داده ايد. با اين حال ، هنوز چيزهاي بيشتري براي يادگيري Postgres وجود دارد. در اينجا چند راهنماي ديگر كه نحوه استفاده از Postgres را پوشش مي دهند آورده شده است:
مقايسه سيستم هاي مديريت ديتابيس منطقي
با نحوه ايجاد و مديريت جداول با Postgres آشنا شويد
در مديريت نقش ها و مجوزها حرفه اي تر شويد
فراخواني مهارت در Postgres با Selec