پایگاه داده PostgresSQL

از ویکی پارس پویش
(تفاوت بین نسخه‌ها)
پرش به: ناوبری, جستجو
سطر ۱: سطر ۱:
--[[کاربر:Siavash|Siavash]] ([[بحث کاربر:Siavash|بحث]]) ‏۲ اوت ۲۰۱۷، ساعت ۱۲:۴۸ (IRDT)[[پیکربندی دیتابیس]]
+
 
  
 
<font face ="Tahoma">  
 
<font face ="Tahoma">  
سطر ۲۹۴: سطر ۲۹۴:
  
 
[[پرونده:Db4.png|center]]
 
[[پرونده:Db4.png|center]]
 
 
[[کاربر:Behnaz|Behnaz]] ([[بحث کاربر:Behnaz|بحث]]) ‏۲۳ نوامبر ۲۰۱۶، ساعت ۱۲:۳۳ (IRST)
 

نسخهٔ ‏۲ اوت ۲۰۱۷، ساعت ۱۳:۲۴


محتویات


پرونده:PostgreSQL.pdf


دستورات دیتابیس مربوط به IBSng :

نصب دیتابیس Postgresql:

apt-get install postgresql-9.4

اضافه کردن کاربر به دیتابیس:

su - postgres
createuser -s ibs

اضافه کردن دیتابیس:

su - postgres
createdb IBSng

Drop کردن کاربر و یا دیتابیس:

su - postgres
dropdb IBSng
dropuser ibs

وارد شدن به دیتابیس از طریق خط فرمان:

psql -U ibs IBSng

بکاپ گرفتن از دیتابیس بصورت کامل:

pg_dump -Fc -U ibs IBSng > IBSng_dump

بازگرداندن بکاپ:

pg_restore -Fc -j CPU_CORES -U ibs -d IBSng IBSng_dump

مشاهده لیست Object های یک فایل بکاپ:

pg_restore -Fc -l IBSng_dump | less

بازگرداندن فقط جداولی که نیاز است:

pg_restore -Fc -j CPU_CORES -U ibs -d IBSng -L RESTORE.txt IBSng_dump

دیدن لیست دیتابیس های سیستم:

\l+

دیدن لیست جداول دیتابیس IBSng:

\d+

مشاهده راس های ثبت شده:

select * from ras ;

disable کردن یک ras (با id =1 ):

update ras set active = 'f' where ras_id = 1;

مشاهده کاربران:

select * from normal_users ;

مشاهده لیست ادمین ها:

select * from admin ;

بکاپ گرفتن از یک جدول در خود دیتابیس:

select * into backup_TABLE from TABLE ;

بکاپ گرفتن از یک جدول در فایل CSV:

copy TABLE into ‘/tmp/FILE.csv’ csv header ;

remote access: برای دسترسی دادن به یک دیتابیس از یک IP خاص یک خط به صورت زیر در این فایل اضافه میکنیم:

nano /etc/postgresql/9.4/main/pg_hba.conf
host DatabaseName Username IPMask AuthenticaionMethod
e.g: host template1 postgres 192.168.1.2/32 md5

و پس از آن دیتابیس رو Reload میکنیم:

/etc/init.d/postgresql reload

مشاهده Session های فعال و کاربران متصل به دیتابیس:

select * from pg_stat_activity;

Kill کردن یک پروسه از دیتابیس‌ (توصیه نمیشود):

select pg_cancel_backend(PID);

توجه فرمایید که در هر مرحله میتوانید با زدن کلید TAB دستور را تکمیل نمایید. این دستورات اصلی برای شروع کار با دیتابیس است که قطعا بسته به کاری که نیاز دارید انجام دهید دستورات فرق میکنند.


table های اصلی دیتابیس IBSng :

table users:

این table شامل ستون های زیر می باشد

user_id | isp_id |  credit  | deposit | status | group_id |  creation_date   | deposit_recharge | nearest_exp_date 

ستون user_id مربوط به id کاربر میباشد که unique است و برای ارتباط با table های دیگر استفاده میشود و در اصطلاح sql این فیلد primary key است.

ستون isp_id مربوط به id ای-اس-پی میباشد که unique است .

ستون credit میزان credit مصرفی کاربر را نمایش میدهد .

ستون deposit میزان حساب ذخیره کاربر را نمایش میدهد .

ستون status وضعیت charging را نشان میدهد .

ستون group_id مربوط به id گروهی است که کاربر عضو آن است . هر کابر میتواند تنها عضو یک گروه باشد.

