偶然发现Oracle对于pfile启动参数的检查并不严格。

比如修改参数文件如下:

[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参数的值UNDOTBS1后面缺少了一个引号,如果利用这个PFILE来创建SPFILE,Oracle会检查出错误:

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'

'

但是如果尝试利用这个初始化参数启动到nomount或mount状态,Oracle并不会对参数的正确性进行检查:

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的值则丢失,变成了系统的默认值。

这种情况数据库还可以打开:

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.

当然只要是非SYS用户执行任何的需要回滚段的操作,都会导致错误:

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'

看来Oracle对于启动参数的检查还存在漏洞。

参数到不进oracle,Oracle对于启动参数检查不严格相关推荐

  1. chrome 控制台信息获取 python_【python+selenium自动化】设置Chrome启动参数

    起因:直接用selenium的webdriver启动chrome,会弹出"Chrome正在受到自动软件的控制",并且窗口较小,是因为chrome没有加载任何配置 解决:点进sele ...

  2. java启动参数_Java启动参数的思考

    1. -XX:+DisableExplicitGC Java在实现RMI Server的时候会通过定时的调System.gc来强制做GC(即使程序里没用到RMI也会被启动),这个动作非常烦人,另外也是 ...

  3. SQL数据库引擎服务SQL Server启动参数概述

    In the SQL world, it is an important activity to perform SQL Server installation for a database admi ...

  4. 使用-XX:+PrintCommandLineFlags展示JVM启动参数

    导语: 近期在学习周志明老师的<<深入理解Java虚拟机: JVM高级特性与最佳实践(第3版)>>, 在IDEA中测试老师的示例代码时, 发现程序的输出和老师的输出不一样, 想 ...

  5. 设置tomcat启动参数

    Linux 在修改启动参数前先看下tomcat默认启动参数是啥玩意,这样是为了下面方便进行对比: $ jps -v 32136 Jps -Denv.class.path=.:/usr/java/jdk ...

  6. oracle启动报参数不正确,【oracle】模拟故障 - 参数修改导致无法启动oracle

    问题:把spfile中的processes参数改成10,后出现无法启动oracle数据库. SQL> alter system set processes = 10 scope=spfile; ...

  7. oracle 更改启动内存,Oracle 11gR2修改内存参数后无法启动问题

    Microsoft Windows [版本 6.1.7600] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\windows\system32>n ...

  8. oracle 从pflie启动,oracle初始化参数文件管理

    oracle实例是指运行状态下的oracle软件,是由内存结构跟一些进程结构组成的,主要实现数据库的访问跟控制功能,是oracle的核心. 初始化参数文件是oracle实例运行所需要的参数配置文件,o ...

  9. oracle启动包找不到数据文件,ORA-01078,LRM-00109参数文件问题,导致数据库无法启动...

    在oracle9i和oracle10g中,数据库默认将使用spfile启动数据库,如果spfile不存在,并且找不到静态参数文件或环境变量设置错误,则就会出现ORA-01078和LRM-00109错误 ...

最新文章

  1. Python第三方库jieba(中文分词)入门与进阶(官方文档)
  2. Qemu之Network Device全虚拟方案
  3. SQL点滴19—T-SQL中的透视和逆透视
  4. 海洋CMS仿7KB影视电影在线播放网站模板
  5. DolphinDB配置
  6. 代码补全_补全股票代码位数的一百种姿势
  7. 4 weekend110的hive入门
  8. linux diff 远程文件,登录diff命令,以单独的文件输出在linux
  9. 脚本文件不变色_LoadRunner脚本开发
  10. 蓝桥杯 C语言 试题 基础练习 FJ的字符串
  11. 跟父亲一样伟大的程序员,请一定要照顾好自己!
  12. 遗传算法应用于XGBoost的调参过程
  13. Ubuntu16.04下网易云音乐点击图标打不开——已解决
  14. 业界红包玩法与技术方案总结
  15. 交通标志牌的检测与识别
  16. 江苏省版权申请费用明细以及版权申报流程
  17. VideoStream流媒体(VOD视频点播)系统平台
  18. 图灵奖得主John Hennessy、David Patterson 访谈:未来小学生都能做机器学习
  19. 不懂设计,做宣传单彩页可以用那些软件?
  20. Vagrants流浪者全任务饰品

热门文章

  1. MATLAB函数参数个数控制
  2. Python应用实战-Python提升运行速度技巧总结
  3. 手把手教你用EVO工具评估SLAM数据集TUM、KITTI、EuRoC(附代码)
  4. swift x输入流_Swift 中不同窗体的切换和传递数据 (segue 的用法)
  5. java+jsp+网页制作,java+jsp+mysql网页制作总结(2)
  6. 使用微信开发者工具添加小程序底部导航栏报错
  7. 液位单闭环实验计算机控制,过程控制实验指导书
  8. linux内核配置usb虚拟串口,Linux USB虚拟串口设备
  9. 手机 服务器 推送消息推送消息,推送信息到手机的pushover使用方法及sample code
  10. css布局笔记(二)Flex