راهنمای گام به گام - نحوه deploy کردن agent ویندوز با cygwin در OEM 13C - قسمت اول

اضافه کردن targetها و یا به طور مشخص hostها، databaseها، listenerها، زیرساخت ASM و همچنین Exadataها، Middleware Cluster Serviceها و ... به OEM به سادگی قابل انجامه. به طور مشخص برای اضافه کردن target database در OEM ابتدا باید host و یا hostهای مورد نظر را add کرد. برای اضافه کردن هر host نیاز به agent مشخص آن host است. یک agent برنامه‌ای است که ارتباط مانیتورنیگ رو به صورت مستقیم با OEM در host ایجاد میکند.

اضافه کردن یک host target به OEM 13C

لاگین با کاربر sysman

https://domain-name:7802/em

Add Targets Manually

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

راهنمای سریع بازیابی گام به گام بلاک‌های خراب با استفاده از RMAN

میخواهیم مثال ساده‌ای از چگونگی به کارگیری ویژگی بازیابی بلاک‌های خراب با RMAN را ارائه دهیم. اگر دیتابیسی تمام وقت 24/7 دارید و نمی‌توانید آن را خاموش کنید می‌توان از بازیابی بلاک برای رفع خرابی بلاک‌های دیسک استفاده کنید. این ویژگی همچنین راهی سریع برای چک کردن بودن یا نبودن بلاک‌های خراب در دیتابیس را فراهم میکنه. یادتون باشه بک‌آپ‌های گرفته شده با RMAN صحت کارکردن دیتابیس را تایید نمیکنن.

خب پس rman را در حالت nocatalog یا catalog-mode اجرا کنید و به دیتابیس از طریق rman وصل شوید.

اگه لازمه از یه بک‌آپ قدیمی که کنترل فایل اون در repository اطلاعات RMAN شناخته سده نیست بازیابی رو انجام بدید، ممکنه لازم باشه از از catalog-mode استفاده کنید.

در سیستم‌عامل دستور زیر را اجرا کنید:

$ rman target / nocatalog
or
$ rman target sys/<sys_password> nocatalog

دستور تایید اعتبار که شامل “check logical” است را اجرا کنید.

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

دستورات کاربردی لینوکس برای 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 بود یعنی دایرکتوری‌ه و اگه - یعنی فایل‌ه

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

ORA-03113: end-of-file on communication channel

بعد از تغییراتی روی زیرساخت ماشین‌های کلاستر rac با ۲ نود (دیتابیس 11.2.0.4.0) به مشکلی برخوردم که در نوع خودش برام جالب بود در حقیقت یکی از instanceهای کلاستر بدون مشکل startup می‌شد ولی instance دوم به هیچ عنوان open نمی‌شد و خطای زیر رو نشون میداد:

ORA-03113: end-of-file on communication channel
Process ID: 20194
Session ID: 1655 Serial number: 5

بعد از چک کردن فایل log دیتابیس مربوط

WARNING: The 'LOG_ARCHIVE_CONFIG' init.ora parameter settings
are inconsistent with another started instance. This may be
caused by the 'DB_UNIQUE_NAME' init.ora parameter being specified
differently on one or more of the other RAC instances; the
DB_UNIQUE_NAME parameter value MUST be identical for all
instances of the database.

خب اینجا بود که فهمیدم باید یه سری به پارامتر log_archive_config بزنم بعد از بررسی این پارامتر فهمیدم که مقدار null برای اون set شده و همچنین db_unique_name یکسان داریم که از این بابت مشکلی نیست.

برای ریست کردن این پارامت از دستور زیر در وضعیت mount استفاده کنید

alter system set log_archive_config='dg_config=(nodg_config)' scope=both sid='*';

با دستور زیر می‌تونید پیکربندی دیتاگاردتون رو چک کنید:

SQL> Select * from v$dataguard_config;

DB_UNIQUE_NAME

------------------------------
dwh
dwh_stby
و اگه کانفیگ دیتاگاردتون هنوز موردنیازه دستور رو طبق نیاز خود سفارشی کنید:
alter system set log_archive_config='dg_config=(dwh,dwh_stby)' scope=both sid='*';
۱۹ آبان ۹۵ ، ۰۰:۲۵ ۱ نظر
مهدی غفاری

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

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

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

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

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

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

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

رفع مشکل Warning: ORA-16826: apply service state is inconsistent with the DelayMins property

