使用OMF(Oracle Managed Files,Oracle管理的文件)的场景示例

1.创建和管理数据库使用多路复用redo日志

在这个场景中,DBA创建一个数据文件和redo日志文件位于不同目录的数据库。Redo日志和控制文件是多路复用的。数据库使用一个undo表空间,有一个缺省的临时表空间。下面的任务涉及到创建和维护数据库。


1)设置初始化参数

在创建数据库之前,DBA包含三个通用的文件创建缺省值在初始化参数中。自动undo管理模式(缺省值)也被指定。
DB_CREATE_FILE_DEST = ‘/u01/oradata’
DB_CREATE_ONLINE_LOG_DEST_1 = ‘/u02/oradata’
DB_CREATE_ONLINE_LOG_DEST_2 = ‘/u03/oradata’
UNDO_MANAGEMENT = AUTO

参数DB_CREATE_FILE_DEST为创建数据文件和临时文件设置的缺省的文件系统目录。

参数DB_CREATE_ONLINE_LOG_DEST_1和DB_CREATE_ONLINE_LOG_DEST_2参数设置创建redo日志文件和控制文件的缺省的文件系统目录。每个redo日志文件和控制文件是跨两个目录的多路复用。


2)创建数据库

当设置好初始化参数之后,使用语句创建数据库:
SQL> CREATE DATABASE sample
2> DEFAULT TEMPORARY TABLESPACE dflttmp;

因为没有指定DATAFILE子语句和设置了DB_CREATE_FILE_DEST初始化参数,SYSTEM表空间数据文件创建在缺省的文件系统目录/u01/oradata。文件名称由数据库唯一生成。文件初始大小是100MB,可以自动扩展到无限最大大小。文件是OMF。类似的SYSAUX表空间的数据文件也被创建。

因为没有指定LOGFILE子语句,两个redo日志组被创建。每个日志组有两个成员,一个成员位于位置DB_CREATE_ONLINE_LOG_DEST_1,另外一个成员位于位置DB_CREATE_ONLINE_LOG_DEST_2。文件名称由数据库唯一生成。日志文件的大小是100MB。日志文件成员是OMF。

类似地,因为CONTROL_FILES初始化参数没有设置,两个初始化参数 DB_CREATE_ONLINE_LOG_DEST_n被指定,两个控制文件被创建。位于DB_CREATE_ONLINE_LOG_DEST_1的控制文件是主控制文件,位于DB_CREATE_ONLINE_LOG_DEST_2的控制文件是多路复用拷贝。文件名称由数据库唯一生成。文件是OMF。假设存在服务器初始化文件,一个CONTROL_FILES初始化参数被生成。

自动undo管理模式被指定,但因为没有指定undo表空间,初始化参数DB_CREATE_FILE_DEST已设置,一个缺省的名称为UNDOTBS的undo表空间被创建在DB_CREATE_FILE_DEST指定的目录。数据文件是一个20MB,可以自动扩展的OMF。

最后,名称为dflttmp的缺省的临时表空间被指定。因为初始化参数DB_CREATE_FILE_DEST包含在初始化参数文件中,dflttmp的临时文件被创建在参数指定的目录中。临时文件是100M,可以自动扩展到无限最大大小的OMF。

最终结果的文件和产生的文件名,如下:

/u01
     /oradata
              /SAMPLE
                      /datafile
                                /o1_mf_system_cmr7t30p_.dbf
                                /o1_mf_sysaux_cmr7t88p_.dbf
                                /o1_mf_sys_undo_2ixfh90q_.dbf
                                /o1_mf_dflttmp_157se6ff_.tmp
/u02
    /oradata
            /SAMPLE
                   /onlinelog
                                /o1_mf_1_0orrm31z_.log
                                /o1_mf_2_2xyz16am_.log
                   /controlfile
                                /o1_mf_cmr7t30p_.ctl
/u03
    /oradata
            /SAMPLE
                   /onlinelog
                                /o1_mf_1_ixfvm8w9_.log
                                /o1_mf_2_q89tmp28_.log
                   /controlfile
                                /o1_mf_x1sr8t36_.ctl

当从常用的视图中查询时,内部生成的文件名称可以看到。例如:

SQL> SELECT NAME FROM V$DATAFILE;
NAME
----------------------------------------------------
/u01/oradata/SAMPLE/datafile/o1_mf_system_cmr7t30p_.dbf
/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_cmr7t88p_.dbf
/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_2ixfh90q_.dbf

3)管理控制文件

当数据库创建时创建控制文件,初始化参数CONTROL_FILES会增加到参数文件。如果需要,DBA可以使用CREATE CONTROLFILE语句重建控制文件或为数据库新建一个新的控制文件。

正确的OMF文件名称必须使用在DATAFILE和LOGFILE子语句中。语句ALTER DATABASE BACKUP CONTROLFILE TO TRACE产生一个包含正确文件名称的脚本。或者,从视图V$DATAFILE,V$TEMPFILE和V$LOGFILE中查询出文件名称。下面的示例重建数据库的控制文件:

CREATE CONTROLFILE REUSE
DATABASE sample
LOGFILE
  GROUP 1('/u02/oradata/SAMPLE/onlinelog/o1_mf_1_0orrm31z_.log',
            '/u03/oradata/SAMPLE/onlinelog/o1_mf_1_ixfvm8w9_.log'),
  GROUP 2('/u02/oradata/SAMPLE/onlinelog/o1_mf_2_2xyz16am_.log',
           '/u03/oradata/SAMPLE/onlinelog/o1_mf_2_q89tmp28_.log')
