Note_Tech

All technological notes.


Project maintained by simonangel-fong Hosted on GitHub Pages — Theme by mattgraham

DBA - Instance: Parameter

Back


Initialization Parameters


Types of Initialization Parameters




V$PARAMETER & V$PARAMETER2


Lab: V$PARAMETER

# current in root
show con_name

select name, open_mode from v$pdbs;

alter pluggable database all open;

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,con_id
from V$PARAMETER
order by name;

lab_pf02


Lab: V$PARAMETER & V$PARAMETER2

select name, value, isses_modifiable, issys_modifiable, ispdb_modifiable,con_id
from V$PARAMETER
where name ='control_files';

lab_pf02

lab_pf02


V$SYSTEM_PARAMETER vs V$SYSTEM_PARAMETER2


Lab: V$SYSTEM_PARAMETER

select name, value, con_id, ISDEFAULT, isses_modifiable, issys_modifiable, ispdb_modifiable
from V$SYSTEM_PARAMETER
order by name;

lab_system01

lab_system01

lab_system01


select name, value, ISDEFAULT, con_id, isses_modifiable, issys_modifiable, ispdb_modifiable
from V$SYSTEM_PARAMETER
where ISDEFAULT='FALSE'
AND CON_ID=0
order by name;

lab_system01


Lab: V$SYSTEM_PARAMETER & V$SYSTEM_PARAMETER2

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,con_id
from V$SYSTEM_PARAMETER
where name ='control_files';

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,con_id
from V$SYSTEM_PARAMETER2
where name ='control_files';

lab_system02


Lab: V$SYSTEM_PARAMETER vs V$PARAMETER

# Query instance level parameter
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$SYSTEM_PARAMETER
where name='nls_date_format';
#nls_date_format		TRUE	FALSE	TRUE	TRUE	0

# alter session parameter
alter session set nls_date_format='dd-mm-yyyy';

# Query instance level parameter
# value not changed, null
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,con_id
from V$SYSTEM_PARAMETER
where name='nls_date_format';
# nls_date_format		TRUE	FALSE	TRUE	0

# Query session level parameter
# value change
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,con_id
from V$PARAMETER
where name='nls_date_format';
# nls_date_format	dd-mm-yyyy	TRUE	FALSE	TRUE	1

Session-level Paramters

ALTER SESSION SET parameter=value;
--can you query all the para that we can change it on session level
select name,value, isses_modifiable, issys_modifiable, ispdb_modifiable
from V$PARAMETER
where isses_modifiable='TRUE'

Lab: Alter Session Parameter

# query parameters
select name,value from V$PARAMETER
order by name;

# query a parameter with modifiable details
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable
from V$PARAMETER
where name ='nls_date_format';

lab_pf0201

# query before alter
select sysdate from dual;
#28-Feb-2024

# alter parameter
alter session set nls_date_format='dd-mm-yyyy';

# confirm new value of parameter
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable
from V$PARAMETER
where name ='nls_date_format';

# confirm after alter
select sysdate from dual;
#28-02-2024

lab_pf02


System Parameter

issys_modifiable Description
FALSE could be changed, in Spfile only, need restart
IMMEDIATE changes can take effect IMMEDIATE
DEFERRED take effect for future sessions
ALTER SYSTEM SET parameter=value;
select name, value, ISDEFAULT, con_id, isses_modifiable, issys_modifiable, ispdb_modifiable
from V$SYSTEM_PARAMETER
where ISDEFAULT='FALSE'
AND CON_ID=0
order by name;

SCOPE

value of scope current session restart future session
MEMORY Yes - No
SPFILE No required Yes
BOTH Yes - Yes
DEFERRED No - Yes

Default Scope

Startup with Defautl Equivalent
spfile BOTH Alter system set parameter=value scope=both
pfile MEMORY Alter system set parameter=value scope=memory

DB can read but cannot write a pfile.


Lab: Alter System parameter with scope of memory

show parameter max_idle_time;
# 0

ALTER SYSTEM SET max_idle_time=30 scope=memory;

show parameter max_idle_time;
# 30

lab_alter_sys

