Tuesday, January 17, 2023

Step by Step Configuration Of Data Guard Broker in Oracle database 19c

 Data Guard Broker Configuration in oracle


Listener configuration on primary

      (SID_DESC =
      (GLOBAL_DBNAME = ddb_dgmgrl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0/dbhome1)
      (SID_NAME = ddb)
    )




LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.31.19.40)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ddb)
      (ORACLE_HOME = /u01/app/oracle/product/19.0/dbhome1)
      (SID_NAME = ddb)
    )
   (SID_DESC =
      (GLOBAL_DBNAME = ddb_dgmgrl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0/dbhome1)
      (SID_NAME = ddb)
    )
  )






Listener configuration on standby 

      (SID_DESC =
      (GLOBAL_DBNAME = ddb_dr_dgmgrl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = ddb_dr)
    )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.0.4)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ddb_dr)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = ddb_dr)
    )
  (SID_DESC =
      (GLOBAL_DBNAME = ddb_dr_dgmgrl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = ddb_dr)
    )
  )




tnsnames.ora  on primary and standby 


DDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = wes-4-92-00-112.compute-1.amazonaws.com )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ddb)
    )
  )


DDB_DR =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 92.100.100.922 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ddb_dr)
    )
  )





On standby database:

SQL> alter database recover managed standby database cancel;
SQL> alter system set LOG_ARCHIVE_DEST_2='' SCOPE=BOTH sid='*';

On primary database:

SQL> alter system set LOG_ARCHIVE_DEST_2='' SCOPE=BOTH sid='*';


Enable broker on primary and  standby database


alter system set dg_broker_start=true;

show parameter dg_broker_start


Register primary  database with broker


create configuration prod_ddb as primary database is ddb connect identifier is ddb;




[oracle@10.22.3333.2222 admin]$
[oracle@10.22.3333.2222 admin]$
[oracle@10.22.3333.2222 admin]$ dgmgrl sys/Rdx1234567890@ddb
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Sat Jan 14 15:02:21 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "ddb"
Connected as SYSDBA.
DGMGRL>
DGMGRL>
DGMGRL> create configuration prod_ddb as primary database is ddb connect identifier is ddb;
Configuration "prod_ddb" created with primary database "ddb"
DGMGRL>
DGMGRL> show configuration;

Configuration - prod_ddb

  Protection Mode: MaxPerformance
  Members:
  ddb - Primary database

Fast-Start Failover:  Disabled

Configuration Status:
DISABLED

DGMGRL>




Register standby database with broker

add database ddb_dr as connect identifier is ddb_dr;



DGMGRL> add database ddb_dr as connect identifier is ddb_dr;
Database "ddb_dr" added
DGMGRL>
DGMGRL> show configuration;

Configuration - prod_ddb

  Protection Mode: MaxPerformance
  Members:
  ddb    - Primary database
    ddb_dr - Physical standby database

Fast-Start Failover:  Disabled

Configuration Status:
DISABLED

DGMGRL>


Enable Data Guard broker



DGMGRL>
DGMGRL>
DGMGRL> enable configuration;
Enabled.
DGMGRL>


DGMGRL> show configuration;

Configuration - prod_ddb

  Protection Mode: MaxPerformance
  Members:
  ddb    - Primary database
    ddb_dr - Physical standby database
      Warning: ORA-16853: apply lag has exceeded specified threshold

Fast-Start Failover:  Disabled

Configuration Status:
WARNING   (status updated 16 seconds ago)

DGMGRL>


DGMGRL>
DGMGRL>
DGMGRL>
DGMGRL> show database ddb

Database - ddb

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    ddb

Database Status:
SUCCESS

DGMGRL> show database ddb_dr

Database - ddb_dr

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 0 seconds ago)
  Apply Lag:          0 seconds (computed 0 seconds ago)
  Average Apply Rate: 55.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    ddb_dr

Database Status:
SUCCESS

DGMGRL>
DGMGRL>
DGMGRL>

Error: ORA-16662: network timeout when contacting a member : DGMGRL

 

Error: ORA-16662: network timeout when contacting a member


DGMGRL>

DGMGRL> show configuration


Configuration - prod_ddb


  Protection Mode: MaxPerformance

  Members:

  ddb_dr - Primary database

    ddb    - Physical standby database

      Error: ORA-16662: network timeout when contacting a member


Fast-Start Failover:  Disabled


Configuration Status:

ERROR   (status updated 47 seconds ago)


DGMGRL>



SQL> select

dest_name,

status,

error

from

v$archive_dest

where

status='ERROR'

