oracle数据库第05章_第1页
oracle数据库第05章_第2页
oracle数据库第05章_第3页
oracle数据库第05章_第4页
oracle数据库第05章_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,Oracle 10g数据库应用教程,授课教师: 职务:,第5章 数据库存储管理,课程描述 介绍Oracle数据库的存储单元和物理文件管理。 Oracle数据库的存储单元包括表空间、段、区间和数据块等。 Oracle 10g的一个新增特性自动存储管理(ASM)。,本章知识点,表空间管理 控制文件管理 重做日志管理 归档日志管理,5.1表空间管理,查看表空间信息 创建表空间 设置和修改表空间属性 删除表空间 段和数据块管理 撤销表空间,查看表空间信息,与表空间相关的视图,查看表空间信息,【例】查看视图V$TABLESPACE中表空间的内容和数量,代码及执行结果如下: SQL SELECT * F

2、ROM V$TABLESPACE; TS# NAMEINCBIGFLA ENC - - - - 0 SYSTEM YES NO YES 1 UNDOTBS1YES NO YES 2 SYSAUXYES NO YES 4 USERSYES NOYES 3 TEMPNONOYES 6 EXAMPLEYESNOYES 7 ORCLTBS01YES NO YES 8 ORCLTBS02YES NOYES 已选择8行。,查看表空间信息,【例】通过视图DBA_TABLESPACES查看所有表空间的信息,代码及执行结果如下: SQLSELECT TABLESPACE_NAME,CONTENTS, STATU

3、S FROM DBA_TABLESPACES; TABLESPACE_NAMECONTENTS STATUS - - SYSTEMPERMANENT ONLINE UNDOTBS1UNDO ONLINE SYSAUX PERMANENT ONLINE TEMPTEMPORARY ONLINE USERSPERMANENT ONLINE EXAMPLEPERMANENT ONLINE ORCLTBS01PERMANENT ONLINE ORCLTBS02PERMANENT ONLINE 已选择8行。,查看表空间信息,“表空间管理”页面,创建表空间,1本地管理表空间 【例】在CREATE TABL

4、ESPACE语句中使用EXTENT MANAGEMENT LOCAL子句,可以创建一个本地管理表空间,代码如下: SQL CREATE TABLESPACE OrclTBS01 DATAFILE C:oracleproduct10.2.0oradataorclOrclTBS01.dbf SIZE 50M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; 表空间已创建。,创建表空间,【例】在创建表空间OrclTBS02时,指定其最小区间为128KB,代码如下: SQL CREATE TABLESPACE OrclTBS02 DATAFILE C:oracleproduc

5、t10.2.0oradataorclOrclTBS02.dbf SIZE 30M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; 表空间已创建。,创建表空间,2大文件表空间 【例】在CREATE TABLESPACE语句中使用BIGFILE关键词可以创建大文件表空间,代码如下: SQL CREATE BIGFILE TABLESPACE bigtbs DATAFILE C:oracleproduct10.2.0oradataorclbigtbs.dbf SIZE 10G; 表空间已创建。,创建表空间,3临时表空间 【例】创建临时表空间tmptbs,代码如下

6、: SQL CREATE TEMPORARY TABLESPACE tmptbs TEMPFILE C:oracleproduct10.2.0oradataorcltmptbs.dbf SIZE 20M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M; 表空间已创建。,创建表空间,创建表空间页面,设置和修改表空间属性,1重命名表空间 【例】将表空间OrclTBS02修改为OrclTBS03,可以使用下面的语句: SQL ALTER TABLESPACE OrclTBS02 RENAME TO OrclTBS03; 表空间已更改。,设置和修改表空间属

7、性,2本地管理表空间 【例】在ALTER TABLESPACE语句中使用ADD DATAFILE子句,可以在本地管理表空间中增加数据文件,代码如下: SQL ALTER TABLESPACE OrclTBS01 ADD DATAFILE C:oracleproduct10.2.0oradataorclOrclTBS011.dbf SIZE 10M; 表空间已更改。,设置和修改表空间属性,3大文件表空间 【例】修改大文件表空间bigtbs的数据文件大小为4GB,代码如下: SQL ALTER TABLESPACE bigtbs RESIZE 4G; 表空间已更改。,设置和修改表空间属性,4临时表

