در صورتی که بخواهید به صورت 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;

موفق باشید.


مشخصات

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

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