مشاوره و پشتیبانی #پایگاه داده #هوش تجاری

۱۱ مطلب با موضوع «سیستم‌عامل :: RHEL/CentOS» ثبت شده است

رفع مشکل IO Error: Connection reset by peer در OJDBC-8

نزدیک به ۱ هفته است با مشکل عجیبی در سرورهای عملیاتی‌ام برخورد کردم که بهتر دیدم مشکل را به صورت عمومی مستند کنم

APPLIES TO

  • دیتاسنتر: Hetzner - Germany
  • نسخه مجازی‌ساز: Proxmox Virtual Environment 5.2
  • نسخه سیستم عامل: Oracle Linux Server release 7.5
  • نسخه پایگاه‌داده : Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
  • نسخه JDK اوراکل: Java SE Development Kit 8u181
  • نسخه APEX (دولوپ): Oracle Application Express 18.1
  • نسخه ORDS (دولوپ): Oracle REST Data Services 18.2.0.r1831332

ادامه مطلب...
۱۷ شهریور ۹۷ ، ۱۷:۵۳ ۰ نظر موافقین ۰
مهدی غفاری

ایجاد سریع زمانبندی‌های CRON

ممکنه خیلی پیش بیاد که بخواین فعالیت خاصی رو با CRON زمانبندی کنید ولی زمانبندیتون پیچیده شده و احتیاج به کمک دارید. خب می‌دونید بهترین کار اینه که تمرین کنید ولی اگه فرصت تمرین رو ندارید می‌تونید به وبسایت زیر مراجعه کنید که شعارش اینه "ویرایشگر سریع و ساده برای زمانبندی‌های CRON"

 

 

https://crontab.guru

۲۵ مرداد ۹۷ ، ۰۷:۱۰ ۰ نظر موافقین ۰
مهدی غفاری

الحاق چند کارت شبکه در خانواده RHEL 6

فکر کنید شما یک ماشین DL380-G9 برای نصب سیستم‌عامل و دیتابیس در اختیار دارید. همونطور که می‌دونید این ماشین دارای ۴ پورت شبکه به صورت Onboard هستش و اگه ما به صفحه مشخصات این ماشین در سایت HP مراجعه کنیم (HPE ProLiant DL380 Gen9 Server) می‌بینیم که در قسمت SPECIFICATIONS در مشخصات کنترلر شبکه ۴ پورت رو نوشته که بسته به مدل و سفارش میتونه متفاوت باشه برای اطلاعات بیشتر می‌تونید به راهنمای کاربر این ماشین مراجعه کنید:

 HPE-ProLiant-DL380-Gen9-Server-User-Guide

حجم: 14.9 مگابایت

ادامه مطلب...
۲۰ مهر ۹۶ ، ۱۱:۰۱ ۰ نظر موافقین ۰
مهدی غفاری

استفاده از IPTables برای بستن ترافیک SSH به غیر از یک IP خاص

خب با این عنوان مشخصه میخوایم چیکار بکنیم

ولی برای این که واضحتر بشه من یه ip استاتیک خونه دارم میخوام فقط از این ip بتونم به سرورهای اینترنتی‌ام SSH بزنم و اینجوری جلوی اتک‌های DDOS و دیکشنری روی SSH رو بگیرم 

خط زیر رو برای اضافه کردن آی پی مجاز به لیست سفید اجرا کنید:

iptables -A INPUT -p tcp -s YOUR.IP.HERE --dport 22 -j ACCEPT

یک قانون برای بلاک کردن تمام ترافیک عبوری از پورت ۲۲ ایجاد کنید:

iptables -A INPUT -p tcp --dport 22 -j DROP

قوانین رو ذخیره کنید:

iptables-save
service iptables save

اگه نیاز داشتید یک ip به پورت 22 دسترسی داشته باشه اول از دستور زیر برای حذف قانون قبلی استفاده کنید:

iptables -D INPUT -p tcp --dport 22 -j DROP
۲۳ خرداد ۹۶ ، ۲۱:۲۵ ۰ نظر موافقین ۰
مهدی غفاری

