重庆思庄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