Archive for the ‘Oracle Queries’ Category

Oracle 11g – MEMORY_MAX_TARGET and MEMORY_TARGET

May 22nd, 2019, posted in Oracle Queries
Share

Adjusting the memory_max_target based on available memory. 
This example is Linux x86-64.

If you can afford to set the memory_max_target higher then the memory_target this will give you room to grow the memory_target without restarting the database. 

SQL> show parameters memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 17920M

SQL> show parameters memory_max_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 17920M

System has 36GB physical RAM available.

SQL> !grep MemTotal /proc/meminfo
MemTotal: 36912956 kB

Server has now set aside 24GB for use with Oracle. Kernel shared memory parameter.

SQL>!df -h /dev/shm/

Filesystem Size Used Avail Use% Mounted on
tmpfs 24G 11G 14G 44% /dev/shm

Increase memory_max_target to 24GB.

SQL> ALTER SYSTEM SET memory_max_target = 24G SCOPE=SPFILE;
System altered.

Shutdown Oracle.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

Startup Oracle.
SQL> startup
ORACLE instance started.

Total System Global Area 2.5655E+10 bytes
Fixed Size 2213776 bytes
Variable Size 2.0133E+10 bytes
Database Buffers 5368709120 bytes
Redo Buffers 151166976 bytes
Database mounted.
Database opened.

Update your pfile.

SQL> create pfile from spfile;
File created.

Verify the new settings. Max now 24GB and memory target is 17.9GB. We can now increase the memory_target if the need arises without shutting the database down.

SQL> sho parameters memory_max_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 24G

SQL> sho parameters memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 17920M
Share

Function To Convert Number To Arabic Number

April 28th, 2019, posted in Oracle Queries
Share
Function To Convert Number To Arabic Number,Arabic Number,English Arabic Number,Oracle Numbers,Oracle DBA,Oracle Apps DBA,Oracle Coding,Oracle Arabic Number Query
FUNCTION convert_to_arabic (p_input IN VARCHAR2, p_msg OUT VARCHAR2)
    RETURN VARCHAR2
    IS
    --

    l_output VARCHAR2(20) DEFAULT NULL;
    CURSOR csr_convert (cp_value VARCHAR2)

    IS

    SELECT TRANSLATE (cp_value,'0123456789',

                         UNISTR ('\0660')
                      || UNISTR ('\0661')
                      || UNISTR ('\0662')
                      || UNISTR ('\0663')
                      || UNISTR ('\0664')
                      || UNISTR ('\0665')
                      || UNISTR ('\0666')
                      || UNISTR ('\0667')
                      || UNISTR ('\0668')
                      || UNISTR ('\0669')
                    ) arabic_numerals
       FROM DUAL;

    BEGIN


    IF p_input IS NOT NULL THEN

      
        OPEN csr_convert(p_input);
        FETCH csr_convert INTO l_output;
        CLOSE csr_convert;

    END IF;

    RETURN l_output;
    EXCEPTION     
    WHEN OTHERS THEN
        IF csr_convert%ISOPEN THEN
            CLOSE csr_convert;

        END IF;
      
       p_msg := SUBSTR(SQLERRM,1,200);
       RETURN l_output;
    END convert_to_arabic;

 

Share

How To Cancel or Restart the Cost Manager

December 18th, 2018, posted in Oracle Queries
Share

Behavior of Cost Manager:

Cost manager is not a typical concurrent manager that it finishes after is costing some transactions.

Cost manager it is rescheduling itself based on the the process interval specified in interface managers form.

Cost Manager should stay in this status : “Pending Scheduled” and will restart itself based on the process interval specified in interface managers form. It calculates the re-launch time as start time + process interval.

 

2 – Run the cmclean.sql script available from MOS Note 134007.1

3 – Restart the Cost Manager

     Inventory> Setup : Transactions> Interface Managers

     Select  ‘Cost Manager’ – choose Tools > Launch Manager

Also review << Note 304313.1>>

  1. Restart the concurrent processes.
  2. Run the below select and update scripts to update the uncosted and/or erred records in the tables indicated.
  3. Relaunch the Cost Manager. Select and Update scripts for paragraph 5. above:

SQL> select count(*) from MTL_MATERIAL_TRANSACTIONS where COSTED_FLAG = ‘E’;

SQL> select count(*) from MTL_MATERIAL_TRANSACTIONS where COSTED_FLAG = ‘N’;

SQL > Update MTL_MATERIAL_TRANSACTIONS set COSTED_FLAG = ‘N’, TRANSACTION_GROUP_ID = NULL where COSTED_FLAG = ‘E’ or COSTED_FLAG = ‘N’;

If there are unprocessed records in MTL_MATERIAL_TRANSACTIONS_TEMP, then, also run the following:

  1. To see if there are records in mtl_material_transactions_temp, run:

SQL> select * from mtl_material_transactions_temp;

  1. If rows are returned from the SQL in a. above, then run:

