ORACLE数据库结构的简介

ORACLE数据库结构的简介,第1张

关于ORACLE数据库结构的简介

ORACLE的数据库结构大家都了解吗如果不了解,下面我为大家整理了关于ORACLE数据库结构简介的文章,希望能为你提供帮助:

一、物理结构:

1、数据文件:ORACLE数据库包含若干数据文件,数据文件存储数据库数据,包括表、索引等等。数据文件的几个特点:

1)一个数据文件只允许分配给一个数据库

2)数据文件可设置为自动扩展

3)一个或多个数据文件构成表空间

在进行数据库 *** 作的时候,数据库先从内存寻找要 *** 作的数据,如果没有找到的话,再从数据文件取出数据放在内存中,然后才对内存中的数据进行相关的 *** 作。 *** 作完的数据并没有立即写到数据文件中(这样减少了磁盘的IO),而是放在内存中,然后由DBWn进程决定何时批量写入数据文件。

2、控制文件:每一个数据库都有一个或多个控制文件,控制文件包含了数据库的物理结构,包括:

1)数据库名

2)数据文件名及位置

3)重做日志文件名及位置

4)数据库的建立时间等等

一般一个数据库都有若干个控制文件镜像。数据库在打开的时候(ALTER

DATABASE OPEN),会读取控制文件中的信息来打开数据库。当数据库的物理结构发生变化的时候,比如增加一个数据文件、一组重做日志等等,控制文件都会自动地做相应的修改。在数据库物理结构发生变化后,最好重新备份一下控制文件,用于数据库恢复。

3、重做日志文件:重做日志中记录了数据的变化。一般一个数据库都会有两到三组重做日志文件。同一日志组的镜像最好分布于不同的磁盘上。

4、归档日志:当数据库启动归档的时候,重做日志会被自动归档到指定的位置。

5、初始化参数文件:包含了数据库启动时的配置信息

6、警告和跟踪日志文件

1)跟踪文件:每一个后台进程都有一个单独的'跟踪文件,比如当系统发现某一个进程有问题的时候,相关的信息就会写到相应的跟踪文件中。可以从数据库的跟踪文件来发现和调试数据库的错误。

2)警告文件,也叫警告日志。是一个特别的跟踪文件,它记录着数据库启动、运行中的相关信息,它是按时间顺序进行记录的。

7、备份文件

二、逻辑结构

1、表空间:相关逻辑对象的集合。在oracle10g中,在创建数据库的时候就自动创建了SYSTEM和SYSAUX表空间。

2、数据块:数据存储在数据块中,一个数据块的大小(DB_BLOCK_SIZE)由 *** 作系统块来决定。可以指定5种,分别为2K、4K、8K、16K、32K。

3、区:一系列连续的数据块组成区,区存储特定类型的数据,比如索引,表等等。

4、段:由一系列区组成段。

1)数据段:对于每一个非聚集表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。分区表中的每一个分区有一个数据段,分区中的数据存储在该段中。

2)索引段:每一个索引有一索引段,存储索引数据。分区索引中的每一分区有一个索引段。

3)回滚段:用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息,在数据库恢复时使用,回滚未提交的事务。系统回滚段用于处理系统事务,不建议用户使用系统回滚段来做其它 *** 作。

4)临时段:当一个SQL语句需要临时工作区时,由ORACLE建立临时段。当语句执行完毕,临时段的区退回给系统。

;

创建目录

mkdir d:\oracle\product\ \database

mkdir e:\oracle\admin\Ora g\bdump

mkdir e:\oracle\admin\Ora g\cdump

mkdir e:\oracle\admin\Ora g\create

mkdir e:\oracle\admin\Ora g\pfile

mkdir e:\oracle\admin\Ora g\udump

mkdir e:\oracle\flash_recovery_area

mkdir e:\oracle\oradata

mkdir e:\oracle\oradata\Ora g

生成windows服务 创建密码文件 在cmd命令下运行

set ORACLE_SID=dbca 绿色部分设置oracle 实例名为 为ora g

