重庆思庄Oracle、Redhat认证学习论坛

标题: V$parameter中ISDEFAULT=TRUE表示参数为默认值吗? [打印本页]

作者: 郑全    时间: 2022-9-22 20:12
标题: V$parameter中ISDEFAULT=TRUE表示参数为默认值吗?
答案不一定哟。

下面来详细的唠唠。

今天在看巡检报告时,发现明明配置了DG的,怎么非默认值参数中,没有 LOG_ARCHIVE_CONFIG,LOG_ARCHIVE_DEST_2等DG相关的参数

检查巡检脚本,发现提取非默认参数的脚本加了一个条件:isdefault ='FALSE'
马上尝试修改 LOG_ARCHIVE_DEST_2 ,如下:
SQL> alter system set log_archive_dest_2='location=d:\oracle\';

系统已更改。

再去执行 提取默认参数的SQL:

  1* select name,value from v$parameter where isdefault ='FALSE'

NAME                           VALUE
------------------------------ --------------------------------------------------
processes                      960
nls_language                   SIMPLIFIED CHINESE
nls_territory                  CHINA
sga_target                     1258291200
control_files                  D:\ORACLE\ORADATA\ORCL\CONTROL01.CTL
db_block_size                  8192
compatible                     19.0.0
undo_tablespace                UNDOTBS1
remote_login_passwordfile      EXCLUSIVE
dispatchers                    (PROTOCOL=TCP) (SERVICE=orclXDB)

NAME                           VALUE
------------------------------ --------------------------------------------------
local_listener                 LISTENER_ORCL
audit_file_dest                D:\ORACLE\ADMIN\ORCL\ADUMP
audit_trail                    DB
db_name                        orcl
open_cursors                   300
pga_aggregate_target           209715200
diagnostic_dest                D:\ORACLE

发现,依然没有这个参数。

单独去查看这个参数的isdefault的值:

SQL> select name,value,isdefault from v$parameter where name='log_archive_dest_2';

NAME                           VALUE                          ISDEFAULT
------------------------------ ------------------------------ ------------------
log_archive_dest_2             location=d:\oracle\            TRUE

原来这个 ISDEFAULT=true

所以,看不到

这个是什么情况,明明该参数已经修改,怎么这里  ISDEFAULT 还等于TRUE。

其实,这里,我们对于这个 ISDEFAULT  字段有误解.

这个字段 ISDEFAULT  表示在启动时,如果该参数已经修改过,就为FALSE,否则为TRUE.

而前面,虽然修改了 log_archive_dest_2 参数,但没有重启
于是我们重启一下数据库,
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1258287416 bytes
Fixed Size                  9027896 bytes
Variable Size             452984832 bytes
Database Buffers          788529152 bytes
Redo Buffers                7745536 bytes
数据库装载完毕。
数据库已经打开。

SQL> select name,value,isdefault from v$parameter where name='log_archive_dest_2';

NAME                           VALUE                          ISDEFAULT
------------------------------ ------------------------------ ------------------
log_archive_dest_2             location=d:\oracle\            FALSE

是否发现这时,log_archive_dest_2   的 ISDEFAULT 为FALSE了,表示启动时,这个参数的值不是默认值了。

如果这个时候,我们修改为默认值,是否,这个参数就会为TRUE呢


SQL> alter system reset log_archive_dest_2;

系统已更改。

SQL> select name,value,isdefault from v$parameter where name='log_archive_dest_2';

NAME                           VALUE                                              ISDEFAULT
------------------------------ -------------------------------------------------- ------------------
log_archive_dest_2                                                                FALSE

SQL>

发现还是为FALSE

SQL> startup force;
ORACLE 例程已经启动。

Total System Global Area 1258287416 bytes
Fixed Size                  9027896 bytes
Variable Size             452984832 bytes
Database Buffers          788529152 bytes
Redo Buffers                7745536 bytes
数据库装载完毕。
数据库已经打开。
SQL> select name,value,isdefault from v$parameter where name='log_archive_dest_2';

NAME                           VALUE                                              ISDEFAULT
------------------------------ -------------------------------------------------- ------------------
log_archive_dest_2                                                                TRUE

SQL>

重启后,发现现在为true了。

通过这个,现在是否明白了,为什么配置了DG,非默认参数没有DG的配置参数的原因了,应该是在线配置的DG,配置DG后,主库没有重启过导致。






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2