SQL> Update MTL_MATERIAL_TRANSACTIONS_TEMP Set PROCESS_FLAG = ‘Y’, LOCK_FLAG = ‘N’, TRANSACTION_MODE = 3, ERROR_CODE = NULL Where TRANSACTION_HEADER_ID = ;

(OR)

Resubmit all transactions using this procedure:

  • Shut down the cost manager
  • Make a backup of the table mtl_material_transactions
  • Perform the following update

SQL > update mtl_material_transactions

set costed_flag = ‘N’,

transaction_group_id = NULL,

transaction_set_id = NULL

where costed_flag = ‘E’ or costed_flag = ‘N’ ;

Commit ;

 

 

Update MTL_MATERIAL_TRANSACTIONS set COSTED_FLAG = ‘N’, TRANSACTION_GROUP_ID = NULL where COSTED_FLAG = ‘E’ or COSTED_FLAG = ‘N’;


 

Uncosted/failed transactions can be resubmitted through the application itself.
Costs -> View Transactions -> Material Transactions.
From the menu, Tools Select All: Tools Submit All

Else, use the following script to submit the records in MMT table:

    update mtl_material_transactions MMT
    set MMT.costed_flag = 'N',
    MMT.error_code = NULL,
    MMT.error_explanation = NULL,
    MMT.transaction_group_id = NULL,
    MMT.transaction_set_id = NULL
    where MMT.organization_id = &organization_id
    and MMT.costed_flag in ('N','E')
    and NOT  EXISTS ( SELECT 1
    FROM MTL_TRANSACTION_ACCOUNTS MTA
    WHERE MMT.TRANSACTION_ID = MTA.TRANSACTION_ID);

commit;

  1. Re-start the cost manager.
    Restart the cost manager via Inventory > Setup > Transactions >
    Interface Managers > Tools > Launch Manager. Set up a periodic scheduling interval of every five
    minutes.
    Note — Cost Manager should not be scheduled through request form to run Periodically.
    Cost Manger  should be scheduled through Interface managers only.
Share

Table That Stores Cached Queries

November 14th, 2018, posted in Oracle Queries
Share

This error is caused by corruptions that have crept into a table that stores cached queries. The only thing to do in this situation is to delete that table and clear cache by bouncing the Apache server.

There is patch available that can reduce the chance of these corruptions from happening in the future.

Please do the following

CREATE TABLE fnd_lov_choice_values_bak AS
SELECT * FROM fnd_lov_choice_values
;

DELETE fnd_lov_choice_values;

COMMIT;

Clear the cache

Then bounce the Apache server.

Then please download and apply patch Patch:9527712:R12.FWK.B

Afterwords, please try you test again.

Share

RMAN-08137: WARNING: archived log not deleted, needed for standby

November 6th, 2018, posted in Oracle Queries
Share

Recently I met with an Oracle error “RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process” while deleting the archived logs through RMAN prompt.
I simulated the same on my test machine.Note. I had configured standby for my primary database but not the upstream.Followings are the excerpts from the RMAN output.

RMAN> delete noprompt archivelog all;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=24 device type=DISK
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/u01/app/oracle/admin/db1/arch/1_146_812203684.dbf thread=1 sequence=146
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/u01/app/oracle/admin/db1/arch/1_147_812203684.dbf thread=1 sequence=147
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/u01/app/oracle/admin/db1/arch/1_148_812203684.dbf thread=1 sequence=148
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/u01/app/oracle/admin/db1/arch/1_149_812203684.dbf thread=1 sequence=149

 

I could delete those archivelogs using “force” option as well.
RMAN > delete noprompt force archivelog all;

 

But I dont want to do the same as those archivelogs have not shipped yet to the standby server.
So I changed the rman configuration to do the same.
RMAN> show all;

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default


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
RMAN> show all;

CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;

 

Now I was able to delete those archivelogs.
RMAN> delete noprompt archivelog all;




released channel: ORA_DISK_1

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=147 device type=DISK

List of Archived Log Copies for database with db_unique_name DB1

=====================================================================




Key     Thrd Seq     S Low Time

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

239     1    146     A 24-MAY-13

        Name: /u01/app/oracle/admin/db1/arch/1_146_812203684.dbf




247     1    147     A 24-MAY-13

        Name: /u01/app/oracle/admin/db1/arch/1_147_812203684.dbf




249     1    148     A 24-MAY-13

        Name: /u01/app/oracle/admin/db1/arch/1_148_812203684.dbf




250     1    149     A 24-MAY-13
        Name: /u01/app/oracle/admin/db1/arch/1_149_812203684.dbf

..........

..........

deleted archived log

archived log file name=/u01/app/oracle/admin/db1/arch/1_146_812203684.dbf RECID=239 STAMP=816273514

deleted archived log

.........

………

RMAN> crosscheck archivelog all;

released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=147 device type=DISK
specification does not match any archived log in the repository

 

Once I deleted those logs, I changed the rman configuration by the default one.
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY CLEAR;

 

old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;

 

RMAN configuration parameters are successfully reset to default value
Share