如果使用“alter database open;”命令打开一个曾经被“alter database close;”命令关闭的数据库时,您将会收到如下的报错信息:"ORA-16196: database has been previously opened and closed"这个报错的原因是什么呢?原因是:一个实例在其生存期中最多只能装载和打开一个数据库。要想再打开此数据库,必须先停掉这个实例再重新启动数据库。基于上面的报错信息和原因,我来通过一个实验来展示一下这个过程,以便有一个感性上的认识。1.为了保证实验环境的“纯洁”,先重新启动一下数据库(这里我使用的Oracle版本是10.2.0.3)ora10g@secDB /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Oct 25 23:07:57 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

sys@ora10g> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

sys@ora10g> startup;

ORACLE instance started.

Total System Global Area 2147483648 bytes

Fixed Size                  2074152 bytes

Variable Size             637536728 bytes

Database Buffers         1493172224 bytes

Redo Buffers               14700544 bytes

Database mounted.

Database opened.

sys@ora10g>2.在数据库启动成功之后,我们通过v$database视图和v$instance视图查看一下当前数据库的状态,以便和close后的状态进行比较sys@ora10g> select open_mode from v$database;OPEN_MODE----------READ WRITEsys@ora10g> select status from v$instance;STATUS------------OPEN可以看到现在的数据库状态是open并且是可读写操作的状态。3.此时我们使用“alter database close;”命令关闭数据库(注意这里我的用词,关闭的是“数据库”不是“实例”)执行这个命令需要等待一段时间才能完成,存在一个数据库连接清理的过程。如果在Oracle 9i的环境下使用这个close命令,若数据库中存在其他的连接,命令将无法完成,会收到“ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected”报错信息,这里的演示环境时10g,在10g中即使是存在着其他的连接也同样可以完成close过程。sys@ora10g> alter database close;Database altered.4.再次查询v$database视图和v$instance视图中有关数据库状态的信息,与上面的信息进行比较sys@ora10g> select open_mode from v$database;OPEN_MODE----------MOUNTEDsys@ora10g> select status from v$instance;STATUS------------MOUNTED可以看到,此时数据库的状态已经变为“MOUNTED”的状态。进一步检查一下此时数据库服务器有关该实例的后台数据库进程信息。通过下面的结果信息可以进一步确信,“alter database close;”操作并没有将数据库的实例关闭,仅仅是将数据库的状态从“OPEN”状态带到了“MOUNT”状态sys@ora10g> !ps -ef | grep 'ora_.*ora10g' | grep -v greporacle     867     1  0 22:31 ?        00:00:00 ora_pmon_ora10goracle     869     1  0 22:31 ?        00:00:00 ora_psp0_ora10goracle     871     1  0 22:31 ?        00:00:00 ora_mman_ora10goracle     873     1  0 22:31 ?        00:00:00 ora_dbw0_ora10goracle     875     1  0 22:31 ?        00:00:00 ora_dbw1_ora10goracle     877     1  0 22:31 ?        00:00:00 ora_lgwr_ora10goracle     879     1  0 22:31 ?        00:00:00 ora_ckpt_ora10goracle     881     1  0 22:31 ?        00:00:00 ora_smon_ora10goracle     883     1  0 22:31 ?        00:00:00 ora_reco_ora10goracle     887     1  0 22:31 ?        00:00:00 ora_mmon_ora10goracle     889     1  0 22:31 ?        00:00:00 ora_mmnl_ora10g5.既然数据库的状态现在是mount状态,我们尝试使用open命令重新开启该数据库。结果很显然,在这样的状态下,我们是无法再次open该数据库的。sys@ora10g> alter database open;alter database open*ERROR at line 1:ORA-16196: database has been previously opened and closed6.使用oerr工具查看一下“ORA-16196”报错信息含义。从原因信息描述中可以非常清晰的得到具体的原因和后续的处理方法。sys@ora10g> ! oerr ora 1619616196, 00000, "database has been previously opened and closed"// *Cause:  The instance has already opened and closed the database,//          which is allowed only once in its lifetime.// *Action: Shut down the instance.7.此时如果想要重新使用该数据库,只有按照上面提示信息中“Action:”部分描述的操作:关闭数据库并重新开启。sys@ora10g> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.sys@ora10g> startup ;ORACLE instance started.Total System Global Area 2147483648 bytesFixed Size                  2074152 bytesVariable Size             637536728 bytesDatabase Buffers         1493172224 bytesRedo Buffers               14700544 bytesDatabase mounted.Database opened.sys@ora10g>sys@ora10g> select open_mode from v$database;OPEN_MODE----------READ WRITEsys@ora10g> select status from v$instance;STATUS------------OPENOK,到此,数据库又一个崭新的生命周期开始了。

