Oracle浅谈第六回
2019独角兽企业重金招聘Python工程师标准>>>
Oracle的实例是由实例和一组数据库文件组成的,实例则是Oracle开辟的内存区和一组后台进程组成的。
体验过Oracle内存区后,我们来体会一下后台进程,因为Windows环境中Oracle是多线程形式的,所以我们登录Linux/Unix环境,UNIX环境下是多进程的,方便查看。
方框标记的部分是刚才熟悉的几个进程,Oracle还有其他很多相关的进程,可以看出Oracle的实例名叫itemtest,具体可以在数据库中查看到,如下:
LOCAL=NO的部分,这表示是非Oracle本身的后台进程,是别的用户通过监听,连接该数据库进行访问的
LOCAL=NO的这些进程如果被杀了,数据库不会崩溃,只是某些应用正好连上来操作数据库,被强制提出数据库了,而那些LGWR和DBWR进程被杀了,那么数据库机会立即崩溃,操作一定要小心,这里少了一个进程,即ARCH,这是归档进程,当日志循环写入过程中会出现下一个日志已经被写过的情况,再继续写将会覆盖其内容,需要将这些即将被覆盖的内容写出到磁盘里去形成归档日志文件,这样日志记录就不会丢失,将来数据库就可以从这些日志文件和归档文件中进行数据库的恢复处理。不过这个归档并非是必要的,因为有的数据库只是用来测试的,对安全性要求不高,此时就可以考虑把归档进程给关闭,数据库少做一件事,效率就会提升。
查看归档进程是否打开:
Database log mode 表示当前数据库时非归档的。
更改数据库的归档模式比较麻烦,需要重启数据库,将数据库置于mount状态后,输入alter database archivelog(如果是归档改为非归档,这里是alter database noarchivelog),然后在开启数据库alter database open,才可以将数据库改为归档,具体步骤如下:
现在ARCH进程也可以查询到了,发现ARCH这个进程是允许多进程的,
数据库时如何启动和关闭的,这可以说是数据库最常见的操作了,下面我们来看一下数据库启动的具体步骤,首先看体系结构图的数据库部分
参数文件和控制文件和数据库的启动与关闭时息息相关的,数据库的启动可以分为三个阶段,分别是nomount、mount和open,我们在启动的时候直接输入startup启动,也可以分成startup nomount、startup mount和alter database open三步分别启动,下面一次描述三个步骤:
1. startup nomount阶段:
Oracle必须读取到数据库的参数文件(PFILE或者SPFILE),如果读不到参数文件,数据库根本无法启动成功,如果读取到参数文件,将会完成一个重要的事,就是根据参数上的内存分配策略分配相应的内存区域,并启动相应的后台进程,换而言之,就是创建了instance实例,
为了保证数据库可以动态的修改参数,从Oracle9i 起,Oracle引进了SPFILE参数来替代之前仅有的单一PFILE的一种情况,具体在数据库开启后可以执行如下命令来了解,如下就表示是SPFILE启动的。
一般来说,Oracle9i 后的版本数据库是这样一个情况,首先查找spfile文件,查找不到了在查找INIT.ORA文件,在查不到就报错了,nomount失败。
2. startup mount 阶段
实例已经创建,Oracle继续根据参数文件上描述的控制文件的名称和位置,去查找控制文件,一旦找到立即锁定该控制文件,控制文件里记录了数据库中数据文件、日志文件、检查点信息等非常重要的信息,所以Oracle成功锁定控制文件就表示数据库mount成功,为实例和数据库之前桥梁的搭建打下了基础。
3. alter database open 阶段
根据控制文件记录的信息,定位到数据库文件、日志文件等,从而正式开通了实例和数据库之间的桥梁。
总结起来,nomount阶段仅需要一个参数文件就可以启动成功,mout阶段能够正常读取到控制文件才能成功,而open阶段需要保证所有的数据文件和日志文件等需要和控制文件里记录的名称和位置一致,能被锁定访问的同时还要保证没有损坏,否则数据库的open阶段就不可能成功。
文件的体会:
没有参数文件,实例无法创建,数据库无法nomount成功;没有控制文件,数据库无法mount;没有数据文件数据库无法打开使用(此外,没有了数据文件,那数据没有地方保存,数据库也就失去意义了);没有日志和归档文件数据库就失去了保护伞,数据库变得很不安全。因此,所有的这些文件都非常重要。
下面我们来感受一下Oracle数据库中的这些参数文件、控制文件、数据文件、日志文件、归档文件存在数据库主机的什么位置,又都是通过什么方法查询到的:
转载于:https://my.oschina.net/hcy8888/blog/902053
Oracle浅谈第六回相关推荐
- 利息浅谈(六)——我的买房收益率怎么算?LPR转换有何影响?
上一讲我们聊完了投资收益率的事,往期内容请戳: 利息浅谈(五)--我的投资收益率怎么算? 利息浅谈(四)--房贷利率的惊天秘密 利息浅谈(三)--定期存款利息的秘密 利息浅谈(二)--利息到底是怎么算 ...
- 浅谈JVM(六):方法调用过程
上一篇: 浅谈JVM(一):Class文件解析 浅谈JVM(二):类加载机制 浅谈JVM(三):类加载器和双亲委派 浅谈JVM(四):运行时数据区 浅谈JVM(五):虚拟机栈帧结构 6.方法调用过程 ...
- Oracle浅谈第一回
2019独角兽企业重金招聘Python工程师标准>>> 上面这是Oracle的体系结构图 先来简单描述一下Oracle的体系结构图 1. Oracle 由实例和数据库组成,也就是图中 ...
- 浅谈DevExpress六:为chart创建动态数据源
今天搞点稍微复杂些的东西,在列表中点击不同的行时,图表中显示和其数据关联的图,效果如下: 效果挺炫吧,现在就开始设计吧.首先在界面中拉一个分割面板,并将PivotGdidControl(多维数据控件) ...
- shoug oracle,oracle 浅谈索引
今天第一次参加shoug,听了一些关于sql性能调优的东西,结合自己的认识和理解.整理一下 首先oracle三大范式: 表中每一条记录的每个一个字段值,都是不可再分的最小数据单位(原子不可分解). 每 ...
- 优思学院|浅谈精益六西格玛
近日接触许多企业客户经常询问何谓精益六西格玛(LSS, Lean Six Sigma)?优思学院最常用的说明就是精益六西格玛是精益生产与六西格玛管理的结合,其本质是消除浪费和降低变异.精益六西格玛管理 ...
- 浅谈PHP无回显命令执行的利用
本文首发于先知社区 前言 在CTF题或在一些渗透测试中往往会遇到没有回显的命令执行漏洞,为了能更好的实现对无回显命令执行漏洞的利用,我对此进行了简单总结. 判断方法 命令执行可能会存在命令执行但没有回 ...
- 浅谈Oracle RAC --集群管理软件GI
浅谈Oracle RAC --集群管理软件GI基本架构 今天周五,想想可以过周末,心情大好.一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊.趁着现在心情愉悦,赶 ...
- oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念
Nested loop join:
Outer - phpStudy...
浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...
最新文章
- pandas使用query函数删除dataframe中某一列数值小于某一特定值的行(remove dataframe rows baed on column value)
- 那些年我用过的SAP IDE
- Android Launch Mode的学习记录
- CentOS7下解决ifconfig command not found的办法
- python中获取中位数
- Mysql修改存储过程相关权限问题
- php 读取onedrive文件夹,oneindex
- rpm 安装RabbitMQ 3.7.24版本-User can only log in via localhost
- (转)python 搭建libsvm方法。python版本和libsvm版本匹配很重要!
- 为什么越普通的男人越自信?
- nodejs pm2的简单应用
- Atitit 人脸识别 眼睛形态 attilax总结 可以按照大小来分类。。或者按照形态来分类 眼睛的类型、分类。包括杏眼,狐狸眼,铜铃眼,龙眼,丹凤眼和小鹿眼等等。 月牙眼 笑起来。。吊梢
- python课程设计汽车销售管理系统_汽车销售管理系统--课程设计
- c语言里的除法运算定律,加法乘法运算,乘法需要打括号吗?
- java常见问题incompatible types
- minecraft崩溃java,je1.7.10,进入世界就崩溃,解决一下
- 2021年下半场品牌入局小红书的三板斧-小红书数据分析
- 如何快速大批量进行复制粘贴数据?
- Axure RP 8.1下载 +汉化
- 云知梦php资源下载,云知梦php全站工程师含有每节课源码及php手册