oracle基本管理(1)

来源:互联网 发布:物资采购软件 百度云 编辑:程序博客网 时间:2024/06/05 20:07
Oracle的基本组件包括:
内存组件
进程结构
文件结构

Oracle 例程,是一种访问Oracle 数据库的方式,始终打开一个,并且只打开一个数据库由内存结构和后台进程结构组成。
库高速缓存用于存储有关最近使用的SQL 和PL/SQL 语句的信息启用常用语句共享由“最近最少使用算法” (LRU) 管理,
它包括以下两个结构: 共享的SQL 区、共享的PL/SQL 区。大小由共享池的大小确定。
数据字典高速缓存是数据库中最近使用的定义的集合,包括与数据库文件、表、索引、列、用户、权限和其它数据库对象相关的信息,
在语法分析阶段,服务器进程会在数据字典中查找用于解析对象名和验证访问的信息,
将数据字典信息高速缓存到内存中,可缩短查询和DML 的响应时间,大小由共享池的大小决定。

大型池是SGA 中的可选内存区,它分担了共享池的一部分工作用于:
共享服务器的会话内存 (UGA)、I/O 服务器进程、备份和恢复操作或RMAN、并行执行消息缓冲区,将PARALLEL_AUTOMATIC_TUNING 设置为TRUE。大型池不使用LRU 列表,它的大小由LARGE_POOL_SIZE 确定。

使用口令实用程序 orapwd 创建口令文件。
orapwd file=filename password=password entries=max_users
将 REMOTE_LOGIN_PASSWORDFILE 参数设置为EXCLUSIVE
其中:EXCLUSIVE 表示只有一个例程可以使用口令文件,并且该口令文件包含SYS 以外的名称。使用EXCLUSIVE 口令文件可以向单个用户授予SYSDBA 或SYSOPER 权限。GRANT SYSDBA TO HR;
使用上面创建的口令文件连接数据库。
CONNECT sys/admin AS SYSDBA
ORACLE_BASE:指定Oracle 软件的顶级目录。
ORACLE_HOME:指定Oracle 软件的安装目录。OFA 建议的目录为$ORACLE_BASE/product/release
ORACLE_SID:指定例程名称,同一台计算机上运行的Oracle 例程的名称必须唯一。
ORA_NLS33:创建带有非US7ASCII 字符集的数据库时必须指定。
LD_LIBRARY_PATH:指定操作系统和Oracle 库文件所在的目录。示例: $ORACLE_HOME/lib
catalog.sql:在基表和动态性能视图上创建视图及其同义词。它还启动其它脚本
catproc.sql:创建使用PL/SQL 所需的程序包和过程。此外,此脚本还创建用于扩展RDBMS 功能的若干PL/SQL 程序包,以及用于预警、管道、logminer、大对象、对象、排队、复制和其它内置选项的程序包视图。
pupbld.sql:创建名为“产品用户配置文件” (Product User Profile) 的表以及相关的过程。运行此脚本将在用户每次连接到SQL*Plus 时防止生成警告消息。必须以用户SYSTEM 的身份运行此脚本。

成功创建数据库之后,数据库应包含:
数据文件、控制文件和重做日志文件、用户SYS,口令为change_on_install、用户SYSTEM,口令为manager、内部表(但没有数据字典视图)。

数据字典:包含对数据库中对象的说明
数据字典是Oracle 数据库最重要的部分之一,它是一组只读表和视图,提供有关其相关数据库的信息,描述数据库以及数据库对象。
它是每个Oracle 数据库的中心。数据字典包含只读表和视图,存储在SYSTEM 表空间内,由用户SYS 拥有。由Oracle 服务器进行维护,通过SELECT 访问。

