Oracle:我在哪里保留配置设置?

时间:2013-10-21 12:51:59

标签: oracle plsql

我有三个Oracle 11g数据库:开发,测试和生产。假设三个系统上的日志记录目录不同:

dev  => \var\log\oracle\
test => e:\logging\
prod => g:\logs\logging\

我正在使用这些目录和utl_file。

我在哪里保留这些设置?是否存在某种'ora_config.ini',我存储这些值并使用PL / SQL轻松读取它们?

1 个答案:

答案 0 :(得分:2)

至少从Oracle 9i开始,Oracle有一个directory对象。见http://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_5007.htm

您应该在每个系统上创建一个具有相同名称的目录对象,并在调用utl_file时按名称引用该目录。

例如,在“dev”:

create directory logging_dir as '/var/log/oracle';

关于“测试”:

create directory logging_dir as 'e:\logging';

关于“prod”:

create directory logging_dir as 'g:\logs\logging';

您的PL / SQL代码在所有环境中都是相同的,例如:

f := utl_file.fopen('LOGGING_DIR', 'filename.log', 'W');

DBA应该创建目录对象并向需要使用它们的数据库用户或角色授予权限。

不要授予系统权限,只为任何数据库用户创建目录对象,因为这会通过允许Oracle读取或可能在文件系统上的任何位置写入操作系统用户“oracle”来创建安全漏洞