;  2    3    4    5    6    7    8    9


DEST_NAME

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

STATUS    ERROR

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

LOG_ARCHIVE_DEST_2

ERROR     ORA-16198: Timeout incurred on internal channel during remote

          archival



Workaround 

EDIT DATABASE 'ddb' SET PROPERTY NetTimeout = 60; 


EDIT DATABASE 'ddb_dr' SET PROPERTY NetTimeout = 60; 

Switchover with Data Guard Broker : DGMGRL

 Switchover with Data Guard Broker 



DGMGRL>

DGMGRL>

DGMGRL> show configuration;


Configuration - prod_ddb


  Protection Mode: MaxPerformance

  Members:

  ddb    - Primary database

    ddb_dr - Physical standby database


Fast-Start Failover:  Disabled


Configuration Status:

SUCCESS   (status updated 11 seconds ago)


DGMGRL>

DGMGRL>

DGMGRL>

DGMGRL>

DGMGRL> switchover to ddb_dr

Performing switchover NOW, please wait...

Operation requires a connection to database "ddb_dr"

Connecting ...

Connected to "ddb_dr"

Connected as SYSDBA.

New primary database "ddb_dr" is opening...

Operation requires start up of instance "ddb" on database "ddb"

Starting instance "ddb"...

Connected to an idle instance.

ORACLE instance started.

Connected to "ddb"

Database mounted.

Connected to "ddb"

Switchover succeeded, new primary is "ddb_dr"

DGMGRL>



DGMGRL>

DGMGRL> show configuration


Configuration - prod_ddb


  Protection Mode: MaxPerformance

  Members:

  ddb_dr - Primary database

    ddb    - Physical standby database


Fast-Start Failover:  Disabled


Configuration Status:

SUCCESS   (status updated 78 seconds ago)


DGMGRL>

DGMGRL>

DGMGRL> switchover to ddb

Performing switchover NOW, please wait...

Operation requires a connection to database "ddb"

Connecting ...

Connected to "ddb"

Connected as SYSDBA.

New primary database "ddb" is opening...

Operation requires start up of instance "ddb_dr" on database "ddb_dr"

Starting instance "ddb_dr"...

Connected to an idle instance.

ORACLE instance started.

Connected to "ddb_dr"

Database mounted.

Connected to "ddb_dr"

Switchover succeeded, new primary is "ddb"

DGMGRL>



DGMGRL>

DGMGRL>

DGMGRL> show configuration


Configuration - prod_ddb


  Protection Mode: MaxPerformance

  Members:

  ddb    - Primary database

    ddb_dr - Physical standby database


Fast-Start Failover:  Disabled


Configuration Status:

SUCCESS   (status updated 77 seconds ago)


DGMGRL>




Sunday, January 15, 2023

How to resolve ORA error like ORA-16058 during oracle datagaurd setup .

How to resolve ORA error like ORA-16058  during oracle datagaurd setup .



Execute below steps on primary database 


SQL> alter system set log_archive_dest_state_2='DEFER';

SQL> alter system set log_archive_dest_state_2='ENABLE';


SQL> select dest_id, status, destination, error from v$archive_dest where dest_id<=2;


   DEST_ID STATUS    DESTINATION                    ERROR

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

         1 VALID     USE_DB_RECOVERY_FILE_DEST

         2 VALID     ddb_dr


SQL>


Client Connectivity in Data Guard Configuration | HA service

Client Connectivity in Data Guard Configuration





create database service on primary database server


exec DBMS_SERVICE.CREATE_SERVICE (service_name => 'ddb_ha', network_name => 'ddb_ha');



create or replace procedure start_db_ha_service

is

v_role VARCHAR(30);

begin

select DATABASE_ROLE into v_role from V$DATABASE;

if v_role = 'PRIMARY' then

DBMS_SERVICE.START_SERVICE('ddb_ha');

else

DBMS_SERVICE.STOP_SERVICE('ddb_ha');

end if;

end;

/





TRIGGER TO START SERVICE ON DB STARTUP:


create or replace TRIGGER db_hasrv_on_startup

after startup on database

begin

start_db_ha_service;

end;

/


TRIGGER TO START SERVICE ON DB ROLECHANGE:


create or replace TRIGGER db_hasrv_on_role_change

after db_role_change on database

begin

start_db_ha_service;

end;

/


Start the new service on primary


SQL> exec start_db_ha_service;

SQL> alter system archive log current;






SQL>

SQL>

SQL> exec DBMS_SERVICE.CREATE_SERVICE (service_name => 'ddb_ha', network_name => 'ddb_ha');