数据字典包含对数据库中的对象的说明。它包括两种对象类型。基表和数据字典视图。
基表是存储有关数据库的信息的底层表。基表是在任何Oracle 数据库中首先创建的对象。
在使用CREATE DATABASE 创建数据库时,只要Oracle 服务器运行sql.bsq 脚本,就会自动创建这些对象。
只有Oracle 服务器才能对这些基表执行写入操作。用户很少直接访问基表,因为其中的数据大多数都是以隐含格式存储的。
切勿使用DML 命令直接更新基表,但AUD$ 表除外。例如,IND$ 表就是一个基表,它包含有关数据库中的索引的信息。
数据字典视图是基表的汇总,可以更有效地显示基表信息。例如,在数据字典视图中,除了显示对象编号外还会使用对象名。
数据字典视图是在运行CREATE DATABASE 命令之后使用catalog.sql 脚本创建的。
catalog.sql 创建常用的数据字典视图和同义词,catproc.sql 运行服务器端PL/SQL所必需的脚本。
数据字典包含以下内容:
数据库内所有方案对象的定义,这些对象包括表、视图、索引、簇、同义词、序列、过程、函数、程序包、触发器等等。
已为方案对象分配的空间量以及它们当前使用的空间量。
列的缺省值。
完整性约束信息。
Oracle 用户的名称。
已授予每个用户的权限和角色。
审计信息,如有哪些人访问或更新了各种方案对象。

数据字典一共有三种静态视图集,按范围分类为:
DBA:所有方案中的视图,ALL:用户可以访问的视图,USER:用户方案中的视图。
要获取数据字典视图的概览,可以查询DICTIONARY 视图或其同义词DICT 视图。

动态性能表
在Oracle服务器的整个操作过程中,动态性能表将当前数据库活动记录在称为动态性能视图的一组虚拟表中。
只有数据库处于运行状态时,这些虚拟表才驻留在内存中,反映数据库操作的实时状况,随数据库的运行随时更新。
它们指向内存和控制文件中的实际信息源。这些表不是真正的表,大多数用户都无法访问它们;但是数据库管理员可以在这些视图上查询、授予SELECT 权限并创建视图。
这些视图有时称为固定视图,因为数据库管理员无法更改或删除这些视图。
动态性能表由SYS 拥有,它们的名称均以V_$ 开头。在这些表上先创建视图,然后再为这些视图创建公共同义词。同义词名以V$ 开头。
例如,V$DATAFILE 视图包含有关数据库中数据文件的信息,而V$FIXED_TABLE 视图包含有关数据库中所有动态性能表和视图的信息。
动态性能表可使用户了解到以下信息:
该对象是否处于联机状态并可用?
该对象是否已打开?
目前持有哪些锁?
该会话是否处于活动状态?
V$CONTROLFILE:列出控制文件的名称
V$DATABASE:包含控制文件中的数据库信息
V$DATAFILE:包含控制文件中的数据文件信息
V$INSTANCE:显示当前例程的状态
V$PARAMETER:列出会话的当前有效参数和值
V$SESSION:列出当前每个会话的会话信息
V$SGA:包含有关系统全局区(SGA) 的摘要信息
V$SPPARAMETER:列出SPFILE 的内容
V$TABLESPACE:显示控制文件中的表空间信息
V$THREAD:包含控制文件中的线程信息
V$VERSION:Oracle 服务器中核心库组件的版本号

管理脚本可以根据各自的文件名划分为以下几类:
cat*.sql:这些脚本用于创建数据字典视图。除catalog.sql 和catproc.sql 脚本之外,还存在创建有关Oracle 实用程序信息的其它脚本。
例如,catadt.sql 脚本用于创建数据字典视图以显示ORDBMS 中的类型和其它对象特性的元数据信息。catnoadt.sql 脚本用于删除这些表和视图。
dbms*.sql 和prvt*plb:这些脚本用于创建预定义的Oracle 程序包的对象,这些程序包扩展了Oracle 服务器功能。
这些程序简化了管理数据库的任务。大多数SQL 脚本在catproc.sql 脚本的执行过程中运行。少数其它脚本必须由数据库管理员执行。
例如,dbmspool.sql 脚本使您可以显示共享池中对象的大小,并在SGA 中将它们标记为保留或删除,以减少共享池碎片。
utl*.sql:这些脚本必须在数据库需要其它视图和表时运行。
例如,脚本utlxplan.sql 创建用于查看SQL 语句的执行计划的表。
大多数脚本必须以具有SYSDBA 权限的SYS 用户身份运行。数据库管理员应检查脚本以确定必须使用哪个用户帐户来运行脚本。

参数文件
使用如下命令,这个命令将参数恢复为默认值,并将真正的从SPFILE中移除某参数
alter system reset parameter_name cope=spfile sid=’*’;