8、空间 【例】在临时表空间tmptbs中添加临时文件,tmptbs01.dbf,文件大小为20MB,代码如下: SQL ALTER TABLESPACE tmptbs ADD TEMPFILE F:oracleproduct10.2.0oradataorcltmptbs01.dbf SIZE 20M; 表空间已更改。,设置和修改表空间属性,5设置联机和脱机 将数据库的一部分设置为不可访问,而其他部分可以访问。 执行脱机表空间备份。 在升级或维护应用程序时,将应用程序及其使用的表临时设置为不可访问。 重命名或重新分配表空间。,设置和修改表空间属性,ALTER TABLESPACEOFFLINE语句

9、设置表空间为脱机状态 【例】将表空间OrclTBS01设置为脱机状态: SQL ALTER TABLESPACE OrclTBS01 OFFLINE; DBA_TABLESPACES视图查看表空间的状态 SQLSELECT TABLESPACE_NAME,CONTENTS,STATUS FROM DBA_TABLESPACES; ALTER TABLESPACEONLINE语句设置表空间为联机状态。 【例】将表空间OrclTBS01设置为联机状态: SQL ALTER TABLESPACE OrclTBS01 ONLINE;,设置和修改表空间属性,6设置只读表空间 ALTER TABLESPA

10、CEREAD ONLY语句设置只读表空间 【例】将表空间OrclTBS01设置为只读表空间: SQL ALTER TABLESPACE OrclTBS01 READ ONLY; ALTER TABLESPACEREAD WRITE语句可以将只读表空间设置为可读写状态。 【例】将表空间OrclTBS01设置为可读写状态: SQL ALTER TABLESPACE OrclTBS01 READ WRITE;,设置和修改表空间属性,编辑表空间页面,删除表空间,DROP TABLESPACE语句删除表空间。 【例】删除表空间OrclTBS01: SQL DROP TABLESPACE OrclTBS0

11、1; 表空间已删除。 INCLUDING CONTENTS子句可以在删除表空间的同时删除其中的段,例如: SQL DROP TABLESPACE OrclTBS01 INCLUDING CONTENTS; INCLUDING CONTENTS AND DATAFILE子句可以在删除表空间的同时,删除包含的段和数据文件: SQL DROP TABLESPACE OrclTBS03 INCLUDING CONTENTS AND DATAFILES;,段和数据块管理,SEGMENT SPACE MANAGEMENT子句可定义段空间管理方式 【例】创建自动段管理方式的表空间MyTBS01: SQL C

12、REATE TABLESPACE OrclTBS01 DATAFILE C:oracleproduct10.2.0oradataorclOrclTBS01.dbf SIZE 30M EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO; 【例】创建手动段管理方式的表空间MyTBS01: SQL CREATE TABLESPACE OrclTBS01 DATAFILE C:oracleproduct10.2.0oradataorclOrclTBS01.dbf SIZE 30M EXTENT MANAGEMENT LO

13、CAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT MANUAL;,段和数据块管理,数据块是Oracle数据库的最小存储单元,在初始化参数DB_BLOCK_SIZE中定义了标准数据块的大小。 在创建表空间时,如果不特殊指定,将使用DB_BLOCK_SIZE中定义的数据作为数据块的大小。 【例】可以在CREATE TABLESPACE语句中使用BLOCKSIZE子句指定非标准数据块的大小: SQL CREATE TABLESPACE OrclTBS01 DATAFILE F:oracleproduct10.2.0oradataorclOrclTBS01.dbf S

14、IZE 30M EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K; 新创建的表空间数据块大小为8K。,撤销表空间,撤销记录可以用于完成如下功能: 当执行ROLLBACK命令时,完成回滚操作。 恢复数据库。 使用闪回查询分析以前时间点的数据。 使用闪回技术从逻辑破坏中恢复数据。 初始化参数UNDO_TABLESPACE设置默认的撤销表空间。 【例】使用CREATE UNDO TABLESPACE语句创建撤销表空间: SQL CREATE UNDO TABLESPACE undotbs01 DATAFILE C:oracleproduct10.2.

