Saturday, 20 June 2020

Rolling Upgrade Error in Script

Few months back we were upgrading our AIX based database from 11gR2 [11.2.0.4] to 12c [12.2.0.1] by rolling upgrade. When we run physru_v3.sh script it is giving error:


WARN: The last execution of this script either exited in error or at the
-e user's request. At this point, there are three available options:

-e 1) resume the rolling upgrade where the last execution left off
-e 2) restart the script from scratch
-e 3) exit the script
-e
Option (2) assumes the user has restored the primary and physical
-e standby back to the original configuration as required by this script.

-e Enter your selection (1/2/3):
-e Sep 24 11:17:59 2019 [0-1] not a valid option - ''

-e Enter your selection (1/2/3):
-e Sep 24 11:17:59 2019 [0-1] not a valid option - ''

-e Enter your selection (1/2/3):
-e Sep 24 11:17:59 2019 [0-1] not a valid option - ''


Solution:

The issue is caused by the following setup:
in physru_v3.sh script change first line from below and then rerun the script

#!/bin/sh

to

#!/bin/bash  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Reports Server Component Status in REPORTS 12C

How to check report server component status as we previously check by opmnctl?


Due to decommissioning of opmn from 12c, that option is not available. There are two ways to check, unfortunately none of them as simple as opmn:

1. Run the command $DOMAIN_HOME/reports/bin/rwdiag.sh -findall 

If the reports server appears in the output, then it is up and running. If it does not appear, it is down
or

2. Check the REPORT Server components logs.

Friday, 19 June 2020

AVDF Console and Listener Port Change

Is it possible to change Audit Vault and Database Firewall listener and https console ports?

Answer:

It is not supported to change the AVDF database default listener port, it is also not supported to register the AV repository to a listener other than the one started by the AV installation. Doing either of these things it might "break" AVDF functionality.
The same is applicable for the default console https port change to 443.
For the moment there is no such possibility for AVDF hopefully feature will be available next release which is 19.1.

ORA-28041: Authentication protocol internal error

Expired user accounts can't change password and connect from 11.1.0.7 client to 12.2.0.1 DB+April2018PSU, failing with error 


ORA-28041: Authentication protocol internal error.

There is no issue with open user accounts connecting from 11.1.0.7 client to 12.2.0.1 DB+April2018PSU.

Also the expired user account connections from 11.1.0.7 client to 12.2.0.1DB+Jan2018PSU works fine. The issue started only after applying April 2018 PSU patch on DB server.

From Forms 11.1.2.2 and the SQLPLUS 11.1.0.7 that comes with Forms 11.1.2.2, expired user connections fail with below message:

ERROR:

ORA-28041: Authentication protocol internal error

In 12.2.0.1 databases, 11.1 client support has been removed. The following table shows which client and which database version are supported.



Thursday, 11 June 2020

Cluster verification failed with PRVG-4574

Grid Infrastructure Upgrade from 12c to 19c

Error:

"Verifying Verify that the ASM instance was configured using an existing ASM parameter file. ...FAILED (PRVG-4574)"


Solution:

Copy ASM password file from local directory to ASM disk group.

1. Check the Path of ASM Password File

srvctl config asm -a
 

ASM home: <CRS home>
Password file: /oracle/product/12.2.0/grid/dbs/orapw+ASM         
Backup of Password file:
ASM listener: LISTENER
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
ASM instance count: ALL
Cluster ASM listener: ASMNET1LSNR_ASM

 

2. Move ASM Passowrd File to ASM Disk Group
 
 When tried to move ASM password file from local directory to ASM disk group faced this error:
 

ASMCMD> pwcopy /oracle/product/12.2.0/grid/dbs/orapw+ASM +OCR_DG/orapwASM


ASMCMD> pwcopy /oracle/product/12.2.0/grid/dbs/orapw+ASM +OCR_DG/orapwASM
OPW-00010: Could not create the password file.
ORA-15056: additional error message
ORA-15221: ASM operation requires compatible.asm of 12.1.0.0.0 or higher
ORA-06512: at line 4
ASMCMD-9454: could not create new password file

 
error is visible now that our ASM compatible parameter is not set accordingly.

select group_number, name,compatibility from v$asm_diskgroup;
 
GROUP_NUMBER NAME                           COMPATIBILITY      
------------ ------------------------------ ----------------  
  1 		 OCR_DG                         11.2.0.2.0 
 
Change compatibility: 
alter diskgroup OCR_DG SET ATTRIBUTE 'compatible.asm' = '12.1';

ASMCMD> pwcopy /oracle/product/12.2.0/grid/dbs/orapw+ASM +OCR_DG/orapwASM

  
srvctl modify asm -pwfile +OCR_DG/orapwASM


 srvctl config asm -a

ASM home: <CRS home>
Password file: +OCR_DG/orapwASM    
Backup of Password file:
ASM listener: LISTENER
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
ASM instance count: ALL
Cluster ASM listener: ASMNET1LSNR_ASM
 

Now rerun runcluvfy.sh and it will be passed.


