oralce
10g简介
oralce 10g
关系型数据库操作系统 RDBMS
grid
数据库集群
结构化的查询语言
SQL*PLUS
一个数据库管理员要做的工作:
- 数据库的硬件
- 数据库的软件
- 规划数据库
- 创建数据库
- 运行数据库
- 备份数据库
- 管理数据库用户
- 恢复数据库
- 监视数据库运行状态
oracle 10g在AIX 5.3系统中的安装
准备硬件环境
- 物理内存要求大于1GB
# lsattr -E -l sys0 -a realmem
- 物理内存为1GB-4GB,page
space大小为物理内存的1.5倍,物理内存大小为4-8GB,page
space大小等于物理内存
# lsps -a
- ML维护包版本要求高于2
# oslevel -r
准备文件系统
/u0
/u0/oralce
准备oracle的系统用户和用户组
安装用户组oinstall
数据库管理员用户组dba
用户oracle
基础环境变量
ORACLE_BASE oracle的base,一般为/u0/oracle
ORACLE_HOME
oracle的安装目录,一般为/u0/oracle/product/10.X.X/db
ORACLE_SID
oracle的实例名(instance
name),和数据库同名,一般起名为orcl(ZSFZ)
NLS_LANG
oracle的语言、字符集
可使用$ echo $ORACLE_XXX查看
准备安装目录
创建ORACLE_BASE目录/u0/oracle
修改目录属性
# chown
oracle oracle
# chgrp dba
oracle
使用xmanager远程操作
DISPLAY=远程维护IP:0.0
export DISPLAY
启动安装程序
$ sh runInstaller
准备数据库
默认安装的实例名选择
选择定制安装 $ dbca
数据库放置在文件系统中,oracle还支持Raw设备(裸设备)
修改oracle临时目录/tmp/.oracle属性
# cd /tmp
# chown oracle .oracle
# chgrp dba .oracle
或
# chmod 777 .oracle
创建数据库
数据库的结构

(图1 Database Architechture)
控制文件,包含数据库的物理文件信息,启动数据库实例所必需
表空间和数据文件,一个表空间可以包含多个数据文件,数据文件类似sybase的数据库设备
redo log日志文件,记录数据库的实时更改信息
Archive log日志文件,归档数据库日志
文件默认位置: $ORACLE_BASE/oradata/$ORACLE_SID
利用DBCA创建数据库
默认的数据文件位于/u0/oracle/product/10.X.X/db/orcl
orcl为数据库实例名
初始化参数的配置:内存参数
OEM oracle enterprise manager
启动EM
$ emctl start | status | stop
dbconsole
配置EM
$ emca
访问EM
默认的URL:
http://hostname:1158/em
监听
创建监听
$ netmgr
或使用EM的图形管理界面
修改监听文件
$ORACLE_HOME/network/admin/listener.ora
主要是监听名和端口号,默认为LISTENER和1521
监听的启动和停止
$ lsnrctl start | status | stop
LISTENERNAME
数据库连接
定义数据库连接文件
$ORACLE_HOME/network/admin/tnsnames.ora
主要是数据库实例名、数据库服务器IP、端口
测试数据库连接
$ tnsping TNSNAME
SQL*PLUS的应用(oracle文档B14200.pdf)
作用:
- 查询数据
- 插入、更新或删除表中的列
- 创建、替换、更改或删除项目
- 操纵数据库
启动sqlplus
$ sqlplus /nolog
oracle的用户
SQL> conn USERNAME/PASSWORD
或
SQL> conn / as sysdba
如果当前操作系统用户属于DBA组,可以以系统DBA身份登录
系统用户有sys和system
用户schema的概念:项目的集合。Collection of
database objects, including logical structures such as tables,
views,
sequences, stored procedures, synonyms,
indexes, clusters, and database links.A schema has the same name as
the user that
owns the schema.
数据库的启动就和关闭
SQL>
startup

(图2 startup database)
SQL> shutdown immediate

(图3 shutdown database option)
查看数据库项目属性
SQL> desc OBJECTNAME
查看数据库的读写模式
SQL> select open_mode from
v$database;
查看当前用户
SQL> show user
查看字典
SQL> desc dictionary
表空间的创建
SQL> create tablespace
TABLESPACENAME datafile
'PATH/DATAFILENAME' SIZE 10M;
表空间的扩展
SQL> alter tablespace TABLESPACENAME
add datafile 'PATH/DATAFILENAME' SIZE
10M;
查看表空间
SQL> select * from v$tablespace;
查看数据文件
SQL> select * from v$datafile;
查看数据文件名、表空间名、大小等
SQL> select * from dba_data_files;
查看空间剩余量
SQL> select * from dba_free_space;
删除表空间
SQL> drop tablespace TABLESPACENAME
including contents and datafiles;
创建表
SQL> create table
TABLENAME(ROW1 TYPE,ROW2
TYPE, ...);
向表中插入数据
SQL> insert into TABLENAME
values(ROWDATA1,ROWDATA2, ...);
查询表中的记录数
SQL> select count(*) from
TABLENAME;
创建表的索引
SQL> create index INDEXNAME on
TABLENAME(ROW1,ROW2, ...);
创建表的视图
SQL> create view VIEWNAME as select
(ROW1,ROW2, ...) from
TABLENAME;
查看当前所有的表
SQL> select * from tab;
删除表到回收站
SQL> drop table
TABLENAME;
彻底删除表
SQL> drop table TABLENAME
purge;
查询回收站
SQL> select * from
user_recyclebin;
清回收站中的表
SQL> purge table
TABLENAME;
清空回收站
SQL> purge recyclebin
查看用户列表
SQL> select * from dba_users;
创建用户
SQL> create user USERNAME identified
by USERPASSWORD
2 default tablespace
TABLESPACENAME
3 temporary tablespace
TEMPTABLESPACENAME;
授予用户权限
SQL> grant connect to
USERNAME;
SQL> grant resource to
USERNAME;
删除用户
SQL> drop user USERNAME
cascade;
查看用户schema
SQL> select * from user_objects;
解锁用户
SQL> alter user USERNAME account
unlock;
赋予用户目录的读写权限
SQL> grant read,write on directory
DIRECTORYNAME to USERNAME;
SQL*PLUS的一些技巧
设置屏幕缓冲行长
SQL> set linesize SIZE
写输出结果缓冲文件
SQL> spool FILENAME
SQL> spool off
显示时间
SQL> set time on
显示查询执行时间
SQL> set timing on
重复上一次操作
SQL> /
开编辑窗口
SQL> define _editor=vi
(UNIX)
或
SQL> define _editor=notepad
(WINDOWS)
编辑文件afiedt.buf
SQL> ed
SQL> r
清除屏幕缓冲内容
SQL> clear screen
SQL*LOADER的应用
文件1:test.ctl
load
data
infile
'test.txt'
append into
table TEST
field
terminated by ','
(rowa,rowb,rowc)
文件2:test.txt
100,aaaaa,111
200,bbbbb,222
数据库中存在表TEST,结构如下:
rowa
number
rowb
varchar2(20)
rowc
number
执行命令:
$ sqlldr
userid=USERNAME/PASSWORD
control=test.ctl
Oracle Database 10g 应用和管理入门 下篇