15、0oradataorclundotbs02.dbf SIZE 2M REUSE; 表空间已创建。,5.2控制文件管理,创建控制文件 恢复控制文件 删除控制文件 查看控制文件信息,创建控制文件,创建初始控制文件,创建控制文件,创建控制文件副本 (1)关闭数据库。 (2)将当前的控制文件复制到其他目录下。 (3)修改初始化参数CONTROL_FILES,增加新的控制文件或者修改原有的控制文件。 (4)重新启动数据库。,创建控制文件,创建新的控制文件 数据库的控制文件被永久破坏,而且没有对控制文件进行备份。 需要修改数据库名。 【例】使用CREATE CONTROLFILE语句创建控件: CREAT

16、E CONTROLFILE SET DATABASE db_name LOGFILE GROUP 1 (c:oracleproduct10.2.0oradata db_name redo01_01. log, c:oracleproduct10.2.0oradata db_name redo01 _02.log), RESETLOGS DATAFILEc:oracleproduct10.2.0oradata db_namesystem01.dbf SIZE 3M, c:oracleproduct10.2.0oradata db_namerbs01.dbs SIZE 5M, c:oraclepr

17、oduct10.2.0oradata db_nameusers01.dbs SIZE 5M, c:oracleproduct10.2.0oradata db_nametemp01.dbs SIZE 5M MAXLOGFILES 50 MAXLOGMEMBERS 3 MAXLOGHISTORY 400 MAXDATAFILES 200 MAXINSTANCES 6 ARCHIVELOG;,创建控制文件,创建新的控制文件 (1)获取数据库的数据文件和重做日志文件列表。 【例】从视图V$DATAFILE中获取数据文件的信息: SQL SELECT NAME FROM V$DATAFILE; NAME

18、 - F:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF F:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF F:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF F:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF F:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF 【例】从视图V$LOGFILE中获取日志文件的信息: SQL SELECT MEMBER FROM V$LOGFILE; MEMBER - F

19、:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG F:ORACLEPRODUCT10.2.0ORADATAORCLREDO02.LOG F:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG,创建控制文件,(2)关闭数据库。 (3)备份所有的数据文件和重做日志文件。 (4)使用STARTUP NOMOUNT启动数据库实例。 (5)使用CREATE CONTROLFILE语句创建控制文件。如果需要重命名数据库,则使用RESETLOGS子句,否则使用NORESETLOGS子句。 (6)将新的控制文件备份到其他不在线的存储介质中,如U盘

20、、移动硬盘或磁带等。 (7)根据实际情况修改CONTROL_FILE参数;如果修改了数据库名称,则还需要修改DB_NAME参数。 (8)如果需要的话,则恢复数据库。 (9)如果在第8步中进行了恢复数据库的操作,则需要执行ALTER DATABASE OPEN语句打开数据库。如果在创建控制文件时使用了RESETLOGS子句,则需要使用ALTER DATABASE OPEN RESETLOGS语句。,恢复控制文件,如果控制文件被破坏,但存储控制文件的目录仍然是可访问: 关闭数据库实例; 使用操作系统命令将控制文件副本复制到控制文件目录下; 使用STARTUP命令打开数据库实例。 如果存储介质被破坏

21、,导致存储控制文件的目录无法访问: 关闭数据库实例; 使用操作系统命令将控制文件副本复制到一个新的可以访问的目录下; 修改CONTROL_FILES参数,将无效的控制文件目录修改为新的目录; 使用STARTUP命令打开数据库实例。,删除控制文件,(1)关闭数据库。 (2)编辑CONTROL_FILES参数的值,删除指定的控制文件信息。 (3)重新启动数据库。,查看控制文件信息,与控制文件相关的视图,查看控制文件信息,【例】从视图V$DATABASE中查询数据库编号、数据库名称和日志模式等信息: SQL SELECT DBID, NAME, LOG_MODE FROM V$DATABASE; D