d:\oracle\product\ \DB_ \bin\oradim exe new sid ORA G startmode manual spfile d:\oracle\product\ \DB_ \bin\oradim exe edit sid ORA G startmode a spfile

创建一个实例名为dbca 并且有手动启动方式改为自动启动

d:\oracle\product\ \DB_ \bin\orapwd exe file=d:\oracle\product\ \db_ \PWDOra g ora password=sysPassword force=y

用oracle自带的orapwd 为sys用户创建一个默认的密码为sysPassword

执行创建数据库脚本

D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\CreateDB sql

D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\CreateDBFiles sql

D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\CreateDBCatalog sql

D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\postDBCreation sql

黑体部分就是创建数据库要调用的脚本

第一 CreateDB sql

connect SYS/change_on_install as SYSDBA 这是刚刚我们设置的密码以sysdba身份连接到数据库

connect SYS/change_on_install as SYSDBA 这是刚刚我们设置的密码以sysdba身份连接到数据库

set echo on

spool D:\oracle\ora \assistants\dbca\logs\CreateDB log 写日志

startup nomount pfile= D:\oracle\admin\dbca\scripts\init ora ; 调用参数文件 启动数据库到只装载实例阶段

CREATE DATABASE dbca

MAXINSTANCES

MAXLOGHISTORY

MAXLOGFILES

MAXLOGMEMBERS

MAXDATAFILES 控制文件记录的相关最大日志数 日志组 最大数据文件数等限制

DATAFILE D:\oracle\oradata\dbca\system dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL

DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE D:\oracle\oradata\dbca\temp dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED

