1. 准备工作:

(1)了解ORACLE数据库的体系结构。

 先讨论两个基本但重要的与磁盘和内存相关的概念:数据库实例

数据库:在ORACLE中数据库指的是用来存储信息的物理文件。有三种类型的物理文件:

  • 数据文件:促使我们让数据库引擎开始工作的所有数据。
  • 控制文件:数据库引擎所使用的关于其它数据的元数据。
  • 重做日志文件:用来记录所有对数据的更改,用于备份和恢复。

实例:如果不存在与数据库进行交互的内存结构和进程,数据库文件本身是无用。ORACLE将实例定义为内存结构和一些后台进程,用于从数据库中获取数据。一个实例有两个主要内存结构:

  • 系统全局区(SGA),也叫共享全局区,将各种进程共享的信息存储在内存中。
  • 程序全局区(PGA),也叫私有全局区,包含某个特殊进程的信息。

SGA还包括:

  • 数据库缓冲区高速缓存:缓存从数据文件中读取的信息。
  • 数据字典高速缓存:缓存元数据信息。
  • 库高速缓存:缓存最近使用的SQL和PL/SQL语句

PGA用来给排序空间,变量,数组和游标信息分配内存。实例也包含了协作完成各种所需功能的多个后台进程。这些进程包括数据库写进程,负责将更改写入数据库的进程,对各个进程进行监督的进程,用户进程失败后负责进行清除的进程等等。

ORACLE学习笔记_oralce

 

(2)了解ORACLE数据库的逻辑结构。

ORACLE学习笔记_笔记_02

(3)安装ORACLE数据库,数据库名称为ORCL。

(4)打开命令窗口,设置窗口的宽度和高度,以及缓冲区的宽度和高度,保存。

(5)为了节省资源,开始 -> 运行 - services.msc,将所有与ORACLE相关的服务设置为手动启动方式。

 

2. 登录:

(1)启动计算机,采用批处理方式启动ORACLE服务。批处理文件为start.bat。start后为服务名称。停止服务为stop.bat。

@echo off
rem - @echo off disable the display of the following commands
net start "OracleOraHome90TNSListener"
net start "OracleServiceORCL" 
exit

 

@echo off 
net stop "OracleOraHome90TNSListener"
pause
net stop "OracleServiceORCL" 
exit

 

(2)以非登录方式打开SQL*PLUSsqlplus /nolog

(3)登录到数据库:conn system/manger as sysdba  connect / as sysdba

 

3. 设置:

(1)为了使输出漂亮一点,设置行宽:set linesize 300;

 

4. 参数学习:

(1)查看SGA:show sga;

(2)参数查看:show parameter;

了解shared_pool_size, java_pool_size, large_pool_size。改变共享池大小:alter system set shared_pool_size = 40M;但Java池和大池的大小不能修改。

了解db_cache_size, db_block_size, log_buffer。改变数据缓冲区大小:alter system set db_cache_size = 30M;

 

5. 创建表空间和查看表空间和数据文件:

方法一:

(1)创建永久表空间和临时表空间:

ORACLE学习笔记_笔记_03
 create tablespace MIS
 datafile 
'D:\oracle\oradata\mis.dbf'
 size 32M;

 
create temporary tablespace MIS_TMP
 tempfile 
'D:\oracle\oradata\mis_tmp.dbf'
 size 32M;
ORACLE学习笔记_笔记_03

 

(2)查看数据库中的所有表空间:select tablespace_name from dba_tablespaces; 调整表dba_tablespaces中的列tablespace_name的宽度:col tablespace_name format a20; 再次select * from dba_tablespaces; 查看所有表空间。

(3)查看数据文件:select file_name from dba_data_files;

(4)删除表空间及对应的数据文件:drop tablespace mis including contents and datafiles; 使用此命令,mis空间的内容及相关的操作系统文件mis.dbf都将被删除。命令drop tablespace mis including contents不会删除操作系统文件mis.dbf。

方法二:利用OMF(Oracle-Managed File)

目的:能利用以下语句成功创建表空间

create tablespace omf
datafile
size 10m;

 

(1)用show parameter db_create_file_dest;查看该参数的value是否为空,如果为空进行设置。

(2)设置参数db_create_file_dest中的value: alter session set db_create_file_dest = 'D:\oracle\';

(3)执行上述语句,成功创建表空间omf,对应的数据文件位于D:\oracle\目录下,名称为ORA_OMF_4FJJ5F00.DBF

(4)改变db_create_file_dest的值:alter session set db_create_file_dest = 'D:\';再删除表空间omf。

(5)使用命令:drop tablespace omf; 删除表空间内容和相关的操作系统文件。其效果与方法一中的drop tablespace mis including contents and datafiles是一样的。尽管db_create_file_dest的值改变了,但不影响对先前创建的表空间进行删除。

(6)恢复空值:alter session set db_create_file_dest = ' ';

 

6. 如何给数据库分配更多的空间:

方法一:给某个表空间增加数据文件

ORACLE学习笔记_oralce_05

在ORACLE 10g中可以用以下命令删除一个表空间中的某个数据文件,若要删除System表空间中的DATA3.ORA,可用:

alter tablespace system drop datafile ‘DATA3.ORA’;

 

方法二:增加新的表空间 

ORACLE学习笔记_笔记_06

 

方法三:增加某个数据文件的大小

ORACLE学习笔记_笔记_07

 

7. 对数据文件的操作:

1、重新设置数据文件的大小:alter database datafile 'D:\oracle\oradata\mis01.dbf' resize 10m;

2、将数据文件移到磁盘的其它位置:

(1) shutdown immediate;

(2) startup mount;

(3) 将原文件拷贝到新文件:copy 'd:\oracle\oradata\mis01.dbf'  'd:\oracle\mis01.dbf'

(4) alter database rename file 'd:\oracle\oradata\mis01.dbf' to 'd:\oracle\mis01.dbf';

(5) alter database open;

(6) 删除磁盘上的旧文件d:\oracle\oradata\mis01.dbf

(6) 用select * from dba_dataK_files;查看。

3、设置数据文件的大小是否可扩展:

关闭可扩展性:alter database datafile 'D:\oracle\oradata\mis01.dbf' autoextend off;
打开可扩展性:alter database datafile 'D:\oracle\oradata\mis01.dbf' autoextend on maxsize unlimited;