Oracle数据库创建与表空间维护.ppt
第4章 Oracle数据库创建与表空间维护,哈尔滨华德学院,任课教师:翟霞,第4章 Oracle数据库创建与表空间维护,4.1 创建Oracle 数据库4.2 管理表空间,必须完整地建立一个数据库的物理结构、逻辑结构、内存结构和进程结构,4.1 创建Oracle数据库,创建数据库的方法 手工使用命令 工具DBCA,创建数据库的先决条件安装需要的Oracle软件设置操作系统环境变量在磁盘建立目录结构获得相应的操作系统权限和Oracle的SYSDBA系统特权充足的磁盘存储空间,规划数据库的文件存储位置 考虑数据生存期、数据管理特性 分散存储:I/O争用、系统安全 文件的命名要合理、规范,1.创建Oracle数据库概述,创建数据库之前的准备工作规划数据库的表和索引,估计所需的空间大小规划数据库包含的底层操作系统文件的布局考虑用OMF特性管理重做日志文件、控制文件选择全局数据库名称设置初始化参数和初始化参数文件选择数据库字符集选择标准的数据库块尺寸 等,最佳灵活体系结构(OFA)是指Oracle软件和数据库文件及目录的命名约定和存储位置规则,它使用户可以很容易地找到与Oracle数据库相关的文件集合,2-1.OFA,OFA将整个数据库系统分为Oracle软件产品、数据库例程的进程日志文件、数据库物理文件三部分,并分别放在不同的目录下。,通过合理地规划目录结构,可以很方便地管理和维护Oracle数据库系统,ORACLE_BASE:Oracle数据库根目录ORACLE_BASE下有两个子目录。(1)ORACLE_HOME Oracle数据库软件所在目录,称为Oracle主目录(2)ORACLE_BASE/admin 数据库例程的进程日志文件所在目录。在该目录下为每个例程建立一个专用目录以管理它的进程日志文件,2-1.OFA,oradata:数据库物理文件所在目录 该目录可位于ORACLE_BASE下,也可以放到别的磁盘上,oracle_base/product/release_number-发行版本号,这个目录一般作为ORACLE_BASE/admin-内核进程跟踪文件目录/inst_name-每个例程有专门的对应目录,以例程名命名/adump/bdump/pfile/client_1-客户端第1次安装建立的客户端工具目录/bin-客户端工具的可执行程序目录/db_1-第1次安装Oracle建立的主目录,该目录一般作为ORACLE_HOME/bin-可执行程序目录/dbs-初始化参数、口令文件所在目录,Windows有database目录/NETWORK-监听进程等Oracle Net相关配置文件所在目录/RDBMS-RDBMS脚本文件所在目录/sqlplus-SQL*Plus工具所在目录,2-1.OFA,在oradata目录下,每个数据库有一个对应物理文件目录,2-1.OFA,oradata/orcl/-数据库orcl物理文件目录 SYSTEM01.DBF CONTROL01.CTL REDO01.LOG CEMERP/-数据库CEMERP物理文件目录 SYSTEM01.DBF CONTROL01.CTL REDO01.LOG,Oracle管理的文件(OMF)通过初始化参数,可以为特定类型的文件指定文件系统目录,并通过指定文件名规则,Oracle可以确保为其创建唯一的Oracle管理的文件,并在不需要的时候将该文件删除。,2-2.OMF,与OMF相关的初始化参数(1)DB_CREATE_FILE_DEST 设置所创建的数据文件、控制文件和联机日志的默认位置(2)DB_CREATE_ONLINE_LOG_DEST_n 设置所创建的联机日志和控制文件的默认位置(3)OMF使用例程名、进程号、表空间名、重做日志组号等格式字符串自动命名相关文件,通过如下两步创建Oracle管理的文件,2-2.OMF,(1)在初始化参数文件中设置DB_CREATE_FILE_DEST和DB_CREATE_ONLINE_ LOG_DEST_n参数,(2)在CREATE DATABASE命令中只给出文件名(不给出文件路径),Oracle会自动将其创建在指定的目录并自动管理该文件,3.使用DBCA创建数据库,Oracle数据库配置助手(简称DBCA),是一个图形用户界面(GUI)工具,它可与Oracle通用安装程序进行交互,也可以单独使用,它的主要作用是简化数据库的创建过程。,DBCA能完成的操作创建数据库配置数据库选项删除数据库数据库创建模板管理配置自动存储管理(ASM),DBCA为不同应用环境提供的模板一般用途事务处理定制数据库数据仓库,3.使用DBCA创建数据库,【开始】/【程序】/【Oracle-OraDb10g_home1】/【配置和移植工具】/【Database Configuration Assistant】,创建数据库过程中注意如下几个方面全局数据库名称不同数据库类型模板的参数比较选择“安装示例方案”查看ORACLE_BASE、ORACLE_HOME、DB_NAME和SID值选中“生成数据库创建脚本”,查看脚本代码tnsnames.ora文件内容变化控制面板中“服务”的变化在SQL*Plus中进行测试,在磁盘上建立相应的目录结构 设置操作系统环境变量,4.手工创建Oracle数据库,其他主要步骤如下:(1)决定例程标识符(Instance IDentifier,SID)(2)建立数据库管理员验证方法(3)创建初始化参数文件(4)在SQL*Plus中连接到例程(5)启动例程(6)发布CREATE DATABASE语句创建数据库(7)创建其他表空间(8)运行脚本来构建数据字典视图(9)运行脚本来安装其他的选项,数据库创建实例(RedHat 5企业版)04-第4章.txt(1)在磁盘建立相应的目录结构(2)设置操作系统环境变量(3)创建初始化参数文件(4)创建口令文件(5)启动例程创建数据库(6)建立数据字典和PL/SQL相关包(7)创建USERS表空间(8)Oracle Net配置(9)Linux环境中多数据库例程的自动启动与关闭,4.手工创建Oracle数据库,Windows环境下手工创建数据库(1)创建Oracle数据库服务例程的命令为oradim(2)一般情况下,应在创建口令文件之后、执行CREATE DATABASE命令之前运行oradim创建例程的服务。oradim-NEW-SID 数据库例程名-INTPWD 口令字-STARTMODE auto-PFILE 数据库参数文件名及路径,4.手工创建Oracle数据库,数据库创建失败后的处理 删除数据库主要是手工操作 参阅附录执行相应删除操作,表空间是Oracle数据库内部数据的逻辑组织结构,4.2 管理表空间,对应于磁盘上的一个或多个物理数据文件,表空间将用户视图、数据库的逻辑结构和物理结构有机结合起来,深入理解表空间的类型、管理方式、特性和状态,掌握表空间与数据文件之间的关系,合理为数据文件安排磁盘空间,对于设计与实现一个Oracle数据库应用系统是至关重要的,1.表空间管理概述,表空间的特性(1)一个数据库可以有多个表空间(2)一个表空间只能属于一个数据库(3)一个表空间至少要有一个数据文件(4)一个数据文件只能属于一个表空间(5)一个表空间的大小由其数据文件大小决定(6)除系统表空间外的表空间可以被联机或脱机(7)方案对象可以跨表空间的数据文件存储,但不能跨表空间存储(8)可以为用户指定默认数据表空间。但该用户的方案对象可以存储到不同表空间中。(9)可以指定用户在各表空间上的空间配额,1.表空间管理概述,表空间应用原则 遵循分散(Separate)存储原则,避免磁盘I/O冲突(1)在系统性能要求较高的应用环境中,创建表空间时使用裸设备存储数据文件(2)将表、索引分开存放在不同的表空间中(3)将访问频度高的表、索引分开存放在不同的表空间。(4)对于数据量特别大,并发访问频繁的表、索引应考虑单独存放在一个表空间中。进一步,考虑将表、索引进行分区存储到不同表空间中(5)将日志和数据放置在不同的磁盘上,1.表空间管理概述,表空间管理方法 Oracle 10g 采用本地管理,需要通过估算表、索引等方案对象的大小及数据块空间分配比例来估算表空间的大小,表占用空间大小=最大行长初始行数(1+PCTFREE/100)记录复合增长率 记录复合增长率指的是在系统的估计使用期内记录增长率的乘积,实际创建的表空间一般应比计算数要再大一点,2.表空间的创建与删除,建立数据库时,Oracle会自动建立系统表空间SYSTEM和SYSAUX临时表空间TEMP撤销表空间UNDOTBS1,一般情况下,建立表空间由特权用户或DBA完成,表空间分类按构成文件分大文件表空间:只能包含1个大文件小文件表空间:可包含多个数据文件按表空间用途分系统表空间、撤销表空间、临时表空间数据表空间、索引表空间等按数据特性:永久表空间、临时表空间、撤销表空间,2.表空间的创建与删除,CREATE SMALLFILE|BIGFILE PERMANENT|TEMPORARY|UNDO TABLESPACE tablespaceDATAFILE|TEMPFILE datafile_tempfile_spec,datafile_tempfile_spec.MINIMUM EXTENT integer K|M|BLOCKSIZE integer K|M|EXTENT MANAGEMENT LOCAL AUTOALLOCATE|UNIFORM SIZE integer K|M|SEGMENT SPACE MANAGEMENT MANUAL|AUTO|ONLINE|OFFLINE|LOGGING|NOLOGGING;,创建表空间命令语法,2.表空间的创建与删除,path_filename SIZE integer K|M REUSE AUTOEXTEND OFF|ON NEXT integer K|M MAXSIZE UNLIMITED|integer K|M,datafile_tempfile_spec语法,path_filename为包含路径的数据文件名。在路径中可用ORACLE_HOME和ORACLE_BASE这样的Oracle环境变量,一般选择NOLOGGING以免影响系统性能SEGMENT SPACE MANAGEMENT一般采用自动(AUTO)管理使用BLOCKSIZE可以定义使用非标准大小块的表空间,2.表空间的创建与删除,例4.1 建立名称为data_ts1的数据表空间,大小为50M,区间统一为128KB大小。EXA_04_01.SQL,例4.2 建立名称为temp_ts1的临时表空间,使用temp_ts1.dbf文件存放临时数据。EXA_04_02.SQL,例4.3 创建10号部门经理用户EMP_MGR10,指定该用户的数据表空间为data_ts1,临时表空间为temp_ts1。授权该用户可以查看SCOTT用户下雇员表中的记录。EXA_04_03.SQL,例4.4 创建和应用撤销表空间。EXA_04_04.SQL,例4.5 创建大文件表空间,并指定为SCOTT用户的默认数据表空间。EXA_04_05.SQL,3.表空间维护,CONN system/systempwdorclSET PAGESIZE 30COL tablespace_name FORMAT A12SELECT tablespace_name,block_size,segment_space_management,status,contents,allocation_type,bigfile FROM dba_tablespaces;,表空间信息查询,为表空间增加数据文件ALTER TABLESPACE tablespace ADD DATAFILE filespec autoextend_clause,filespec autoextend_clause;,3.表空间维护,改变数据文件大小ALTER DATABASE database DATAFILE filename,filename RESIZE integer K|M;,允许数据文件自动扩展ALTER DATABASE DATAFILE filespec AUTOEXTEND OFF|ON NEXT n K|M MAXSIZE UNLIMITED|n K|M;,表空间状态维护ALTER TABLESPACE tablespace ONLINE|OFFLINE NORMAL|TEMPORARY|FOR RECOVER|READ ONLY|WRITE;,3.表空间维护,删除表空间DROP TABLESPACE tablespace INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;,查看数据库中数据文件的分布情况COL file_name FORMAT A55SELECT file_id,file_name,tablespace_name FROM dba_data_files ORDER BY file_id;,3.表空间维护,重新部署数据文件(1)执行ALTER TABLESPACE tablespace OFFLINE命令将对应的表空间脱机(2)将数据文件复制到分离的目标盘位置(3)执行ALTER TABLESPACE tablespace RENAME source_disk_datafile TO dest_disk_ datafile重命名表空间数据文件,将其数据文件定义为新位置的文件(4)执行ALTER TABLESPACE tablespace ONLINE命令将对应的表空间联机,3.表空间维护,例4.6 调整数据表空间data_ts1的大小。EXA_04_06.SQL,例4.7 删除temp_ts1表空间。EXA_04_07.SQL,UNDO段也称为回退段,用于事务修改数据的恢复,4.回退段的创建与删除,默认的回退段是SYSTEM数据字典DBA_ROLLBACK_SEGS查询各回退段信息当系统工作于自动撤销管理模式时,用户不能创建自己的回退段修改初始化参数 UNDO_MANAGEMENT=MANUAL当回退段设置过小时将导致大量数据更新事务失败,创建回退段语法CREATE PUBLIC ROLLBACK SEGMENT rollback_segment TABLESPACE tablespaceSTORAGE storage;,回退段维护ALTER ROLLBACK SEGMENT rollback_segment OFFLINE|ONLINE;ALTER PUBLIC ROLLBACK SEGMENT rollback_segment STORAGE storage;,4.回退段的创建与删除,删除回退段DROP ROLLBACK SEGMENT rollback_segment;,例4.8 回退段创建与删除。EXA_04_08.SQL,