V$ORACLE_CITY



     راه آسان جهت مدیریت حافظه در دیتابیس اوراکل این است که آن را به AMM واگذار کنیم. به همین جهت باید دو پارامتر MEMORY_TARGET و MEMORY_MAX_TARGET را تنظیم کنید.

     AMM به صورت خودکار SGA و PGA را بر اساس نیاز دیتابیس و بالانس کاری تنظیم می کند به صورتی که جمع مقدار حافظه ­ای که به این دو تخصیص میدهد برابر با مقدار MEMORY_TAGET  می شود. به این نکته توجه داشته باشید که AMM مقدار MEMORY_TARGET را تغییر نمی­دهد و در صورتی که نیاز داشته باشید خود شما باید مقدار این پارامتر را تغییر بدهید. (حداکثر به اندازه MEMORY_MAX_TARGET)

     تغییر پارامتر MEMORY_TARGET به صورت داینامیک انجام می شود و احتیاجی به ریست کردن دیتابیس نیست با استفاده از دستور زیر

ALTER SYSTEM SET MEMORY_TARGE=nM ;

اما در صورتی که بخواهید مقدار پارامتر MEMORY_MAX_TARGET را تغییر بدهید باید دیتابیس را یکبار خاموش رو روشن کنید.

ALTER SYSTEM SET MEMORY_MAX_TARGET=nM scope=spfile;

برای اینکه مدیریت حافظه را به حالت manual تغییر بدهید دستور زیر را اجرا کنید:

ALTER SYSTEM SET MEMORY_TARGET=0;

 در زمانی که سیستم در مد AMM باشد مقادیر زیر برقرار است:

ALTER SYSTEM SET SGA_TARGET=0;

ALTER SYSTEM SET PGA_AGGREGATE_TARGET=0;

همانطور که ابتدای متن گفته شد این مقادیر به صورت اتوماتیک مقدار دهی می­شوند.

     جدول V$MEMORY_TARGET_ADVICE مقدار توصیه شده از سوی اوراکل برای پارامتر MEMORY_TAGET را نشان می دهد. به شکل زیر توجه کنید:

memory target

  

     خروجی جدول زیر به این صورت تفسیر می­شود که مقدار 1 در ستون MEMORY_SIZE_FACTOR نمایانگر مقدار اکنون MEMORY_TARGET است و دیگر مقادیر را اگر در مقدار حافظه در این حالت ضرب کنیم مقدار ستون حافظه بدست می آید. همچنین ستون ESTD_DB_TIME نمایانگر مدت زمان دیتابیس برای تکمیل کردن بارکاری خود می باشد. اگر مقدار حافظه را در این مثال از 360مگابایت  که مقدار اکنون است به مقدار 450 مگابایت تغییر دهیم مدت زمانی که دیتابیس برای انجام بارکاری می­خواهد از 341 به 335 تغییر می­کند و افزایش MEMORY_TARGET به بیشتر از این مقدار تاثیری در زمان تمام کردن کار نخواهد گذاشت.

     هنگامی که تغییرات را اعمال کردید و دیتابیس را خاموش و روشن کردید ممکن است با خطای زیر مواجه شوید:

ORA_00845: MEMORY_TARGET not supported on this system but memory size seems to be fine

 این خطا بیان گر این است که اندازه حافظه سیستم شما ایرادی ندارد ولی مقدار shared memory file system کافی نیست و باید به اندازه memory_max_target تغییر پیدا کند.

برای این حالت باید به صورت زیر عمل کنید:

در صورتی که مقدار MEMORY_MAX_TARGET را نمی دانید به PFILE در مسیر $ORACLE_HOME/dbs/initINSTANCENAME.ora مراجعه کنید و مقدار را بدست آورید. سپس با دستور زیر اندازه /dev/shm را تغییر دهید:

$ df -h /dev/shm


$ mount -t tmpfs shmfs -o size=some_value_in_number_with_size /dev/shm

برای مثال:

mount -t tmpfs shmfs -o size=4096m /dev/shm

موفق باشید.

 

منابع:

https://docs.oracle.com/cd/B28359_01/server.111/b28310/memory004.htm#ADMIN11202


https://stackoverflow.com/questions/33366282/oracle-startup-not-possible-ora-00845-memory-target-not-supported-on-this-sys



اگر در مراحل deployment add host در Oracle Cloud 13 یا Oracle Cloud 12

ERROR: The Oracle Management Server (OMS) host and port specified via OMS_HOST & EM_UPLOAD_PORT is not available.

ERROR: The Oracle Management Server (OMS) host and port specified via OMS_HOST & EM_UPLOAD_PORT is not available. Pass in a valid hostname and port number for the OMS to successfully deploy the agent.

با خطای بالا مواجه شدید موارد زیر را مد نظر قرار بدید و حتماً بررسی کنید :


1- بررسی وضعیت OMS :

[oracle@OMS ~]$ $OMS_HOME/bin/emctl status oms
Oracle Enterprise Manager Cloud Control 13c Release 2
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up BI Publisher Server is Down
BI Publisher is disabled, to enable BI Publisher on this host, use the 'emctl config oms -enable_bip' command

OMS بالا است.

2- ping OMS :


[oracle@OMS ~]$ $OMS_HOME/bin/emctl status oms
unknown host OMS 
[oracle@jystdrac1 ADATMP_2018-01-23_13-38-45-PM]$ ping 192.168.1.88 
PING 192.168.1.88 (192.168.1.88) 56(84) bytes of data.
64 bytes from 192.168.1.88: icmp_seq=1 ttl=64 time=1.37 ms
64 bytes from 192.168.1.88: icmp_seq=2 ttl=64 time=0.615 ms

