首页 > 数据库 >[20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt

[20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt

时间:2024-08-16 21:38:53浏览次数:14  
标签:21.0 20240816 sql oracle21c sqlplus oracle linux ORACLE PATH

[20240816]oracle21c环境变量ORACLE_PATH与SQLPATH(linux).txt

--//我记忆以前测试过这个问题,当时是家里的笔记本,安装oracle 12.2c for windows.OS:windows 7,发现无法访问SQLPATH或者
--//ORACLE_PATH环境变量定义的路径下login.sql文件.我当时解决办法就是登录手工执行init.sql命令,主要原因我自己也不常开启数据
--//库.

--//参考链接:[20230124]12c访问login.sql脚本.txt=>
--//当时的总结如下:
--//1.windows下至少我的测试版本12c对于ORACLE_PATH,SQLPATH定义无效,指缺省访问login.sql文件,以下情况类似.
--//2.linux下11g版本可以定义ORACLE_PATH,SQLPATH有效,建议仅仅使用ORACLE_PATH环境变量.
--//3.linux下12c以后版本仅仅定义ORACLE_PATH有效.
--//4.也是oracle出于安全的原因做出这样的修改操作.
--//4.链接https://blog.dbi-services.com/oracle-12cr2-changes-for-login-sql/给出许多测试.
--//5.我个人建立不要ORACLE_PATH或者SQLPATH定义多个访问目录路径,这样容易混乱.

--//这次遇到的情况不同客户端:OS windows 10,sqlplus的版本是21c, 数据库是21c for linux, 可以访问SQLPATH或者ORACLE_PATH环境
--//变量的login.sql脚本.

--//oracle升级新版本,总是做一些改进,测试看看在linux下客户端21c 的sqlplus的情况.

1.环境:
[email protected]:1521/book> @ prxx
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 21.0.0.0.0
BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

2.测试:
$ ORACLE_PATH=~/ORACLE_PATH1:~/ORACLE_PATH2 SQLPATH=~/SQLPATH1:~/SQLPATH2 strace -e trace=file -o aa3.txt sqlplus -s /nolog <<<quit

$ grep -i login.sql aa3.txt
access("/home/oracle/ORACLE_PATH1/login.sql", F_OK) = -1 ENOENT (No such file or directory)
access("/home/oracle/ORACLE_PATH2/login.sql", F_OK) = -1 ENOENT (No such file or directory)
access("/home/oracle/ORACLE_PATH1/login.sql", F_OK) = -1 ENOENT (No such file or directory)
access("/home/oracle/ORACLE_PATH2/login.sql", F_OK) = -1 ENOENT (No such file or directory)
stat("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", {st_mode=S_IFREG|0640, st_size=367, ...}) = 0
access("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", F_OK) = 0
statfs("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", {f_type=0x58465342, f_bsize=4096, f_blocks=5240064, f_bfree=2243310, f_bavail=2243310, f_files=10485248, f_ffree=10455021, f_fsid={2065, 0}, f_namelen=255, f_frsize=4096}) = 0
open("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", O_RDONLY) = 9
stat("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/zzlogin.sql", {st_mode=S_IFREG|0644, st_size=3055, ...}) = 0
access("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/zzlogin.sql", F_OK) = 0
statfs("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/zzlogin.sql", {f_type=0x58465342, f_bsize=4096, f_blocks=5240064, f_bfree=2243310, f_bavail=2243310, f_files=10485248, f_ffree=10455021, f_fsid={2065, 0}, f_namelen=255, f_frsize=4096}) = 0
open("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/zzlogin.sql", O_RDONLY) = 10
--//可以发现linux使用环境变量ORACLE_PATH有效.

3.测试-R 3参数:
$ ORACLE_PATH=~/ORACLE_PATH1:~/ORACLE_PATH2 SQLPATH=~/SQLPATH1:~/SQLPATH2 strace -e trace=file -o aa4.txt sqlplus -R 3 -s /nolog <<<quit
SP2-0738: Restricted command "@@ (START)" not available
SP2-0738: Restricted command "@@ (START)" not available

$ grep -i login.sql aa4.txt
stat("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", {st_mode=S_IFREG|0640, st_size=367, ...}) = 0
access("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", F_OK) = 0
statfs("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", {f_type=0x58465342, f_bsize=4096, f_blocks=5240064, f_bfree=2243310, f_bavail=2243310, f_files=10485248, f_ffree=10455021, f_fsid={2065, 0}, f_namelen=255, f_frsize=4096}) = 0
open("/u01/app/oracle/product/21.0.0/dbhome_1/sqlplus/admin/glogin.sql", O_RDONLY) = 9

4.总结:
--//在linux下21c的sqlplus客户端,与windows的情况相反,设置ORACLE_PATH有效,SQLPATH无效.
--//sqlplus选择-R 3参数,依旧会访问ORACLE_HOME目录下sqlplus/admin/glogin.sql.不会访问ORACLE_PATH的设置的目录.
--//我感觉不管怎么环境,最好两个环境变量都设置一样.
--//个人建议不要ORACLE_PATH或者SQLPATH定义多个访问目录路径,这样容易混乱.


标签:21.0,20240816,sql,oracle21c,sqlplus,oracle,linux,ORACLE,PATH
From: https://www.cnblogs.com/lfree/p/18363656

相关文章

  • 嵌入式学习DAY32---Linux软件编程---网络编程
    目录一、抓包软件的使用1.1.wireshark         1.作用1.2.UDP包头二、TCP编程2.1.发送信息1.创建套接字2.配置目的对象信息3.将自己的端口和ip和套接字绑定4.建立连接5.发消息6.关闭套接字2.2.接收消息1.创建套接字2.配置自己的信息并将自己的端口和i......
  • Linux下ETCD安装、配置、命令
    1.简介1.1.概述ETCD是一个开源的分布式系统工具,它提供了一个分布式键值存储系统,数据被分布式地存储在多个节点上。ETCD使用Raft协议来确保一致性和容错性,保证在节点故障或网络分区情况下数据的可用性和一致性。ETCD的诞生背景是为了解决集群管理系统中操作系统升级......
  • Lazarus在Win和Linux下的计时
    一、毫秒级Linux平台示例(毫秒)programHighPrecisionTimer;{$modeobjfpc}{$H+}usesBaseUnix,SysUtils,Linux;varStartTime,EndTime:TTimeSpec;Elapsed:Double;begin//获取开始时间clock_gettime(CLOCK_MONOTONIC,@StartTime);//你的代码块Sleep(1);//......
  • Linux 做 SSH 免密连接 Windows 踩坑记录
    做LinuxSSH免密连接Windows10时踩到个坑,按照教程做了以下操作:把Linux上生成的id_rsa.pub复制到了Windows10下的C:/Users/<用户名>/authorized_keys;修改C:\ProgramData\ssh\sshd_config,注释以下两行#MatchGroupadministrators#AuthorizedKeysFile__PR......
  • centos(linux): rpm -V 验证rpm包安装程序的安全
    一,作用rpm-Va:校验所有的RPM软件包,通常用来检查系统文件是否被植入后门或rootkit二,例子#-V:校验软件包,此校验功能可以用来确认文件是否被修改或覆盖#-a: RPM校验系统中所有已安装的软件包[root@blog~]#rpm-Va>rpmva.txt返回结果:[root@blog~]#morerpmva.tx......
  • 嵌入式学习 20(Linux高级编程——文件——misc)
     文件操作相关函数一、symlink函数intsymlink(constchar*oldpath,constchar*newpath);功能:创建一个指向oldpath文件的新的符号链接(软链接)文件。参数:•oldpath:被链接指向的原始文件的路径。•newpath:新创建的符号链接文件的路径。返回值:•成功时,返回0。......
  • Linux线程实用场景
    文章目录前言生产者消费者模型1.基于阻塞队列特点实现使用2.基于环形队列和信号量实现使用读者写者模型实现思想线程池实现前言    生产者消费者模型和读者写者模型这些模型是用于在线程间协调和管理资源访问的模式,我们在之前已经理解了线程的概念以及同......
  • Ettercap 是一个用于网络嗅探和中间人攻击的开源工具,主要用于网络安全测试和分析。它
    Ettercap是一个用于网络嗅探和中间人攻击的开源工具,主要用于网络安全测试和分析。它支持多种平台,包括Linux、Windows和macOS。Ettercap可以用来监视、分析、和修改网络流量,通常用于测试和审计网络的安全性。以下是Ettercap的一些主要功能和特点:主要功能嗅探和分析网络......
  • linux驱动总结
    一.前言做linux开发也有一段时间了,对整个系统已经熟悉了很多,linux是一个非常大的系统,现在对常见的驱动做一个总结,以此来加深记忆和理解。二.常见驱动及其子系统分类1.Linux设备分类linux系统抽象出的设备可以分为三类:char_dev,block_dev,net_dev。字符设备是产品开发用的最多......
  • 麒麟(linux)修改文件夹底下所有文件可执行权限
    1、命令find.-typef-execchmod+x{}\;解释:. 表示当前文件夹。-typef 表示只查找文件,不包括目录。-exec 后面跟的是对查找到的每个文件要执行的命令,这里是 chmod+x 添加执行权限。{} 是一个占位符,代表找到的文件名。\; 表示-exec参数......