select count(*) from v$datafile;
在Oracle启动时,会在此默认位置处首先寻找spfileSID.ora,如果找不到了,再在此位置处查找SPFILE.ORA,如果还没有,在同一位置中查找initSID.ora。
在启动数据库时,自己指定参数文件。
STARTUP PFILE = 位置\名字 或 STARTUP SPFILE = 位置\名字

告警日志包含了以下信息:
1、数据库启动或关闭的时间
2、所有非缺省初始化参数的列表
3、后台进程的启动
4、例程使用的线程
5、正在向其中写入信息的日志序列号LGWR
6、有关日志切换的信息
7、表空间的创建和回滚段的创建
8、已发出的警报声明
9、有关ORA-600 等错误消息和区错误的信息.

控制文件中包含以下条目:
数据库名称和标识符,创建数据库的时间戳,表空间的名称,数据文件和重做日志文件的名称和位置,当前重做日志的序列号,检查点信息,还原段的开始和结尾,重做日志归档信息,备份信息。

使用如下视图可以获取控制文件信息:
V$CONTROLFILE:列出与该例程相关联的所有控制文件的名称和状态
V$PARAMETER:列出所有参数的状态和位置
V$CONTROLFILE_RECORD_SECTION:提供有关控制文件记录部分的信息
SHOW PARAMETER CONTROL_FILES:列出控制文件的名称、状态和位置

重做日志文件是以循环方式使用的。一旦某个重做日志文件被写满,LGWR 就会移动到下一个日志组。这称为日志切换,同时还将执行检查点操作,将信息写入控制文件。
强制执行日志切换:
ALTER SYSTEM SWITCH LOGFILE;
强制执行检查点:
FAST_START_MTTR_TARGET 参数取代了不赞成使用的参数:
FAST_START_MTTR_TARGET = 600
FAST_START_IO_TARGET
LOG_CHECKPOINT_TIMEOUT
如果使用参数FAST_START_MTTR_TARGET,就不能再使用这两个不赞成使用的参数。
删除联机重做日志文件组的限制:
一个例程至少需要两组联机重做日志文件。无法删除活动组或者当前组。删除联机重做日志文件组时并不删除操作系统文件。
删除重做日志文件成员的限制:
如果要删除的是组内的最后一个有效成员,那么您不能删除该成员。如果该组是当前组,那么必须先强制执行日志文件切换,然后才能删除该成员。
如果数据库正运行在ARCHIVELOG 模式下并且未将该成员所属日志文件组归档,那么您无法删除该成员。
删除联机重做日志文件成员时,如果没有使用OMF 功能,则不会删除操作系统文件。

可以通过重命名联机重做日志文件来更改联机重做日志文件的位置。在重命名联机重做日志文件之前,请确保新的联机重做日志文件已存在。
Oracle 服务器仅更改控制文件内的指针,并不从物理上重命名或创建任何操作系统文件。
ALTER DATABASE RENAME FILE 命令可更改联机重做日志文件的名称:
ALTER DATABASE CLEAR LOGFILE 命令将联机重做日志文件复制到新的位置

要创建由OMF 管理的联机重做日志文件,必须定义DB_CREATE_ONLINE_LOG_DEST_n 参数
获取联机重做日志的信息,主要通过如下视图:
V$LOG:联机重做日志状态信息视图
STATUS 列的常见值:
UNUSED:表示从未对联机重做日志文件组进行写入。这是刚添加的联机重做日志文件的状态。
CURRENT:表示当前的联机重做日志文件组。这说明该联机重做日志文件组是活动的。
ACTIVE:表示联机重做日志文件组是活动的,但是并非当前联机重做日志文件组。崩溃恢复需要该状态。它可用于块恢复。它可能已归档,也可能未归档。
CLEARING:表示在执行ALTER DATABASE CLEAR LOGFILE 命令后正在将该日志重建为一个空日志。日志清除后,其状态更改为UNUSED。
CLEARING_CURRENT:表示正在清除当前日志文件中的已关闭线程。如果切换时发生某些故障,如写入新日志标头时发生了输入/输出(I/O) 错误,则日志可能处于此状态。
INACTIVE:表示例程恢复不再需要联机重做文件日志组。它可能已归档,也可能未归档。
V$LOGFILE:日志文件状态信息视图
STATUS 列的值可以为下列之一:
INVALID:表明该文件不可访问
STALE:表示文件内容不完全
DELETED:表明该文件已不再使用
空白表明文件正在使用中
0 0
原创粉丝点击