
关于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数据库添加一个数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)