Oracle 基本知识及问题解决

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/naxin/article/details/87432
作者:黄林
1998年大学毕业。
参加工作后,先进行多路复用单片机的的硬件设计和相应软件开发,所用语言为8031和8051及8086,现在主要从事数据库的开发,包括INformIX,SQLSERVER和ORACLE等,所用语言Powerbuild,JAVA,VS.NET,设计工具包括Powerdesign,Rational Rose, ER-Win,所开发的项目基本都是省级和部级项目。
在三层开发中,对中间件Weblogic和Silverstream比较熟悉。
除了以上工作,在软件规范化管理方面对软件能力成熟度模型CMM3比较熟悉。
-----------------------------------------------------------------------------





概序

Oracle数据库作为一个大型的关系型数据库,它与其他关系型数据库相比,有许多个性的东西,下面作一个简单的说明,其中包括我们在日常运行和维护中可能用到的知识,希望对大家有所帮助

一、基本知识

1、表空间对于数据库是唯一性的,且要求每个数据库最少有一个表空间。

表空间可以分为系统表空间和非系统表空间、回滚段表空间;也可以分为用户表空间和非用户表空间,他们只是分类方式不同,其实实质差不多;

临时表空间:临时表空间并不包含真正的数据,恢复的方法是删除临时表空间并重建即可.。系统表空间:如果备份不可用,则只能采用重建数据库的方法 。

表空间的大小可以根据需要和设备的情况进行设置

表空间可以简单的理解为存放信息的空间,我们一般按如下顺序进行数据库系统的创建:创建表空间---》修改表空间---》创建回滚段---》创建用户和授权---》创建用户表---》创建表索引,用户只要按这个顺序就可以建立自己的数据库系统了,至于创建的数据库是否有最佳的性能,我会在以后的文章中做专门的讨论。表空间的建立可以用图形用户界面的方式很方便的建立,相信大家都会,在这里我不进行详细的介绍,下面我把建表空间、修改表空间、建回滚段、创建用户和授权、创建表、创建索引的SQL附后,请参考:

2、控制文件在每个数据库中必不可少,为了使数据库的性能提高建议多建几个控制文件,求要求放在不同的磁盘上。 ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,数据库管理员可能会考虑移动数据库文件。下面以UNIX平台为例,分别讨论三种数据库文件的移动方法

不能被忽视的数据库日志文件

请注意日志文件在恢复数据库时非常重要

日志可分为在线日志和离线日志,在线日志能记录每一个Oracle数据库中所作的全部修改。一个在线日志由多个在线日志文件组成,每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。离线日志是可选择的·当ORACLE填满了在线日志文件后,就要进行归档了。

二、创建表空间、回滚段、用户、表的语法

1、创建表空间(这是在建数据库时的第一步要做的工作,表空间好比容器,将数据库的各种东西包含在里面)

CREATE TABLESPACE test DATAFILE '/dev/test_name1' SIZE 1000M, '/dev/test_name2' SIZE 1000M , '/dev/test_name3' SIZE 1000M
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MAXEXTENTS UNLIMITED PCTINCREASE 50 );

注意:这里没有对表空间的扩展进行限制。

2、修改表空间

alter TABLESPACE ts_name1 add DATAFILE '/dev/name4' SIZE 1000M;

3、回滚段

CREATE ROLLBACK SEGMENT "RStest" TABLESPACE "Test_name"
STORAGE ( INITIAL 16M NEXT 16M MAXEXTENTS UNLIMITED);

注意不要建不同的大小的回滚段,因为ORACLE不会自己挑选和需要最相符的回滚段

4、创建用户和授权

CREATE USER test_user IDENTIFIED BY test_user
DEFAULT TABLESPACE Test_name1 TEMPORARY TABLESPACE Test_name2;
GRANT CONNECT TO test_user;
GRANT DBA TO test_user;
GRANT resource TO test_user;

5、创建表

create table test_name1
(
a NUMBER(10) not null,
b NUMBER(10) null ,
c NUMBER(3) defalut 0,
d number(3) not null ,
constraint PK_ test_user primary key (a)
using index
tablespace test_name1
storage
(
initial 1m
next 1m
pctincrease 0
)
)
pctfree 10
tablespace test_name1
storage
(
initial 1m
next 1m
pctincrease 0
)
partition by range(d)
(partition part000 values less than (1) tablespace test_name1,
partition part001 values less than (2) tablespace test_name1,
)
/

6、创建索引

create index id_tablename1 on test_name1 (f2)
tablespace ts_name
storage
(
initial 500k
next 500k
pctincrease 0
)

/

三、查询表空间

select substr(a.TABLESPACE_NAME,1,10) TablespaceName,

sum(a.bytes/1024/1024) totle_size,

sum(nvl(b.free_space1/1024/1024,0)) free_space,

sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)) used_space,

round((sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)))*100/sum(a.bytes/1024/1024),2) used_percent

from dba_data_files a,

(select sum(nvl(bytes,0)) free_space1,file_id

from dba_free_space

group by file_id) b

where a.file_id = b.file_id(+)

group by a.TABLESPACE_NAME
展开阅读全文

Oracle入门基本知识一点通

10-13

  rnOracle入门基本知识一点通rnOracle 基本知识轻松学:rn    1.一个表空间只能属于一个数据库。rn  rn    2.每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)。rn  rn    3.每个数据库最少有一个表空间(SYSTEM表空间)。rn  rn    4.建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典。rn  rn    5.每个数据库最少有两个联机日志组,每组最少一个联机日志文件。rn  rn    6.一个数据文件只能属于一个表空间。rn  rn    7.一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中。rn  rn    8.建立新的表空间需要建立新的数据文件。rn  rn    9.数据文件被ORACLE格式化为ORACLE块,Oracle9i以前版本中,ORACLE块的大小是在第一次创建数据库时设定的。rn  rn    10.并且以后不能改变,要想改变,只能重建数据库。rn  rn    11.一个段segment只能属于一个表空间,但可以属于多个数据文件。rn  rn  12.一个区extent只能属于一个数据文件,即区间(extent)不能跨越数据文件。rn  rn    13.PCTFREE和PCTUSED总和不能大于等于100。rn  rn    14.单独一个事务不能跨越多个回滚段。rn  rn    15.索引表不含ROWID值。rn  rn    16.拥有不同大小的回滚段没有任何益处。rn  rn    17.COMMIT后,数据不一定立即写盘(数据文件)。rn  rn    18.一个事务即使不被提交,也会被写入到重做日志中。rn  rn    19.Oracle 8.0.4中,在初始安装时建立的缺省数据库,实例名为ORCL 。rn  rn    20.一个块的最大长度为16KB(有2K、4K、8K、16K)。rn    每个数据库最大文件数(按块大小)rn    2K块        20000个文件rn    4K块        40000个文件rn    8K块或以上     65536个文件rn  rn  rn    21.oracle server可以同时启动多个数据库 。rn  rn    22.一套操作系统上可以安装多个版本的ORACLE数据库系统(UNIX可以,NT不可以)。rn  rn    23.一套ORACLE数据库系统中可以有多个ORACLE数据库及其相对应的实例 。rn  rn    24.每个ORACLE数据库拥有一个数据库实例(INSTANCE)(OPS除外)。rn  rn    25.所以,一套操作系统上同时可以有多个oracle数据库实例启动 论坛

没有更多推荐了,返回首页