Announcements

Oracle training based on real-time expertise as per industry standards. Upcoming batch details are here.

View batch schedule

Free Oracle mock interview. Register using the link.

Register

#DBAchallenge: submit your questions.

Ask questions
Swipe for more →
Browse by Topic
Latest Posts

    Friday, May 29, 2020

    How to identify any parameter as static or dynamic?



    Answer: Check for v$parameter we can find one column ie. ISSYS_MODIFIABLE

    set pages 1000
    set lines 200
    col name for a35
    col value for a25
    select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter;

    1. Parameters basics:

    In general, parameter is a placeholder for a variable that contains some value of some type.
    We can call it as key-value pair

    db_block_siz(key)=8K(value)
    db_name(key)=DEVDB(value)

    2. How to Identify the parameter as stic or dynamic

    SQL> select ISSYS_MODIFIABLE from v$parameter where name like '%utl_file_dir%';
    ISSYS_MOD
    ---------
    FALSE=======================================>static 

    Other examples are:
    select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='processes';
    select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sessions';

    alter system set processes=200 scope=spfile;
    alter system set sessions=500 scope=spfile;

    3. Check the current value for a parameter processes & sessions

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='processes';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    processes                           150                       FALSE FALSE

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sessions';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    sessions                            248                       FALSE FALSE

    4. Try to change staic parameter with scope=both it will fail

    SQL> alter system set processes=200 scope=both;
    alter system set processes=200 scope=both
                     *
    ERROR at line 1:
    ORA-02095: specified initialization parameter cannot be modified


    SQL> alter system set sessions=500 scope=both;
    alter system set sessions=500 scope=both
                     *
    ERROR at line 1:
    ORA-02095: specified initialization parameter cannot be modified

    5. Try to change static parameter with scope=memory it will fail

    SQL> alter system set processes=200 scope=memory;
    alter system set processes=200 scope=memory
                     *
    ERROR at line 1:
    ORA-02095: specified initialization parameter cannot be modified


    SQL> alter system set sessions=500 scope=memory;
    alter system set sessions=500 scope=memory
                     *
    ERROR at line 1:
    ORA-02095: specified initialization parameter cannot be modified


    6. Try to change static parameter with scope=spfile it will be successful

    SQL> alter system set processes=200 scope=spfile;

    System altered.

    SQL> alter system set sessions=500 scope=spfile;

    System altered.

    7. After changing the parameter re verify the values still pointing to old values since these static parameter takes effect only after database bounce
     
    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='processes';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    processes                           150                       FALSE FALSE

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sessions';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    sessions                            248                       FALSE FALSE

    10. Shutdown the database

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

    11. Start the database

    SQL> startup;
    ORACLE instance started.

    Total System Global Area 1570009088 bytes
    Fixed Size                  2253584 bytes
    Variable Size            1023413488 bytes
    Database Buffers          536870912 bytes
    Redo Buffers                7471104 bytes
    Database mounted.
    Database opened.

    12. Verify the static parameter and now poiting to new values

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='processes';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    processes                           200                       FALSE FALSE

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sessions';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    sessions                            500                       FALSE FALSE

    SQL>


    13. How to Identify the parameter as static or dynamic

    SQL>  select ISSYS_MODIFIABLE from v$parameter where name like '%log_archive_dest_2';
    ISSYS_MOD
    ---------
    IMMEDIATE====================================>dynamic 

    Other examples are:
    select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='log_archive_dest_2';
    select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='open_cursors';
    select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='awr_snapshot_time_offset';

    alter system set open_cursors=500 scope=both;
    alter system set awr_snapshot_time_offset=2 scope=both;

    14. Check the current value for a parameter open_cursors & awr_snapshot_time_offset

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='open_cursors';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    open_cursors                        300                       FALSE IMMEDIATE

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='awr_snapshot_time_offset';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    awr_snapshot_time_offset            0                         FALSE IMMEDIATE

    SQL>

    15. Try to change these dynamic parameter with scope=both it will be successful

    SQL> alter system set open_cursors=500 scope=both;

    System altered.

    SQL> alter system set awr_snapshot_time_offset=2 scope=both;

    System altered.

    12. Verify the these dynamic parameter and now pointing to new values immediately without bouncing the database.

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='open_cursors';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    open_cursors                        500                       FALSE IMMEDIATE

    SQL> select name,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='awr_snapshot_time_offset';

    NAME                                VALUE                     ISSES ISSYS_MOD
    ----------------------------------- ------------------------- ----- ---------
    awr_snapshot_time_offset            2                         FALSE IMMEDIATE


    Please refer the YoutTube video for more information

    https://youtu.be/hSntn8Gfedo


    Regards,
    Mallik


    No comments:

    Post a Comment

    🌟 Proud to be an Oracle ACE Pro! 🚀

    🌟 Proud to be an Oracle ACE Pro! 🚀 I’m excited to share my official Oracle ACE Profile with the Oracle community. 👨‍💻 Mallikarjun ...