当前位置:文档之家› oracle命令

oracle命令

Oracle 数据库常用命令和概念
一、 系统全局区(SGA)
系统全局区(System Global Area)为一组由Oracle分配的共享的内存结构,可包含一个数据库实例的数据库或控制信息。
SGA区的各部分组成如下:
数据库高速缓冲区(Database Buffer Cache)
共享存储区(Shared Pool)
重做日志存储缓冲区(Redo Log Buffer)
JAVA存储区(Java Pool)
大型存储区(Large Pool)
SGA总容量=共享池+缓冲区高速缓存+大型存储区+Java存储区+日志缓冲区

SGA区的内存结构关系:
系统全局区(SGA)
数据库共享区
库高速缓存
数据字典高速缓存

重做日志缓冲区
Java存储区
大型存储区


数据库高速缓冲区主要可分为3种类型:
1、“脏”缓存(Dirty Buffers):存放已修改但未写入到磁盘的数据。
2、自由缓存(Free Buffers):不包含任何数据的自由内存空间,以备新的查询使用。
3、“被钉住的”缓存(Pinned Buffers):已经被标记为占用或正在被占用的内存空间。
数据库高速缓冲区的大小由初始化参数DB_CACHE_SIZE来决定。

共享存储主要用来存放SQL、PL/SQL、过程和包、数据字典锁和字符设置信息、安全属性等。包括库高速缓存和数据字典高速缓存。
数据高速缓存:用于存储分析SQL语句的数据字典行。
库高速缓存:用来存储已经提交给Oracle的SQL语句、分析过的格式和执行计划,以及被执行过的PL/SQL包头与过程Java的类。
共享存储区的大小主要由参数SHARED_POOL_SIZE来决定。

重做日志缓冲区用于在内存中存储已经被修改的数据库信息。大小由LOG_BUFFER初始化参数决定。

Java存储区大小由Java_POOL_SIZE参数决定。

大型存储区的分配堆用作会话内存,通过并执行将它用作消息缓冲区,通过备份将它作磁盘I/O缓冲区。初始化文件参数:LARGE_POOL_SIZE。

二、 程序全局区
程序全局区(Program Global Area)是一个内存区,包含单个进程的数据和控制信息,所以又称为进程全局区(Process Global Area)。
包括:排序区、堆栈空间和会话信息。

三、 Oracle进程
进程是操作系统中的一种机制,它可执行一系列的操作步骤。
Oracle进程分为两类:服务器进程和后台进程。服务器进程用于处理连接到该实例的用户进程请求。

Oracle进程主要执行下列任务:
1、 对应用所有发出的SQL语句进行语法分析和执行
2、 对磁盘中读入必要的数据块到SGA的共享数据缓冲区(该块不在缓冲区时)。
3、 将结果返回给应用程序处理。

Oralce实例有两种类型:专用进程(Dedicated Process)实例和多进程(Multithread Process)。
专用进程(又称单用户Oralce进程)是一种数据库系统,一个进程只执

行一个用户的程序。当用户从终端断开时此进程被中止。
多进程Oracle实例使用多个进程来执行不同用户的请求,对于每一个连接的用户都有一个进程。

进程分类:
1、 DBWR进程:将缓冲区写入数据文件,是负责缓冲存储区管理的一个Oracle后台进程。
2、 LGWR进程:将日志缓冲区写入磁盘上的一个日志文件,它是负着管理日志缓冲区的一个Oracle后他进程。
3、 CKPT进程:在检查点出现时,对全部数据文件的头信息进行修改,指示该检查点。
4、 SMON进程:该进程实例启动时执行实例恢复,还负责清理不再使用的临时段。
5、 PMON进程:该进程在用户进程出现故障时执行进程恢复,负着清理内存存储区和释放该进程所使用的资源。
6、 RECO进程:该进程时分布式应用当中所使用的一个进程,自动地解决在分布式事务中的故障。
7、 ARCH进程:当数据库运行在归档状态下,在线重做日志文件在被重写之前被COPY到另一路径。
8、 LCKn进程:在具有并行服务器选件环境下使用,可多至10个进程,用于实例间的封锁。
9、 Dnnn进程:该进程允许用户进程共享有限的服务器进程。

