/* Oracle服务器由 实例、程序全局区、前台进程、数据库组成 实例包括 系统全局区 SGA 和 后台进程( PMON SOMON ) 系统全局区SGA 包括 高速数据缓存区、共享池、重做日志缓存区、Java池、大型池 等内存结构 高速数据缓冲区 Database buffer cache 存放着 最近访问过的数据块(缓冲块):脏数据区 空闲区 保留区 重做日志缓冲区 记录对数据库的修改信息 由日志写入进程来将重做日志缓冲区的内容写入到重做日志文件 重做日志缓冲区大小由LOG_BUFFER确定 可以动态修改 较大的重做日志缓冲区能对数据库整体性能提高 共享池 shared pool SGA保存的内存区域 库高速缓冲区 字典高速缓冲区 共享池的内存大小空间是可以动态改变的,一般通过SHARED_POOL_SIZE的值来实现 大型池 Large Pool Java池 给JVM使用 支持在数据库中运行Java程序包 流池 STREAMS_POOL_SIZE 数据库之间进行信息共享 后台进程 数据写入进程 检查点进程 日志写入进程 归档进程 系统监控进程 进程监控进程 锁定进程 恢复进程 调度进程 快照进程 程序全局区 PGA 是非共享的内存区域 管理用户进程的资源 程序全局区 Program Global Area 包括 用户进程全局区 内存区在进程私有区 前台进程 包括 用户进程 服务进程 用户进程 连接 和 会话 服务进程 处理用户会话过程中向数据库发出的SQL语句 数据库包括 数据文件 控制文件 日志文件 服务器参数文件 */ --逻辑存储结构 --数据块大小 oracle数据放在数据块中 通常为操作系统块的整数倍 select name,value from v$parameter where name like '%db_block%'; --有关归档日志文件的信息 如果value为空 则没有启用归档日志模式 select name,value from v$parameter where name='log_archive_dest'; --查看数据字典的信息 数据字典存放在SYSTEM表空间 select * from dict; --查看数据库中内部系统表的信息 select * from v$fixed_view_definition; --物理存储结构 --数据文件 一个表空间对应多个数据文件 用户无法指定 oracle系统负责对数据对象进行选择数据文件 select file_name,tablespace_name from dba_data_files; --临时文件 oracle9i以后 临时表空间对应的数据文件和一般数据文件分开 select file_name,tablespace_name from dba_temp_files; --控制文件 记录数据库的物理结构 包含 数据库名、数据文件、日志文件的名字与位置、数据库的建立日期 控制文件存放的路径由spfileorcl.ora 和control_file来决定 select * from v$controlfile; --日志文件 每个oracles实例都会启动日志线程来记录数据库的变化 select member from v$logfile; --查看当前Oracle系统是否采用归档模式 select dbid,name,log_mode from v$database; --查看归档日志路径 select name, value from v$parameter where name like 'log_archive_dest_%' and value is not null and value <>'enable'; --服务器参数文件 信息 SPFILEsid.ora sid为数据库实例名 select name,value,ismodified from v$parameter; --可以使用OEM 或者 alter system 命令来进行修改 --警告文件路径 警告文件通常为 alert_orcl_log 记录了运行信息包括 oracle实例的启动关闭、建立表空间、增加数据文件 错误信息 :空间扩展失败 启动实例失败 select name,value from v$parameter where name = 'background_dump_dest'; --随着时间推移 警告文件会越来越大 应该定期清理 --当前实例进程信息 select name,description from v$bgprocess; --跟踪文件 select * from v$parameter where name='user_dump_dest'; --基本数据字典 ---关于表空间的信息 select * from dba_tablespaces; --所有用户表空间限额 select * from dba_ts_quotas; --所有表空间的自由分区 select * from dba_free_space; --描述数据库中所有段的存储空间 select * from dba_segments; ---数据库中所有分区的信息 分区相当多 select count(1) from dba_extents; --数据库中所有数据表的描述 select * from dba_tables; --常用动态性能视图 所谓动态性能视图 是指在数据库运行期间不断改变 select * from v$database; --数据库使用的数据文件的信息 select * from v$datafile; --通过访问数据库会话,设置对象锁的所有信息 select * from v$lock; --有关会话的信息 select * from v$session;