امروز تو یکی از سایتهام به مشکل زیر در DGMGRL خوردم

DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> show configuration;
Configuration - primary
Protection Mode: MaxAvailability
Databases:
orcl - Primary database
orcldg - Physical standby database
Warning: ORA-16826: apply service state is inconsistent with the DelayMins property

Fast-Start Failover: DISABLED
Configuration Status:

WARNING

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

ساخت مخزن آفلاین برای 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

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

فارسی سازی نوشته‌های OBIEE

یه مدت درگیر فارسی سازی رشته‌های obiee 11.1.1.9.0 شدم و خب الان موقع مناسبیه که نتایج کارها رو به اشتراک بذارم
ادرسی که می‌تونید فولدر دانلودی رو اونجا کپی کنید بسته به نوع مسیرهایی که برای نصب دادید میتونه متفاوت باشه در کل دنبال مسیرهایی با همچین ساختاری باشید

/middleware/Oracle_BI1/bifoundation/web/msgdb/
ORACLE_HOME\bifoundation\web\MS-DOS
ORACLE_INSTANCE\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obipsn\msgdb

 

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

دریافت
حجم: 380 کیلوبایت

پی‌نوشت:

امروز یه درخواست دومی هم داشتیم اونم جزو مشکلات رشته‌های پکیج فارسی‌سازیمون بوده که به زودی یه آپدیت براش تو پست خودش میذارم فعلا برای اینکه یادمون باشه مشکل چی بوده:

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

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

نحوه پیدا کردن سایز دیسک های سیستم عامل از طریق 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

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

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

نگاهی بر معماری Oracle Data Guard - قسمت دوم

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

  • زمانی که broker پیکربندی شده باشد
  • ابزار خط فرمان DGMGRL
  • ابزار EM Grid Control
  • با استفاده از دستورات SQL و کوئری گرفتن از viewهای دیتادیکشنری

زمانی که broker پیکربندی نشده باشد

  • فقط با استفاده از دستورات SQL و کوئری گرفتن از viewهای دیتادیکشنری

اما اگه Gap ای بین دیتابیس primary و standby ایجاد بشه یعنی حتی یک redo سمت primary نوشته شده باشه ولی در سمت standby به هر دلیلی نوشته نشده باشه حالت Gap‌ به وجود میاد

کی ممکنه Gap اتفاق بیوفته:

  • مشکل شبکه
  • مشکل پروسس LNS (ارسال کننده)
  • مشکل پروسس RFS (دریافت کننده)

تو این حالت دیتابیس standby با دیتابیس primary به طور کامل sync نیستند

راه‌حل اوراکل برای این مشکل به ۲ صورت است:

  • Automatic
  • Manual

خب فرض کنید Gap ای بین دیتابیس‌هامون داریم و redo log fileهامون جلو رفتن چون ممکنه زمان زیادی Gap‌ ایجاد شده باشه و ادمی هم متوجه Gap نشده باشه تو این حالت ممکنه بارها redo log buffer ما خالی و پر شده باشه و عملاً sync کردن دیتا رو با مشکل مواجه کنه

همچنین online redo log fileها هم بارها log switch براشون رخ داده و overwrite شدن پس دیگه امکان خوندن از online redo log fileها هم نیس

اینجاست که Archiveهای ما به کمکمون میان

حالت Automatic

تو این حالت RFS به جای اینکه redoها رو بگیره به طور خودکار archiveها رو می‌گیره و شروع به apply کردن archiveها میکنه

حالت Manual

فرضاً redoها تا ۱۰ تا seq انتقال پیدا می‌کنند(apply می‌شوند) ولی آرشیو‌های redo شماره ‍۱۱ وجود نداره ولی ۱۲ به بعد آرشیوهاش موجوده و هرچی هم سرور رو جستجو می‌کنید seq شماره ۱۱ رو پیدا نمی‌کنید این Gap فقط با روش manual حل میشه

مثلاً ۱۰ تا seq به سمت دیتابیس گارد نرفته‌اند تو این حالت تمام redoهای archive شده در سمت دیتابیس primary به محض برقراری ارتباط شبکه بین دیتابیسها شروع به apply شدن می‌کنند

اینجا کانفیگ از اول روشی غلط است چون فقط یک یا چند seq انتقال پیدا نکرده‌اند

انشالله تو پستی جداگونه این مطلب رو شرح خواهم داد

Manually Resolving Gaps - Oracle Data Guard 11gR2

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