oracle 8i admin学生指南

来源:互联网 发布:linux日志等级划分 编辑:程序博客网 时间:2024/05/17 03:38
1.Oracle 例程是后台进程和内存结构的组合
必须启动例程才能访问数据库中的数据.每次启动例程,都会分配系统全局区 (SGA) 并启动 Oracle后台进程.
• SGA 是用于存储数据库信息的内存区,该信息为数据库进程所共享
• 后台进程代表调用进程执行功能.它们把为每个用户运行的多个 Oracle 程序所处理的功能统一起来.后台进程执行 I/O 并监控其它 Oracle 进程以增加并行性,从而使性能和可靠性更加优越.

2.Oracle 数据库是作为一个单元处理的数据集合.数据库的一般用途是存储和检索相关信息.
数据库有一个逻辑结构和一个物理结构.数据库的物理结构是数据库中操作系统文件的集合.
Oracle 数据库由三种文件类型组成
• 数据文件包含数据库中的实际数据.数据存储在用户定义的表中,但是数据文件也包含数据字典,成图象前的修改数据索引以及其它类型的结构.一个数据库至少有一个数据文件数据文件的特点是
– 一个数据文件只能与一个数据库相关
– 可以为数据文件设置某些特性以便它们在数据库运行空间不足时能够自
动扩展
– 一个或多个数据文件形成数据库存储的逻辑单元这个单元称为表空
间数据库的逻辑结构
• 重做日志包含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复.
一个数据库至少需要两个重做日志文件
• 控制文件包含维护和验证数据库完整性的必要信息.例如控制文件用于识别数据文件和重做日志文件.
一个数据库至少需要一个控制文件

3.SGA 中称作共享池的区域来编译 SQL 语句共享池有两个基本组件
库高速缓存
数据字典高速缓存
4.Database Buffer Cache
Oracle
服务器使用最近最少使用(LRU)算法来释放近期未被访问的缓冲区
5.Rollback segments
象表和索引那样存在于数据文件之中,而回退块将根据需要被放入数
据库缓冲区高速缓存中
回退段由 DBA 创建
对回退段的更改记录在重做日志缓冲区中
6.COMMIT
Oracle
服务器使用快速提交机制来保证提交的更改能够在例程失败的情况下得以恢复
发出 COMMIT 命令时执行下面的步骤
1)
服务器进程随同 SCN 一起在重做日志缓冲区中放置一个提交记录
2) LGWR
向重做日志文件中连续写入直到提交记录(含提交记录)的所有重做日志缓冲区条目.这之后,Oracle 服务器就能够保证即使存在例程失败也不会丢失更改.
3)
通知用户 COMMIT 命令已完成
4)
服务器进程记录信息以指出事务处理已完成并且可以释放资源锁.将灰数据缓冲区刷新到数据文件由 DBW0 独立执行.在提交之前或之后进行都可以
7.
在例程崩溃过程中只丢失SGA, 磁盘没有任何丢失只有内存会丢失
例如操作系统的崩溃引起例程崩溃
8.
用户 SYS SYSTEM 均属于普通用户,存储在数据字典中,只有在数据库打开时才能登录
9.
REMOTE_LOGIN_PASSWORDFILE 参数设置为 EXCLUSIVE SHARED

EXCLUSIVE
表明只有一个例程可以使用口令文件,并且该口令文件包含除 SYSINTERNAL 以外的名称
SHARED
表明可以有多个例程可以使用口令文件,口令文件可以识别的用户只有SYS INTERNAL
10.
例程一旦在NOMOUNT 阶段启动就可以访问从内存读取的V$ 视图从控制,文件读取数据的视图要求装载数据库,

11.数据库创建后许多设置就不能更改

12.手动创建数据库
1. 决定唯一的例程和数据库名以及数据库字符集
2. 设置操作系统变量
3. 准备参数文件
4. 创建口令文件 (推荐)
5. 启动例程
6. 创建数据库
7. 运行脚本以生成数据字典并完成创建后步骤

