Oracle管理文件(一)
Oracle的管理文件说白了就是Oracle自动来进行文件的管理,如此则不再需要认为得进行指定和对OS上的文件系统进行操作,只需要操作Oracle的对象即可。这样的做法可以提供比原始的管理更加有效的操作方式,不好的地方在于和我们以前的思维逻辑不太一致,可能会不太容易接受。先看一下关于Oracle管理文件的介绍。
一、Oracle管理文件
“Oracle管理文件”可以简化Oralce数据库的管理,不需要DBA直接管理Oracle数据库在操作系统上的文件。根据数据库对象而不是文件名来指定操作。
“Oracle管理文件”可以是:跟踪文件、审计文件、报警文件、核心文件等。
Oracle可以对“表空间”、“联机重做日志”、“控制文件”来创建相应的唯一的Oracle管理文件,并在不需要时删除。
二、Oracle管理文件的好处
1、使得数据库管理更加方便。
不需要构造文件名和存储要求,可相应命名,定义存储特征并分配存储池
2、减少由管理员指定错误文件而产生的破坏
管理文件创造的文件及文件名都是唯一的,不会在不同数据库使用同一文件,一个文件使用不同名称等
3、减少由废弃文件消耗引起的磁盘空间浪费
Oracle管理的文件不用时会自动删除,并防止了删除文件时可能出现的错误
4、简化测试和开发数据库的创建过程
决定有关文件结构和名称的时间减少,执行更少的文件管理任务
5、便携式第三方工具的开发更容易展开
不必将操作系统特定的文件名称放到SQL脚本中
三、Oracle管理文件的条件
Oracle管理文件可以单独存在,即可以以前的文件都是非Oracle管理,之后创建的为Oracle管理文件
初始化参数:
DB_CREATE_FILE_DEST:定义默认文件系统目录位置。以后创建时将默认创建在此。
可以在这个目录下创建:数据文件、临时文件、联机重做日志文件、控制文件。
例: DB_CREATE_FILE_DEST = '/u01/oradata/payroll'
DB_CREATE_ONLINE_LOG_DEST_n:联机重做日志文件和控制文件的默认目录位置。n表示多录备份的不同位置。
可以在这个目录下创建:联机重做日志文件、控制文件。
例: DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata/payroll'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata/payroll'
注意:上面指定的目录必须要事先存在,Oracle不会自己创建。另改参数可以使用ALTER SYSTEM、ALTER SESSION来设置。
当创建命令中没有指定文件,且上面两个参数有设定的时候,Oracle将会创建Oracle管理文件。
四、管理文件的创建
1、名称创建规则
数据文件: ora_%t_%u.dbf /u01/oradata/payroll/ora_tbs1_2ixfh90q.dbf
临时文件: ora_%t_%u.tmp /u01/oradata/payroll/ora_temp1_6dygh80r.tmp
日志文件: ora_%g_%u.log /u01/oradata/payroll/ora_1_wo94n2xi.log
控制文件: ora_%u.ctl /u01/oradata/payroll/ora_cmre7t30p.ctl
注:%t是表空间名称;%u是8位随机字符;%g是联机重做日志文件组号
2、在创建数据库时创建Oracle管理文件
创建数据库时可以包含以下子句来指定创建的文件名和地址:
CONTROL_FILES、LOGFILE、DATAFILE、UNDO TABLESPACE、TEMPORARY TABLESPACE
* 如果在创建语句中指定了文件名,则不创建Oracle管理文件
* 在创建过程中未指定文件名,且已经配置了初始化管理文件地址参数,则创建为Oracle管理文件
* 如果即没有文件名,也没有指定参数,那么有的在默认路径创建,有的报错
举例1:
DB_CREATE_FILE_DEST = '/u01/oradata/sample'
DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata/sample'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata/sample'
CREATE DATABASE sample;
* u01下生成SYSTEM表空间的文件,大小100M,自动扩展,无大小限制
* u02、u03下生成两个联机日志组,每组两个成员,每个组员100M
* 自动撤销有效则在u01下生成撤销表空间,大小10M
* u02、u03下生成两个控制文件,u02为主控制文件
五、创建Oracle管理文件
1、表空间的数据文件
CREATE TABLESPACE tablespace_name
CREATE UNDO TABLESPACE tablespace_name
ALTER TABLESPACE tablespace_name ADD DATAFILE
注1:只要不加文件地址和文件名,其他的命令参数都可以加入,不影响Oracle管理文件的创建
注2:要注意表空间名不代表数据文件名
2、临时表空间的临时文件
CREATE TEMPORARY TABLESPACE tablespace_name
ALTER TABLESPACE tablespace_name ADD TEMPFILE
3、控制文件
控制文件的创建地址顺序确定:
① 看命令中是否直接指定地址
② 看启动参数中是否有CONTROL_FILES参数
③ 看DB_CREATE_ONLINE_LOG_DEST_n
④ DB_CREATE_FILE_DEST
⑤ 以上都无时,在默认路径创建
注意RESETLOGS/NORESETLOGS子句的使用,下面是创建实例:
CREATE CONTROLFILE
DATABASE sample
LOGFILE GROUP 1 ('/u02/oradata/sample/ora_1_o220rtt9.log',
'/u03/oradata/sample/ora_1_vhs82jdm.log',) SIZE 100M,
GROUP 2 ('/u02/oradata/sample/ora_2_82jd6nd9.log',
'/u03/oradata/sample/ora_2_nmisk9wj.log',) SIZE 100M
NORESETLOGS
DATAFILE '/u01/oradata/sample/ora_system_xu34ymd7.dbf' SIZE 100M
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG;
4、联机重做日志
ALTER DATABASE ADD LOGDILE
ALTER DATABASE OPEN RESETLOGS