oracle 数据库启动分为三个部分:
1、nomount 启动实例
2、mount 加载数据库
3、open 打开数据库
具体如下:
1.启动实例 --startup umount,读参数文件 spfile.ora,init<sid>.ora,init.ora,分配内存 等
参考路径:/home/oracle/product/10.2.0.1/dbs/spfile.ora 、init.ora
/home/oracle/product/10.2.0.1/admin/demo/pfile/init<sid>.ora
1-1读取初始化参数文件.注意读取顺序.主要是指定控制文件及数据库实例名
1-2分配系统全局区
1-3启动后台进程
1-4打开alertSID.log文件和跟踪文件
补充说明:
在nomount阶段,oracle 会查找参数文件,启动实例,参数文件的查找顺序为spfile.ora,init<sid>.ora,init.ora如果以上三个文件均查找不到oracle在此时就会报错,同时在此阶段oracle会查找alter文件,如果没有找到alter文件会自动创建;启动相应的后台进程至少包括五个pmon,DBWn,ckpt,smon,LGWn。总之,这个阶段主要就是启动一个实例,并为加载数据库确定必要的参数。
2.装载数据库 --startup mount,读控制文件 等
2-1将数据库与一个已打开的实例相关联
2-2打开控制文件
2-3获取数据文件和重做日志文件的名称和状态.
补充说明:
在mount阶段,oracle会打开控制文件,加载数据库,此时数据库的基本结构信息都能够查询了,但是还不能查询用户表的内容。
3.打开数据库 --database open
3-1打开数据文件
3-2打开联机重做日志文件.
补充说明:
在open阶段,就是打开数据库,在这个阶段SMON会对数据文件的检查点进行一致性检查,不一致时smon会介入进行恢复。
--==================================================
1.启动oracle server.
$sqlplus "/ as sysdba"
SQL>startup[nomount|mount|open][force][pfile=filename]
参数说明:
nomount:只启动实例
mount:启动实例,并装载数据库
open:启动实例,装载并打开数据库。
force:终止实例,并重新启动数据库。(默认选项)
pfile:指定非默认参数文件名。
$lsnrctl start --接着启动监听
2.停止oracle server
$lsnrctl stop --先关闭监听
SQL>shutdown [normal|transactional|immediate|abort]
参数说明:
normal:等待用户断开已存在连接,系统发出检查点,然后在同步数据文件、控制文
和重做日志文件之后关闭(默认选项)
transactional:等待客户端结束事务之后,自动断开用户连接,然后再执行normal。
immediate:取消当前所有sql语句,回退所有未完成事务,然后自动断开,再执行normal。
abort:终止所有sql语句,立即终止实例。不会发出检查点,所以也就不会去同步数据文件、控制文件和重做日志文件。
3. 补充说明
a. 修改数据文件名、执行完全恢复、执行不完全恢复、改变日志操作模式时系统必须在启动实例并安装数据库的情况下startup mount;)
b. 创建数据库或创建控制文件时系统只处于启动实例状态(startup nomount;)
c. 显示sga尺寸(show sga或select * from v$sga)
d.显示当前正在运行的后台进程(select name from v$bgprocess where paddr != ‘00’)
e. 显示oracle server状态(select status from v$instance)
f. 显示初始化参数信息(select * from v$parameter);
g.显示物理文件(select * from v$controfile; select * from v$datafile; select * from v$logfile);
h. 部分数据字典视图:
all_objects, user_objects, dba_objects, user_source, user_segments,
user_tab_columns, user_constraints, all_users
i.为了客户应用可以访问oracle server,在服务器端需要配置listener.ora文件,在客户端需配置tnsnames.ora文件
--========================================
4,控制文件
4.1.控制文件主要记载的信息:
数据库名称;数据库文件名称和位置;重做日志文件名称和位置;表空间名称;
当前日志序列号; 检查点信息; 日志历史信息。
4.2. 多元化控制文件
作用:多元化控制文件后,只要有一个控制文件没有被损坏,把其它损坏的控制文件从初始化参数文件中去掉重启之后系统可以继续运行。
4.2.1. 关闭数据库
sqlplus/nolog;
connect system/admin@lgtest as sysdba;
shutdown immediate;
4.2.2. 复制控制文件
copy source controlfile to dest controlfile
例如:copy e:\oracle\oradata\lgtest\control01.ctl f:\controltest.ctl
4.2.3. 修改初始化参数control_files
control_files= e:\oracle\oradata\lgtest\control01.ctl, f:\controltest.ctl
4.2.4. 启动数据库
startup pfile= e:\oracle\admin\lgtest\pfile\ init.ora.108200317263
4.3. 重建控制文件的方法
作用:当控制文件都被损坏后,只要有全部的数据文件和重做日志文件,那么通过重建控制文件可以使系统继续运行。
4.3.1. 以nomount方式启动实例
sqlplus/nolog;
connect system/admin@lgtest as sysdba;
shutdown normal;
startup nomount pfile=%racle_home%\database\init.ora;
4.3.2. 建立控制文件
create controlfile reuse database lgtest resetlogs
logfile
group 1 ‘e:\oracle\oradata\lgtest\ redo01.log’ size 20m,
group 2 ‘e:\oracle\oradata\lgtest\ redo02.log’ size 20m
datafile
‘e:\oracle\oradata\lgtest\ system01.dbf’,
‘e:\oracle\oradata\lgtest\ undotbs01.dbf’
character set zhs16gbk;
4.3.3 . 打开数据库
alter database open resetlogs;
4.3.4. 增加临时文件
a lter tablespace temp add tempfile ‘e:\oracle\oradata\lgtest\temp01.dbf’ reuse;
--==================================================================
使数据库处于限制模式,用于维护:
SQL> alter system enable restricted session;
重启数据库(停止+启动):
SQL> startup force;
1、nomount 启动实例
2、mount 加载数据库
3、open 打开数据库
具体如下:
1.启动实例 --startup umount,读参数文件 spfile.ora,init<sid>.ora,init.ora,分配内存 等
参考路径:/home/oracle/product/10.2.0.1/dbs/spfile.ora 、init.ora
/home/oracle/product/10.2.0.1/admin/demo/pfile/init<sid>.ora
1-1读取初始化参数文件.注意读取顺序.主要是指定控制文件及数据库实例名
1-2分配系统全局区
1-3启动后台进程
1-4打开alertSID.log文件和跟踪文件
补充说明:
在nomount阶段,oracle 会查找参数文件,启动实例,参数文件的查找顺序为spfile.ora,init<sid>.ora,init.ora如果以上三个文件均查找不到oracle在此时就会报错,同时在此阶段oracle会查找alter文件,如果没有找到alter文件会自动创建;启动相应的后台进程至少包括五个pmon,DBWn,ckpt,smon,LGWn。总之,这个阶段主要就是启动一个实例,并为加载数据库确定必要的参数。
2.装载数据库 --startup mount,读控制文件 等
2-1将数据库与一个已打开的实例相关联
2-2打开控制文件
2-3获取数据文件和重做日志文件的名称和状态.
补充说明:
在mount阶段,oracle会打开控制文件,加载数据库,此时数据库的基本结构信息都能够查询了,但是还不能查询用户表的内容。
3.打开数据库 --database open
3-1打开数据文件
3-2打开联机重做日志文件.
补充说明:
在open阶段,就是打开数据库,在这个阶段SMON会对数据文件的检查点进行一致性检查,不一致时smon会介入进行恢复。
--==================================================
1.启动oracle server.
$sqlplus "/ as sysdba"
SQL>startup[nomount|mount|open][force][pfile=filename]
参数说明:
nomount:只启动实例
mount:启动实例,并装载数据库
open:启动实例,装载并打开数据库。
force:终止实例,并重新启动数据库。(默认选项)
pfile:指定非默认参数文件名。
$lsnrctl start --接着启动监听
2.停止oracle server
$lsnrctl stop --先关闭监听
SQL>shutdown [normal|transactional|immediate|abort]
参数说明:
normal:等待用户断开已存在连接,系统发出检查点,然后在同步数据文件、控制文
和重做日志文件之后关闭(默认选项)
transactional:等待客户端结束事务之后,自动断开用户连接,然后再执行normal。
immediate:取消当前所有sql语句,回退所有未完成事务,然后自动断开,再执行normal。
abort:终止所有sql语句,立即终止实例。不会发出检查点,所以也就不会去同步数据文件、控制文件和重做日志文件。
3. 补充说明
a. 修改数据文件名、执行完全恢复、执行不完全恢复、改变日志操作模式时系统必须在启动实例并安装数据库的情况下startup mount;)
b. 创建数据库或创建控制文件时系统只处于启动实例状态(startup nomount;)
c. 显示sga尺寸(show sga或select * from v$sga)
d.显示当前正在运行的后台进程(select name from v$bgprocess where paddr != ‘00’)
e. 显示oracle server状态(select status from v$instance)
f. 显示初始化参数信息(select * from v$parameter);
g.显示物理文件(select * from v$controfile; select * from v$datafile; select * from v$logfile);
h. 部分数据字典视图:
all_objects, user_objects, dba_objects, user_source, user_segments,
user_tab_columns, user_constraints, all_users
i.为了客户应用可以访问oracle server,在服务器端需要配置listener.ora文件,在客户端需配置tnsnames.ora文件
--========================================
4,控制文件
4.1.控制文件主要记载的信息:
数据库名称;数据库文件名称和位置;重做日志文件名称和位置;表空间名称;
当前日志序列号; 检查点信息; 日志历史信息。
4.2. 多元化控制文件
作用:多元化控制文件后,只要有一个控制文件没有被损坏,把其它损坏的控制文件从初始化参数文件中去掉重启之后系统可以继续运行。
4.2.1. 关闭数据库
sqlplus/nolog;
connect system/admin@lgtest as sysdba;
shutdown immediate;
4.2.2. 复制控制文件
copy source controlfile to dest controlfile
例如:copy e:\oracle\oradata\lgtest\control01.ctl f:\controltest.ctl
4.2.3. 修改初始化参数control_files
control_files= e:\oracle\oradata\lgtest\control01.ctl, f:\controltest.ctl
4.2.4. 启动数据库
startup pfile= e:\oracle\admin\lgtest\pfile\ init.ora.108200317263
4.3. 重建控制文件的方法
作用:当控制文件都被损坏后,只要有全部的数据文件和重做日志文件,那么通过重建控制文件可以使系统继续运行。
4.3.1. 以nomount方式启动实例
sqlplus/nolog;
connect system/admin@lgtest as sysdba;
shutdown normal;
startup nomount pfile=%racle_home%\database\init.ora;
4.3.2. 建立控制文件
create controlfile reuse database lgtest resetlogs
logfile
group 1 ‘e:\oracle\oradata\lgtest\ redo01.log’ size 20m,
group 2 ‘e:\oracle\oradata\lgtest\ redo02.log’ size 20m
datafile
‘e:\oracle\oradata\lgtest\ system01.dbf’,
‘e:\oracle\oradata\lgtest\ undotbs01.dbf’
character set zhs16gbk;
4.3.3 . 打开数据库
alter database open resetlogs;
4.3.4. 增加临时文件
a lter tablespace temp add tempfile ‘e:\oracle\oradata\lgtest\temp01.dbf’ reuse;
--==================================================================
使数据库处于限制模式,用于维护:
SQL> alter system enable restricted session;
重启数据库(停止+启动):
SQL> startup force;