set ORACLE_SID=U16
ORADIM -NEW -SID u16 -INTPWD password
-STARTMODE auto
-PFILE ORACLE_HOME/DATABASE/initU16.ora
STARTUP NOMOUNT PFILE=initU16.ora
12..没有DROP DATABASE 命令,若要删除数据库必须从操作系统中删除数
据文件

13。数据库创建后数据库已打开SQL 脚本 sql.bsq 成功执行,可以查看动态性能视图如V$LOGFILE V$CONTROLFILE 和V$DATAFILE, 但没有创建数据字典视图 
14。数据字典包含对数据库内的对象的说明,由用户 SYS 拥有,存储在 SYSTEM 表空间内,使用 SELECT 语句访问,它是一组只读表和视图,每当执行数据定义语言 (DDL) 命令时,Oracle 服务器更新数据字典,
数据操作语言 (DML) 命令如引起表扩展的命令也可以更新数据字典

15。数据字典内容
数据字典提供有关下列各项的信息:
• 逻辑数据库结构和物理数据库结构
• 对象的定义和空间分配
• 完整性约束
• 用户
• 角色
• 权限
• 审计
• 其它信息
16。数据字典视图分为三个类别可以通过前缀进行区分
• DBA 数据库管理员的视图即所有方案中的视图,显示整个数据库的全局视图
• ALL 扩展用户的视图即用户可访问的视图
• USER 用户的视图即用户方案中的视图
所有视图上都创建有公用同义词
不是所有的数据字典视图都使用这种命名规则 
17。动态性能表
• “虚拟” 表
• 从以下两处访问信息:
– 内存
– 控制文件
• 以 V$ 开头的同义词
• DBA 用来监视和优化数据库
• 在 V$FIXED_TABLE 中列出
• 示例:V$DATAFILE 用于数据文件信息

SYS 拥有动态性能表,其名称全部以V$ 开始,在这些表上创建视图。视图名称均以V_$ 开始,然后为视图创建公用同义词同义词名称也以V$ 开始 。

18。catalog.sql 脚本在基表和动态性能视图及其同义词上创建视图,catproc.sql 脚本建立 PL/SQL 功能的使用。

19。重做日志文件记录对数据库缓冲区高速缓存内数据所做的所有更改 ,重做日志文件用来在诸如例程失败的情况下恢复尚未写入数据文件的提交数据,重做日志文件仅用于恢复。

20.一组相同的联机重做日志文件副本称作联机重做日志组,为保证数据库的正常操作Oracle 服务器最少需要两个联机重做日志文件组 
21。在下列情况下,LGWR 进程将重做条目写入到被称为当前联机重做日志组的联机重做日志组之一
• 当提交事务时
• 当重做日志缓冲区三分之一满时
• 当重做日志缓冲区内有超过 1 MB 的已更改记录时
• 当发生超时时每三秒钟
• 在 DBWn 将数据库缓冲区高速缓存内的修改块写入数据文件之前

22。当当前联机重做日志组已满时,LGWR 开始向下一个组写入,当最后一个可用联机重做日志文件已满时,LGWR 返回到第一个联机重做日志组并再次开始写入,当发生日志切换时将启动一个称为检查点的事件。

23。下面的项是重做日志 STATUS 列的常见值
• UNUSED 表明从未对联机重做日志组进行写入这是刚添加的联机重做日
志文件的状态
• CURRENT 表明当前的联机重做日志组这意味着该联机重做日志组是活动

• AC T IVE 表明联机重做日志组是活动的但是并非当前联机重做日志组崩
溃恢复需要该状态它可能正用于块恢复它可能归档也可能不归档

24。强制日志切换
可以使用下面的 SQL 命令来强制日志切换
SQL> ALTER SYSTEM SWITCH LOGFILE;

25。添加联机重做日志组
ALTER DATABASE ADD LOGFILE GROUP3
(‘DISK3/log3a.rdo’,
‘DISK4/log3b.rdo’)size 1M;

