1. Oracle常用管理工具:
1. sql*plus:
登陆:
(1)命令行中直接登陆: sqlplus username[/password][@connect_identifier] [AS SYSOPER|SYSDBA]
例如:sqlplus system/1qaz2wsx@orcl AS SYSDBA
@connect_identifier:表示连接的全局数据库名,如果连接本机的默认数据库,可以省略。
附:如何查询全局数据库名: 全局数据库名=数据库名+domain名;
展示数据库名,show parameter db_name;
展示domain名,show parameter db_domain;
展示全局数据库名,select * from global_name;
2. OEM (Oracle Enterprise Manager):
浏览器中输入https://localhost:1158/em 可以访问OEM的页面,输入用户名和密码即可。Start -> All Programes -> Oracle-OraDb11g_home1 -> Database Control - orcl。
3. 数据库配置助手: Database Configuration Assistant
4. Oracle安装时,解决报错信息是乱码的情况,例如下边的情形:
SQL> SELECT TRIM('gg' from 'ggHelloWorld!gg') FROM dual;
SELECT TRIM('gg' from 'ggHelloWorld!gg') FROM dual
*
ERROR at line 1:
ORA-30001: ??????????
解决方法:
(1)先打开注册表 NLS_LANG变量的值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK (该变量在KEY_OraDb11g_home1下)。该值修改成
SIMPLIFIED CHINESE_CHINA.AL32UTF8 (查找的方法,可以解决数据库中中文数据乱码问题,但是还是报错信息乱码)。
2.启动和关闭数据库:
startup [NOMOUNT|MOUNT|OPEN|FORCE][restict][pfile=filename]
oracle数据库启动分三个步骤,分别是启动数据库、加载数据库、打开数据库。
nomount:启动不加载
mount:启动加载
open:启动加载打开
force:终止实例,并重新启动数据库。
详细的选项通过 help startup 获得。
shutdown [normal|transactional|immediate|abort]
normal:时间很长,等所有用户都断开连接后,关闭。
transactional:等所有用户提交的事务都完成后,关闭数据库。
immediate:立即关闭,回退未完成的事务。
abort:强制关闭,对数据库完整性有影响,不推荐。
详细的选项通过help shutdown获得。
3. Oracle体系结构:
Oracle DBMS有3个重要的概念,分别是实例、数据库和数据库服务器。
3.1 逻辑存储结构:
按照范围从小到大,分别依次是:数据块、数据区、(数据)段、表空间、数据库。
1. 数据块:
数据块是Oracle逻辑存储结构中最小的逻辑单位。Oracle数据块有一定的标准大小,其大小被写入到初始化参数DB_BLOCK_SIZE中。
在数据字典v$parameter中可以查询到db_block_size变量的大小。
select * from v$parameter where name = 'db_block_size';
视图v$parameter记录初始化参数文件中所有项的值。
2.数据区:
由一组连续的Oracle数据块所构成的Oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区再组成一个段。
3.段
由一个或者多个数据区构成的,不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象,Oracle也把这种占用空间的数据对象统一称为段。
4.表空间:
Oracle使用表空间来将相关的逻辑结构组合在一起,表空间是数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象,任何数据对象在创建时都必须指定存储在某个表空间上。Oracle数据的存储空间在逻辑上表现为表空间,而在物理上表现为数据文件。
常见的表空间:
SYSTEM表空间:用于存放Oracle系统内部表和数据字典的数据。SYSAUX表空间:充当SYSTEM的辅助表空间。UODO表空间:撤销表空间,用于存储撤销信息的表空间。USERS表空间:用户表空间,Oracle建议用户使用的表空间,可以在这个表空间上建立各种数据对象。
3.2 物理存储结构
通过查询数据字典 dba_data_files或者v$datafile来查询Oracle系统的数据文件信息:
SELECT * FROM dba_data_files;
SELECT * FROM v$datafile;
根据查询结果,可以得出包括以下一些类型的文件:系统数据文件(SYSTEM01.DBF、SYSAUX01.DBF);撤销数据文件(UNDOTBS01.DBF);用户数据文件(USERS01.DBF、EXAMPLE01.DBF)。
从9i以后,将临时表空间所对应的临时数据文件与一般数据文件分开,查询临时数据文件信息,可以从dba_temp_files或者v$tempfile查询。
SELECT * FROM dba_temp_files;
SELECT * FROM v$tempfile;
2.控制文件:
控制文件是二进制文件,记录了数据库的物理结构,其中包括数据库的数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息。每个数据库至少拥有一个控制文件,一个数据库可以同时拥有多个控制文件,但是一个控制文件只能属于一个数据库。可以通过数据字典v$controlfile查看Oracle的控制文件信息
SELECT * FROM v$controlfile;
3.日志文件:
包括重做日志文件(Redo Log File)和归档日志文件(Archive Log File)。可以通过v$logfile来查看日志文件信息。
SELECT * FROM v$logfile;
Oracle系统在运行过程中产生的日志,首先记入系统全局区的“重做日志缓冲区”,当发出Commit指令后,LGWR从重做日志缓冲区中读出来写入日志文件组中序列号较小的文件里,一个日志组写满后写另外一个日志组。
归档日志文件:
上边说的情况中,如果日志组都满了会再回到第一个日志组,进行覆盖重写。如果系统开启了归档日志模式的话,会把将要被覆盖的日志组归档保存,再覆盖。在数据字典v$database中可以查看是否采用了归档模式(log_mode字段)
SELECT DBID,NAME,LOG_MODE FROM v$database;
如果数据库处于归档日志模式,spfile中的log_archive_dest参数指定了归档日志文件所在的路径。
show parameter log_archive_dest
4.服务器参数文件:
spfile是二进制文件。如果要修改某些参数的话,尽可能不要直接对spfile进行修改,而通过OEM或者ALTER SYSTEM命令来修改,所修改过的参数会自动写到SPFILE中。
(1)查看参数:
可以通过数据字典v$parameter或者使用命令show parameter + 参数名 来实现。
(2)修改参数:
可以通过OEM修改,另外使用命令ALTER SYSTEM:
ALTER SYSTEM SET db_block_size=4096
5.密码文件、警告文件和跟踪文件:
(1)密码文件:
用于验证sysdba权限的二进制文件。可以使用ORAPWD.EXE工具手工创建。
(2)警告文件:
用来记录Oracle系统的运行信息和错误信息。查看警告文件的位置:
SELECT name,value FROM v$parameter WHERE name = 'background_dump_dest'
(3)跟踪文件:
包括后台进程跟踪文件和用户进程跟踪文件。后台进程跟踪文件用于记录后台进程的警告或错误消息(也就是上边的警告文件)。用户进程跟踪文件用于记载与用户进程相关的信息,主要用于跟踪SQL语句,可以判断SQL语句的执行性能。查看用户进程跟踪文件的位置:
SELECT name,value FROM v$parameter WHERE name = 'user_dump_dest'
4.Oracle服务器结构
SGA(系统全局区)是所有用户共享的一块内存区域。包括:高速数据缓冲区、共享池、重做日志缓冲区、Java池和大型池等。
PGA(程序全局区)也可以称作用户进程全局区。包括私有SQL区(用于存储变量以及SQL语句运行时的内存结构信息)和会话区(用于存放客户的会话信息)。
5.Oracle后台进程
1.DBWR:指“数据写入进程”。主要任务是负责将内存(高速数据缓冲区)中的数据块回写到数据文件中。可以修改服务器配置文件SPFILE的CHECKPOINT_PROCESS参数,以允许使用多个DBWR进程。
2.CKPT:指“检查点进程”。可以看做是一个事件,当检查点事件发生时,CKPT会要求DBWR将某些“脏”数据块回写到数据文件中。
3.LGWR:指“日志写入进程”。用于将重做日志缓冲区中的数据写入重做日志文件。
4.ARCH:指“归档进程”。当数据库处于归档模式时有用,用于将将要被覆盖的日志文件归档。
5.SMON:指“系统监控进程”。
6.:指“进程监控进程”。
还有许多其他的后台进程,但是不再介绍了,需要时候查documentation即可。
从v$bgprocess数据字典中可以查询当前实例进程信息:
set pagesize 50;
select name,description from v$bgprocess;