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

۱۱۶ مطلب با موضوع «پایگاه‌داده :: Oracle DBA» ثبت شده است

راه‌اندازی FTP و HTTP در ASM

FTP

شما می‌تونید از FTP در ASM استفاده کنید این قابلیت از طریق محصول Oracle XML DB پشتیبانی میشه پس شما باید این قابلیت رو نصب داشته باشید که به طور معمول در هنگام ایجاد دیتابیس نصب میشه و احتمالاً همین الان این ویژگی رو نصب دارید.

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

موقع نصب database software نیازی به این قابلیتها به طور معمول نیست مگر اینکه ادمین تشخصی بده پس من همه‌ی تیکها رو برمیدارم

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

سطح redundancy دیسک گروه‌ها در ASM

سطح redundancy دیسک گروه ها در ASM به سه حالت زیر است

نوع اول NORMAL
اطلاعات فایل ما را در دو جا نگهداری می‌کند. یعنی شبیه سناریو RAID 1 می‌باشد. تحمل خرابی یک گروه ۱ دیسک است. اگر یک دیسک از بین برود دیگری وجود دارد. برای راه‌اندازی آن دو تا دیسک و یا دو تا گروه failure نیاز است.

نوع دوم High
اطلاعات فایل را در ۳ جا نگهداری می‌کند. برای این حالت نمونه سناریو RAID ای وجود ندارد. تحمل خرابی ۲ تا دیسک و یا ۲ گروه failure است. اگر یکی از بین برود اطلاعات دو جای دیگر وجود دارد. برای راه اندازی آن ۳ تا دیسک و یا سه تا گروه failure نیاز است.

نوع سوم External
هیچ mirrory برای دیسک ها در ASM وجود ندارد و در صورت لزوم براساس RAID سخت‌افزاری دیسک‌ها سناریوبندی می‌شوند.

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

تحلیل و بررسی Online Redo Logs

تا حالا شده بخواین یک redo log یا archive log رو باز کنید؟ مجموعه ابزار Toad for Oracle یکی از ابزارهای قدرتمند مدیریت پایگاه‌داده اوراکل هستش که با در اختیار قراردادن ابزار Oracle LogMiner به صورت گرافیکی و ویزاردی به ما کمک میکنه که بتونیم redo log ها رو بخونیم. سرور فعلی من آرشیو لاگش فعال نیست و فعلا به خوندن redo logها بسنده میکنم.

برای بررسی و تحلیل Redo Logها پس از اتصال به دیتابیس از Database > Diagnose > LogMiner ابزار مدنظر رو فراخوانی می‌کنیم:

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

حذف آرشیو لاگ‌ها با استفاده از RMAN

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

گرفتن لیست آرشیو لاگ‌ها

RMAN> list archivelog all;
RMAN> list copy of archivelog until time ‘SYSDATE-10’;
RMAN> list copy of archivelog from time ‘SYSDATE-10’
RMAN> list copy of archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN> list copy of archivelog from sequence 1000;
RMAN> list copy of archivelog until sequence 1500;
RMAN> list copy of archivelog from sequence 1000 until sequence 1500;

پاک‌کردن آرشیو لاگ‌ها

RMAN> delete archivelog all;
RMAN> delete archivelog until time ‘SYSDATE-10’;
RMAN> delete archivelog from time ‘SYSDATE-10’
RMAN> delete archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN> delete archivelog from sequence 1000;
RMAN> delete archivelog until sequence 1500;
RMAN> delete archivelog from sequence 1000 until sequence 1500;

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

از دستور noprompt استفاده کنید تا پیغام yes-no رو نبینید.

RMAN> delete noprompt archivelog until time 'SYSDATE-10';

حالا اگه موقع حذف آرشیولاگها به مشکل زیر برخورد کردید:

RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103136.56752.952282449 thread=1 sequence=103136
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103137.56751.952282463 thread=1 sequence=103137
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103138.56748.952282479 thread=1 sequence=103138
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103139.56744.952282493 thread=1 sequence=103139
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103140.56740.952282509 thread=1 sequence=103140

می‌تونید از force استفاده کنید:

RMAN> delete force noprompt archivelog until time 'SYSDATE-7';

خودکارسازی فرآیند

برای خودکارسازی فرآیند من از ۲ اسکریپت زیر استفاده کردم و با استفاده از سرویس cron اسکریپتها رو برای اجرای هفته‌ای زمانبندی کردم:

دریافت اسکریپت RMAN
حجم: 132 بایت