SELECT value FROM v$parameter WHERE name='max_idle_time';
# 30
SELECT value FROM v$system_parameter WHERE name='max_idle_time';
# 30

lab_alter_sys

lab_alter_sys


Lab: Alter system parameter with scope of spfile

ALTER SYSTEM SET max_idle_time=50 scope=spfile;

SELECT value FROM v$system_parameter WHERE name='max_idle_time';
# 0

lab_alter_sys

lab_alter_sys

lab_alter_sys


Lab: Alter System parameter with scope of Both

ALTER SYSTEM SET max_idle_time=20 scope=both;

SELECT value FROM v$system_parameter WHERE name='max_idle_time';

lab_alter_sys

lab_alter_sys


Lab: Reset the parameter

ALTER SYSTEM RESET max_idle_time scope=both;

SELECT value FROM v$system_parameter WHERE name='max_idle_time';

lab_alter_sys


Lab: Defaul Scope for SPFile

show con_name;
# CON_NAME
# ------------------------------
# CDB$ROOT

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,con_id
from V$PARAMETER
where name='open_cursors';
# open_cursors	300	FALSE	IMMEDIATE	TRUE	1

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	300	FALSE	IMMEDIATE	TRUE	FALSE	0

show parameter spfile;
# NAME   TYPE VALUE
# ------ ------ ----------------------------------------------------------
# spfile string /u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileorcl.ora
alter system set open_cursors=301;

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	301	FALSE	IMMEDIATE	TRUE	FALSE	0

lab_alter_sys


Lab: Default Scope for pfile

startup pfile=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/test.ora

show parameter spfile;

lab_alter_sys

ALTER system SET open_cursors=301 scope=spfile;

lab_alter_sys


SELECT value FROM v$parameter WHERE name='open_cursors';

SELECT value FROM v$system_parameter WHERE name='open_cursors';

ALTER system SET open_cursors=302;

SELECT value FROM v$parameter WHERE name='open_cursors';

SELECT value FROM v$system_parameter WHERE name='open_cursors';

lab_alter_sys

lab_alter_sys


Pluggable Paramter

current CONTAINER apply to Description
root CONTAINER=ALL root + pdb includ pdb’s customized value
root CONTAINER=CURRENT root + pdb except pdb’s customized value
pdb CONTAINER=CURRENT pdb  

Lab: Alter pluggable parameter

alter system register;    # register service in listener.

show con_name;
# CON_NAME
# ------------------------------
# CDB$ROOT

select name, value, isses_modifiable, issys_modifiable, ispdb_modifiable,ISDEFAULT, con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	301	FALSE	IMMEDIATE	TRUE	FALSE	0

alter system set open_cursors=400 container=current;

# Query in the root
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	400	FALSE	IMMEDIATE	TRUE	FALSE	0


alter session set container=orclpdb;
show con_name
# CON_NAME
# ------------------------------
# ORCLPDB


select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	400	FALSE	IMMEDIATE	TRUE	FALSE	0

alter system set open_cursors=500 container=all;
# Error report -
# ORA-65050: Common DDLs only allowed in root.
# 65050. 00000 -  "Common DDLs only allowed in root."
# *Cause:    An attempt was made to issue a common DDL in a pluggable database.
# *Action:   Switch to CDB$ROOT or application root and issue the common DDL.

alter system set open_cursors=500 container=current;
select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	500	FALSE	IMMEDIATE	TRUE	FALSE	3

alter session set container=cdb$root;

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	400	FALSE	IMMEDIATE	TRUE	FALSE	0
# open_cursors	500	FALSE	IMMEDIATE	TRUE	FALSE	3

alter system set open_cursors=410 container=current;

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	410	FALSE	IMMEDIATE	TRUE	FALSE	0
# open_cursors	500	FALSE	IMMEDIATE	TRUE	FALSE	3

alter system set open_cursors=410 container=all;

select name,value,isses_modifiable , issys_modifiable , ispdb_modifiable ,ISDEFAULT,con_id
from V$system_PARAMETER
where name='open_cursors';
# open_cursors	410	FALSE	IMMEDIATE	TRUE	FALSE	0

TOP