مقدمه

سیستم های مدیریت دیتابیس های منطقی یک مؤلفه اصلی بسیاری از وب سایت ها و برنامه ها است. آنها روشی ساختاری برای ذخیره ، سازماندهی و دسترسی به اطلاعات را ارائه می دهند. 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 <pgsqlrpms-hackers@pgfoundry.org>" 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', '20-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 | 20-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 | 20-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 | 20-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

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18.04

نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

، ,| ,یک ,postgres ,ایجاد ,توانید ,می توانید ,سرور مجازی ,استفاده از ,، می ,می کند ,type field length ,سرور مجازی centos ,from playground خروجی ,color location install

مشخصات

تبلیغات

آخرین ارسال ها

برترین جستجو ها

آخرین جستجو ها

علمی جالب وعجیب برج موزیک , موزیک برج , دانلود آهنگ جدید محرم راز درون میخانہ اَیّام پروژه های عمرانی و ساخت و ساز تهران شرکت کامتل(kumtel) مقالات اجتماعی و حقوقی دکتر پویا منصفی قفل هوشمند | قفل دیجیتال | قفل استخری | قفل باشگاهی گروه تخصصی نواندیشبان سیمارو