数据库存储管理文档格式.docx
《数据库存储管理文档格式.docx》由会员分享,可在线阅读,更多相关《数据库存储管理文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
所有用户表空间中的区间信息
DBA_FREE_SPACE
所有表空间中的空闲区间信息
USER_FREE_SPACE
所有用户表空间中的空闲区间信息
V$DATAFILE
所有数据文件信息
V$TEMPFILE
所有临时文件信息
DBA_DATA_FILES
显示所有属于表空间的数据文件信息
DBA_TEMP_FILES
显示所有属于临时表空间的临时文件信息
例题1:
查看表空间的内容和数量。
select*fromv$tablespace;
例题2:
查看表空间的内容和状态
selecttablespace_name,contents,statusfromdba_tablespaces;
通过EM查看
以sysdba登录到EM,打开“管理”页面,在数据库管理/存储中单击“表空间”,打开“表空间管理”页面
5.1.2创建表空间
(1)通过createtablespace创建
表空间内容不同,创建方法也不同
a.本地管理表空间
将表空间的所有区间信息以位图的方式记录,所有的表空间都可以被本地管理。
例题3:
创建本地管理表空间
Createtablespaceorcltbs01
datafile‘c:
\oracle\product\10.2.0\oradata\orcl\orcltbs01.dbf’size10M
extentmanagementlocalautoallocate;
参数
含义
值
datafile
指定表空间的数据文件;
具体物理文件
Size
指定数据文件的大小;
整数值+单位
Autoallocate
指定表空间由系统管理
最小区间为64KB
uniform
指定最小区间的大小;
(2)通过EM创建
例题4:
创建表空间orcltbs02,指定最小区间为128KB
Creataetablespaceorcltbs02
\oracle\product\10.2.0\oradata\orcl\orcltbs02.dbf’size30M
extentmanagementlocaluniformsize128K;
b.大文件表空间
大文件表空间由唯一的、非常巨大的数据文件组成;
只能包含一个数据文件。
例题5:
创建大文件表空间
Createbigfiletablespacebigtbs
\oracle\product\10.2.0\oradata\orcl\bigtbs.dbf’size10G;
size:
指定文件大小。
c.临时表空间
例题6:
创建临时表空间tmptbs
createtemporarytablespacetmptbs
tempfile‘c:
\oracle\product\10.2.0\oradata\orcl\temtbs.dbf’size20Mreuse
extentmanagementlocaluniformsize16M;
tempfile
指定临时文件
reuse
指定临时文件可以重用
注意:
创建临时表空间时,不允许使用autoallocate,表空间中区间的大小必须通过uniform手工指定
(2)通过EM管理表空间
5.1.3修改表空间属性
(1)重命名表空间
例题7:
将表空间orcltbs02更名为orcltbs03
Altertablespaceorcldbs02renametoorcltbs03;
(2)本地管理表空间
例题8:
给表空间增加数据文件
Altertablespaceorcltbs01
Adddatafile‘c:
\oracle\product\10.2.0\oradata\orcl\orcltbs011.dbf’size10M;
(3)大文件表空间
例题9:
修改大文件表空间的数据文件大小。
Altertablespacebigtbsresize4G;
(4)临时表空间
例题10:
向临时表空间中添加临时文件tmptbs01.dbf20M
Altertablespacetmptbs
Addtempfile‘c:
\oracle\product\10.2.0\oradata\orcl\temtbs01.dbf’size20M;
(5)设置联机和脱机
思考:
什么情况下可将表空间设置为脱机状态?
系统表空间、撤销表空间和临时表空间不能设置为脱机状态。
例题11:
将表空间orcltbs01设置为脱机状态
Altertablespaceorcltbs01offline;
Selecttablespace_name,contents,statusfromdba_tablespaces;
例题12:
将表空间orcltbs01设置为联机状态
Altertablespaceorcltbs01online;
(6)设置只读表空间
目的:
保护表空间中的数据文件不被修改
例题13:
设置表空间orcltbs01为只读表空间
Altertablespaceorcltbs01readonly;
例题14:
设置表空间orcltbs01为读写表空间
Altertablespaceorcltbs01readwrite;
5.1.4删除表空间
为节省空间,对不用的表空间应及时删除。
删除表空间时,可以选择同时删除其内容和数据文件。
例题15:
删除表空间orcltbs01.
Droptablespaceorcltbs01;
删除表空间的同时删除期中的段
Droptablespaceorcltbs01includingcontents;
删除表空间的同时删除包含的段和数据文件
Droptablespaceorcltbs01includingcontentsanddatafiles;
5.1.5段和数据块管理
表空间由段组成,在创建表空间时,可以指定段空间的管理方式。
段空间有2种管理方式:
自动和手动。
例题16:
创建表空间mytbs01,自动段管理方式
Createtablespacemytbs01
Datafile‘c:
\oracle\product\10.2.0\oradata\orcl\mytbs01.dbf’size30m
Extentmanagementlocalautoallocate
Segmentspacemanagementauto;
例题17:
创建手动段管理方式的表空间mytbs02
Createtablespacemytbs02
\oracle\product\10.2.0\oradata\orcl\mytbs02.dbf’size30m
Segmentspacemanagementmanual;
例题18:
创建表空间,指定块的大小
Createtablespacemytbs03
\oracle\product\10.2.0\oradata\orcl\mytbs03.dbf’size30m
Blocksize8K;
5.1.6撤销表空间
回滚或撤销对数据库的变化
Oracle使用完全自动的撤销表空间机制:
用户可以创建一个撤销表空间,服务器自动管理撤销表空间。
通过初始化参数undo_mnagement为anto激活自动撤销管理机制;
初始化参数duno_tablespace设置默认的撤销表空间.
例题19:
创建撤销表空间
Createundotablespaceundotbs01
\oracle\product\10.2.0\oradata\orcl\undotbs02.dbf’size2mreuse;
5.2控制文件管理
每个oracle数据库都有控制文件,用来记录数据库的物理结构。
控制文件包含如下信息:
●数据库名称
●相关数据文件和重做日志文件的名称和位置
●数据库创建的时间戳
●当前的日志序列号
●检查点信息
5.2.1创建控制文件
(1)创建初始控制文件
系统在创建数据库的同时会自动创建控制文件。
控制文件的名称在初始化参数control_files定义。
(2)创建控制文件副本
步骤:
●关闭数据库
●将控制文件复制到其他目录下
●修改初始化参数control_files,增加新的控制文件或者修改原有的控制文件
●重新启动数据库
(3)创建新的控制文件
什么情况下需要创建控制文件?
●数据库控制文件永久破坏,没有备份
●需要修改数据库名
例题20:
手动创建控制文件
Createcontrolfile
Setdataasedb_name
Logfilegroup1(‘c:
\oracle\product\10.2.0\oradata\db_name\redo01_01.log’,‘c:
\oracle\product\10.2.0\oradata\db_name\redo01_02.log’),
group2(‘c:
\oracle\product\10.2.0\oradata\db_name\redo02_01.log’,‘c:
\oracle\product\10.2.0\oradata\db_name\redo02_02.log’),
group3(‘c:
\oracle\product\10.2.0\oradata\db_name\redo03_01.log’,‘c:
\oracle\product\10.2.0\oradata\db_name\redo03_02.log’),
resetlogs
\oracle\product\10.2.0\oradata\db_name\system01.dbf’size3m,
‘c:
\oracle\product\10.2.0\oradata\db_name\rbs01.dbf’size5m,
\oracle\product\10.2.0\oradata\db_name\users01.dbf’size5m,
\oracle\product\10.2.0\oradata\db_name\temp01.dbf’size5m,
\oracle\product\10.2.0\oradata\db_name\temp02.dbf’size5m
Maxlogfiles50
Maxlogmembers3
Maxloghistory400
Maxdatafiles200
Maxinstrances6
Archivelog;
其中:
Setdatabasedb_name:
控制文件对应的数据库名
Logfile:
指定了日志文件名称和位置
Resetlogs:
指定了重置日志文件
Datafile:
指定了数据文件的名称位置和大小
步骤
a.获取数据库的数据文件和重做文件列表
例题21:
从视图v$datafile中获取数据文件信息
Selectnamefromv$datafile;
例题22:
从视图v$logfile中获取日志文件信息
Selectmemberfromv$logfile;
如果控制文件已坏,直接到保存路径下去看。
b.关闭数据库
c.备份所有数据文件和重做日志文件
d.使用startupnomount启动数据库实例
e.使用createcontrolfile创建控制文件,如果需要重命名数据库,使用resetlog子句,否则使用noresetlogs子句
f.将新的控制文件备份到其他不在线的存储介质中
g.根据实际情况修改control_file参数;
如果修改了数据库名称还需要修改db_name参数
h.如果需要,恢复数据库
5.2.2恢复控制文件
(1)如果控制文件被破坏,存储控制文件的目录仍然是可以访问的,则可以先关闭数据库实例,然后将控制文件复制到控制文件目录下。
最后,使用startup打开数据库实例。
(2)如果存储介质被破坏,控制文件目录无法访问,则先关闭数据库实例,然后将控制文件副本复制到一个新的目录下。
修改control_files参数,将无效的控制文件目录修改为新的目录。
最后,使用stratup打开数据库实例。
5.2.3删除控制文件
a.关闭数据库
b.编辑control_files删除指定控制文件信息
c.重启数据库
5.2.4查看控制文件信息
例题23:
查询数据库编号名称日志模式等信息
Selectdbid,name,log_modefromv$database;
例题24:
查询控制文件记录类型、记录大小、记录总量、使用记录数量等信息
Selecttype,record_size,records_total,records_usedfromv$controlfile_record_section;