22、BID NAME LOG_MODE - - - 1140083184ORCLNOARCHIVELOG 【例】从视图V$CONTROLFILE_RECORD_SECTION中查询到控制文件的记录类型、记录大小、记录总数量、使用记录数量等信息: SQL SELECT TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED FROM V$CONTROLFILE_ RECORD_SECTION; TYPE RECORD_SIZE RECORDS_TOTALRECORDS_USED - - - DATABASE 316 11 CKPT PROGRESS 8180 110

23、REDO THREAD 256 81 REDO LOG 72 163 DATAFILE 4281005,5.3重做日志管理,重做日志的基本概念 查看重做日志信息 创建重做日志组和成员 重命名重做日志成员 删除重做日志组和成员 清空重做日志文件,重做日志的基本概念,LGWR写入重做日志的过程,重做日志的基本概念,重做日志的多元性,重做日志的基本概念,LGWR对重做日志文件无效的响应,查看重做日志信息,重做日志组管理页面,查看重做日志信息,查看重做日志组页面,查看重做日志信息,【例】查询视图V$LOG,显示控制文件中重做日志文件的信息: SQL SELECT GROUP#, ARCHIVED, S

24、TATUS FROM V$LOG; GROUP# ARC STATUS - - - 1 NO INACTIVE 2 NO CURRENT 3 NO INACTIVE 4 NO INACTIVE 10 NO INACTIVE 【例】查询视图V$LOGFILE,显示重做日志组及其成员的基本信息: SQL SELECT GROUP#,STATUS,MEMBER FROM V$LOGFILE; GROUP# STATUS MEMBER - - - 3 STALE F:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG 2 F:ORACLEPRODUCT10.2.0ORAD

25、ATAORCLREDO02.LOG 1 F:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG 4 STALE F:ORACLEPRODUCT10.2.0DB_2DATABASELOG1C.RDO 4 STALE F:ORACLEPRODUCT10.2.0DB_2DATABASELOG2C.RDO 2 F:ORACLEPRODUCT10.2.0DB_2DATABASELOG3A.ODO 已选择6行。,创建重做日志组和成员,创建重做日志组,创建重做日志组和成员,ALTER DATABASE语句创建重做日志组 【例】在ALTER DATABASE语句中使用ADD LO

26、GFILE子句也可以创建重做日志组: ALTER DATABASE ADD LOGFILE (log1c.rdo, log2c.rdo) SIZE 5000k; 【例】在使用ALTER DATABASE语句创建重做日志组时,可以使用GROUP子句定义组编号: ALTER DATABASE ADD LOGFILE GROUP 10 (log1a.rdo, log2a.rdo) SIZE 5000k;,创建重做日志组和成员,创建重做日志成员 【例】在ALTER DATABASE语句中使用ADD LOGFILE MEMBER关键字,可以向已存在的重做日志组中添加成员: ALTER DATABASE

27、ADD LOGFILE MEMBER log3a.odo TO GROUP 10;,重命名重做日志成员,用户必须拥有如下权限: ALTER DATABASE系统权限。 复制文件到指定位置的操作系统权限。 打开和备份数据库的权限。 (1)使用SHUTDOWN命令关闭数据库。 (2)将重做日志文件复制到新的位置。 (3)使用STARTUP MOUNT命令装载数据库。 (4)使用带RENAME FILE子句的ALTER DATABASE语句重命名数据库的重做日志文件,例如: ALTER DATABASE RENAME FILE /diska/logs/log1a.rdo, /diska/logs/l

28、og2a.rdo TO /diskc/logs/log1c.rdo, /diskc/logs/log2c.rdo; (5)使用ALTER DATABASE OPEN命令打开数据库。,删除重做日志组和成员,(1)删除重做日志组 DROP LOGFILE子句也可以删除指定的重做日志组。 【例】删除编号为10的重做日志组: SQL ALTER DATABASE DROP LOGFILE GROUP 10; 数据库已更改。,删除重做日志组和成员,(2)删除重做日志成员 DROP LOGFILE MEMBER子句也可以删除指定的重做日志组。 【例】删除重做日志组log1a.rdo: SQL ALTER DATABASE DROP LOGFILE MEMBER l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论