3- بررسی /etc/hosts/ :

#OMS
192.168.1.88 OMS


4-بررسی wget :



wget http://192.168.1.88:4903/empbs/genwallet
یا

wget https://192.168.1.88:4903/empbs/genwallet

یا

wget http://OMS:4903/empbs/genwallet


[oracle@jystdrac1 ~]$ wget http://OMS:4903/empbs/genwallet
--2018-01-23 16:02:03--  http://oms:4903/empbs/genwallet
Resolving oms. 192.168.1.88
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.
--2018-01-23 16:02:04-- (try: 2) http://oms:4903/empbs/genwallet
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.

--2018-01-23 16:02:06-- (try: 3) http://oms:4903/empbs/genwallet
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.

5- در صورت بر قرار بوده شرایط فوق و حل نشدن مشکل مسیر deploy را حذف و مجدد راه اندازی را انجام بدید.

 


در صورتی که نرم افزار دیتابیس اوراکل را قبلا نصب کرده باشید حتما در یکی از مراحل نصب با گزینه های انتخاب نصب در مد:

  • Enterprise edition
  • standard edition

مواجه شده اید. اوراکل بعضی از ویژگی هایش را در مد standard غیرفعال کرده است از جمله امکان پارتیشن کردن جداول. شما می توانید با اجرای دستور زیر بر روی دیتابیس خود متوجه بشوید که امکان پارتیشن کردن جداول بر روی دیتابیس شما فعال است یا  خیر:

 

select * from v$option where parameter = 'Partitioning';

 

در صورتی که بخواهید جدولی را پارتیشن بندی کنید و نرم افزار شما در مد standard نصب شده باشد با خطای زیر مواجه می شوید:

 

ORA-00439: feature not enabled: Partitioning

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

  • ابتدا تمام دیتابیس هایی (INSTANCE)که بر روی مسیر ORACLE_HOME نصب و فعال هستند را خاموش کنید.
  • سپس به مسیر زیر بروید:

o       $ cd $ORACLE_HOME/rdbms/lib

  • دستورات زیر را به ترتیب اجرا کنید:

o       $ make -f ins_rdbms.mk part_on

o       $ make -f ins_rdbms.mk ioracle

  • دیتابیس های خود را روشن کنید.

خب امیدوارم که این مطلب برای شما مفید باشه :)

 


     در صورتی که بخواهید به صورت remote به دیتابیس لاگین کنید به صورت زیر

sqlplus sys@tnsname as sysdba

     ممکن است با ارور ORA-01017 مواجه شوید. برای برطرف کردن این مشکل ابتدا مطمئن شوید که فایل پسورد در مسیر $ORACLE_HOME/dbs/orapwORACLE_SID وجود دارد. در صورتی که این فایل موجود بود به صورت زیر به دیتابیس لاگین شوید:

sqlplus / as sysdba

SQL> select * from v$pwfile_users;

 

no rows selected

 

SQL> show parameter remote_login

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ----------

remote_login_passwordfile            string      EXCLUSIVE


همانطور که مشاهده می کنید در جدول V$PWFILE_USERS رکوردی وجود ندارد در نتیجه با وجود فایل orapwdoracle_sid و یا حتی امکان انجام دستور تغییر پسورد نام کاربری ولی باز هم شما امکان ورود به دیتابیس به صورت REMOTE را نخواهید داشت.

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


orapwd file=$ORACLE_HOME/dbs/orapwORACLE_SID password=xyzyzx#123 entries=2


حتما به این نکته توجه کنید که باید نام فایل پسورد جدید که ایجاد می کنید باید داری پسوند نام ORACLE_SID باشد و حروف بزرگ و کوچک را حتما رعایت کنید.


     بعد از انجام دستور بالا شما قادر خواهید بود که به دیتابیس به صورت REMOTE لاگین کنید. همچنین فراموش نکنید که remote_login_passwordfile مقدارش EXCLUSIVE یا SHARED باشد.

   

SQL> select * from v$pwfile_users;

 

USERNAME                       SYSDB SYSOP

------------------------------ ----- -----

SYS                            TRUE  TRUE

  

  در صورتی که شما بخواهید سرور STANDBY داشته باشید یا اینکه نود های شما به صورت  RAC باشند باید فایل پسورد ایجاد شده را با دستور SCP به شکل زیر به تمام سرورهای دیگر انتقال بدهید:

scp $ORACLE_HOME/dbs/orapwORACLE_SID oracle@serverip:$ORACLE_HOME/dbs

سپس به داخل تمام سرورهایی که فایل را انتقال داده اید لاگین کنید و نام این فایل را به نام ORACLE_SID همان سرور تغییر دهید.

     برای مثال در صورتی که شما دیتاگارد راه اندازی کرده باشید و پسورد کاربر SYS در دو دیتابیس شما متفاوت باشد در AlertLog شما با این خطا مواجه می شوید:

Error 1017 received logging on to the standby

------------------------------------------------------------

Check that the primary and standby are using a password file

and remote_login_passwordfile is set to SHARED or EXCLUSIVE,

and that the SYS password is same in the password files.

      returning error ORA-16191

همینطور می توانید با اجرای دستور زیر بر روی سرور PRODUCTION خطای بالا را مشاهده کنید:

SQL> select message, to_char(timestamp,'HH:MI:SS') timestamp

  from v$dataguard_status

  where severity in ('Error','Fatal')

   order by timestamp;

SQL> select dest_id,status,error from v$archive_dest;

بعد از اینکه فایل پسورد در سرور PRODUCTION را تغییر دادید و در سرور گارد کپی کردید می توانید با استفاده از یکی از دو راه زیر در صورتی که تنظیمات اولیه گارد را انجام داده باشید دوباره دو دیتابیس را SYNC کنید:

ON STANDBY SERVER:

SQL> alter database recover managed standby database cancel;

SQL> alter database recover managed standby database disconnect from session;

OR ON PRODUCTION:

SQL> alter system set log_archive_dest_state_2=DEFER;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

و در نهایت دستور زیر را اجرا کنید:

SQL> ALTER SYSTEM SWITCH LOGFILE;

دیتابیس ها شروع به SYNC کردن می کنند در نهایت برای اطمینان می توانید دستور زیر را اجرا کنید:

 

SQL> select t1.max_seq_archived, t2.max_seq_applied

  from (select max(sequence#) max_seq_archived from v$archived_log) t1,

       (select max(sequence#) max_seq_applied

          from v$archived_log

         where applied = 'YES') t2;

موفق باشید.


مدیریت خودکار حافظه (MMA)در پایگاه‌داده اوراکل  نسخه 11      

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

اوراکل نسخه 9i مدیریت  PGA را به طور خودکار از طریق معرفی پارامتر  PGA_AGGREGATE_TARGET  انجام می دهد

اوراکل 10g این روند را با خودکار کردن مدیریت SGA   با استفاده از پارامتر SGA_TARGET انجام

 داده.

اوراکل 11g این یک مرحله را با اجازه دادن به شما برای تخصیص یک تکه از حافظه به کار می‌برد، که اوراکل از آن برای مدیریت پویا هم SGA  و هم  PGAاستفاده می‌کند.

 در زمان نوشتن این مستند  مدیریت حافظه خودکار (AMM) تنها بر روی سیستم عامل های اصلی پشتیبانی می‌شود:

 (Linux, Solaris, Windows, HP-UX, AIX)

     راه آسان جهت مدیریت حافظه در دیتابیس اوراکل این است که آن را به AMM واگذار کنیم. به همین جهت باید دو پارامتر MEMORY_TARGET و MEMORY_MAX_TARGET را تنظیم کنید.

     AMM به صورت خودکار SGA و PGA را بر اساس نیاز دیتابیس و بالانس کاری تنظیم می کند به صورتی که جمع مقدار حافظه ­ای که به این دو تخصیص میدهد برابر با مقدار MEMORY_TAGET  می شود. به این نکته توجه داشته باشید که AMM مقدار MEMORY_TARGET را تغییر نمی­دهد و در صورتی که نیاز داشته باشید خود شما باید مقدار این پارامتر را تغییر بدهید. (حداکثر به اندازه MEMORY_MAX_TARGET)

     تغییر پارامتر MEMORY_TARGET به صورت داینامیک انجام می شود و احتیاجی به ریست کردن دیتابیس نیست با استفاده از دستور زیر

ALTER SYSTEM SET MEMORY_TARGE=nM ;

اما در صورتی که بخواهید مقدار پارامتر MEMORY_MAX_TARGET را تغییر بدهید باید دیتابیس را یکبار خاموش رو روشن کنید.

ALTER SYSTEM SET MEMORY_MAX_TARGET=nM scope=spfile;

برای اینکه مدیریت حافظه را به حالت manual تغییر بدهید دستور زیر را اجرا کنید:

ALTER SYSTEM SET MEMORY_TARGET=0;

 در زمانی که سیستم در مد AMM باشد مقادیر زیر برقرار است:

ALTER SYSTEM SET SGA_TARGET=0;

ALTER SYSTEM SET PGA_AGGREGATE_TARGET=0;

همانطور که ابتدای متن گفته شد این مقادیر به صورت اتوماتیک مقدار دهی می­شوند.

     جدول V$MEMORY_TARGET_ADVICE مقدار توصیه شده از سوی اوراکل برای پارامتر MEMORY_TAGET را نشان می دهد. به شکل زیر توجه کنید:

memory target

  

     خروجی جدول زیر به این صورت تفسیر می­شود که مقدار 1 در ستون MEMORY_SIZE_FACTOR نمایانگر مقدار اکنون MEMORY_TARGET است و دیگر مقادیر را اگر در مقدار حافظه در این حالت ضرب کنیم مقدار ستون حافظه بدست می آید. همچنین ستون ESTD_DB_TIME نمایانگر مدت زمان دیتابیس برای تکمیل کردن بارکاری خود می باشد. اگر مقدار حافظه را در این مثال از 360مگابایت  که مقدار اکنون است به مقدار 450 مگابایت تغییر دهیم مدت زمانی که دیتابیس برای انجام بارکاری می­خواهد از 341 به 335 تغییر می­کند و افزایش MEMORY_TARGET به بیشتر از این مقدار تاثیری در زمان تمام کردن کار نخواهد گذاشت.

     هنگامی که تغییرات را اعمال کردید و دیتابیس را خاموش و روشن کردید ممکن است با خطای زیر مواجه شوید:

ORA_00845: MEMORY_TARGET not supported on this system but memory size seems to be fine

 این خطا بیان گر این است که اندازه حافظه سیستم شما ایرادی ندارد ولی مقدار shared memory file system کافی نیست و باید به اندازه memory_max_target تغییر پیدا کند.

برای این حالت باید به صورت زیر عمل کنید:

در صورتی که مقدار MEMORY_MAX_TARGET را نمی دانید به PFILE در مسیر $ORACLE_HOME/dbs/initINSTANCENAME.ora مراجعه کنید و مقدار را بدست آورید. سپس با دستور زیر اندازه /dev/shm را تغییر دهید:

$ df -h /dev/shm


$ mount -t tmpfs shmfs -o size=some_value_in_number_with_size /dev/shm

برای مثال:

mount -t tmpfs shmfs -o size=4096m /dev/shm

موفق باشید.

 

منابع:

https://docs.oracle.com/cd/B28359_01/server.111/b28310/memory004.htm#ADMIN11202

https://stackoverflow.com/questions/33366282/oracle-startup-not-possible-ora-00845-memory-target-not-supported-on-this-sys



اگر در بازیابی RMAN  با خطای زیر مواجه شدید و دیتابیس شاملStandby  و در مد Maximize Availability بود مراحل زیر را جهت رفع خطا دنبال کنید :

ORA-16072: a minimum of one standby database destination is required;

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

 

خطای بالا پس از تلاش برای OPEN کردن پایگاه ‌داده پس از Restore وRecover  RMAN رخ داده ‌است.


SQL> alter database open;

alter database open

*

ERROR at line 1:

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

Process ID: 3689

Session ID: 5644 Serial number: 5

 

در  RMAN بعد از open resetlogs:

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 17 and starting SCN of 822561


در فایل Alert.log :

Mon May 16 16:29:17 2016

alter database open

Mon May 16 16:29:18 2016

LGWR: STARTING ARCH PROCESSES

Mon May 16 16:29:18 2016

ARC0 started with pid=21, OS id=3196 

ARC0: Archival started

LGWR: STARTING ARCH PROCESSES COMPLETE

ARC0: STARTING ARCH PROCESSES

LGWR: Primary database is in MAXIMUM AVAILABILITY mode

LGWR: Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR

LGWR: Minimum of 1 LGWR standby database required

Errors in file /soft/app/oracle/diag/rdbms/remitdb/remitdb/trace/remitdb_lgwr_3144.trc:

ORA-16072: a minimum of one standby database destination is required

Mon May 16 16:29:19 2016

ARC1 started with pid=22, OS id=3198 

LGWR (ospid: 3144): terminating the instance due to error 16072

Mon May 16 16:29:20 2016

System state dump requested by (instance=1, osid=3144 (LGWR)), summary=[abnormal instance termination].

System State dumped to trace file /soft/app/oracle/diag/rdbms/remitdb/remitdb/trace/remitdb_diag_3134_20160516162920.trc

Dumping diagnostic data in directory=[cdmp_20160516162920], requested by (instance=1, osid=3144 (LGWR)), summary=[abnormal instance termination].

Instance terminated by LGWR, pid = 3144

Mon May 16 16:31:18 2016

راه حل :

مرحله 1 : Startup  دیتابیس در حالت mount .

SQL> startup mount;

ORACLE instance started.

 

Total System Global Area 7482626048 bytes

Fixed Size                  2267792 bytes

Variable Size            5804918128 bytes

Database Buffers         1660944384 bytes

Redo Buffers               14495744 bytes

Database mounted.

SQL>  select open_mode, DATABASE_ROLE, guard_status, SWITCHOVER_STATUS from v$database;

 

OPEN_MODE            DATABASE_ROLE    GUARD_S SWITCHOVER_STATUS

-------------------- ---------------- ------- --------------------

MOUNTED              PRIMARY          NONE    NOT ALLOWED

 

مرحله 2 : انتقال دیتابیس به مد maximize performance .

 

SQL> alter database set standby database to maximize performance;

 

Database altered.

 

SQL>

 

مرحله 3 : خاموش کردن دیتابیس.

 

SQL> shutdown immediate

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

 

مرحله 4 : Startup  دیتابیس در حالت mount .

 

SQL> startup mount;

ORACLE instance started.

 

Total System Global Area 7482626048 bytes

Fixed Size                  2267792 bytes

Variable Size            5804918128 bytes

Database Buffers         1660944384 bytes

Redo Buffers               14495744 bytes

Database mounted.

مرحله 5 : open  کردن دیتابیس.

SQL> alter database open;

Database altered.

 

SQL> select open_mode from v$database;

 

OPEN_MODE

--------------------

READ WRITE


source : http://bishwanathdas.blogspot.com/2016/05/ora-16072-minimum-of-one-standby.html


در این مقاله تلاش می شود تا از InconsistentProperties که ناشی از یکسان نبودن مقادیر پارامتر بین  spfile، پیکربندی Data Guard Broker  و پایگاه داده است، حل شود.

 

در صورت مشاهده خطا  ORA-16714 در ابزار مدیریت دیتاگارد DGMGRL

 

DGMGRL> show configuration;

 

Configuration - orcl

 

  Protection Mode: MaxPerformance

  Databases:

    orcl - Primary database

    orcladg - Physical standby database

                                   Warning: ORA-16714: the value of property DbFileNameConvert is inconsistent with the database setting

                                   Warning: ORA-16714: the value of property LogFileNameConvert is inconsistent with the database setting

 

و یا در مسیر لاگ های اوراکل که Data Guard Broker لاگ فایلی به نام drc<primary site>.log ایجاد میکند ,خطای زیر را مشاهده کردید :

 

Property 'DbFileNameConvert' has inconsistent values:METADATA='', SPFILE='+DATA/orcl,+DATA/orcl', DATABASE='+DATA/orcl, +DATA/orcl'

Property 'LogFileNameConvert' has inconsistent values:METADATA='+DATA/orcl/ONLINELOG/,+DATA /orcl/ONLINELOG/', SPFILE='+DATA/orcl,+DATA/orcl', DATABASE='+DATA/orcl, +DATA/orcl'

 

با استفاده از دستور زیر  موارد دارای تناقض که درست تنظیم نشده را مشاهده میکنید:

DGMGRL /

DGMGRL> show database '<db_unique_name>' 'InconsistentProperties'

 

سپس مقدار جدید را با استفاده از دستور زیر اعمال نمایید تا Warning مربوطه بر طرف گردد.

On Primary:

DGMGRL> edit DATABASE "orcl" SET PROPERTY DbFileNameConvert = '+DATA/orcl, +DATA/orcl'

DGMGRL> edit DATABASE "orcl" SET PROPERTY LogFileNameConvert = '+DATA/orcl, +DATA/orcl'

 

On Standby:

DGMGRL> edit DATABASE "orcl" SET PROPERTY DbFileNameConvert = '+DATA/orcl, +DATA/orcl'

DGMGRL> edit DATABASE "orcl" SET PROPERTY LogFileNameConvert = '+DATA/orcl, +DATA/orcl'

 






Problem :

========

ORA-12012: error on auto execute of job SYS”.”ORA$AT_OS_OPT_SY_936″
ORA-20001: Statistics Advisor: Invalid task name for the current user
ORA-06512: at SYS.DBMS_STATS”, line 47207
ORA-06512: at SYS.DBMS_STATS_ADVISOR”, line 882
ORA-06512: at SYS.DBMS_STATS_INTERNAL”, line 20059
ORA-06512: at SYS.DBMS_STATS_INTERNAL”, line 22201
ORA-06512: at SYS.DBMS_STATS”, line 47197
2017-03-13T00:47:21.394481+00:00

Cause :
========

This issue is happening because of the unavailability of the Stats Advisor Tasks from the created database.

Resolution :
=============

1. Connect to the created database using the SYSDBA privilege and run the following command:
2.

SQL>select name, ctime, how_created
from sys.wri$_adv_tasks
where owner_name = ‘SYS’
and name in (‘AUTO_STATS_ADVISOR_TASK’,’INDIVIDUAL_STATS_ADVISOR_TASK’);

no rows selected

3.

SQL> EXEC dbms_stats.init_package();

PL/SQL procedure successfully completed.

4.

SQL>select name, ctime, how_created
from sys.wri$_adv_tasks
where owner_name = ‘SYS’
and name in (‘AUTO_STATS_ADVISOR_TASK’,’INDIVIDUAL_STATS_ADVISOR_TASK’);

NAME                                                            CTIME             HOW_CREATED
——————–                                                —————–     ———————
AUTO_STATS_ADVISOR_TASK                  13-MAR-17       CMD
INDIVIDUAL_STATS_ADVISOR_TASK     13-MAR-17       CMD

 

5. Once the Stats Advisor Tasks are available in database, the database alert log no longer has: – ORA-06512 FROM ORA$AT_OS_OPT_SY_XXX


در این مقاله تلاش می شود تا از InconsistentProperties که ناشی از یکسان نبودن مقادیر پارامتر بین  spfile، پیکربندی Data Guard Broker  و پایگاه داده است، حل شود.

 

در صورت مشاهده خطا  ORA-16714 در ابزار مدیریت دیتاگارد DGMGRL

 

DGMGRL> show configuration;

 

Configuration - orcl

 

  Protection Mode: MaxPerformance

  Databases:

    orcl - Primary database

    orcladg - Physical standby database

Warning: ORA-16714: the value of property DbFileNameConvert is inconsistent with the database setting

Warning: ORA-16714: the value of property LogFileNameConvert is inconsistent with the database setting

 

و یا در مسیر لاگ های اوراکل که Data Guard Broker لاگ فایلی به نام drc<primary site>.log ایجاد میکند ,خطای زیر را مشاهده کردید :

 

Property 'DbFileNameConvert' has inconsistent values:METADATA='', SPFILE='+DATA/orcl,+DATA/orcl', DATABASE='+DATA/orcl, +DATA/orcl'

Property 'LogFileNameConvert' has inconsistent values:METADATA='+DATA/orcl/ONLINELOG/,+DATA /orcl/ONLINELOG/', SPFILE='+DATA/orcl,+DATA/orcl', DATABASE='+DATA/orcl, +DATA/orcl'

 

با استفاده از دستور زیر  موارد دارای تناقض که درست تنظیم نشده را مشاهده میکنید:

DGMGRL /

DGMGRL> show database '<db_unique_name>' 'InconsistentProperties'

 

سپس مقدار جدید را با استفاده از دستور زیر اعمال نمایید تا Warning مربوطه بر طرف گردد.

On Primary:

DGMGRL> edit DATABASE "orcl" SET PROPERTY DbFileNameConvert = '+DATA/orcl, +DATA/orcl'

DGMGRL> edit DATABASE "orcl" SET PROPERTY LogFileNameConvert = '+DATA/orcl, +DATA/orcl'

 

On Standby:

DGMGRL> edit DATABASE "orcl" SET PROPERTY DbFileNameConvert = '+DATA/orcl, +DATA/orcl'

DGMGRL> edit DATABASE "orcl" SET PROPERTY LogFileNameConvert = '+DATA/orcl, +DATA/orcl'

 




 

 

 

اگر در بازیابی RMAN  با خطای زیر مواجه شدید و دیتابیس شاملStandby  و در مد Maximize Availability بود مراحل زیر را جهت رفع خطا دنبال کنید :

ORA-16072: a minimum of one standby database destination is required;

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

 

 

 

خطای بالا پس از تلاش برای OPEN کردن پایگاه ‌داده پس از Restore وRecover  RMAN رخ داده ‌است.

 

SQL> alter database open;

alter database open

*

ERROR at line 1:

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

Process ID: 3689

Session ID: 5644 Serial number: 5

 

در  RMAN بعد از open resetlogs:

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 17 and starting SCN of 822561

 


در فایل Alert.log :

Mon May 16 16:29:17 2016

alter database open

Mon May 16 16:29:18 2016

LGWR: STARTING ARCH PROCESSES

Mon May 16 16:29:18 2016

ARC0 started with pid=21, OS id=3196 

ARC0: Archival started

LGWR: STARTING ARCH PROCESSES COMPLETE

ARC0: STARTING ARCH PROCESSES

LGWR: Primary database is in MAXIMUM AVAILABILITY mode

LGWR: Destination LOG_ARCHIVE_DEST_1 is not serviced by LGWR

LGWR: Minimum of 1 LGWR standby database required

Errors in file /soft/app/oracle/diag/rdbms/remitdb/remitdb/trace/remitdb_lgwr_3144.trc:

ORA-16072: a minimum of one standby database destination is required

Mon May 16 16:29:19 2016

ARC1 started with pid=22, OS id=3198 

LGWR (ospid: 3144): terminating the instance due to error 16072

Mon May 16 16:29:20 2016

System state dump requested by (instance=1, osid=3144 (LGWR)), summary=[abnormal instance termination].

System State dumped to trace file /soft/app/oracle/diag/rdbms/remitdb/remitdb/trace/remitdb_diag_3134_20160516162920.trc

Dumping diagnostic data in directory=[cdmp_20160516162920], requested by (instance=1, osid=3144 (LGWR)), summary=[abnormal instance termination].

Instance terminated by LGWR, pid = 3144

Mon May 16 16:31:18 2016

راه حل :

مرحله 1 : Startup  دیتابیس در حالت mount .

SQL> startup mount;

ORACLE instance started.

 

Total System Global Area 7482626048 bytes

Fixed Size                  2267792 bytes

Variable Size            5804918128 bytes

Database Buffers         1660944384 bytes

Redo Buffers               14495744 bytes

Database mounted.

SQL>  select open_mode, DATABASE_ROLE, guard_status, SWITCHOVER_STATUS from v$database;

 

OPEN_MODE            DATABASE_ROLE    GUARD_S SWITCHOVER_STATUS

-------------------- ---------------- ------- --------------------

MOUNTED              PRIMARY          NONE    NOT ALLOWED

 

مرحله 2 : انتقال دیتابیس به مد maximize performance .

 

SQL> alter database set standby database to maximize performance;

 

Database altered.

 

مرحله 3 : خاموش کردن دیتابیس.

 

SQL> shutdown immediate

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

 

مرحله 4 : Startup  دیتابیس در حالت mount .

 

SQL> startup mount;

ORACLE instance started.

 

Total System Global Area 7482626048 bytes

Fixed Size                  2267792 bytes

Variable Size            5804918128 bytes

Database Buffers         1660944384 bytes

Redo Buffers               14495744 bytes

Database mounted.

مرحله 5 : open  کردن دیتابیس.

SQL> alter database open;

Database altered.

 

SQL> select open_mode from v$database;

 

OPEN_MODE

--------------------

READ WRITE

 

source :

http://bishwanathdas.blogspot.com/2016/05/ora-16072-minimum-of-one-standby.html

 


 

     در صورتی که بخواهید به صورت remote به دیتابیس لاگین کنید به صورت زیر

sqlplus sys@tnsname as sysdba

     ممکن است با ارور ORA-01017 مواجه شوید. برای برطرف کردن این مشکل ابتدا مطمئن شوید که فایل پسورد در مسیر $ORACLE_HOME/dbs/orapwORACLE_SID وجود دارد. در صورتی که این فایل موجود بود به صورت زیر به دیتابیس لاگین شوید:

sqlplus / as sysdba

SQL> select * from v$pwfile_users;

 

no rows selected

 

SQL> show parameter remote_login

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ----------

remote_login_passwordfile            string      EXCLUSIVE

 

 

 

همانطور که مشاهده می کنید در جدول V$PWFILE_USERS رکوردی وجود ندارد در نتیجه با وجود فایل orapwdoracle_sid و یا حتی امکان انجام دستور تغییر پسورد نام کاربری ولی باز هم شما امکان ورود به دیتابیس به صورت REMOTE را نخواهید داشت.

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

 

 

orapwd file=$ORACLE_HOME/dbs/orapwORACLE_SID password=xyzyzx#123 entries=2

 

 

 

 

حتما به این نکته توجه کنید که باید نام فایل پسورد جدید که ایجاد می کنید باید داری پسوند نام ORACLE_SID باشد و حروف بزرگ و کوچک را حتما رعایت کنید.

 

     بعد از انجام دستور بالا شما قادر خواهید بود که به دیتابیس به صورت REMOTE لاگین کنید. همچنین فراموش نکنید که remote_login_passwordfile مقدارش EXCLUSIVE یا SHARED باشد.

   

 

SQL> select * from v$pwfile_users;

 

USERNAME                       SYSDB SYSOP

------------------------------ ----- -----

SYS                            TRUE  TRUE

 

  

  در صورتی که شما بخواهید سرور STANDBY داشته باشید یا اینکه نود های شما به صورت  RAC باشند باید فایل پسورد ایجاد شده را با دستور SCP به شکل زیر به تمام سرورهای دیگر انتقال بدهید:

scp $ORACLE_HOME/dbs/orapwORACLE_SID oracle@serverip:$ORACLE_HOME/dbs

سپس به داخل تمام سرورهایی که فایل را انتقال داده اید لاگین کنید و نام این فایل را به نام ORACLE_SID همان سرور تغییر دهید.

     برای مثال در صورتی که شما دیتاگارد راه اندازی کرده باشید و پسورد کاربر SYS در دو دیتابیس شما متفاوت باشد در AlertLog شما با این خطا مواجه می شوید:

Error 1017 received logging on to the standby

------------------------------------------------------------

Check that the primary and standby are using a password file

and remote_login_passwordfile is set to SHARED or EXCLUSIVE,

and that the SYS password is same in the password files.

      returning error ORA-16191

همینطور می توانید با اجرای دستور زیر بر روی سرور PRODUCTION خطای بالا را مشاهده کنید:

SQL> select message, to_char(timestamp,'HH:MI:SS') timestamp

  from v$dataguard_status

  where severity in ('Error','Fatal')

   order by timestamp;

SQL> select dest_id,status,error from v$archive_dest;

بعد از اینکه فایل پسورد در سرور PRODUCTION را تغییر دادید و در سرور گارد کپی کردید می توانید با استفاده از یکی از دو راه زیر در صورتی که تنظیمات اولیه گارد را انجام داده باشید دوباره دو دیتابیس را SYNC کنید:

ON STANDBY SERVER:

SQL> alter database recover managed standby database cancel;

SQL> alter database recover managed standby database disconnect from session;

OR ON PRODUCTION:

SQL> alter system set log_archive_dest_state_2=DEFER;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

و در نهایت دستور زیر را اجرا کنید:

SQL> ALTER SYSTEM SWITCH LOGFILE;

دیتابیس ها شروع به SYNC کردن می کنند در نهایت برای اطمینان می توانید دستور زیر را اجرا کنید:

 

SQL> select t1.max_seq_archived, t2.max_seq_applied

  from (select max(sequence#) max_seq_archived from v$archived_log) t1,

       (select max(sequence#) max_seq_applied

          from v$archived_log

         where applied = 'YES') t2;

موفق باشید.


اگر در مراحل deployment add host در Oracle Cloud 13 یا Oracle Cloud 12

ERROR: The Oracle Management Server (OMS) host and port specified via OMS_HOST & EM_UPLOAD_PORT is not available.
ERROR: The Oracle Management Server (OMS) host and port specified via
OMS_HOST & EM_UPLOAD_PORT is not available.Pass in a valid hostname
and port number for the OMS to successfully deploy the agent.

با خطای بالا مواجه شدید موارد زیر را مد نظر قرار بدید و حتماً بررسی کنید :

 

1- بررسی وضعیت OMS :

 

[oracle@OMS ~]$ $OMS_HOME/bin/emctl status oms
Oracle Enterprise Manager Cloud Control 13c Release 2
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up BI Publisher Server is Down
BI Publisher is disabled, to enable BI Publisher on this host, use the 'emctl config oms -enable_bip' command

 

 

 

OMS بالا است.

2- ping OMS :

[oracle@OMS ~]$ $OMS_HOME/bin/emctl status oms
unknown host OMS 
[oracle@jystdrac1 ADATMP_2018-01-23_13-38-45-PM]$ ping 192.168.1.88 
PING 192.168.1.88 (192.168.1.88) 56(84) bytes of data.
64 bytes from 192.168.1.88: icmp_seq=1 ttl=64 time=1.37 ms
64 bytes from 192.168.1.88: icmp_seq=2 ttl=64 time=0.615 ms

 

3- بررسی /etc/hosts/ :

#OMS
192.168.1.88 OMS
 
 

4-بررسی wget :

wget http://192.168.1.88:4903/empbs/genwallet
یا

wget https://192.168.1.88:4903/empbs/genwallet

یا

wget http://OMS:4903/empbs/genwallet

 

 
[oracle@jystdrac1 ~]$ wget http://OMS:4903/empbs/genwallet
--2018-01-23 16:02:03--  http://oms:4903/empbs/genwallet
Resolving oms. 192.168.1.88
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.
--2018-01-23 16:02:04-- (try: 2) http://oms:4903/empbs/genwallet 
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.

--2018-01-23 16:02:06-- (try: 3) http://oms:4903/empbs/genwallet 
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.

 

 

5- در صورت بر قرار بوده شرایط فوق و حل نشدن مشکل مسیر deploy را حذف و مجدد راه اندازی را انجام بدید.


If you are getting an error message or Pop-UP which says The page has expired. Click OK to continue.” This means that your Cloud Control session has expired or timeout as there was no activity in your session.

 

The default value for session timeout is 45 minutes. Can we increase this session timeout frame, YES! You can. You set this value as per requirement of your company’s security policy. It may vary for different clients or companies.

 

As per your requirement you can increase the Session Timeout time by changing the value of oracle.sysman.eml.maxInactiveTime” parameter. Also note that the value for this parameter is always defined in Minutes. In-my case the requirement was to keep the session active unless the user itself does not logs out from the application. So I set the value of oracle.sysman.eml.maxInactiveTime” parameter to -1. But if let’s say you want the session to be active for 10 hours you can set the value to 600. However if you want your session be active forever like in my case, you can set its value to -1.

NOTE: Zero means that the value is set to default than 45 minutes.

To check which session timeout is currently active, you can deduct the following command.

 

[oracle@hanoemap1 bin]$ cd –

/app/oracle/product/middleware13C/bin

 

[oracle@hanoemap1 bin]$ ./emctl get property -name oracle.sysman.eml.maxInactiveTime

Oracle Enterprise Manager Cloud Control 13c Release 2

Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.

SYSMAN password:

Value for property oracle.sysman.eml.maxInactiveTime at Global level is -1

 

[oracle@hanoemap1 bin]$

 

clip_image001

 

NOTE: This change will need your OMS to restart, if you have multi-OMS environment, you may need to bounce both OMS.

You can also change this property from EM Console if you want. Navigate to Setup -> Manage Cloud Control -> Management Servers.

 

clip_image003

 

From Management Servers Home Page, Drop Down Management Servers and click on Configuration properties”

 

clip_image004

 

On Management Server Configuration Properties Page, you can see all the properties listed, along with oracle.sysman.eml.maxInactiveTime” in our case, highlighted in Yellow.

 

clip_image006

 

Click on the property Name, for whom you want to change the value. It will take you to Set Property” page where you can make the changes.

 

clip_image008

 

Make the change in the property value and Click on Save.

source


RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process

 
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
When we are taking archive log backup with delete then got an error.
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/pac/lci9t1/arch/redo_1_16470_842608348.arc thread=1 sequence=16470
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/pac/lci9t1/arch/redo_1_16471_842608348.arc thread=1 sequence=16471
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
SOLUATION:
Cause: The archive logs seems that it is not yet applied in the standby database.
                        Select sequence# , applied from v$archived_log;
 
Action: Check the standby database and apply the logs manually and the start the deletion process.
              I can delete the archive logs by force using the below command.
 
      RMAN > delete noprompt force archivelog all;
 
But I don't want to delete the archives which are not applied in standby  so i'm changing the configuration
              
RMAN> show all;

Old configuration:
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
 
Change as Below:
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
 
new RMAN configuration parameters:
 
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
 
new RMAN configuration parameters are successfully stored
 
RMAN-08591: WARNING: invalid archived log deletion policy


Now check the configuration
 
RMAN> show all;
 
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
 
 
Now I am able to delete those archivelogs now.
 
 
RMAN> delete noprompt archivelog all;
 
RMAN> crosscheck archivelog all;
 
Once I deleted those logs, I changed the rman configuration by the default one.
 
 
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY CLEAR;
RMAN> Show all;

اگر در مراحل deployment add host در Oracle Cloud 13 یا Oracle Cloud 12

ERROR: The Oracle Management Server (OMS) host and port specified via OMS_HOST & EM_UPLOAD_PORT is not available.
ERROR: The Oracle Management Server (OMS) host and port specified via
OMS_HOST & EM_UPLOAD_PORT is not available.Pass in a valid hostname
and port number for the OMS to successfully deploy the agent.

با خطای بالا مواجه شدید موارد زیر را مد نظر قرار بدید و حتماً بررسی کنید :

 

1- بررسی وضعیت OMS :

 

[oracle@OMS ~]$ $OMS_HOME/bin/emctl status oms
Oracle Enterprise Manager Cloud Control 13c Release 2
Copyright (c) 1996, 2016 Oracle Corporation. All rights reserved.
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up BI Publisher Server is Down
BI Publisher is disabled, to enable BI Publisher on this host, use the 'emctl config oms -enable_bip' command

 

 

 

OMS بالا است.

2- ping OMS :

[oracle@OMS ~]$ $OMS_HOME/bin/emctl status oms
unknown host OMS 
[oracle@jystdrac1 ADATMP_2018-01-23_13-38-45-PM]$ ping 192.168.1.88 
PING 192.168.1.88 (192.168.1.88) 56(84) bytes of data.
64 bytes from 192.168.1.88: icmp_seq=1 ttl=64 time=1.37 ms
64 bytes from 192.168.1.88: icmp_seq=2 ttl=64 time=0.615 ms

 

3- بررسی /etc/hosts/ :

#OMS
192.168.1.88 OMS
 
 

4-بررسی wget :

wget http://192.168.1.88:4903/empbs/genwallet
یا

wget https://192.168.1.88:4903/empbs/genwallet

یا

wget http://OMS:4903/empbs/genwallet

 

 
[oracle@jystdrac1 ~]$ wget http://OMS:4903/empbs/genwallet
--2018-01-23 16:02:03--  http://oms:4903/empbs/genwallet
Resolving oms. 192.168.1.88
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.
--2018-01-23 16:02:04-- (try: 2) http://oms:4903/empbs/genwallet 
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.

--2018-01-23 16:02:06-- (try: 3) http://oms:4903/empbs/genwallet 
Connecting to oms|192.168.1.88|:4903. connected.
HTTP request sent, awaiting response. No data received.
Retrying.

 

 

5- بررسی مجدد پورت های باز Cloud Control

6- در صورت بر قرار بوده شرایط فوق و حل نشدن مشکل مسیر deploy را حذف و مجدد راه اندازی را انجام بدید.

 


 

This is because the standby is open read-only and cannot update any tables.
When a user's account has to be locked on the standby database, it is locked only in memory there.

 

Solution :

1-

A privileged user (sysdba, the database administrator) must logon to the standby and unlock the account there.
A message ORA-28015 "Account unlocked, but the database is open for read-only access" confirms that the account is now unlocked in the standby database.
From then on, the user can logon to the standby database without getting any error.
 
SQL>alter user dbsnmp account locked;
SQL>alter user dbsnmp account unlock;

 

 

2-
Check the DB Target in EM Grid Console monitoring credentials are correct:
Navigation path:
Targets > Databases > Select the Database form the radio button > Configure > Test connection

 

 

3-
 
SQL>ALTER PROFILE new_profile 
   LIMIT PASSWORD_LIFE_TIME UNLIMITED 
   PASSWORD_REUSE_MAX UNLIMITED;
SQL>ALTER USER dbsnmp  
    PROFILE new_profile; 

 


Moving an Oracle table can move it to another tablespace and another database with TNS.

 

cat /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/tnsnames.ora

 

target  =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = srv2.cloud.com)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl2)

    )

  )

 

alter table hr.employees move tablespace users@target online parallel 16;

 

We can all transactions on all databases .

Build it Oracle.


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

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