دوباره خوانی fstab بدون ریستارت ماشین

اگه شما یه سطر جدید توی fstab وارد کردید به طور معمول باید یکبار ماشین لینوکستون رو ریستارت کنید که کار چندان دوستانه‌ای نیست.

یه راه سریع برای خوندن مقادیر جدید فایل fstab مسیر /etc/fstab/ استفاده از دستور زیر هستش:

mount -a

شاید باورتون نشه ولی همین دستور ساده منو از درخواست داون تایم برای یک سیستم‌عملیاتی در مخابرات نجات داده Cool 

پی نوشت: دوست عزیزمون وحید معانی توضیحات زیر رو اضافه کرده‌اند:

"هدف از fstab برای استفاده زمان بوت ماشین هست. حتماً لزومی به استفاده از moutn -a یا ریبوت کردن ماشین نیست.

شما دیوایس رو دستی mount کنید و fstab رو برای ریبوت‌های آتی آپدیت داشته باشید کفایت می‌کنه"

۱۶ خرداد ۹۶ ، ۱۱:۲۷ ۰ نظر موافقین ۰
مهدی غفاری

دستورات کاربردی لینوکس برای DBAها

تو لینوکس همه چی به صورت فایل‌ه (دایرکتوری، فایل، دیوایس‌ها، پراسس‌ها و ...) خب از کجا بفهمیم یک فایل به صورت دایرکتوری هستش یعنی فایلی که فایلهای دیگه رو درون خودش آدرس‌دهی کرده برای اینکار از دستور زیر استفاده می‌کنیم:

[root@db01 ~]# ls -l
total 104
-rw-------. 1 root root  1808 May 17 11:06 anaconda-ks.cfg
drwxr-xr-x. 2 root root  4096 May 17 11:11 Desktop
drwxr-xr-x. 2 root root  4096 May 17 11:11 Documents
drwxr-xr-x. 2 root root  4096 May 17 11:11 Downloads
-rw-r--r--. 1 root root 51955 May 17 11:06 install.log
-rw-r--r--. 1 root root 10033 May 17 11:04 install.log.syslog
drwxr-xr-x. 2 root root  4096 May 17 11:11 Music
drwxr-xr-x. 2 root root  4096 May 17 11:11 Pictures
drwxr-xr-x. 2 root root  4096 May 17 11:11 Public
drwxr-xr-x. 2 root root  4096 May 17 11:11 Templates
drwxr-xr-x. 2 root root  4096 May 17 11:11 Videos

تو اطلاعات permision‌ فایل اگه اولین حرف d بود یعنی دایرکتوری‌ه و اگه - یعنی فایل‌ه

ادامه مطلب...
۲۶ آبان ۹۵ ، ۱۰:۱۵ ۰ نظر موافقین ۰
مهدی غفاری

اشتراک گذاری فایل‌های ویندوز در لینوکس

درسته ما یه دنیای بسیار شگفت انگیز تو لینوکس داریم اما برای خیلی از ماها ممکنه یه دلیل اجباری برای کار کردن با ویندوز باشه. برای مثال شما ممکنه از یک سرور لینوکس برای بک‌آپ‌گیری فایلهای ویندوز استفاده کنید.

این کار به راحتی با mount یک فولدر به اشتراک گذاشته شده ویندوزی در لینوکس امکان پذیره با اینکار شما به تمام فایلهای به اشتراک گذاشته شده از لینوکس خودتون دسترسی دارید و به راحتی می‌تونید از تمام دستورات لینوکس برای کار با این فایل‌ها استفاده کنید.

ماونت کردن فایلهای اشتراک گذاشته شده ویندوزی توسط فایل سیستم‌‌های مجازی cifs در کلاینت که در کرنل لینوکس به صورت درونی قرار گرفته‌اند انجام میشه
ابزار کمک‌کننده عملیات ماونت فولدرها توسط mount.cifs که بخشی از پکیج سامبا است انجام میشه

در این مثال از اسامی زیر استفاده شده:

  • اسم ماشین ویندوزی: winbox
  • اسم فولدر به اشتراک گذاشته شده: getme
  • نام‌کاربری: sushi
  • پسورد: yummy