دریافت اسکرپت شل لینوکس
حجم: 423 بایت

منبع:

http://www.fatihacar.com/blog/delete-archivelog-using-rman-in-oracle

۱۴ شهریور ۹۶ ، ۲۱:۲۹ ۰ نظر
مهدی غفاری

پیدا کردن مپ دیسکهای ASM

فکر کنید به سروری لاگین کردید ولی مپ درایوهای ASM رو بهتون ندادن خب تو این شرایط به راحتی با اسکریپت زیز می‌تونید خروجی رو داشته باشید:

#!/bin/bash

export ORACLEASM='/etc/init.d/oracleasm'

echo "ASM Disk Mappings"
echo "----------------------------------------------------"
for f in `$ORACLEASM listdisks`
do
dp=`$ORACLEASM querydisk -p $f | head -20 | grep /dev | awk -F: '{print $1}'`
echo "$f: $dp"
done
۱۳ شهریور ۹۶ ، ۲۱:۱۷ ۰ نظر
مهدی غفاری

حذف آرشیولاگها در ASM به صورت دستی از طریق ASMCMD

لاگین به سرور با کاربر سیستم‌عامل grid

ورود به ابزار asmcmd از طریق خط فرمان لینوکس با تایپ دستور asmcmd

(در این ابزار دستورات پایه خط فرمان همانند خط فرمان لینوکس قابل استفاده هستند)

به ترتیب برای حذف آرشیولاگها از دستورات زیر استفاده میکنیم:

[grid@mdc-dwh-pri ~]$ asmcmd
ASMCMD> cd fra/dwh/archivelog
ASMCMD> ls
2017_06_28/
2017_06_29/
ASMCMD> rm -rf *
۰۸ تیر ۹۶ ، ۰۵:۵۴ ۰ نظر
مهدی غفاری

خاموش کردن Oracle password expiration

برای اینکار کافیه پروفایل کاربر رو پیدا کنیم:

select profile from DBA_USERS where username = 'DBSNMP';

برای تغییر پروفایل به حالتی که پسوردها هیچوقت expire نشن از دستور زیر استفاده میکنیم:

alter profile MONITORING_PROFILE limit password_life_time UNLIMITED;

اگه میخواین چک کنید که تغییر درست اعمال شده:

select resource_name,limit from dba_profiles where profile='MONITORING_PROFILE';

از طریق em هم فقط کافیه با کاربر sys به مسیر زیر برید:

Server->Profiles->Default->Edit->Password->Expire in->Unlimited
۱۵ خرداد ۹۶ ، ۱۳:۴۴ ۰ نظر
مهدی غفاری

پاک کردن آرشیو لاگ‌ها بدون استفاده از RMAN

عموماً ۲ تا روش برای پاک کردن آرشیو لاگ‌ها و باقی فایل‌های دیتابیس از دیسک گروپ‌های ASM بدون RMAN در اوراکل 10g/11g هستش

روش اولasmcmd - ASM command-line utility

ASMCMD> rm file_name
For ex:-
ASMCMD> rm '+dgroup2/testdb/archivelogs/thread_1_seq_363.510.1'
یا
ASMCMD> rm '+dgroup2/testdb/datafile/USERS.250.5334166963'

اگه از فرانویسه‌ها (Wildcard) استفاده می‌کنید، دستور rm میاد تمام فایلهای دارای تطبیق رو به غیر از دایرکتوریهای پر جستجو رو پاک میکنه مگر اینکه بیاین از آپشن r- استفاده کنید. دستور rm میتونه فایلها و aliasهایی رو پاک کنه که به صورت مستقیم توسط کلاینت و یا دیتابیس در حال استفاده نباشند.

روش دوم: SQLPLUS utility

SQL> ALTER DISKGROUP DROP file
For ex:-
SQL> ALTER DISKGROUP FLASH DROP FILE '+FLASH/testdb/archivelog/2009_08_11/thread_1_seq_363.510.1';

دستورات asmcmd و sqlplus هیچوقت ویوهای دیتابیسی V$ARCHIVED_LOG, V$FLASH_RECOVERY_AREA_USAGE و controlfileها و Recovery Catalog رو آپدیت نمیکنن

برای آپدیت ویوهای دیتابیس، control fileها و یا RMAN Catalogها شما نیاز به اجرای دستورات زیر در RMAN دارید

RMAN> CROSSCHECK ARCHIVELOG ALL;
RMAN> DELETE EXPIRED ARCHIVELOG ALL;

۱۰ خرداد ۹۶ ، ۰۹:۵۳ ۰ نظر
مهدی غفاری