三、Oracle数据库的物理结构
1、 数据文件:包含表或索引形式逻辑表示的实际数据库数据。一个表空间由一个或多个数据文件组成,一个数据文件不能与一个以上的表空间相关联。
2、 控制文件:用来存储数据库的物理结构――数据文件和重做日志文件。控制文件的大小在数据库生成时由参数MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY,
MAXDATAFILES和MAXINSTANCES来决定。
控制文件的生成
使用CREATE CONTROLFILE命令生成一个新的控制文件。
CREATE CONTROLFILE REUSE DATABASE “Oracle9i” NORESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 113
LOGFILE
GROUP 1 ‘log file path’ SIZE n
DATAFILE
Data file path
CHARACTER SET ZHS16GBK
查询控制文件信息:通过视图V$CONTROLFILE

3、 重做日志文件(Redo Log Files):用来记录对数据库的所有更改,LGWR周期性写入重做日志缓冲区。日志转换命令:alter system switch logfile。查询视图:V$LOGFILE。

检查点:当检查点事件发生时,所有已经修改的数据将从高速缓冲区写到磁盘,同时根新控制文件和数据文件。手工触发检查点事件发生:ALTER SYSTEM CHECKPOINT

LOG_CHECK_POINT_INTERVAL:此参数用来指定重做日志文件每写多少操作系统块发生一次检查点事件。
LOG_CHECKPOINT_TIMEOUT :此参数用来指定每隔多少时间发生一次检查点。
FAST_START_IO_TARGET:此参数用来限制数据库高速缓冲区中脏表中数据块个数。

4、 归档日志文件(Archive Log File)也叫离线日志

文件。它是在线重做日志文件的拷贝。
LOG_ARCHIVE_DEST:指定归档日志文件的路径。
LOG_ARCHIVE_DUPLEX_DEST:指定归档日志文件的第二路径。
LOG_ARCHIVE_DEST_N:此参数可以最多指定5个路径。
LOG_ARCHIVE_MIN_SUCCEED_DEST:指定归档日志进程写在线重做日志文件的最小成功数目。
LOG_ARCHIVE_MAX_PROCESSES:数据库启动时,用来指定归档进程的最大启动数目,默认为1。

设置ARCHIVELOG/NOARCHIVELOG模式
(1) 关闭数据库,编辑初始化参数。使初始化参数LOG_ARCHIVE_START=TRUE
(2) 启动数据库于MOUNT状态。
(3) 使用ALTER DATABASE ARCHIVELOG命令。
(4) 使用ALTER DATABASE OPEN命令打开数据库。
使已经处于归档日志状态下的数据库工作于非归档日志状态可使用如下步骤:
(1) 关闭数据库并编辑初始化参数。使初始化参数LOG_ARCHIVE_START=FALSE
(2) 启动数据库于MOUNT状态。
(3) 使用ALTER DATABASE NOARCHIVELOG命令。
(4) 使用ALTER DATABASE OPEN命令打开数据库。
使用SQL*PLUS工具可实现归档日志与非归档日志状态的改变。
ARCHIVELOG状态:
(1) 关闭数据库。必须以SYS身份登录才有权执行此命令。
(2) 启动数据库于MOUNT状态。
(3) 使用ALTER DATABASE ARCHIVELOG命令。
(4) 使用ALTER DATABASE OPEN命令打开数据库。
Archive log all:手工归档 archive log next:归档全部日志文件

通过ARCHIVE LOG LIST 命令来查询数据库工作于那种模式;通过V$LOGFILE,可以查看数据库日志文件情况。查询视图V$THREAD。查询V$ARCHIVE_PROCESSES,可以显示归档日志进程的运作情况。查询V$LOG_HISTORY。

相关主题
文本预览
相关文档 最新文档