26。添加联机重做日志成员
ALTER DATABASE ADD LOGFILE MEMBER
‘/DISK4/log1b.rdo’ TO GROUP 1,
‘/DISK4/log2b.rdo’ TO GROUP 2;

27,如何重新定位或重命名联机重做日志文件
1. 将联机重做日志文件复制到新位置
2. 执行ALTER DATABASE RENAME FILE 命令

ALTER DATABASE [database]
RENAME FILE 'filename'[, 'filename']...
tO 'filename'[, 'filename']...
28丢弃联机重做日志组

ALTER DATABASE DROP LOGFILE GROUP 3;
限制
• 一个例程至少需要两组联机重做日志文件
• 无法丢弃活动组或者当前组
• 如果数据库运行在 ARCHIVELOG 模式下并且未将日志文件组归档那么无法丢弃该组
• 在丢弃联机重做日志组时,并没有删除操作系统文件

29。丢弃联机重做日志成员 
ALTER DATABASE DROP LOGFILE MEMBER
‘/DISK4/log2b.dbf’;

限制
• 如果要丢弃的是组内的最后一个有效成员,那么您不能丢弃该成员
• 如果该组是当前组,那么在能够丢弃该成员之前您必须强制日志文件切换
• 如果数据库正运行在 ARCHIVELOG 模式下,并且未将该成员所属日志文件组
归档,那么您无法丢弃该成员
• 在丢弃联机重做日志成员时,并未删除操作系统文件
30。清除联机重做日志文件,ALTER DATABASE CLEAR LOGFILE‘/DISK3/log2a.rdo’;
31。表空间
Oracle 数据库内的数据存储在表空间内
• Oracle 数据库可以从逻辑上分组到称为表空间的更小的逻辑空间区
• 一个表空间在某一时刻只能属于一个数据库
• 每个表空间由一个或多个称为数据文件的操作系统文件组成
• 表空间可以由一个或多个段组成
• 表空间可以在数据库运行时联机
• 除了 SYSTEM 表空间或者有活动回退段的表空间,其它表空间可以脱机,不影响数据库运行
• 表空间可以在可读写和只读状态之间切换
数据文件
Oracle 数据库内的每个表空间由一个或者多个称为数据文件的文件组成,这些
物理结构与在其上运行 Oracle 服务器的操作系统是一致的
• 一个数据文件只能属于一个表空间
• 通过分配指定数量的磁盘空间加上少量的开销,Oracle 服务器创建表空间数据文件
• 数据文件创建后,数据库管理员可以更改其大小,或者指定数据文件应随着表空间内对象的增长而动态增长段
段是为表空间内特定逻辑存储结构分配的空间,例如分配给表的所有存储空间是一个段
• 表空间可以由一个或多个段组成
• 段无法跨越表空间但是段可以跨越属于同一表空间的多个数据文件
• 每个段由一个或多个区组成区
按区向段分配空间
• 一个或多个区组成一个段
– 当段创建后它至少由一个区组成
– 随着段增长将向该段添加区
– DBA 可以手动向段添加区
• 一个区就是一组连续的 Oracle 块
• 一个区可能不跨越数据文件,但必须存在于一个数据文件内
33。SYSTEM 和非 SYSTEM 表空间
• SYSTEM 表空间:
– 使用数据库创建
– 包含数据字典
– 包含 SYSTEM 回退段
• 非 SYSTEM 表空间:
– 单独的段
– 易于空间管理
– 控制分配给用户的空间量

CREATE TABLESPACE app_data
DATAFILE '/DISK4/app_data_01.dbf'
SIZE 100M,
'/DISK5/app data_ 02.dbf'
SIZE 100M
MINIMUM EXTENT 500K
DEFAULT STORAGE ( INITIAL 500K
NEXT 500K
MAXEXTENTS 500
PCTINCREASE 0 );
本地管理的表空间

