第三章 管理oracle数据库
1.启动数据库步骤;(创建启动实例-->为实例加载数据库信息-->打开数据库)
1)创建并启动与数据库对应的实例
在启动实例的时候,将为实例创建一系列的后台进程和服务进程,并在内存中创建SGA区等内存结构,在实例启动的时过程中会使用到初始化参数文件,数据库是否存在对实例的启动没有影响,但是如果初始化的参数设置错误,实例将无法启动
重点:初始化参数文件不能有错误或者缺失否则无法启动实例
2)为实例加载数据库信息
加载数据库时实例将打开数据库的控制文件,从控制文件中获取数据库的信息(名称,数据文件位置,物理结构等),为打开数据库做好准备,如果控制文件损坏,实例将无法加载数据库信息,在加载数据库阶段,实例将不会打开数据库的物理文件(数据文件和重做日志文件)
重点:控制文件不能有损坏,否则无法加载数据库信息
3)打开数据库
打开数据库时,实例将打开所有处于联机状态的数据文件和重做日志文件,若这些文件中有一个无法打开,数据库都会返回错误信息,这个时候需要进行数据库恢复
重点:数据文件和重做日志文件不能有缺失和损坏
1)创建并启动与数据库对应的实例
在启动实例的时候,将为实例创建一系列的后台进程和服务进程,并在内存中创建SGA区等内存结构,在实例启动的时过程中会使用到初始化参数文件,数据库是否存在对实例的启动没有影响,但是如果初始化的参数设置错误,实例将无法启动
重点:初始化参数文件不能有错误或者缺失否则无法启动实例
2)为实例加载数据库信息
加载数据库时实例将打开数据库的控制文件,从控制文件中获取数据库的信息(名称,数据文件位置,物理结构等),为打开数据库做好准备,如果控制文件损坏,实例将无法加载数据库信息,在加载数据库阶段,实例将不会打开数据库的物理文件(数据文件和重做日志文件)
重点:控制文件不能有损坏,否则无法加载数据库信息
3)打开数据库
打开数据库时,实例将打开所有处于联机状态的数据文件和重做日志文件,若这些文件中有一个无法打开,数据库都会返回错误信息,这个时候需要进行数据库恢复
重点:数据文件和重做日志文件不能有缺失和损坏
分析:三给阶段对应三种重要的文件:初始化参数文件(创建启动实例),控制文件(加载数据库信息),数据文件和重做日志文件(打开数据库)
2.数据库的4种启动模式(对应数据库的启动相应步骤)
1)NOMount模式(start nomount)
创建并启动实例不加载数据库(对应步骤1)
Oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据文件
模式作用:创建新数据库或者重新写控制文件
2)Mount模式(startup mount)
为实例加载数据库但是不打开
此时只加载控制文件,不会读取数据文件和重做日志文件
模式用途:重命名数据文件,添加删除或重命名重做日志文件,执行数据库完全恢复操作,改变数据库的归档模式
3)Open模式(startup open)
按照正常的启动数据库的三个步骤启动数据库
模式用途:平时部队数据库做什么维护,像只做应用开发,采用此模式
4)强制启动模式(startup force)
在前面的模式都使用不了的时候,采用此模式,强制启动
1)NOMount模式(start nomount)
创建并启动实例不加载数据库(对应步骤1)
Oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据文件
模式作用:创建新数据库或者重新写控制文件
2)Mount模式(startup mount)
为实例加载数据库但是不打开
此时只加载控制文件,不会读取数据文件和重做日志文件
模式用途:重命名数据文件,添加删除或重命名重做日志文件,执行数据库完全恢复操作,改变数据库的归档模式
3)Open模式(startup open)
按照正常的启动数据库的三个步骤启动数据库
模式用途:平时部队数据库做什么维护,像只做应用开发,采用此模式
4)强制启动模式(startup force)
在前面的模式都使用不了的时候,采用此模式,强制启动
3.关闭数据库的步骤(关闭数据库-->卸载数据库-->终止实例)
1)关闭数据库
oracle将重做日志文件高速缓存中的内容写入重做日志文件,并将数据库高速缓存中被改动过的数据写入数据文件,然后关闭所有数据文件和重做日志文件,这个时候数据库的控制文件仍然处于打开状态,但由于数据库处于关闭状态,所以用户无法访问数据库
2)卸载数据库
关闭数据库后,数据库才能被卸载,这个时候关闭控制文件,但实例仍然存在
3)终止实例
进程终止,分配给实例的SGA区被回收
1)关闭数据库
oracle将重做日志文件高速缓存中的内容写入重做日志文件,并将数据库高速缓存中被改动过的数据写入数据文件,然后关闭所有数据文件和重做日志文件,这个时候数据库的控制文件仍然处于打开状态,但由于数据库处于关闭状态,所以用户无法访问数据库
2)卸载数据库
关闭数据库后,数据库才能被卸载,这个时候关闭控制文件,但实例仍然存在
3)终止实例
进程终止,分配给实例的SGA区被回收
4.数据库的4种关闭模式
1)Nomal模式(shutdown nomal)(正常关闭)
正常方式关闭数据库
阻止用户建立新的连接
等待当前连接的用户主动断开连接(此方式下oracle不会立即端掉当前用户的连接,这些用户仍然可以进行操作)
一旦1所有用户都断开连接,则立即关闭数据库,卸载数据库并终止实例
2)Immediate(shutdown Immediate)(立即关闭)
阻止任何用户建立新的连接,并且阻止当前连接的用户开始任何新的事物
不再等待用户主动断开连接,而是强制终止用户的当前事物,将未提交的事物回退(如果存在太多未提交的事物,此方式将会耗费很长时间去终止和回退事物)
直接关闭,卸载数据库终止实例
3)Transactional(shutdown transactional)(事物关闭)
跟immediate方式唯一的不同在于此方式会等待所有未提交的活动事物提交完毕,然后立即断开用户连接
4)Abort(shutdown abort)(终止关闭)
很粗暴的一种方式,会立即终止当前正在执行的sql语句,未提交的事物不会回退,会丢失一部分数据
1)Nomal模式(shutdown nomal)(正常关闭)
正常方式关闭数据库
阻止用户建立新的连接
等待当前连接的用户主动断开连接(此方式下oracle不会立即端掉当前用户的连接,这些用户仍然可以进行操作)
一旦1所有用户都断开连接,则立即关闭数据库,卸载数据库并终止实例
2)Immediate(shutdown Immediate)(立即关闭)
阻止任何用户建立新的连接,并且阻止当前连接的用户开始任何新的事物
不再等待用户主动断开连接,而是强制终止用户的当前事物,将未提交的事物回退(如果存在太多未提交的事物,此方式将会耗费很长时间去终止和回退事物)
直接关闭,卸载数据库终止实例
3)Transactional(shutdown transactional)(事物关闭)
跟immediate方式唯一的不同在于此方式会等待所有未提交的活动事物提交完毕,然后立即断开用户连接
4)Abort(shutdown abort)(终止关闭)
很粗暴的一种方式,会立即终止当前正在执行的sql语句,未提交的事物不会回退,会丢失一部分数据