PL/SQL procedure successfully completed.


SQL> create or replace procedure start_db_ha_service

is

v_role VARCHAR(30);

begin

select DATABASE_ROLE into v_role from V$DATABASE;

if v_role = 'PRIMARY' then

DBMS_SERVICE.START_SERVICE('ddb_ha');

else

DBMS_SERVICE.STOP_SERVICE('ddb_ha');

end if;

end;

/  2    3    4    5    6    7    8    9   10   11   12


Procedure created.


SQL> create or replace TRIGGER db_hasrv_on_startup

after startup on database

begin

start_db_ha_service;

end;

/

  2    3    4    5    6

Trigger created.


SQL>

SQL> create or replace TRIGGER db_hasrv_on_role_change

after db_role_change on database

begin

start_db_ha_service;

end;

/  2    3    4    5    6


Trigger created.


SQL>

SQL>

SQL> exec start_db_ha_service;


PL/SQL procedure successfully completed.


SQL>

SQL> alter system archive log current;


System altered.


SQL> alter system archive log current;


System altered.


SQL> /


System altered.


SQL> /


System altered.


SQL>

SQL>



tnsnames.ora (client site)




DDB =

  (DESCRIPTION =

    (ADDRESS_LIST=

      (ADDRESS = (PROTOCOL = TCP)(HOST = 9.82.83.159)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 72.471.436.842)(PORT = 1521))

    )

   (CONNECT_DATA = (SERVICE_NAME = ddb_ha)

     (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=60)(DELAY=20))

   )

  )  

  

  

  

  

Saturday, January 14, 2023

Use Orapwd utility to create Password File In Oracle

 Use Orapwd utility to create Password File In Oracle

  

  

orapwd file=orapwddb password=Rdx$1234567890 force=y

   

to avoid password verification:

  

orapwd file=orapwddb password=Rdx1234567890 force=y format=12




[oracle@dbs]$ sqlplus "/as sysdba"


SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jan 14 13:07:04 2023

Version 19.3.0.0.0


Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0


SQL> alter user sys identified by Rdx1234567890;


User altered.


How to Disable firewall on linux server : firewalld

 How to Disable firewall on linux server  : firewalld



[root@oracle ~]#

[root@oracle ~]#

[root@oracle ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

   Active: active (running) since Sat 2023-01-14 10:02:49 UTC; 50min ago

     Docs: man:firewalld(1)

 Main PID: 933 (firewalld)

   CGroup: /system.slice/firewalld.service

           └─933 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid


Jan 14 10:02:48 oracle systemd[1]: Starting firewalld - dynamic firewall daemon...

Jan 14 10:02:49 oracle systemd[1]: Started firewalld - dynamic firewall daemon.

[root@oracle ~]#

[root@oracle ~]#

[root@oracle ~]# service firewalld stop

Redirecting to /bin/systemctl stop firewalld.service

[root@oracle ~]#

[root@oracle ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

   Active: inactive (dead) since Sat 2023-01-14 10:55:01 UTC; 9s ago

     Docs: man:firewalld(1)

  Process: 933 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)

 Main PID: 933 (code=exited, status=0/SUCCESS)


Jan 14 10:02:48 oracle systemd[1]: Starting firewalld - dynamic firewall daemon...

Jan 14 10:02:49 oracle systemd[1]: Started firewalld - dynamic firewall daemon.

Jan 14 10:55:01 oracle systemd[1]: Stopping firewalld - dynamic firewall daemon...

Jan 14 10:55:01 oracle systemd[1]: Stopped firewalld - dynamic firewall daemon.

[root@oracle ~]#

[root@oracle ~]#

[root@oracle ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@oracle ~]#

[root@oracle ~]#

[root@oracle ~]#

[root@oracle ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

   Active: inactive (dead)

     Docs: man:firewalld(1)


Jan 14 10:02:48 oracle systemd[1]: Starting firewalld - dynamic firewall daemon...

Jan 14 10:02:49 oracle systemd[1]: Started firewalld - dynamic firewall daemon.

Jan 14 10:55:01 oracle systemd[1]: Stopping firewalld - dynamic firewall daemon...

Jan 14 10:55:01 oracle systemd[1]: Stopped firewalld - dynamic firewall daemon.

[root@oracle ~]#

[root@oracle ~]#

[root@oracle ~]#

Oracle 26 ai database free

 https://www.oracle.com/in/database/26ai/ Oracle 26 ai release  Oracle AI Database Free Want to get hands-on with Oracle AI Database 26ai—ab...