CREATE TABLESPACE user_data
DATAFILE '/DISK2/user_data_01.dbf'
SIZE 500M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 10M;
34。临时表空间
• 用于排序操作
• 无法包含任何永久对象
• 建议使用本地管理的区
• UNIFORM SIZE = SORT_AREA_SIZE * n
CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/DISK2/temp_01.dbf'
SIZE 500M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 10M;
35。更改存储设置
ALTER TABLESPACE app_data
MINIMUM EXTENT 2M;
ALTER TABLESPACE app_data
DEFAULT STORAGE (
INITIAL 2M
NEXT 2M
MAXEXTENTS 999 );
36。脱机状态
• 脱机表空间无法用于数据访问
• 某些表空间必须联机:
– SYSTEM
– 具有活动回退段的表空间
• 使表空间脱机:
• 使表空间联机:
ALTER TABLESPACE app_data OFFLINE;
ALTER TABLESPACE app_data ONLINE;
37。只读表空间
ALTER TABLESPACE app_data READ ONLY;
38。丢弃表空间
DROP TABLESPACE app_data INCLUDING CONTENTS;
原则
• 不通过 INCLUDING CONTENTS 选项,则无法丢弃仍包含数据的表空间
当表空间包含许多对象时该选项可能生成许多回退
• 表空间一旦丢弃,其数据将不再在数据库内
• 在丢弃表空间时,只丢弃相关数据库控制文件内的文件指针操作系统文件
仍然存在您必须使用适当的操作系统命令明确删除这些文件
• 即使表空间切换到只读,您仍可以丢弃该表空间以及其内的段
• 丢弃表空间之前,建议您将表空间脱机,以确保没有事务处理访问该表空间
39。手动更改数据文件的大小
ALTER DATABASE
DATAFILE '/DISK5/app_data_02.dbf'
RESIZE 200M;
40。向表空间添加数据文件
ALTER TABLESPACE app_data
ADD DATAFILE '/DISK5/app_data_03.dbf'
SIZE 200M;
41。移动数据文件:(非系统表空间)
alter tablespace data offline;
• 必须存在目标数据文件
ALTER TABLESPACE app_data
RENAME
DATAFILE '/DISK4/app_data_01.dbf'
TO '/DISK5/app_data_01.dbf';
alter tablespace data online;
移动数据文件:(系统表空间)
shutdown
 必须存在目标数据文件
startup mount  ...
ALTER DATABASE
RENAME FILE '/DISK1/system_01.dbf'
TO '/DISK2/system_01.dbf';
alter database open;
42.当行所占用的块内可用数据空间达到 80% (100 –PCTFREE) ,或者更多后,即无法再向该块进行插入.
如果由于更新删除了块内的行或者行大小减少块使用率可能跌至 80%以下,但是仍然无法向块中插入,直到块使用率跌至 PCTUSED 以下,在本例中 PCTUSED 为 40%
当块使用率跌至 PCTUSED 以下后该块可用于插入

