参数到不进oracle,Oracle对于启动参数检查不严格
偶然發(fā)現(xiàn)Oracle對(duì)于pfile啟動(dòng)參數(shù)的檢查并不嚴(yán)格。
比如修改參數(shù)文件如下:
[oracle@yans1 ~]$ vi initprimary.ora
primary.__db_cache_size=1644167168
primary.__java_pool_size=16777216
primary.__large_pool_size=16777216
.
.
.
*.sga_target=2147483648
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1
*.undo_management='AUTO'
*.user_dump_dest='/opt/ora10g/admin/primary/udump'
注意,在undo_tablespace參數(shù)的值UNDOTBS1后面缺少了一個(gè)引號(hào),如果利用這個(gè)PFILE來(lái)創(chuàng)建SPFILE,Oracle會(huì)檢查出錯(cuò)誤:
SQL> create spfile from pfile='/home/oracle/initprimary.ora';
create spfile from pfile='/home/oracle/initprimary.ora'
*
ERROR at line 1:
ORA-01078: failure in processing system parameters
LRM-00111: no closing quote for value 'AUTO'
'
但是如果嘗試?yán)眠@個(gè)初始化參數(shù)啟動(dòng)到nomount或mount狀態(tài),Oracle并不會(huì)對(duì)參數(shù)的正確性進(jìn)行檢查:
SQL> startup mount pfile=initprimary.ora
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size2074112 bytes
Variable Size486541824 bytes
Database Buffers1644167168 bytes
Redo Buffers14700544 bytes
Database mounted.
SQL> show parameter undo
NAMETYPEVALUE
------------------------------------ ----------- ------------------------------
undo_managementstringMANUAL
undo_retentioninteger900
undo_tablespacestringAUTO'
可以看到,UNDO_TABLESPACE的值變成了AUOT’,而UNDO_MANAGEMENT的值則丟失,變成了系統(tǒng)的默認(rèn)值。
這種情況數(shù)據(jù)庫(kù)還可以打開:
SQL> alter database open;
Database altered.
SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------------------------
/data/oradata/primary/system01.dbf
/data/oradata/primary/undotbs01.dbf
/data/oradata/primary/sysaux01.dbf
/data/oradata/primary/users01.dbf
/data/oradata/primary/test01.dbf
/data/oradata/primary/new01.dbf
/data/oradata/primary/new02.dbf
7 rows selected.
當(dāng)然只要是非SYS用戶執(zhí)行任何的需要回滾段的操作,都會(huì)導(dǎo)致錯(cuò)誤:
SQL> conn test/test
Connected.
SQL> create table t_undo (id number) tablespace new;
create table t_undo (id number) tablespace new
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'NEW'
看來(lái)Oracle對(duì)于啟動(dòng)參數(shù)的檢查還存在漏洞。
總結(jié)
以上是生活随笔為你收集整理的参数到不进oracle,Oracle对于启动参数检查不严格的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 陇南治疗卵巢功能低下最好的医院推荐
- 下一篇: oracle10g的rat模拟,Orac