ستون creation_date زمان ساخت کاربر را نمایش میدهد .

ستون deposit_recharge میزان حساب ذخیره کاربر برای ترافیک مازاد را نمایش میدهد .

ستون nearest_exp_date تاریخ انقضای کاربر را نمایش میدهد .


table normal_users:

این table شامل ستون های زیر می باشد

user_id |  normal_username   |  normal_password   | second_normal_username 

ستون user_id مربوط به id کاربر میباشد که unique است و برای ارتباط با table های دیگر استفاده میشود و در اصطلاح sql این فیلد primary key است.

ستون normal_username نام کاربری کاربر را نمایش میدهد.

ستون normal_password گذرواژه کاربر را نمایش میدهد.

table user_attrs:

این table شامل ستون های زیر می باشد

user_id | attr_name |  attr_value                                                                                                                                                                       

ستون user_id مربوط به id کاربر میباشد که unique است و برای ارتباط با table های دیگر استفاده میشود و در اصطلاح sql این فیلد primary key است.

ستون attr_name همان attribute مربوط به کاربر را نمایش میدهد.

ستون attr_value مقدار مربوط به هر attr_name را نمایش میدهد.

table charges:

charge_id | charge_name   |  comment   | isp_id 

ستون charge_id مربوط به id هر شارژ میباشد که unique است و برای ارتباط با table های دیگر استفاده میشود و در اصطلاح sql این فیلد primary key است.

ستون charge_name نام مربوط به هر charge_id را نمایش میدهد

ستون comment توضیحات مربوط به هر charge_id را نمایش میدهد

ستون isp_id مربوط به id ای-اس-پی میباشد که unique است .

table charge_rules:

charge_rule_id | charge_rule_description | charge_rule_priority | charge_id

ستون charge_rule_id مربوط به id هر charge_rule میباشد که unique است و و در اصطلاح sql این فیلد primary key است.

ستون charge_rule_description نام مربوط به هر charge_rule_id را نمایش میدهد

ستون charge_rule_priority الویت هر charge_rule_id را نمایش میدهد

ستون charge_id مربوط به id هر شارژ میباشد که unique است.هر شارژ یا همان charge_id میتواند چندین charge_rule داشته باشد.

table charge_rule_attrs:

charge_rule_id |  attr_name  |   attr_value 

ستون charge_rule_id مربوط به id هر charge_rule میباشد که unique است و و در اصطلاح sql این فیلد primary key است.

ستون attr_name همان attribute مربوط به charge_rule_id را نمایش میدهد.

ستون attr_value مقدار مربوط به هر attr_name را نمایش میدهد.

table groups:

group_id |   group_name   | isp_id |    comment  | status 

ستون group_id مربوط به id گروه میباشد که unique است و برای ارتباط با table های دیگر استفاده میشود و در اصطلاح sql این فیلد primary key است.هر گروه تنها میتواند عضو یک شارژ (charge_id ) باشد. ستون group_name نام هر گروه را نمایش میدهد.

ستون isp_id مربوط به id ای-اس-پی میباشد که unique است .

ستون comment توضیحات مربوط به هر group_id را نمایش میدهد.

ستون status وضعیت هر group را نمایش میدهد.

table group_attres:

group_id | attr_name   |  attr_value 

ستون group_id مربوط به id گروه میباشد که unique است

ستون attr_name همان attribute مربوط به گروه را نمایش میدهد.

ستون attr_value مقدار مربوط به هر attr_name را نمایش میدهد.


شکل زیر چگونگی ارتباط میان charge ها charge-rule ها attr_name ها و attr_value ها را نمایش میدهد :


Db1.png


همانطور که در شکل پیداست شارژ Hamedan-POSTPAID-UNLIMIT-64-FIX-N با ای-اس-پی hamedan دارای تعدادی charge_rule و attr_name است .


برای بررسی دقیقتر table مربوط به charge_rule_attrs برای دو charge_rule_id بررسی میکنیم :


Db6.png


همانطور که در شکل پیداست charge_rule_id 9952 مربوط به کاربران failed است که در شکل قبل هم مشخص است .


همچنین charge_rule_id 10936 مربوط به سرویس master است ( attr_name = service و attr_value = Master:Master::1:1 ) که این مورد در شکل زیر به وضوح مشخص است :


Db4.png

ابزارهای شخصی

گویش‌ها
فضاهای نام
عملکردها
گشتن
جعبه‌ابزار