43.
创建表
CREATE TABLE employee(
id NUMBER(7),
last_name VARCHAR2(25),
dept_id NUMBER(7))
PCTFREE 20 PCTUSED 50
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE data;
44临时表
• 行由会话专用
• 表仅在事务处理或会话期间保留数据
• 数据不要求 DML 锁定
• DML 不生成重做日志
ON COMMIT PRESERVE ROWS;
CREATE GLOBAL TEMPORARY TABLE employee_temp
AS SELECT * FROM employee;
45。手动分配区
ALTER TABLE summit.employee
ALLOCATE EXTENT(SIZE 500K
DATAFILE ‘/DISK3/DATA01.DBF’);
46。非分区表的重新组织
ALTER TABLE employee
MOVE TABLESPACE data1;
• 将数据移到新段内, 同时在表上保留索引, 约束, 权限等等
• 用于将表移到其它表空间或重新组织区
47。截断表
TRUNCATE TABLE summit.employee;
48删除表
DROP TABLE summit.department
CASCADE CONSTRAINTS;
49。删除列
ALTER TABLE employee
DROP COLUMN comments
CASCADE CONSTRAINTS CHECKPOINT 1000;
50使用 UNUSED 选项
ALTER TABLE orders
SET UNUSED COLUMN comments
CASCADE CONSTRAINTS;
51,CREATE TABLE
CREATE GLOBAL TEMPORARY TABLE
ALTER TABLE ...STORAGE
ALTER TABLE ...PCTFREE ...PCTUSED
ALTER TABLE ...ALLOCATE EXTENT
ALTER TABLE ...DEALLOCATE UNUSED
TRUNCATE TABLE
DROP TABLE
ALTER TABLE ...DROP COLUMN
ALTER TABLE ...SET UNUSED COLUMN
ALTER TABLE ...DROP UNUSED COLUMNS
ALTER TABLE ...DROP COLUMNS CONTINUE
52。CREATE TABLESPACE ...DATAFILE ...
DEFAULT STORAGE...MINIMUM EXTENT
CREATE TEMPORARY TABLESPACE
CREATE TABLESPACE ...DATAFILE AUTOEXTEND
ALTER TABLESPACE ...ADD DATAFILE
...AUTOEXTEND
ALTER DATABASE DATAFILE ...RESIZE
ALTER TABLESPACE...DEFAULT STORAGE...
MINIMUM EXTENT
ALTER TABLESPACE ...RENAME DATAFILE...
ALTER DATABASE RENAME FILE...
ALTER TABLESPACE ...READ ONLY
ALTER TABLESPACE ...READ WRITE
ALTER TABLESPACE ...OFFLINE
DROP TABLESPACE
53。CREATE TABLESPACE ...DATAFILE ...
DEFAULT STORAGE...MINIMUM EXTENT
CREATE TEMPORARY TABLESPACE
CREATE TABLESPACE ...DATAFILE AUTOEXTEND
ALTER TABLESPACE ...ADD DATAFILE
...AUTOEXTEND
ALTER DATABASE DATAFILE ...RESIZE
ALTER TABLESPACE...DEFAULT STORAGE...
MINIMUM EXTENT
ALTER TABLESPACE ...RENAME DATAFILE...
ALTER DATABASE RENAME FILE...
ALTER TABLESPACE ...READ ONLY
ALTER TABLESPACE ...READ WRITE
ALTER TABLESPACE ...OFFLINE
DROP TABLESPACE
54CREATE INDEX
CREATE UNIQUE INDEX
CREATE BITMAP INDEX
CREATE INDEX ...REVERSE
ALTER INDEX ...STORAGE
ALTER INDEX ...INITRANS ...MAXTRANS
ALTER INDEX ...ALLOCATE EXTENT
ALTER INDEX ...DEALLOCATE UNUSED
ALTER INDEX ....REBUILD
ALTER INDEX ....REBUILD ...REVERSE
ALTER INDEX ....REBUILD ...NOREVERSE
ANALYZE INDEX ...VALIDATE STRUCTURE
DROP INDEX
55创建正常的 B 树索引
CREATE INDEX summit.employee_last_name_idx
ON summit.employee(last_name)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx;
56。创建表时定义约束
CREATE TABLE summit.employee(
id NUMBER(7)
CONSTRAINT employee_id_pk PRIMARY KEY
DEFERRABLE
USING INDEX
STORAGE(INITIAL 100K NEXT 100K)
TABLESPACE indx,
last_name VARCHAR2(25)
CONSTRAINT employee_last_name_nn NOT NULL,
dept_id NUMBER(7))
TABLESPACE data;
57。删除父表之前必须删除外键,使用下列命令执行两个使用单个语句的操作
DROP TABLE table CASCADE CONSTRAINTS
• 在未删除或禁用外键之前无法截断父表
• 删除包含父表的表空间之前必须删除外键,可通过下列命令删除外键
DROP TABLESPACE tablespace INCLUDING CONTENTS
CASCADE CONSTRAINTS
58。创建新用户:
数据库验证
设置初始口令:
CREATE USER peter
IDENTIFIED BY my1stson
DEFAULT TABLESPACE data
TEMPORARY TABLESPACE temp
QUOTA 15m ON data
PASSWORD EXPIRE;,不能删除当前与Oracle 服务器连接的用户