1 数据库的启动过程和相关状态
①找到初始化文件(pfile或spfile),启动到nomount状态;
②根据初始化文件找到控制文件,启动到mount状态;
③根据控制文件找到 数据文件、重做日志文件,启动到open状态。
2 关闭数据库用的四个命令
①shutdown immediate:
不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件;没有结束的事务是自动rollback的;
②shutdown abort:
不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件;启动时数据库将自动进行实例恢复;
③shutdown transactional:
不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件;启动时数据库不需要实例恢复;
④shutdown normal:
不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件;启动时数据库不需要实例恢复。
3 数据库的nomount状态
使用startup nomount命令,将数据库启动到nomount状态,此时只是加载了pfile或spfile文件;
pfile为文本文件,可直接编辑;
spfile为二进制文件,不能直接修改里面的值;数据库默认使用spfile参数文件启动。
例:查看数据库初始化文件位置
show parameter spfile
例:根据spfile创建pfile文件
create pfile='c:\pfile.ora' from spfile;
如果不给pfile制定值,默认在spfile同一位置创建pfile文件,文件名为initorcl.ora;
例:使用pfile启动数据库到nomount状态
在数据库关闭的情况下使用如下命令
startup nomount pfile='C:\app\cc\product\11.2.0\dbhome_1\database\INITorcl.ora';
注:数据库的nomount状态一般用于进行数据库的维护或重要参数的修改,或者恢复数据库的控制文件及数据文件时等;
4 数据库的mount状态
数据库的mount状态在数据库恢复时需要用到,配置dataguard时,备库是出于mount状态;
例:从数据库的nomount状态更改为mount状态
alter database mount;
例:查看数据库控制文件的位置
select name from v$controlfile;
nomount状态时是不能查询数据库的控制文件的位置的;
例:查看控制文件的内容
alter database backup controlfile to trace as 'c:\ctl.trc';
使用上述命令把控制文件显示在trace中;
5 数据库的open状态
例:更改数据库到open状态
alter database open;
例:查看数据库的数据文件的位置
select name from v$datafile;
例:查看数据库的重做日志文件位置
select member from v$logfile;
6 数据库的密码文件
windows下密码文件一般位于$oracle_home/database/目录下,
该密码文件的作用是允许数据库的sysdba、sysoper用户通过口令来远程登录;
例:查看oracle是否允许远程登录
show parameter remote_login_passwordfile
如果value为exclusive,则允许远程登录;如果为none,则不允许远程登录;
例:设置oracle数据库禁止远程登录数据库
alter system set remote_login_passwordfile=none scope=spfile;
需要重启数据库才能生效。
7 数据库表空间(tablespace)
例:查看数据库表空间相关信息
select * from dba_tablespaces;
相关列解释:
block_size:数据块存储大小单位,一般默认为8kb;
status:表空间状态,分为online和offline,用户只能访问online状态的表空间中的数据;
contents:表空间的类型,有permanent、undo、temporary;
8 数据库数据文件(datafile)
表空间和数据文件时一对多关系,一个表空间可以有多个数据文件,一个数据文件只能属于一个表空间;
例:查看数据库中数据文件的相关信息
select * from dba_data_files;
相关列解释:
file_name:数据文件路径;
bytes:数据文件当前的大小;
autoextensible:数据文件是否自动扩展,为了节省空间,数据文件刚开始一般都会设置的比较小,随着数据不断增多时,数据文件会自动扩展,直至到达设定的最大值;
maxbytes:数据文件的最大容量;
tablespace_name:数据文件所属的表空间名称;
9 数据库重做日志文件(redolog)
例:查看重做日志文件的相关信息
select * from v$logfile;
相关解释:
group#:重做日志文件的组号,一般数据库中都会有两组以上重做日志文件;
status:重做日志的状态,空白状态为正在使用该数据文件;
member:每组的成员的文件位置。