8.小结

通过上面的演示,大家应该对“

oracle最大实例数,【ORA-16196】一个实例在其生命周期里最多只能装载和打开一个数据库...相关推荐

  1. Spring Bean默认配置为单实例 Spring Bean生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Spring 的Bean默认的是单例的. 如果不想单例需要如下配置: <bean id="user" ...

  2. 连载《一个程序猿的生命周期》-《发展篇》 - 5.奶奶终于“自杀”了

    打我记事起,奶奶裹过的小脚有点外八字,走起路来颤颤巍巍,但是又很利索,身体干瘦如柴,面部棱角清晰可见,头发黑白相间.妈妈说起爷爷.奶奶来,一顿牢骚,叙述各种遭遇.各种不好.慢慢的长大后,妈妈说的都被被 ...

  3. 连载《一个程序猿的生命周期》-27、新招的两位“高管”相继离职

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  4. 《一个程序猿的生命周期》读后感

    <一个程序猿的生命周期>里介绍作者从我们现在这个阶段到作者现在已经三十岁这一阶段的各种经历.在作者那十年的时间里,经历了很多的事情.走出大山.走进城市,父母.恋爱.学业.生活等等的一切艰辛 ...

  5. 【网友的】《一个程序猿的生命周期》读后感

    这是谁写的读后感,我不太清楚,但是作为<一个程序猿的生命周期>的作者,很感谢这位网友的支持,也谢谢大家能够看这些文章.你们的支持是我写下去的精神力量,那怕到深夜,依然感觉到精力充沛.写连载 ...

  6. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...

    相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的"叛逆者" 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准 ...

  7. 连载《一个程序猿的生命周期》- 32、两个企业急着上项目,紧急赶赴现场了解情况...

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  8. 读《一个程序猿的生命周期》有感

    <一个程序猿的生命周期>中的作者来自贫困家庭,可以说是一个从大山里走出来的人.他深知,只有刻苦学习才能改变现状,所以他学习非常努力. 但人生总不是这样一帆风顺的,总会在我们的人生路上给与我 ...

  9. 连载《一个程序猿的生命周期》-2.城市校园生活

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

最新文章

  1. 2022-2028年中国散热产业深度调研及投资前景预测报告(全卷)
  2. json格式 转换的时候 注意是否是类还是数组 微信json为null
  3. 2019.7.9刷题统计
  4. 如果你也会C#,那不妨了解下F#(4):了解函数及常用函数
  5. C# Task异步编程
  6. java2组随机数的共通数_java随机数产生-指数分布 正态分布 等
  7. ZZULIOJ 1058: 求解不等式
  8. css3学习总结9--CSS3过渡
  9. RecyclerView混合布局
  10. 《Web编程技术》学习笔记(一)
  11. US1MF-ASEMI贴片薄体封装二极管US1M
  12. excel 姓名汉字转拼音
  13. 20181018 考试记录
  14. NSACE|企业网络安全问题,千万别不在乎
  15. 一日一技:Python + Excel——飞速处理数据分析与处理
  16. 10分钟制作UWP汉堡菜单
  17. 伴性遗传-基因型频率和基因频率
  18. 可以看游资的app_新游资APP:高评分App是如何养成的?
  19. 软工大牛Collin McMillan及其顶会论文解读
  20. 分享几套免费漫画字体和卡通字体

热门文章

  1. android音乐播放器案例,Android MediaPlayer实现音乐播放器实例代码
  2. 1099: 角谷猜想(多实例测试)
  3. airodump-ng wlan0mon扫描不到网络_MySQL ProxySql 由于漏洞扫描导致的 PROXYSQL CPU 超高...
  4. STM32 4*4矩阵按键
  5. android oneshot自动播放bug,移动端常见bug汇总001
  6. v7000更换电池步骤_ups电源运行中是否可以更换电池?应如何操作呢
  7. jade软件_TEM衍射斑点标定之DM软件
  8. (2021) 18 [代码讲解] 可执行文件
  9. element 登录_Python selenium自动化测试框架入门实战--登录测试案例
  10. python字符串变量s的值是python网络爬虫_【Python爬虫作业】-字符串