Oracle的物理、逻辑结构概览
Oracle的物理、逻辑结构概览
声明:版本11gR2,CentOS5.8
1 物理结构(文件)
主要性能影响在IO上
(1)controlfile
[sql]
select * from v$controlfile
(2)datafile
[sql]
select * from dba_data_files
(3)redo (online logfile)
[sql]
select * from v$logfile
select * from v$log
(4)password file(sys)
[sql]
select * from dba_users
(从11g开始password项里变为空了,以免被破解)
2 逻辑结构
2.1 实例
instance(memory[sga]+process[background])
实例=内存(sga)+后台进程(background)
查看内存,可以通过以下视图
select * from v$sga_dynamic_components
后台进程,可以通过下面视图查看
[sql]
select * fromv$bgprocess where paddr!='00';
我们只关心paddr不等于0的就可以了,等于0的都是没启用
2.2实例的管理
参数文件spfilesid.ora,initsid.ora
两个文件可以互相转化
[sql]
create spfile from pfile;
create pfile from spfile;
(1)开启实例分为nomount,mount,open三个阶段
l nomount阶段
在开启到nomount阶段需要使用到参数文件,而从9i版本开始默认优先使用spfile参数文件,如果spfile文件没有就去使用pfile文件,如果pfile文件还没有,就会报找不到pfile文件的错误。
11g有一个新功能,也许是我才发现吧!!!首先先说下数据库开启时,如果参数文件丢失或者损坏,不会导致数据库直接宕掉,但是如果数据库重新启动的话,就会报错,而且如果要是没有个好的备份的话,那是非常麻烦的事情,如果数据库在运行时及时发现了参数文件丢失或者损坏,可以使用如下方法处理:
[sql]
create pfile from memory;
所以参数文件一定要有个良好的备份。
可以通过v$instance视图查看数据库状态
[sql]
select status from v$instance;
通过v$bgprocess视图可以查看后台进程的情况
[sql]
select * from v$bgprocess where paddr<>’00’;
l mount阶段
开启mount阶段需要用到控制文件
可以使用参数control_files查看控制文件所在位置:
[sql]
show parameter control_files
如果控制文件损坏,在开启数据库的时候就会报错,而且告诉你去alert_sid.log里看具体错误信息,而这个文件所在位置,可以通过background_dump_dest参数去查看:
[sql]
show parameter background
注:alert_sid.log最大支持到2G大小,所以当业务特殊繁忙或者文件变的比较大的时候需要备份。
l open阶段
11gR2版本—经测试,其他版本不确定
可以从open阶段到mount阶段在到nomount阶段
[sql]
alter database close;
alter database dismount;
shutdown immediate
(2)关闭实例
1.normal
2.transactional
系统有事务的时候就关闭不了
系统有没有事务可以查看v$transaction视图
3.immediate
4.abort
2.3 参数的粗略概述
用db_cache_size和processes两个参数举例
首先查看v$parameter视图可以查看是否是静态参数或者是动态
[sql]
select name,issys_modifiablefromv$parameter wherename in ('db_cache_size','processes');
NAME ISSYS_MOD
-------------------- ---------
processes FALSE
db_cache_size IMMEDIATE
从ISSYS_MOD字段可以看出db_cache_size参数是立即生效,所以从这个可以看出db_cache_size字段是动态参数。
注意:其中processes参数如果过多比如更改为50000个数量的时候,数据库在重新启动的时候会挂住。
2.4 session(process)
A)process
[sql]
select * from v$process;
包含v$bgprocess
l 通过如下以下方法可以追溯到OS系统的进程
[sql]
SQL> select distinct sid fromv$mystat;
SID
----------
37
SQL> select sid,paddr fromv$session where sid=37;
SID PADDR
---------- --------
37 43BC365C
SQL> select addr,pid,spidfrom v$process where addr='43BC365C';
ADDR PID SPID
-------- ----------------------------------
43BC365C 20 11633
[root@elvis ~]# ps -ef | grepora
root 3762 3732 0 May30 ? 00:01:02 hald-addon-storage: polling/dev/hdc
oracle 4604 1 0 May30 ? 00:00:02/u01/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit
oracle 7624 1 0 06:22 ? 00:00:07 ora_pmon_elvis
oracle 7628 1 0 06:22 ? 00:00:35 ora_vktm_elvis
oracle 7634 1 0 06:22 ? 00:00:00 ora_gen0_elvis
oracle 7638 1 0 06:22 ? 00:00:01 ora_diag_elvis
oracle 7642 1 0 06:22 ? 00:00:00 ora_dbrm_elvis
oracle 7646 1 0 06:22 ? 00:00:01 ora_psp0_elvis
oracle 7650 1 0 06:22 ? 00:00:35 ora_dia0_elvis
oracle 7654 1 0 06:22 ? 00:00:05 ora_mman_elvis
oracle 7658 1 0 06:22 ? 00:00:03 ora_dbw0_elvis
oracle 7662 1 0 06:22 ? 00:00:02 ora_lgwr_elvis
oracle 7666 1 0 06:22 ? 00:00:16 ora_ckpt_elvis
oracle 7670 1 0 06:22 ? 00:00:06 ora_smon_elvis
oracle 7674 1 0 06:22 ? 00:00:00 ora_reco_elvis
oracle 7678 1 0 06:22 ? 00:00:11 ora_mmon_elvis
oracle 7682 1 0 06:22 ? 00:00:07 ora_mmnl_elvis
oracle 7686 1 0 06:23 ? 00:00:00 ora_d000_elvis
oracle 7690 1 0 06:23 ? 00:00:00 ora_s000_elvis
oracle 9125 1 0 10:26 ? 00:00:00 ora_arc0_elvis
oracle 9129 1 0 10:26 ? 00:00:00 ora_arc
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?