1、数据库存储管理第五章数据库存储管理内容简介:(1)逻辑单元的管理:表空间、段、区间和数据块等;(2)物理文件管理:控制文件、数据文件、临时文件、重做日志文件和归档文件等;(3)自动存储管理 5.1表空间的管理提问:1) 表空间的概念 2)表空间的组成5.1.1查看表空间信息有两种方法(1) 通过oracle视图查看信息段 类 型说 明V$TABLESPACE控制文件中保存的所有表空间的名称和数量DBA_TABLESPACES所有表空间的描述信息USER_TABLESPACES所有用户可访问表空间的描述信息DBA_TABLESPACE_GROUPS所有表空间组及其所属的表空间信息DBA_SEGM
2、ENTS所有表空间中的区间信息USER_SEGMENTS所有用户表空间中的区间信息DBA_FREE_SPACE所有表空间中的空闲区间信息USER_FREE_SPACE所有用户表空间中的空闲区间信息V$DATAFILE所有数据文件信息V$TEMPFILE所有临时文件信息DBA_DATA_FILES显示所有属于表空间的数据文件信息DBA_TEMP_FILES显示所有属于临时表空间的临时文件信息例题1:查看表空间的内容和数量。select * from v$tablespace;例题2:查看表空间的内容和状态select tablespace_name,contents,status from db
3、a_tablespaces;通过EM查看以sysdba登录到EM,打开“管理”页面,在数据库管理/存储中单击“表空间”,打开“表空间管理”页面5.1.2创建表空间(1)通过create tablespace创建表空间内容不同,创建方法也不同a.本地管理表空间将表空间的所有区间信息以位图的方式记录,所有的表空间都可以被本地管理。例题3:创建本地管理表空间Create tablespace orcltbs01 datafile c:oracleproduct10.2.0oradataorclorcltbs01.dbf size 10M extent management local autoall
4、ocate;参数含义值datafile指定表空间的数据文件;具体物理文件Size指定数据文件的大小;整数值+单位Autoallocate指定表空间由系统管理最小区间为64KBuniform指定最小区间的大小; (2)通过EM创建例题4:创建表空间orcltbs02,指定最小区间为128KBCreatae tablespace orcltbs02datafile c:oracleproduct10.2.0oradataorclorcltbs02.dbf size 30M extent management local uniform size 128K;b.大文件表空间大文件表空间由唯一的、非常
5、巨大的数据文件组成;只能包含一个数据文件。例题5:创建大文件表空间Create bigfile tablespace bigtbsdatafile c:oracleproduct10.2.0oradataorclbigtbs.dbf size 10G;size:指定文件大小。c.临时表空间例题6:创建临时表空间tmptbscreate temporary tablespace tmptbstempfile c:oracleproduct10.2.0oradataorcltemtbs.dbf size 20M reuseextent management local uniform size 1
6、6M;tempfile指定临时文件具体物理文件reuse指定临时文件可以重用注意:创建临时表空间时,不允许使用autoallocate,表空间中区间的大小必须通过uniform手工指定(2)通过EM管理表空间5.1.3修改表空间属性(1)重命名表空间例题7:将表空间orcltbs02更名为orcltbs03Alter tablespace orcldbs02 rename to orcltbs03;(2)本地管理表空间例题8:给表空间增加数据文件Alter tablespace orcltbs01Add datafile c:oracleproduct10.2.0oradataorclorcl
7、tbs011.dbf size 10M;(3)大文件表空间例题9:修改大文件表空间的数据文件大小。Alter tablespace bigtbs resize 4G;(4)临时表空间例题10:向临时表空间中添加临时文件tmptbs01.dbf 20MAlter tablespace tmptbsAdd tempfile c:oracleproduct10.2.0oradataorcltemtbs01.dbf size 20M ;(5)设置联机和脱机思考:什么情况下可将表空间设置为脱机状态?注意:系统表空间、撤销表空间和临时表空间不能设置为脱机状态。例题11:将表空间orcltbs01设置为脱机
8、状态Alter tablespace orcltbs01 offline;Select tablespace_name,contents,status from dba_tablespaces;例题12:将表空间orcltbs01设置为联机状态Alter tablespace orcltbs01 online;(6)设置只读表空间目的:保护表空间中的数据文件不被修改例题13:设置表空间orcltbs01为只读表空间Alter tablespace orcltbs01 read only;例题14:设置表空间orcltbs01为读写表空间Alter tablespace orcltbs01 re
9、ad write;5.1.4删除表空间为节省空间,对不用的表空间应及时删除。删除表空间时,可以选择同时删除其内容和数据文件。例题15:删除表空间orcltbs01.Drop tablespace orcltbs01;删除表空间的同时删除期中的段Drop tablespace orcltbs01 including contents;删除表空间的同时删除包含的段和数据文件Drop tablespace orcltbs01 including contents and datafiles;5.1.5段和数据块管理表空间由段组成,在创建表空间时,可以指定段空间的管理方式。段空间有2种管理方式:自动和
10、手动。例题16:创建表空间mytbs01,自动段管理方式Create tablespace mytbs01Datafile c:oracleproduct10.2.0oradataorclmytbs01.dbf size 30mExtent management local autoallocateSegment space management auto;例题17:创建手动段管理方式的表空间mytbs02Create tablespace mytbs02Datafile c:oracleproduct10.2.0oradataorclmytbs02.dbf size 30mExtent ma
11、nagement local autoallocateSegment space management manual;例题18:创建表空间,指定块的大小Create tablespace mytbs03Datafile c:oracleproduct10.2.0oradataorclmytbs03.dbf size 30mExtent management local autoallocateBlocksize 8K;5.1.6撤销表空间回滚或撤销对数据库的变化Oracle使用完全自动的撤销表空间机制:用户可以创建一个撤销表空间,服务器自动管理撤销表空间。通过初始化参数undo_mnageme
12、nt 为anto激活自动撤销管理机制;初始化参数duno_tablespace设置默认的撤销表空间.例题19:创建撤销表空间Create undo tablespace undotbs01Datafile c:oracleproduct10.2.0oradataorclundotbs02.dbf size 2m reuse;5.2控制文件管理每个oracle数据库都有控制文件,用来记录数据库的物理结构。控制文件包含如下信息: 数据库名称 相关数据文件和重做日志文件的名称和位置 数据库创建的时间戳 当前的日志序列号 检查点信息5.2.1创建控制文件(1)创建初始控制文件系统在创建数据库的同时会自
13、动创建控制文件。控制文件的名称在初始化参数control_files定义。(2)创建控制文件副本步骤: 关闭数据库 将控制文件复制到其他目录下 修改初始化参数control_files,增加新的控制文件或者修改原有的控制文件 重新启动数据库(3)创建新的控制文件思考:什么情况下需要创建控制文件? 数据库控制文件永久破坏,没有备份 需要修改数据库名例题20:手动创建控制文件Create controlfileSet dataase db_nameLogfile group 1(c:oracleproduct10.2.0oradatadb_nameredo01_01.log, c:oraclepr
14、oduct10.2.0oradatadb_nameredo01_02.log),group 2(c:oracleproduct10.2.0oradatadb_nameredo02_01.log, c:oracleproduct10.2.0oradatadb_nameredo02_02.log),group 3(c:oracleproduct10.2.0oradatadb_nameredo03_01.log, c:oracleproduct10.2.0oradatadb_nameredo03_02.log),resetlogsdatafile c:oracleproduct10.2.0orada
15、tadb_namesystem01.dbf size 3m,c:oracleproduct10.2.0oradatadb_namerbs01.dbf size 5m,c:oracleproduct10.2.0oradatadb_nameusers01.dbf size 5m,c:oracleproduct10.2.0oradatadb_nametemp01.dbf size 5m,c:oracleproduct10.2.0oradatadb_nametemp02.dbf size 5mMaxlogfiles 50Maxlogmembers 3Maxloghistory 400Maxdatafi
16、les 200Maxinstrances 6Archivelog;其中:Set database db_name:控制文件对应的数据库名Logfile:指定了日志文件名称和位置Resetlogs:指定了重置日志文件Datafile:指定了数据文件的名称位置和大小步骤a.获取数据库的数据文件和重做文件列表例题21:从视图v$datafile中获取数据文件信息Select name from v$datafile;例题22:从视图v$logfile中获取日志文件信息Select member from v$logfile;如果控制文件已坏,直接到保存路径下去看。b.关闭数据库c.备份所有数据文件和
17、重做日志文件d.使用startup nomount 启动数据库实例e.使用create controlfile创建控制文件,如果需要重命名数据库,使用resetlog子句,否则使用noresetlogs子句f.将新的控制文件备份到其他不在线的存储介质中g.根据实际情况修改control_file参数;如果修改了数据库名称还需要修改db_name参数h.如果需要,恢复数据库5.2.2恢复控制文件(1)如果控制文件被破坏,存储控制文件的目录仍然是可以访问的,则可以先关闭数据库实例,然后将控制文件复制到控制文件目录下。最后,使用startup打开数据库实例。(2)如果存储介质被破坏,控制文件目录无法
18、访问,则先关闭数据库实例,然后将控制文件副本复制到一个新的目录下。修改control_files参数,将无效的控制文件目录修改为新的目录。最后,使用stratup打开数据库实例。5.2.3删除控制文件a.关闭数据库b.编辑control_files删除指定控制文件信息c.重启数据库5.2.4查看控制文件信息例题23:查询数据库编号名称日志模式等信息Select dbid,name,log_mode from v$database;例题24:查询控制文件记录类型、记录大小、记录总量、使用记录数量等信息Select type,record_size,records_total,records_used from v$controlfile_record_section;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1