ORAchk و EXAchk نسخه 12.2.0.1.3 بتا ریلیز شد

اخیراً ورژن بتایی از ORAchk 12.2.0.1.3 و EXAchk 12.2.0.1.3 ریلیز و برای دانلود در دسترس قرار داده شده

ORAchk:

https://support.oracle.com/epmos/faces/DocContentDisplay?id=1268927.2&parent=linkedin&sourceId=beta12_2_0_1_3

EXAchk:

https://support.oracle.com/epmos/faces/DocContentDisplay?id=1070954.1&parent=linkedin&sourceId=beta12_2_0_1_3

ویژگی‌های جدید:

  • آپگرید دیتابیس به 12.2 با اطمینان کامل
  • بهبود سرعت کوئری‌های SQL
  • ارسال ایمیل‌های هشدار و کنترل کننده با آنالیز دیتا
  • جلوگیری از خرابی‌ها و قطعی‌های Clusterware
  • محافظت در برابر مشکلات بحرانی در Exadataها و مشکلات دیسکهای پرسرعت Samsung NVM
  • جلوگیری از مشکلات و خرابی‌ها در file systemها و مشکلات حساس SuperClusterها

ادامه مطلب...
۰۲ ارديبهشت ۹۶ ، ۱۲:۳۴ ۰ نظر
مهدی غفاری

انتقال SPFILE از file system به ASM در ORACLE RAC11g

  • ما یک رک ۲ نود داریم [rac1] و [rac2]
  • دستورات زیر رو از نود ۱ یعنی [rac1] اجرا میکنیم

مرحله اول: ساختن یک SPFILE در ASM و دیسک گروپ‌ه «RACDB_DATA+»

SQL> connect / as sysdba
SQL> show parameter spfile

NAME TYPE VALUE
------- ------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora

SQL> create pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initracdb11.ora' from spfile='/u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora';
#### OR Simply ####
SQL> create pfile from spfile
File created.

SQL> create spfile='+RACDB_DATA' from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initracdb11.ora';
File created.

SQL> exit

مرحله دوم: چک کردن SPFILE در ASM

[grid@rac1 ~]$ asmcmd

ASMCMD> ls RACDB_DATA/racdb1/spfile*
spfileracdb1.ora

ASMCMD> exit

مرحله سوم: ویرایش initracdb11.ora در rac1 و initracdb12.ora در rac2 برای اشاره به مسیر جدید SPFILE در ASM

[oracle@rac1 dbs]$ echo "SPFILE='+RACDB_DATA/racdb1/spfileracdb1.ora'" > /u01/app/oracle/product/11.2.0/db_1/dbs/initracdb11.ora
[oracle@rac1 dbs]$ ssh rac2 "echo \"SPFILE='+RACDB_DATA/racdb1/spfileracdb1.ora'\" > /u01/app/oracle/product/11.2.0/db_1/dbs/initracdb12.ora"

مرحله چهارم: آپدیت OCR با مسیر جدید SPFILE

[oracle@rac1 dbs]$ srvctl modify database -d racdb1 -p +RACDB_DATA/racdb1/spfileracdb1.ora

مرحله پنجم: ویرایش اسم‌های تمام SPFILEهای موجود در ORACLE_HOME/dbs$

[oracle@rac1 dbs]$ mv /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora_bak

[oracle@rac1 dbs]$ ssh rac2 "mv /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb12.ora /u01/app/oracle/product/11.2.0/db_1/dbs/spfileracdb12.ora_bak"

مرحله ششم: شروع مجدد تمام Instancesها برای سوییچ به SPFILE جدید

[oracle@rac1 dbs]$ srvctl stop database -d racdb1
[oracle@rac1 dbs]$ srvctl start database -d racdb1

[oracle@rac1 dbs]$ srvctl status database -d racdb1
Instance racdb11 is running on node rac1
Instance racdb12 is running on node rac2

مرحله هفتم: اتصال به دیتابیس و چک کردن مسیر SPFILE جاری

[oracle@racdb1 dbs]$ connect / as sysdba

SQL> SHOW parameter spfile

NAME TYPE VALUE
------ ----------- ------------------------------
spfile string +RACDB_DATA/racdb1/spfileracdb 1.ora

امیدوارم مفید بوده باشه

منبع:

https://emarcel.com/moving-spfile-from-file-system-to-asm-oracle-rac11g/#

۰۶ فروردين ۹۶ ، ۰۸:۴۳ ۰ نظر
مهدی غفاری