一、Oracle的相关服务
成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:
注:ORCL是数据库实例名,默认的数据库是ORCL,你可以指定其他的实例名
1、Oracle ORCL VSS Writer Service
Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统性能。(非必须启动)
2. OracleDBConsoleorcl
Oracle数据库控制台服务,在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
3. OracleJobSchedulerORCL
Oracle作业调度(定时器)服务。(非必须启动)
4. OracleMTSRecoveryService
服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
5. OracleOraDb11g_home1ClrAgent
Oracle数据库.NET扩展服务的一部分。 (非必须启动)
6、OracleOraDb11g_home1TNSListener
监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动)。
7. OracleServiceORCL
数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
对于开发者来讲,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQL Developer等第三方工具的话,OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
二、操纵工具
1、SQLPlus
Oracle自带的与Oracle进行交互的客户端工具。在SQL plus中除了可以使用SQL语句,也可以执行对结果格式化的语句,这些语句称为SQL*Plus命令。
主要功能:
-- 数据库的维护,如启动,关闭等,这一般在服务器上操作。
-- 执行sql语句执行pl/sql
-- 执行sql脚本
-- 数据的导出,报表
-- 应用程序开发、测试sql/plsql
-- 生成新的sql脚本
-- 供应用程序调用,如安装程序中进行脚本的安装
-- 用户管理及权限维护等
连接数据库:
以管理员登录:用户名 /as sysdba
2、PL/SQL Developer
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。是Oracle数据库对SQL语句的扩展。
PL/SQL Developer是一个集成开发环境,由Allround Automations公司开发,专门面向Oracle数据库存储程序单元的开发。
3、OEM
Orace Enterprise Manager(OEM) 是通过一组Oracle程序,为管理分布式环境提供了管理服务。OEM包括了一组DBA工具,一个repository,以及一个图形化显示的控制台。OEM控制台与每一个服务器上的智能化代理(IntelligentAgent)相对应。它是一个基于Web界面的、可用于管理单个Oracle数据库的工具,OEM对数据库的访问采用Http/Https协议,即使用3层结构访问Oracle数据库系统。
智能化代理能够监控系统的特定事件并且执行任务(作业)就象你在系统本地一样。事件和作业的结果会被送回控制台,这样可以在一个地方管理所有的系统。
OEM与ServerManagerMotif相比,有以下优点:
1)从适用范围看,OEM可以同时监控管理多个系统上的多个数据库,因而特别适合分布式环境;而ServerManager只能监控管理一个数据库。
2)从管理对象看,OEM可以监控管理节点,数据库和监听进程(listener),而ServerManager只能监控数据库。
3)从适用版本看,OEM可以同时监控管理Oracle7.x和8.x,而从8版开始,ServerManager已不存在。
登录地址格式为: https://hostname:1158/em (10g 11g 的默认端口是1158),可以到Oracle安装目录下dbhome1/install/portlist.ini文件中查看端口号。
三、Oracle体系结构
Oracle存储结构分为物理存储结构和逻辑存储结构
实例结构分为内存结构和进程结构
1、物理存储结构
物理存储结构由存储在磁盘上的操作系统文件所组成,Oracle运行时需要这些文件,一般,Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。
(1)、数据文件(Data File)
是存储数据库数据的文件,数据库中的所有数据最终都保存在数据文件中。例如,表中的记录和索引等。如果数据文件中的某些数据被频繁访问,则这些数据会被存储在内存的缓冲区中。读取数据时,Oracle系统会先从内存的数据缓冲区中查找相关数据信息,如果找不到,则从数据库文件中把数据读取出来,存放到内存的数据缓冲区中,供查询使用;存储数据时,修改后的数据信息,也是先存放在内存的数据缓冲区中,在满足写入条件(例如执行提交操作)时,由Oracle的后台DBWn将数据写入数据文件。
//查询数据库的数据文件
select file_name from dba_data_files;
(2)、控制文件(Control File)
控制文件是一个很小的二进制文件,用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。Oracle数据库在启动时需要访问控制文件,在数据库的使用过程中,数据库需要不断更新控制文件,由此可见,一旦控制文件受损,那么数据库将无法正常工作。
怎样设置多份控制文件
//查询控制文件信息
select name from v$controlfile;
(3)、重做日志文件(Redo Log File)
重做日志文件是记录数据库中所有修改信息的文件,简称日志文件。其中,修改信息包括数据库中数据的修改信息和数据库结构的修改信息等,例如删除表中的一行数据或删除表中的一列。如果只是进行了查询操作,则该操作不会被记录到日志文件中。日志文件是数据库系统的最重要的文件之一,它可以保证数据库安全,是进行数据库备份与恢复的重要手段。如果日志文件受损,数据库同样可能会无法正常运行。
//查询日志文件信息
select * from v$logfile;
或select MEMBER from v$logfile;
2、逻辑存储结构
Oracle数据库从逻辑存储结构上来讲,主要包括表空间、段、区和数据块。这4者之间存在如下关系:多个数据块组成一个区;多个区组成一个段;多个段组成一个表空间;而一个Oracle数据库由多个表空间组成。
(1)、表空间
表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。表空间用于存储用户在数据库中创建的所有内容,例如用户在创建表时,可以指定一个表空间存储该表,如果用户没有指定表空间,则Oracle系统会将用户的内容存储到默认的表空间中。
//系统默认安装的表空间
-- system
系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等
-- sysaux
辅助系统表空间。用于减少系统表空间的负荷,提高系统作业效率。该表空间由Oracle系统自动维护,一般不用于存储用户数据
-- temp
临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间。
-- undotbs1
撤销表空间。用于在自动撤销管理方式下存储撤销信息。在撤销表空间中,除了回退段以外,不能建立任何其他类型的段。所以,用户不可以在撤销表空间中创建任何数据库对象。
-- users
用户表空间。用于存储永久性用户对象和私有信息
//查看表空间信息
select tablespace_name from dba_tablespaces;
(2)、数据字典
数据字典是Oracle存放数据库实例信息的一组表和视图,通过数据字典可以了解数据的详细信息。
Oracle数据字典(Data Dictionary)是存储在数据库中的所有对象信息的知识库,Oracle数据库管理系统使用数据字典获取对象信息和安全信息,而用户和数据库系统管理员则用数据字典来查询数据库信息。
Oracle数据字典保存有数据库中对象和段的信息,例如表、视图、索引、包、存储过程以及与用户、权限、角色、审计和约束等相关的信息。
数据字典的分类:
主要分为4部分:
-- 内部RDBMS表:x$...
-- 数据字典表: ...$
-- 动态性能视图:gv$...、v$...
-- 数据字典视图:user_...、all_...、dba_...
USER视图:
以user_为前缀,用来记录用户对象的信息。例如user_tables视图
ALL视图:
以all_为前缀,用来记录用户对象的信息以及被授权访问的对象信息。例如all_synonyms视图
DBA视图:
以dba_为前缀,用来记录数据库实例的所有对象的信息。例如dba_table视图
V$视图:
以v$为前缀,用来记录与数据库活动相关的性能统计动态信息。例如v$datafile视图
GV$视图:
以gv$为前缀,用来记录分布式环境下所有实例的动态信息,例如gv$lock视图
基本的数据字典:
dba_tables: 所有用户的所有表的信息
dba_tab_columns: 所有用户的表的字段信息
dba_views: 所有用户的所有视图信息
dba_synonyms: 所有用户的同义词信息
dba_sequences: 所有用户的序列信息
dba_constraints: 所有用户的表的约束信息
dba_indexes: 所有用户的表的索引简要信息
dba_ind_columns: 所有用户的索引的字段信息
与数据库组件相关的数据字典
数据库 v$datafile 记录系统的运行情况
表空间 dba_tablespace 系统表空间的基本信息
dba_free_space 系统表空间的空闲空间的信息
控制文件 v$controlfile:系统控制文件的基本信息
v$controlfile_record_section :系统控制文件中记录文档段的信息
v$parameter:系统各参数的基本信息
数据文件 dba_data_files :系统数据文件以及表空间的基本信息
v$filestat:来自控制文件的数据文件信息
v$datafile_header:记录数据文件头部分的信息
常用的动态性能视图
v$fixed_table :显示当前发行的固定对象的说明
v$instance :显示当前实例的信息
v$latch: 显示锁存器的统计数据
v$librarycache:显示有关库缓存性能的统计数据
v$rollstat:显示联机的回滚段的名字
v$rowcache:显示活动数据字典的统计
v$sga: 显示有关系统全局区的总结信息
v$sgastat: 显示有关系统全局区的详细信息
v$sort_usage:显示临时段的大小及会话
v$sqlarea:显示SQL区的SQL信息
//查看SCOTT用户的table信息
COLUMN tablespace_name FROMAT A10;
select table_name, tablespace_name, owner from dba_tables where owner='SCOTT';
//查看所有用户的终端信息
select username, terminal from v$session where username is not null;
//获取数据库实例信息
select instance_name, host_name, status from v$instance;
参看:http://www.cnblogs.com/ronaldHU/archive/2013/07/02/3167715.html
参看:http://www.cnblogs.com/halfacre/archive/2012/04/18/2455766.html
参看:http://blog.chinaunix.net/uid-22539324-id-2644071.html