ادامه مطلب...
۰۶ آبان ۹۵ ، ۲۳:۴۲ ۰ نظر موافقین ۰
مهدی غفاری

ساخت مخزن آفلاین برای YUM

شاید نیاز داشته باشید برای نصب پکیج‌های پیشنیاز اوراکل از مخازن آفلاین درون DVD توزیع خودتون استفاده کنید و یا شایدم برای نصب پیش‌نیازهای اوراکل نیاز به نصب پکیج‌هایی داشته باشید و تو سایتتون امکان دسترسی ماشین به اینترنت رو نداشته باشید و یا اگه هم داشته باشید با مشکلاتی رو به رو باشید مثلاً استفاده از VPN یا Proxy که اگه توزیعتون اوراکل لینوکس هم باشه برای دسترسی به مخازن آنلاین اوراکل کارتون دو چندان میشه

تو این پست یک نگاه عملی بر مبنای این سناریو برای نصب پکیج‌های پیشنیاز اوراکل داریم

مرحله اول

اولین کارمون اینه که از DVD توزیع دایرکتوری مخازن رو در مسیری لوکال کپی کنیم

بعد از mount‌دیسک چه به صورت خودکار یا با دستور زیر

mount -t auto /dev/dvd /mnt

یا ماونت به صورت مستقیم از روی iso دیسک

mount -o loop /path/to/iso /mnt

ما باید دایرکتوری Packages رو توی مسیری لوکال که مجوزهای کافی برای خوندن و نوشتن رو داریم کپی کنیم:

[root@primary Desktop]# cp -R /mnt/Packages/ .
[root@primary Desktop]# mv Packages/ dvd

ادامه مطلب...
۳۰ شهریور ۹۵ ، ۱۲:۳۴ ۰ نظر موافقین ۰
مهدی غفاری

نحوه پیدا کردن سایز دیسک های سیستم عامل از طریق PL/SQL

برای اینکار هیچ پکیج PL/SQl از قبل نوشته شده ای وجود نداره برای رسیدن به نتیجه باید یک external table ساخت و با استفاده از یک pre-processor اطلاعات مورد نیاز رو برگردوند متاسفانه این pre-processor ما براساس پلتفرم کار میکنه

برای سیستم عاملهای یونیکس بیس و خانواده لینوکس

step0:

[oracle@localhost]$ df -B 1 /usr
Filesystem 1B-blocks Used Available Use% Mounted on
/dev/sda3 24770654208 22113492992 1398870016 95% /
step1: 

[oracle@localhost ~]$ cat /tmp/demo/demo.dat
/usr
step2: 

[oracle@localhost ~]$ cat /tmp/demo/df.sh
#!/bin/bash
/bin/df -B 1 `/bin/cat ${1}` | /bin/awk 'NR == 2 {print $4}'
step3: 

create or replace directory DEMO as '/tmp/demo'
step4: 

CREATE TABLE
df
(
free NUMBER
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DEMO
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET WE8MSWIN1252
NOBADFILE
NOLOGFILE
PREPROCESSOR demo:'df.sh'
FIELDS TERMINATED BY "|" LDRTRIM
REJECT ROWS WITH ALL NULL FIELDS
(
free CHAR
)
)
LOCATION
(
'demo.dat'
)
)
REJECT LIMIT UNLIMITED
;
step5: 

SQL> select * from df;

FREE
----------
1398870016

فقط نکته‌ای که داره اینه که سایز پارتیشن‌ها رو براساس نقاط مانت شده درمیاره و اون نقطه مانت شده ای که میدید حتما باید رو یه پارتیشن جدا باشه تا سایزش رو نشون بده و اگه اون نقطه زیرمجموعه یه نقظه دیگه باشه حتما باید نقطه اصلی رو بدید تا سایز اون پارتیشن رو بفهمید

ادامه مطلب...
۲۳ شهریور ۹۵ ، ۱۲:۲۹ ۰ نظر موافقین ۰
مهدی غفاری

تغییر اسم اینترفیس شبکه لینوکس از طریق udev

