Oracle 基础

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)将环境变量NLS_LANG 改为AMERICAN报错信息是英文了,可以暂时解决这个问题。

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 物理存储结构

Oracle数据库的物理存储结构由多种物理文件组成,有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件和警告日志文件等。
1.数据文件:
Oracle在逻辑上由表空间组成,在物理上由数据文件组成,每个表空间由一个或者多个数据文件组成,一个数据文件只能隶属于一个表空间。

 通过查询数据字典 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;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值