在修改pdb的参数之前,要确认该参数在pdb级别是否可以修改,通过查询v$parameter里面的ispdb_modifiable
SYS@test>select name,ispdb_modifiable from v$parameter where name = 'undo_retention'; NAME ISPDB -------------------- ----- undo_retention TRUE SYS@test> select con_id,value from v$system_parameter where name ='undo_retention'; SYS@test>select con_id,value from v$system_parameter where name ='undo_retention'; CON_ID VALUE ---------- ---------- 0 1800 3 900 SYS@test>show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB2 READ WRITE NO SYS@test>
修改PDB2的该参数为1200
SYS@test>alter session set container=pdb2; Session altered. SYS@test>show parameter undo_retention NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_retention integer 1800 SYS@test>alter system set undo_retention=1200; System altered. SYS@test>show parameter undo_retention; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_retention integer 1200 SYS@test>
进行验证
SYS@test>alter session set container=cdb$root; Session altered. SYS@test>show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB1 READ WRITE NO 4 PDB2 READ WRITE NO SYS@test>select con_id,value from v$system_parameter where name ='undo_retention'; CON_ID VALUE ---------- ---------- 0 1800 3 900 4 1200 SYS@test>end