在数据库使用期间创建OMF(Oracle Managed Files,Oracle管理的文件)

在数据库使用期间,可以按照以下步骤使用OMF为表空间创建数据文件,为临时表空间创建临时文件,创建控制文件,创建redo日志文件和归档日志。


1.使用OMF为表空间创建数据文件

当某些条件满足时,下面的SQL语句可以使用OMF为表空间创建数据文件:CREATE TABLESPACE,CREATE UNDO TABLESPACE和ALTER TABLESPACE … ADD DATAFILE。

当创建永久表空间或undo表空间时,DATAFILE子语句是可选的。当包含DATAFILE子语句,文件名称是可选的。如果DATAFILE子语句或没有提供文件名称,那么应用下面的规则:
1)如果指定了DB_CREATE_FILE_DEST初始化参数,那么Oracle管理的数据文件将创建在参数指定的位置中。
2)如果没有指定DB_CREATE_FILE_DEST初始化参数,那么创建数据文件的语句会失败。

当使用ALTER TABLESPACE … ADD DATAFILE增加数据文件到表空间时,文件名称是可选的。如果没有指定文件名称,那么应用上面讨论的相同的规则。

缺省情况下,永久表空间的OMF是100M,是可以自动扩展到无限最大大小。然而,如果在DATAFILE子语句中通过SIZE值(同时不使用AUTOEXTEND子语句)覆写这些缺省值,那么数据文件是不自动扩展的。


1.1.使用OMF创建表空间示例

以下示例阐述了使用OMF创建表空间。

示例1:
示例设置数据文件创建的缺省位置到/u01/oradata,然后使用在那个位置中的一个数据文件创建一个名称为tbs_1的表空间。数据文件是100M,可以自动扩展到无限最大大小。
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/u01/oradata’;
SQL> CREATE TABLESPACE tbs_1;


示例2:
示例创建一个名称为tbs_2的表空间,它使用的数据文件位于/u01/oradata。数据文件的初始大小是400MB,因为指定了SIZE子语句,数据文件是不可自动扩展的。

以下的参数设置包含在初始化参数文件中:
DB_CREATE_FILE_DEST = ‘/u01/oradata’

在SQL提示符中执行以下语句:
SQL> CREATE TABLESPACE tbs_2 DATAFILE SIZE 400M;


示例3:
示例创建一个名称为tbs_3的表空间,它使用的可自动扩展的数据文件位于/u01/oradata。数据文件的初始大小是100MB,最大大小是800MB。

以下的参数设置包含在初始化参数文件中:
DB_CREATE_FILE_DEST = ‘/u01/oradata’

在SQL提示符中执行以下语句:
SQL> CREATE TABLESPACE tbs_3 DATAFILE AUTOEXTEND ON MAXSIZE 800M;


示例4:
示例设置数据文件创建的缺省位置到/u01/oradata,然后使用在那个目录下的两个数据文件创建一个名称为tbs_4的表空间。两个数据文件的初始大小是200M,因为指定了SIZE子语句,数据文件是不可自动扩展的。

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/u01/oradata’;
SQL> CREATE TABLESPACE tbs_4 DATAFILE SIZE 200M, SIZE 200M;


1.2.使用OMF创建undo表空间示例

以下示例阐述了使用OMF创建undo表空间。

示例使用目录/u01/oradata中的一个数据文件创建一个名称为undotbs_1的表空间。Undo表空间的数据文件是100MB,可以自动扩展到无限最大大小。

以下的参数设置包含在初始化参数文件中:
DB_CREATE_FILE_DEST = ‘/u01/oradata’

在SQL提示符中执行以下语句:
SQL> CREATE UNDO TABLESPACE undotbs_1;


1.3.使用OMF更改表空间示例

以下示例阐述了增加Oracle管理的可自动扩展的数据文件到表空间。

示例增加Oracle管理的可扩展数据文件到tbs_1表空间。数据文件初始大小是100MB,最大大小是800MB。

以下的参数设置包含在初始化参数文件中:
DB_CREATE_FILE_DEST = ‘/u01/oradata’

在SQL提示符中执行以下语句:
SQL> ALTER TABLESPACE tbs_1 ADD DATAFILE AUTOEXTEND ON MAXSIZE 800M;


2.使用OMF为临时表空间创建临时文件

当某些条件满足时,下面的SQL语句可以使用OMF为表空间创建临时文件:CREATE TEMPORARY TABLESPACE和ALTER TABLESPACE … ADD TEMPFILE。

当创建临时表空间时,TEMPFILE子语句是可选的。如果包含TEMPFILE子语句,那么文件名称是可选的。如果TEMPFILE子语句或没有提供文件名称,那么应用下面的规则:
1)如果指定了DB_CREATE_FILE_DEST初始化参数,那么Oracle管理的临时文件将创建在参数指定的位置中。
2)如果没有指定DB_CREATE_FILE_DEST初始化参数,那么创建临时文件的语句会失败。

当使用ALTER TABLESPACE … ADD TEMPFILE增加临时文件到表空间时,文件名称是可选的。如果没有指定文件名称,那么应用上面讨论的相同的规则。

当覆写OMF的缺省属性时,如果指定了SIZE值但不指定AUTOEXTEND子语句,那么数据文件是不会自动扩展的。

创建临时表空间示例:
示例设置数据文件创建的缺省位置到/u01/oradata,然后使用在那个目录下的一个临时文件创建一个名称为temptbs_1的表空间。临时文件的初始大小是100M,可自动扩展到无限最大大小。
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/u01/oradata’;
SQL> CREATE TEMPORARY TABLESPACE temptbs_1;

