在数据库使用期间创建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
    评论
第一部分sql基础 9 基本查询语句 9 实验1:书写一个最简单的sql语句,查询一张表的所有行和所有列 9 实验2:查询一张表的所有行,但列的顺序我们自己决定 10 实验3:查询表的某些列,在列上使用表达式 10 实验4:使用sqlplus,进入sqlplus并进行简单的操作 11 实验5:查看当前用户的所有表和视图 13 实验6:关于null值的问题 15 实验7:在列上起一个别名 15 实验8:在显示的时候去掉重复的行 16 实验9:显示表的部分行和部分列,使用where子句过滤出想要的行 18 实验10:使用like查询近似的值 18 实验11:使用order by子句来进行排序操作 20 实验12:操作字符串的函数 22 实验13:操作数字的函数 25 实验14:操作日期的函数 25 实验15:操作数据为null的函数 31 实验16:分支的函数 32 实验17:分组统计函数 33 实验18:表的连接查询 36 实验19:sql99规则的表连接操作 40 实验20:子查询 41 DDL和DML语句 45 实验21:建立简单的表,并对表进行简单ddl操作 45 实验22:dml语句,插入删除和修改表的数据 49 实验23:事务的概念和事务的控制 52 实验24:在表上建立不同类型的约束 54 实验25:序列的概念和使用 58 实验26:建立和使用视图 60 实验27:查询结果的集合操作 63 实验28:高级分组rollup,cube操作 65 实验29:树结构的查询start with子句 66 实验30:高级dml操作 68 第二部分pl/sql基础 69 匿名块的编写 69 实验31:书写一个最简单的块,运行并查看结果 69 实验32:在块中操作变量 70 实验33:在块中操作表的数据 71 实验34:在块中的分支操作if语句 71 实验35:在块中使用循环,三种循环模式 72 实验36:在块中自定义数据类型,使用复合变量 73 实验37:在块中使用自定义游标 76 实验38:在块中处理错误exception 78 编写程序 80 实验39:触发器 80 实验40:编写函数 82 实验41:编写存储过程 83 实验42:编写包package 85 第三部分数据库的体系结构 88 实例的维护 88 实验43:数据库的最高帐号sys的操作系统认证模式 90 实验44:数据库的最高帐号sys的密码文件认证模式 92 实验45:数据库的两种初始化参数文件 92 实验46:启动数据库的三个台阶nomount,mount,open 95 实验47:停止数据库的四种模式 96 实验48:建立数据库 97 实验49:查找你想要的数据字典 99 控制文件 99 实验50:减少控制文件的个数 100 实验51:增加控制文件的个数 101 日志文件 104 实验52:日志文件管理和nologging的实现 107 数据文件 111 实验53:建立新的表空间 111 实验54:更改表空间的名称,更改数据文件的名称 113 表空间 116 实验55:建立临时表空间 117 实验56:大文件表空间和表空间的管理模式 118 数据库的逻辑结构 120 实验57:建立表,描述表的存储属性 121 实验58:数据库范围extent的管理 128 undo段的管理 134 实验59:数据库自动回退段的管理 135 实验60:数据库手工回退段的管理 136 实验61:通过回退段闪回历史数据 136 实验62:闪回数据的查询方法,以及历史交易 137 表—存储数据的最基本单元 138 实验63:rowid的使用 138 实验64:临时表和压缩数据表的使用 141 实验65:压缩存储数据 142 实验66:删除表中指定列操作 142 实验67:使用sqlldr加载外部的数据 143 实验68:使用utl_file包来将表的数据存储到外部文件 144 实验69:使用外部表 145 实验70:处理挂起的事务 146 索引 149 实验71:查看索引的内部信息 151 实验72:监控索引的使用状态 153 约束的管理 154 实验73:改变约束的状态 154 实验74:找到违反约束条件的行 155 Profile配置 156 实验75:管理密码的安全配置 156 实验76:限制会话的资源配置 157 权限管理 158 实验77:维护系统权限 158 实验78:维护对象权限 159 实验79:维护角色 160 实验80:审计 161 数据库字符集 162 实验81:配置国家语言支持 163 元数据 165 实验82:提取元数据dbms_metedata 165 第四部分数据库的网络配置 168 实验83:配置监听 168 实验84:客户端的网络配置 169 实验8

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值