مثلاً فکر کنید سیستم‌عامل ما کارت شبکه رو با اسم wlan0 شناخته ولی ما میخوایم اسم رو به wl0 تغییر بدیم یا بعد از clone گیری از ماشین مجازی تو محیط‌های مجازی‌ساز ممکنه براتون این مشکل پیش بیاد که کارت شبکه‌های ماشین قدیمی تو فایلهای config باقی مونده باشه و سیستم‌عامل شما کارت شبکه‌های جدید رو با شماره‌های بعدی اسم گذاری کرده باشه این در حالیه که موقع راه‌اندازی کلاستر اوراکل اسم اینترفیس‌های شبکه باید یکسان باشند

خب بهترین روش برای عوض کردن اسم دیوایس‌ها از طریق udev ه (udev یه دیوایس منیجر برای کرنل لینوکس‌ه)

در ابتدای راه‌اندازی udev سخت‌افزارها رو میشناسه و براشون طبق استاندارد اسم گذاری میکنه و هر دیوایس رو به صورت یک فایل زیر dev/ قرار میده. udev به طور کلی جانشین devfs و hotplug شده البته هر کدوم از اینها میتونن دیوایس‌ها رو در دایرکتوری dev/ مدیریت کنند و تمام رفتارهای user space کرنل رو بسنجن تا وقتی یک دستگاه جدید add یا remove (به صورت hotplug یا به هر صورت دیگه‌ای) میشه firmware دستگاه رو لود کنند.

نام‌گذاری و مرتب‌سازی کارت‌های شبکه به طور غیر قابل پیش‌بینی اتفاق در هر reboot اتفاق میوفته در کرنل‌های جدید هم اسم‌گذاری کارت‌های شبکه به طور کامل تغییر کرد.

مرحله اول: پیدا کردن MAC آدرس کارت‌های شبکه

# ifconfig -a | grep -i --color hwaddr

مثالی از خروجی:

eth0      Link encap:Ethernet  HWaddr b8:ac:6f:65:31:e5
pan0      Link encap:Ethernet  HWaddr 4a:71:40:ed:5d:99
vmnet1    Link encap:Ethernet  HWaddr 00:50:56:c0:00:01
vmnet8    Link encap:Ethernet  HWaddr 00:50:56:c0:00:08
wlan0     Link encap:Ethernet  HWaddr 00:21:6a:ca:9b:10

MAC آدرس‌ها رو یادداشت کنید.

مرحله دوم: تغییر نام کارت شبکه

برای عوض کردن اسم eth0 به wan0 باید فایل 70-persistent-net.rules رو تو مسیر /etc/udev/rules.d/ پیدا و ویرایش کنید:

# vi /etc/udev/rules.d/70-persistent-net.rules

اسم کارت‌های شبکه ماشین شما در این فایل لیست شده، دنبال خطی باشید که میخواین ویرایشش کنید:

# PCI device 0x14e4:0x1680 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:ac:6f:65:31:e5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

تو این مثال ما میخوایم اسم eth0 رو به wan0 تغییر بدیم پس تو آخر خط "NAME="eth0 رو با "NAME="wan0 عوض می‌کنیم.

# PCI device 0x14e4:0x1680 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:ac:6f:65:31:e5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wan0"

حالا فایل رو save کنید و ماشین رو reboot کنید.

تنظیمات جدید رو ببینید:

# ifconfig -a
# ifconfig wan0
# ifconfig -a | less
# ip addr show

همچنین اگه بعد از reboot و طی بررسی‌هاتون دیدید که فایلی برای اینترفیستون توی مسیر /etc/sysconfig/network-scripts/ وجود نداره یک فایل با نام اینترفیس مثلاً ifcfg-eth0 با مقادیر زیر بسازید:

DEVICE=eth0
HWADDR=08:00:27:76:74:BD
TYPE=Ethernet
#UUID=540e14f4-907c-4bb9-9f59-e5e45c64414d
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp

منبع

۱۸ تیر ۹۵ ، ۰۰:۴۶ ۱ نظر موافقین ۰
مهدی غفاری