UNDO TABLESPACE UNDOTBS DATAFILE D:\oracle\oradata\dbca\undotbs dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED 创建系统 临时 回滚 表空间ITPUB个人空间!dJ l {!i W r f

CHARACTER SET ZHS GBK

NATIONAL CHARACTER SET AL UTF 字符集

LOGFILE GROUP ( D:\oracle\oradata\dbca\redo log ) SIZE K

GROUP ( D:\oracle\oradata\dbca\redo log ) SIZE K

GROUP ( D:\oracle\oradata\dbca\redo log ) SIZE K; 创建日志文件租和成员

spool off

exit;

第二 CreateDBFiles sql

connect SYS/change_on_install as SYSDBA

set echo on

spool D:\oracle\ora \assistants\dbca\logs\CreateDBFiles log

CREATE TABLESPACE INDX LOGGING DATAFILE D:\oracle\oradata\dbca\indx dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE TABLESPACE TOOLS LOGGING DATAFILE D:\oracle\oradata\dbca\tools dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE TABLESPACE USERS LOGGING DATAFILE D:\oracle\oradata\dbca\users dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; 创建相关用户要用到的表空间

spool off

第三:CreateDBCatalog sql

创建system数据字典 存放到system表空间 相关表 视图等

connect SYS/change_on_install as SYSDBA

set echo on

spool D:\oracle\ora \assistants\dbca\logs\CreateDBCatalog log

@D:\oracle\ora \rdbms\admin\catalog sql;

@D:\oracle\ora \rdbms\admin\catexp sql;

@D:\oracle\ora \rdbms\admin\catblock sql;

@D:\oracle\ora \rdbms\admin\catproc sql;

@D:\oracle\ora \rdbms\admin\catoctk sql;

@D:\oracle\ora \rdbms\admin\owminst plb;

connect SYSTEM/manager

@D:\oracle\ora \sqlplus\admin\pupbld sql;

connect SYSTEM/manager

set echo on

spool D:\oracle\ora \assistants\dbca\logs\sqlPlusHelp log

@D:\oracle\ora \sqlplus\admin\help\hlpbld sql helpus sql;

spool off

spool off

exit;

第四: postDBCreation sql

connect SYS/change_on_install as SYSDBA

set echo on

spool D:\oracle\ora \assistants\dbca\logs\postDBCreation log

@D:\oracle\ora \rdbms\admin\utlrp sql; 编译相关视图 包对象等

shutdown ; 关闭数据库

connect SYS/change_on_install as SYSDBA

set echo on

spool D:\oracle\ora \assistants\dbca\logs\postDBCreation log

create spfile= D:\oracle\ora \database\spfiledbca ora FROM pfile= D:\oracle\admin\dbca\scripts\init ora ;

创建服务器参数文件代替文件初始化参数文件 方便有时在不重启数据库的情况下可以使参数生效

从上面可以看到spfile文件的存放位置

startup ; 启动数据库 创建数据库完成 从上面可以看出 创建数据库有以下 个步骤

Step : 创建相关trace目录文件夹

Step :创建实例 密码 启动方式

Step :创建初始化参数文件 init ora

Step : 连接到实例

Step : 启动实例到nomount状态

Step :创建数据库

Step :创建表空间

Step : 运行脚本创建数据字典

Step : 创建服务器参数文件(这步不是必须的 但oracle建议做这步) 好处会在以后的总结中列出

下面也贴出linux下脚本 和windows下几乎差不多

#!/bin/sh

mkdir /oradata/ora i

mkdir /oradata/ora i/controlfile

mkdir /oradata/ora i/redofile

mkdir /orasys/oracle/admin

mkdir /orasys/oracle/admin/ora i

mkdir /orasys/oracle/admin/ora i/bdump

mkdir /orasys/oracle/admin/ora i/cdump

mkdir /orasys/oracle/admin/ora i/create

mkdir /orasys/oracle/admin/ora i/udump

mkdir /orasys/oracle/admin/ora i/pfile

cp init ora /orasys/oracle/product/ /dbs/

export ORACLE_BASE=/orasys/oracle

export ORACLE_HOME=$ORACLE_BASE/product/

export ORACLE_SID=ora i

export ORA_NLS =$ORACLE_HOME/omon/nls/admin/data

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export LD_LIBRARY_PATH

export PATH=$PATH:$ORACLE_HOME/bin

echo Add this entry in the oratab: ora i:/orasys/oracle/product/ :Y

/orasys/oracle/product/ /bin/orapwd file=/orasys/oracle/product/ /dbs/orapwora i password=change_on_install

/orasys/oracle/product/ /bin/sqlplus /nolog @/home/oracle/create_script/CreateDB sql

/orasys/oracle/product/ /bin/sqlplus /nolog @/home/oracle/create_script/CreateDBFiles sql

/orasys/oracle/product/ /bin/sqlplus /nolog @/home/oracle/create_script/CreateDBCatalog sql

lishixinzhi/Article/program/Oracle/201311/17648

添加方法如下:

1、打开SQL,在身份验证中选择“windows身份验证”后,点击下方的"连接“按钮。连接后选择数据库-新建数据库,建立名为”test“的数据库。

2、在数据库下找到新建的”test“,点击”+“找到表--新建,在这个表里可以看到列名,数据类型和允许null值。

3、添加完表后,系统会出现添加表名的对话框,在输入表名称中输入表名后,点击”确定“按钮。

4、找到刚刚新建的表,右键点击找到“编辑”,就可以在里面编辑内容了。

5、添加好数据后,在”新建查询“出现的空白框中输入SQL语句即可。

redo日志的作用是叫做重做日志文件。

ONLINE Redo log重做日志(online redo log )。

Oracle数据库所在服务器执行shutdown abort等命令使得在服务器重新启动之后,Oracle数据库正常的启动实例。

Oracle会使用重做日志,把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来 。

在Oracle数据库中,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。

日志组不会自动增加,在一个写满之后,会自动去写下一个。

在下一个被写满之后会又从第一个开始写起。

Archive redo log归档日志(archive log)主要用于硬件级别的错误。

这就要使用归档日志文件,通过归档日志文件。

把数据库恢复到归档日志所在的时间点上,然后再通过在线重做日志文件把数据库恢复到当前的时间点上。

Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些 *** 作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。

如果数据库处于非归档模式,联机日志在切换时就会丢弃而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。

以上就是关于ORACLE数据库结构的简介全部的内容,包括:ORACLE数据库结构的简介、个人经验总结:Oracle10g手工创建数据库、怎样往 sqlserver数据库添加一个数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/10186356.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存