更改临时表空间示例:
示例设置数据文件创建的缺省位置到/u03/oradata,然后增加一个在缺省位置下的临时文件到名称为temptbs_1的表空间。临时文件的初始大小是100M,可自动扩展到无限最大大小。
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/u03/oradata’;
SQL> ALTER TABLESPACE TBS_1 ADD TEMPFILE;


3.使用OMF创建控制文件

当某些条件满足时, SQL语句CREATE CONTROLFILE可以使用OMF创建控制文件。

当执行CREATE CONTROLFILE语句时,控制文件被创建(或再使用,如果指定了REUSE)在初始化参数CONTROL_FILES指定的文件中。如果CONTROL_FILES参数没有指定,那么控制文件创建在缺省的控制文件目的地。

如果Oracle数据库创建了一个Oracle管理的控制文件和存在一个服务器参数文件,那么数据库在服务器参数文件中创建一个CONTROL_FILES初始化参数条目。如果不存在服务器参数文件,那么必须手动包含一个CONTROL_FILES初始化参数条目在文本初始化参数文件中。

创建控制文件时,如果数据库中的数据文件是OMF,那么数据库为文件生成的文件名称必须提供在语句的DATAFILE子语句中。

创建控制文件时,如果redo日志文件是OMF,那么NORESETLOGS或RESETLOGS关键字决定了可以在LOGFILE子语句中提供什么信息:
1)如果使用了NORESETLOGS,那么数据库为Oracle管理的redo日志文件生成的文件名称必须提供在LOGFILE子语句中。
2)如果使用了RESETLOGS,那么redo日志文件的名称可以像CREATE DATABASE语句一样提供。请参考“在数据库创建时指定控制文件”章节。


3.1.使用NORESETLOGS关键字创建控制文件示例:

以下CREATE CONTROLFILE语句通过在使用Oracle管理的数据文件和redo日志文件的数据库上执行ALTER DATABASE BACKUP CONTROLFILE TO TRACE语句生成。

CREATE CONTROLFILE
DATABASE sample
LOGFILE
  GROUP 1 ('/u01/oradata/SAMPLE/onlinelog/o1_mf_1_o220rtt9_.log',
           '/u02/oradata/SAMPLE/onlinelog/o1_mf_1_v2o0b2i3_.log')
           SIZE 100M,
  GROUP 2 ('/u01/oradata/SAMPLE/onlinelog/o1_mf_2_p22056iw_.log',
           '/u02/oradata/SAMPLE/onlinelog/o1_mf_2_p02rcyg3_.log')
            SIZE 100M
NORESETLOGS
DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_xu34ybm2_.dbf'
         SIZE 100M,
         '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_aawbmz51_.dbf'
         SIZE 100M,
         '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_apqbmz51_.dbf'
         SIZE 100M
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG;

3.2.使用RESETLOGS关键字创建控制文件示例:

以下示例的CREATE CONTROLFILE语句使用RESETLOGS选项。DB_CREATE_FILE_DEST, DB_RECOVERY_FILE_DEST,DB_CREATE_ONLINE_LOG_DEST_n中的某些组合必须设置

CREATE CONTROLFILE
DATABASE sample
RESETLOGS
DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_aawbmz51_.dbf',
         '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_axybmz51_.dbf',
         '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_azzbmz51_.dbf'
SIZE 100M
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG;

随后,必须执行ALTER DATABASE OPEN RESETLOGS语句来重建redo日志文件。如果之前的日志文件是OMF,那么它们不会被删除。


4.使用OMF创建redo日志文件

Redo日志文件在数据库创建时创建。它们也可以在执行ALTER DATABASE ADD LOGFILE 和ALTER DATABASE OPEN RESETLOGS时创建。

4.1.使用ALTER DATABASE ADD LOGFILE语句

使用语句ALTER DATABASE ADD LOGFILE可以在后来增加新组到当前的redo日志中。

如果使用OMF,ADD LOGFILE子语句中的文件名是可选的。如果没有提供文件名称,redo日志文件创建在缺省的日志文件目的地。

如果没有提供文件名称,同时也没有提供一个创建OMF需要的初始化参数,那么语句返回一个错误。

缺省的Oracle管理的日志文件是100MB。

可以通过指定完整的文件名称继续增加和删除redo日志文件成员。

增加新redo日志文件示例:
示例增加一个日志组,其中一个成员位于/u01/oradata,另外一个位于/u02/oradata。每个日志文件的大小是100MB。

以下的参数设置会包含在初始化文件中:
DB_CREATE_ONLINE_LOG_DEST_1 = ‘/u01/oradata’
DB_CREATE_ONLINE_LOG_DEST_2 = ‘/u02/oradata’

在SQL提示符中执行以下语句:
SQL> ALTER DATABASE ADD LOGFILE;


4.2.使用ALTER DATABASE OPEN RESETLOGS语句

如果之前创建控制文件时指定RESETLOGS和没有指定文件名称或指定不存在的文件名称,那么当执行ALTER DATABASE OPEN RESETLOGS语句时数据库创建redo日志文件。

当没有在控制文件中指定时,决定存储redo日志文件的目录的规则和前面“在数据库创建时指定redo日志文件”章节讨论的相同。


5.使用OMF创建归档日志

归档日志通过后台进程或SQL语句创建。

当符合以下条件时,归档日志创建在DB_RECOVERY_FILE_DEST位置:
1) ARC或LGWR后台进程归档在线redo日志
2) ALTER SYSTEM ARCHIVE LOG CURRENT语句执行时

例如,假设下面的参数设置包含在初始化参数文件中:
DB_RECOVERY_FILE_DEST_SIZE = 20G
DB_RECOVERY_FILE_DEST = ‘/u01/oradata’
LOG_ARCHIVE_DEST_1 = ‘LOCATION=USE_DB_RECOVERY_FILE_DEST



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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值