问题描述
SYS @ orcl28> a90的col横幅
SYS @ orcl28> 从v $ 版本中选择 *;
横幅
-
Oracle数据库11g企业版11.2.0.4.0-64位生产
PL/SQL版本11.2.0.4.0-生产
核心11.2.0.4.0生产
适用于Linux的TNS: 版本11.2.0.4.0-生产
NLSRTL版本11.2.0.4.0-生产
SYS @ orcl28> 设置行200页200
SYS @ orcl28> a50的col名称
SYS @ orcl28> 从v $ 数据文件中选择名称;
名称
--------------------------------------------------
/u01/oradata/orcl28/system01.dbf
/u01/oradata/orcl28/sysaux01.dbf
/u01/oradata/orcl28/un做tbs01.dbf
/u01/oradata/orcl28/用户01.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 01.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 02.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_03.dbf
/u01/oradata/orcl28/szd _ 资源 _ v3_01.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_04.dbf
/u01/oradata/orcl28/sysaux02.dbf
/u01/oradata/orcl28/system02.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_05.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_06.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 07.dbf
/u01/oradata/orcl28/sysaux03.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 08.dbf
/u01/oradata/orcl28/system03.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_09.dbf
上面,datafile的目录是 “/u01/oradata/orcl28”,因此我为查询datafile的目录编写了一个shell脚本 “query_db_file_dir.sh”,脚本文件如下:
#-
# | |
# | 数据库文件 (数据文件和临时文件) 的查询路径 |
# | |
#-
###########################################################################
函数查询 _ 数据库 _ 文件 () {
导出DB_FILE =
导出DB_FILE_PATH =
导出数据库文件路径 = '/tmp/数据库文件路径.日志'
DB_FILE = '$ SQLPLUS -S / as sysdba << EOF
设置回声关闭反馈关闭开始下划线关闭;
从v \ $ datafile union中选择名称全部从v \ $ tempfile中选择名称;
退出;
EOF'
对于 ${DB_FILE[@]} 中的名称
做
$ ECHO $ {名称 %/*} >> $ DBFILE_PATH
做ne
DB_FILE_PATH = '$ CAT $ DBFILE_PATH | $ UNIQ | $ TR' \ n'''
###########################################################################
执行上述shell脚本文件,然后执行cat文件 '/tmp/dbfile_path.log',内容如下:
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
我想知道,Oracle数据库是否有一个关于设置数据库文件目录的参数?如果这个参数存在,我写的shell脚本查询必须非常简单。我查询该参数是否可以。
SYS @ orcl28> 从v $ 版本中选择 *;
横幅
-
Oracle数据库11g企业版11.2.0.4.0-64位生产
PL/SQL版本11.2.0.4.0-生产
核心11.2.0.4.0生产
适用于Linux的TNS: 版本11.2.0.4.0-生产
NLSRTL版本11.2.0.4.0-生产
SYS @ orcl28> 设置行200页200
SYS @ orcl28> a50的col名称
SYS @ orcl28> 从v $ 数据文件中选择名称;
名称
--------------------------------------------------
/u01/oradata/orcl28/system01.dbf
/u01/oradata/orcl28/sysaux01.dbf
/u01/oradata/orcl28/un做tbs01.dbf
/u01/oradata/orcl28/用户01.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 01.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 02.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_03.dbf
/u01/oradata/orcl28/szd _ 资源 _ v3_01.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_04.dbf
/u01/oradata/orcl28/sysaux02.dbf
/u01/oradata/orcl28/system02.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_05.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_06.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 07.dbf
/u01/oradata/orcl28/sysaux03.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2 _ 08.dbf
/u01/oradata/orcl28/system03.dbf
/u01/oradata/orcl28/szd _ 资源 _ v2_09.dbf
上面,datafile的目录是 “/u01/oradata/orcl28”,因此我为查询datafile的目录编写了一个shell脚本 “query_db_file_dir.sh”,脚本文件如下:
#-
# | |
# | 数据库文件 (数据文件和临时文件) 的查询路径 |
# | |
#-
###########################################################################
函数查询 _ 数据库 _ 文件 () {
导出DB_FILE =
导出DB_FILE_PATH =
导出数据库文件路径 = '/tmp/数据库文件路径.日志'
DB_FILE = '$ SQLPLUS -S / as sysdba << EOF
设置回声关闭反馈关闭开始下划线关闭;
从v \ $ datafile union中选择名称全部从v \ $ tempfile中选择名称;
退出;
EOF'
对于 ${DB_FILE[@]} 中的名称
做
$ ECHO $ {名称 %/*} >> $ DBFILE_PATH
做ne
DB_FILE_PATH = '$ CAT $ DBFILE_PATH | $ UNIQ | $ TR' \ n'''
###########################################################################
执行上述shell脚本文件,然后执行cat文件 '/tmp/dbfile_path.log',内容如下:
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
/u01/oradata/orcl28
我想知道,Oracle数据库是否有一个关于设置数据库文件目录的参数?如果这个参数存在,我写的shell脚本查询必须非常简单。我查询该参数是否可以。
专家解答
没有这样的参数,因为我们没有设置该限制。即使所有 * 现有 * 数据文件都在一个目录中,也没有限制,这意味着DBA创建的 * next * 数据文件也在其中-他们可以将其放在任何喜欢的地方。
你可能会更容易
你可能会更容易
SQL> select name from v$datafile; NAME ------------------------------------------------------------------- C:\ORACLE\ORADATA\DB122\SYSTEM01.DBF C:\ORACLE\ORADATA\DB122\SYSAUX01.DBF C:\ORACLE\ORADATA\DB122\UNDOTBS01.DBF C:\ORACLE\ORADATA\DB122\USERS01.DBF C:\ORACLE\ORADATA\DB122\DEMO.DBF C:\ORACLE\ORADATA\DB122\ASKTOM.DBF C:\ORACLE\ORADATA\DB122\LARGETS.DBF 7 rows selected. SQL> select distinct regexp_substr(name,'^.*\\') from v$datafile; REGEXP_SUBSTR(NAME,'^.*\\') ------------------------------------------------------------------- C:\ORACLE\ORADATA\DB122\
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




