今天有朋友在MSN上问到这样一个问题:
首先通过backup controlfile to trace,从trace文件中是可以获得的:
但是更容易的方式是通过查询Oracle的一个视图:V$CONTROLFILE_RECORD_SECTION
但是这个朋友马上又提出了另外一个问题:
我问他看的是什么文档,他说看的是Oracle901的文档,文档号是Part No. A90190-02,我比较好奇,查了一下那个文档,确实是这样写的,而这种写法显然是有问题的
Oracle9iR2的文档是这样的:
这个解释才是正确的,db_files参数的最小值应该是最大的数据文件的绝对文件号。
如何查看我当初create database 时所指定的maxdatafiles?
用backup controlfile to trace行不行?
首先通过backup controlfile to trace,从trace文件中是可以获得的:
SQL> alter database backup controlfile to trace;
Database altered.
SQL> @gettrcname
TRACE_FILE_NAME
------------------------------------------------------------------------------------------------
/opt/oracle/admin/eygle/udump/eygle_ora_24728.trc
SQL> ! grep maxdatafile /opt/oracle/admin/eygle/udump/eygle_ora_24728.trc
SQL>
SQL> ! grep MAXDATAFILES /opt/oracle/admin/eygle/udump/eygle_ora_24728.trc
MAXDATAFILES 100
MAXDATAFILES 100
但是更容易的方式是通过查询Oracle的一个视图:V$CONTROLFILE_RECORD_SECTION
SQL> select * from V$CONTROLFILE_RECORD_SECTION
2 where TYPE='DATAFILE';
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
---------- ----------- ------------- ------------ ----------- ---------- ----------
DATAFILE 180 100 4 0 0 0
但是这个朋友马上又提出了另外一个问题:
v$controlfile_record_section.records_total=100
但我db_files=200,下面是对db_files取值范围的说明:
Range of values
Minimum: the current actual number of datafiles in the database
Maximum: the value that was specified in the MAXDATAFILES clause the last time CREATE DATABASE or CREATE CONTROLFILE was executed
我问他看的是什么文档,他说看的是Oracle901的文档,文档号是Part No. A90190-02,我比较好奇,查了一下那个文档,确实是这样写的,而这种写法显然是有问题的
Oracle9iR2的文档是这样的:
Parameter type Integer
Default value 200
Parameter class Static
Range of values:
Minimum: the largest among the absolute file numbers of the datafiles in the database
Maximum: operating system-dependent
这个解释才是正确的,db_files参数的最小值应该是最大的数据文件的绝对文件号。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




