实验名称:
Oracle数据库建立
实验目的:
1. 掌握Oracle数据库软件安装方法;
2. 熟练掌握SQL plus工具的使用;
3. 掌握手工创建和修改数据库的方法;
4. 加深理解数据库体系结构和参数信息及其查询方法。
实验内容及要求:
1. Oracle数据库软件安装;
2. SQL plus工具的使用:包括启动、连接、常用命令及SQL,报表功能等;
3. 利用SQL plus工具建立Oracle数据库及实例,要求建立SYSETM、SYSAUX、TEMP、USER、UNDO等表空间;
4. 在新建数据库中,创建新用户并为其建立专用默认表空间和临时表空间,数据文件大小自动增长,本地盘区管理方式。为新用户赋权,以新用户身份登录,建立至少一个表对象;
5. 分别利用手工命令和OEM软件两种方式查询新建数据库的信息:(1)初始化参数信息;(2)体系结构信息,包括逻辑结构、物理结构和内存结构等。
实验环境:
操作系统:Windows XP以上
数据库:Oracle 11g windows版(32位/64位)
客户端工具:SQL plus
虚拟机:VMWare Workstation V9以上(可选)
实验原理:
1. 手工创建数据库分为三步:第一步创建新的数据库实例,即实例服务;第二步:建立数据库的物理结构;第三步:创建系统表空间中的数据字典表、动态性能视图及内部存储过程
实验步骤:
1. Oracle 11g环境的搭建
(在此就不详细对Oracle 11g的安装作介绍了,在上一篇文章对此有具体操作解释)
2. 手工创建新数剧库
1. 首先要设置环境变量,创建一个数据库的实例名,例如 set oracle_sid=xukkk
2. 在home/database下创建初始化参数文件INITxukkk.ora
3.在dos环境下执行home/BIN目录下的ORADIM程序创建实例,代码如下:
>oradim -new -sid xukkk -startmode manual -pfile C:\app\Administrator\product\11.2.0\dbhome_1\database\INITxukkk.ora
实例创建成功后,可以在windows的计算机管理中看到新建的服务:OracleServicexukk
4.启动SQLPlUS,以SYSDBA身份连接到ORACLE,只有SYSDBA才有权创建数据库:
>sqlplus /nolog
>sqlplus>conn / as sysdba
5.建立服务器参数文件SPFILE,ORACLE为服务器端提供了二进制初始化参数文件,是在服务器端,除此之外可以减少手工更新初始化参数文件的工作,也使得ORACLE服务器的自我调节功能得以实现。
SQL>create spfile from pfile='C:\app\Administrator\product\11.2.0\dbhome_1\database\INITxukkk.ora'
6.启动实例,但不加载数据库,此时仅仅创建了实例的内存结构SGA:
SQL>startup nomount
7. 建立create database建库脚本,脚本如下,将脚本建立在c盘的根目录下,建立完脚本后在dos环境下运行该脚本进行建库:
create database xukkk
USER SYS IDENTIFIED BY 87654321
USER SYSTEM IDENTIFIED BY 87654321
LOGFILE
GROUP 1 ('C:\app\Administrator\oradata\xukkk\redo01.log') size 100m,
GROUP 2 ('C:\app\Administrator\oradata\xukkk\redo02.log') size 100m,
GROUP 3 ('C:\app\Administrator\oradata\xukkk\redo03.log') size 100m
MAXINSTANCES 1
MAXLOGFILES 5
MAXLOGMEMBERS 2
MAXLOGHISTORY 100
MAXDATAFILES 100
archivelog
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'C:\app\Administrator\oradata\xukkk\; size 325M REUSE EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'C:\app\Administrator\oradata\xukkk\; SIZE 325M REUSE
DEFAULT TABLESPACE users DATAFILE 'C:\app\Administrator\oradata\xukkk\u; size 325M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE 'C:\app\Administrator\oradata\xukkk\; size 32M
REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
UNDO TABLESPACE undotbs DATAFILE 'C:\app\Administrator\oradata\xukkk\undo; size 325M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED ;
8.调用Oracle提供的脚本文件ca创建数据字典表,这个文件放在/home/RDBMS/ADMIN文件夹下面。
SQL>@C:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\ca
9.调用Oracle提供的脚本文件ca创建内部程序包。
SQL>@C:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\ca
3. 创建新用户并且为其设置单独的默认表空间
1. 创建数据表空间
SQL>create tablespace newusertbs datafile 'C:\app\Administrator\oradata\xukkk\newu;
size 32m autoextend on extent management local;
2. 创建临时表空间
SQL>create temporary tablespace newusertemptbs tempfile 'C:\app\Administrator\oradata\xukkk\newu;
size 32m autoextend on extent management local;
3. 创建新用户同时设定默认表空间
SQL>create user xu identified by 87654321 default tablespace newusertbs
temporary tablespace newusertemptbs
4. 为新用户赋权,赋权后才能为该用户创建方案对象
SQL>grant connect,resource to xu
5. 测试新用户创建成功并获得了相应的权限
SQL>conn xu/87654321
SQL>create table unit(unit_no varchar(20) primary key,
unit_name varchar(100) , memo varchar(100));
SQL>select table_name from user_tables;
异常原因分析及解决办法:
1.在配置OEM时,出现下图所示问题:
解决办法:打开数据库net manager进行配置数据库的监听服务即可解决此问题
2. 当遇到问题断开与数据库的连接时要重新启动服务,或者在dos环境下用sys登录输入shutdown指令,再重新连接数据库实例
3. 当想要删除新建的数据库实例服务时可以输入如下指令:
oradim -delete -sid <sid>
4. 连接数据库时出现适配器错误。解决办法:主要是没有开启数据库服务,去控制面板的服务中打开相应的数据库服务
5. 每次关闭cmd窗口再次启动时要记得设置环境变量,连接数据库实例,打开数据库
总结和体会:
用手工创建Oracle数据库相比较于用图形界面要麻烦许多,并且在一些细节上要更加注意,这需要我们要有足够的耐心和我们对Oracle数据库操作的指令要更加熟悉,因为开始对此不熟悉走了不少弯路,出现问题就会想到从头再来,重新建库,所以花费了不少时间,虽然说现在感觉比较难或者是比较麻烦,但是当用这种方法成功创建完数据库的时候的喜悦之情要比用图形界面创建成的喜悦之情多得多。
对于在这个过程中遇到的问题要自己去寻求解决的方法,当然百度就是一个很好的途径,应该学会自我学习,并且要多与人交流,因为有的问题可能自己思考了半天也不定会发现到底是哪出现了什么问题,但是当我们与他人交流的时候说不定就是别人之前遇到过这个问题,使得我们的问题能够更快的解决,闭门造车是不可取的。
总之手工创建数据库对于我们初次接触确实感觉挺难的,但是的确是很有意思的,所以要多学习一些相关的知识,在操作上要更加注意下细节,不要怕失败。