NORESETLOGS
DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_cmr7t30p_.dbf',
           '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_cmr7t88p_.dbf',
           '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_2ixfh90q_.dbf',
           '/u01/oradata/SAMPLE/datafile/o1_mf_dflttmp_157se6ff_.tmp'
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG;

语句创建的控制文件位于数据库创建时生成的初始化参数CONTROL_FILES指定的位置。REUSE子语句会覆盖任何存在的文件。


4)管理redo日志

DBA可以使用ALTER DATABASE ADD LOGFILE语句来创建一个新redo日志文件组。下面的语句增加一个日志文件,其中一个成员位于位置DB_CREATE_ONLINE_LOG_DEST_1,一个成员位于位置DB_CREATE_ONLINE_LOG_DEST_2。这些文件都是OMF。
SQL> ALTER DATABASE ADD LOGFILE;

日志文件成员通过指定完整的文件名称继续被增加或删除。

GROUP子语句可以用来删除一个日志组。在下面的示例中,与每个Oracle管理的日志文件成员关联的操作系统文件自动被删除。
SQL> ALTER DATABASE DROP LOGFILE GROUP 3;


5)管理表空间

在数据库sample中,将来创建表空间的所有数据文件的缺省存储位置是初始化参数DB_CREATE_FILE_DEST指定的位置(在这个场景中是/u01/oradata)。任何没有指定文件名称的数据文件,都会创建在DB_CREATE_FILE_DEST指定的文件系统中。

例如,下面的语句创建一个表空间存储在/u01/oradata,它的数据文件初始大小是100M,可以自动扩展到无限最大大小。数据文件是OMF。
SQL> CREATE TABLESPACE tbs_1;

当删除表空间时,表空间的OMF会自动被移除。下面的示例删除了表空间和所有用来存储这个表空间的OMF:
SQL> DROP TABLESPACE tbs_1;

一旦第一个数据文件满了,数据库不会自动创建新的数据文件。可以通过增加另外一个Oracle管理的数据文件到表空间来增加空间。下面的语句增加另外一个数据文件到DB_CREATE_FILE_DEST指定的位置:
SQL> ALTER TABLESPACE tbs_1 ADD DATAFILE;

缺省的文件系统可以通过更改初始化参数来更改。这不会改变任何已经存在的数据文件。它只影响将来的创建。可以使用以下语句来动态完成:
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST=‘/u04/oradata’;


6)归档日志信息

OMF的redo日志文件的归档跟不是Oracle管理的文件的没有什么不同。归档redo日志文件的文件系统位置可以使用LOG_ARCHIVE_DEST_n初始化参数指定。文件名称基于LOG_ARCHIVE_FORMAT参数或缺省值形成。归档日志不是OMF(没有定义FRA)


7)备份,还原和恢复

由于OMF与标准操作系统文件兼容,可以使用操作系统工具备份或还原OMF。备份,还原和恢复数据库的所有存在的方法也适用于OMF。


2.创建和管理数据库使用快速恢复区域

在这个场景中,DBA创建一个控制文件和redo日志文件是多路复用的数据库。归档日志和RMAN备份创建在快速恢复区域(FRA)。下面的任何涉及创建和维护数据库。

DBA包含三个通用的文件创建缺省值在初始化参数中。
DB_CREATE_FILE_DEST = ‘/u01/oradata’
DB_RECOVERY_FILE_DEST_SIZE = 10G
DB_RECOVERY_FILE_DEST = ‘/u02/oradata’
LOG_ARCHIVE_DEST_1 = ‘LOCATION = USE_DB_RECOVERY_FILE_DEST’

参数DB_CREATE_FILE_DEST为数据文件,临时文件,控制文件和redo日志创建设置缺省的文件系统目录。

参数DB_RECOVERY_FILE_DEST为控制文件,redo日志和RMAN备份设置缺省的文件系统目录。

参数LOG_ARCHIVE_DEST_1配置’LOCATION=USE_DB_RECOVERY_FILE_DEST’重定向归档日志到DB_RECOVERY_FILE_DEST位置。

参数DB_CREATE_FILE_DEST和DB_RECOVERY_FILE_DEST设置redo日志文件和控制文件创建的缺省的目录。每个redo日志和控制文件跨两个目录多路复用。

归档日志创建在DB_RECOVERY_FILE_DEST中,它们是OMF。

当不指定FORMAT选项时,RMAN的所有磁盘备份创建在DB_RECOVERY_FILE_DEST位置。备份是OMF


3.增加OMF到现有的数据库

在这个示例中假设现有的数据库不含有任何OMF,但DBA想使用OMF创建新的表空间,存放它们在目录/u03/oradata。

1) 设置初始化参数
为了允许自动创建数据文件,设置DB_CREATE_FILE_DEST初始化参数到创建数据文件的文件系统目录。如下进行动态设置:
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/u03/oradata’;

2) 创建表空间
一旦设置了DB_CREATE_FILE_DEST,DATAFILE子语句可以从CREATE TABLESPACE语句中省略。数据文件缺省创建在DB_CRETAE_FILE_DEST指定的位置。例如:
SQL> CREATE TABLESPACE tbs_2;

当删除表空间tbs_2后,它的数据文件也自动被删除。



来源:《Oracle Database Database Administrator’s Guide, 19c》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值