Thursday, 4 June 2020

ORA-19571: archived log RECID '***' STAMP '***' not found in control file


It seems that the Controlfile records are over-written.

1. check control_file_record_keep_time

show parameter control

NAME TYPE VALUE
———————————— ———– ——————————
control_file_record_keep_time integer 7

The value is very low. So please increase.

alter system set control_file_record_keep_time=20 scope=both;

System altered.

SQL> show parameter control

NAME TYPE VALUE
———————————— ———– ——————————
control_file_record_keep_time integer 20


2) Next you need to catalog the archivelogs to make the backup run without errors

RMAN> catalog start with '/u01/archive';

3. Now start the backup



Monday, 1 June 2020

Password same as Login Name



select
name as [LoginName]
,'Password is same as Login Name' [Description]
from sys.syslogins
WHERE PWDCOMPARE (name,password) = 1


Password same as Username


If You want to check username have passwords same as login name. e.g. username 'abc123' has password= 'abc123'

Solution:

create or replace function samepwd(username in varchar2, password in varchar2)
return char
authid current_user
is
--
raw_key raw(128):= hextoraw('0123456789ABCDEF');
--
raw_ip raw(128);
pwd_hash varchar2(16);
--
cursor c_user (cp_name in varchar2) is
select password
from sys.user$
where password is not null
and name=cp_name;
--
procedure unicode_str(userpwd in varchar2, unistr out raw)
is
enc_str varchar2(124):='';
tot_len number;
curr_char char(1);
padd_len number;
ch char(1);
mod_len number;
debugp varchar2(256);
begin
tot_len:=length(userpwd);
for i in 1..tot_len loop
curr_char:=substr(userpwd,i,1);
enc_str:=enc_str||chr(0)||curr_char;
end loop;
mod_len:= mod((tot_len*2),8);
if (mod_len = 0) then
padd_len:= 0;
else
padd_len:=8 - mod_len;
end if;
for i in 1..padd_len loop
enc_str:=enc_str||chr(0);
end loop;
unistr:=utl_raw.cast_to_raw(enc_str);
end;
--
function crack (userpwd in raw) return varchar2 
is
enc_raw raw(2048);
--
raw_key2 raw(128);
pwd_hash raw(2048);
--
hexstr varchar2(2048);
len number;
password_hash varchar2(16);
begin
dbms_obfuscation_toolkit.DESEncrypt(input => userpwd, 
       key => raw_key, encrypted_data => enc_raw );
hexstr:=rawtohex(enc_raw);
len:=length(hexstr);
raw_key2:=hextoraw(substr(hexstr,(len-16+1),16));
dbms_obfuscation_toolkit.DESEncrypt(input => userpwd, 
       key => raw_key2, encrypted_data => pwd_hash );
hexstr:=hextoraw(pwd_hash);
len:=length(hexstr);
password_hash:=substr(hexstr,(len-16+1),16);
return(password_hash);
end;
begin
open c_user(upper(username));
fetch c_user into pwd_hash;
close c_user;
unicode_str(upper(username)||upper(password),raw_ip);
if( pwd_hash = crack(raw_ip)) then
return ('Y');
else
return ('N');
end if;
end;
/


set lines 1000
set pages 1000
COLUMN username format A25
COLUMN password format A25
COLUMN account_status format A30
select username, username password,account_status from   dba_users where  samepwd(username, username) = 'Y';




Monitoring Long Running Operations


set lines 1000
set pages 1000
COLUMN OP_NAME FORMAT a40
select * from (
SELECT
SID,
OPNAME OP_Name,
  TO_CHAR(start_time,'DD-MON-YYYY HH:MI:SS') START_TIME,
  TO_CHAR(start_time + (round(TIME_REMAINING/60)/1440 +round(ELAPSED_SECONDS/60)/1440),'DD-MON-YYYY HH:MI:SS') "Expected_End_Time",
  round(TIME_REMAINING/60) "Remaining_Minuts",
  round(ELAPSED_SECONDS/60) "Elapsed_Minuts",
   round(((TIME_REMAINING/(TIME_REMAINING+ELAPSED_SECONDS))*100),2) "% Remaining",
 round(((ELAPSED_SECONDS/(TIME_REMAINING+ELAPSED_SECONDS))*100),2) "% Completed"
FROM
  V$SESSION_LONGOPS
WHERE
  TIME_REMAINING>0) order by 4 desc;

Toad Error - Error downloading resources XML file



Error downloading resources XML file:Error downloading URL:

….//community-dowloads.quest.com/toadsoft/ORA…



Solution:

1.  Launch Toad

2.  Go to the menu View | Toad Options


3.  Go to Startup. Under Automatic Updates, uncheck this option and select "Don't automatically check for updates".


4.  Go to General. Under Toad Improvement Program, uncheck the option "Participate in the Toad Improvement program".



5.  Go to Network Utilities. Under Hosts, uncheck the option "Override Proxy for Toad sites".



6.  Hit Apply and OK, and then restart Toad.