glogin.sql


--  product/10.2.0/db_1/ sqlplus/admin

set pagesize 999

set linesize 132
set echo on
set serveroutput on size unlimited format wrapped
column segment_name format A30 word_wrap
column object_name  format A30 word_wrap
set sqlprompt "_user'@'_connect_identifier > "



=========================================

查看当前设置的值 :  show  all


plsql登录三个方式:

1. > sqlplus

2. >sqlplus  用户名/密码            (如果远程数据库 @服务名)

3. >sqlplus /nolog 


伪GUI命令  cmd> sqlplusw 


运行文件里面的sql  >@ 文件名    或   >start 文件名


查看错误: show errors




<think>我们正在解决执行utlu112s.sql脚本时出现ORA-01157错误的问题。引用内容涉及Oracle升级相关操作,但当前问题是在执行升级前检查脚本utlu112s.sql时遇到的错误。错误信息:ORA-01157表示无法标识/锁定数据文件。通常与数据库文件访问问题相关。分析:utlu112s.sql是Oracle11g升级前检查脚本,需要在数据库处于OPEN状态下执行。ORA-01157错误通常发生在数据库打开过程中,某个数据文件不可访问(例如文件不存在、权限问题、存储问题等)。根据引用[2]中提到的一些升级前准备步骤,包括参数文件修改、网络配置文件准备等,但没有直接提及数据文件问题。解决方案步骤:1.确认数据库状态:执行脚本前,数据库必须处于OPEN状态。请检查当前数据库状态:```sqlSELECTstatusFROMv$instance;```如果数据库不是OPEN状态,请先打开数据库:```sqlALTERDATABASEOPEN;```2.检查数据文件状态:ORA-01157错误通常伴随一个文件号。可以通过以下查询检查数据文件状态:```sqlSELECTfile#,name,status,errorFROMv$datafileWHEREstatus!='ONLINE'ORerrorISNOTNULL;```或者检查所有数据文件:```sqlSELECTfile#,name,statusFROMv$datafile;```注意是否有文件状态为RECOVER、OFFLINE或ERROR。3.检查告警日志:告警日志会记录更详细的错误信息。查看告警日志,找到ORA-01157错误对应的具体数据文件。告警日志位置可以通过以下查询获得:```sqlSELECTvalueFROMv$diag_infoWHEREname='DiagTrace';```在对应目录下找到alert_<SID>.log文件。4.恢复问题数据文件:如果发现数据文件处于OFFLINE状态,尝试将其在线:```sqlALTERDATABASEDATAFILE'<file_name>'ONLINE;```如果文件需要恢复,则进行恢复:```sqlRECOVERDATAFILE'<file_name>';ALTERDATABASEDATAFILE'<file_name>'ONLINE;```5.检查文件系统权限和路径:确保Oracle用户对数据文件有读写权限,且路径正确。如果数据文件被移动或重命名,需要通过以下命令修正:```sqlALTERDATABASERENAMEFILE'<old_file_path>'TO'<new_file_path>';```6.再次执行utlu112s.sql:在解决数据文件问题后,重新运行脚本。注意事项:-执行上述操作需要具有SYSDBA权限。-在进行任何修改前,建议备份数据库。如果以上步骤不能解决,请根据告警日志中的具体错误信息进一步分析。相关问题:1.如何避免在升级Oracle数据库时遇到数据文件问题?2.utlu112s.sql脚本的主要作用是什么?3.Oracle数据库升级前需要做哪些准备工作?</think>### ORA-01157 执行 utlu112s.sql 报错解决方案 **错误原因分析** ORA-01157 错误表示数据库无法访问指定的数据文件,通常由以下原因导致: 1. **数据文件路径错误**:升级过程中新环境的 `$ORACLE_HOME` 路径与原环境不一致,导致脚本找不到数据文件[^2]。 2. **文件权限问题**:Oracle 用户对新位置的数据文件缺乏读写权限。 3. **参数配置错误**:`control_files` 或 `db_create_file_dest` 等参数未正确指向新路径[^3]。 4. **数据库状态异常**:脚本需在 OPEN 状态下执行,但数据库可能处于 MOUNT 状态。 --- ### 解决步骤 #### 1. 验证数据文件路径 ```sql -- 检查所有数据文件状态 SELECT file#, name, status FROM v$datafile WHERE status != 'ONLINE'; ``` - **若返回 OFFLINE/RECOVER 状态文件**: ```sql ALTER DATABASE DATAFILE '<file_path>' ONLINE; -- 恢复文件在线 ``` - **路径错误示例**: `/old_path/users01.dbf` → 需更新为 `/new_path/users01.dbf` #### 2. 修复文件路径 ```sql -- 重命名数据文件路径 ALTER DATABASE RENAME FILE '/wrong_path/datafile.dbf' TO '/correct_path/datafile.dbf'; ``` > **注意**:操作前需确保目标文件已物理复制到新路径,且权限正确(参考引用[1]的 `scp` 操作)[^1]。 #### 3. 检查关键参数 ```sql SHOW PARAMETER control_files; SHOW PARAMETER db_create_file_dest; ``` - 需确保参数值与实际文件路径一致,修改方法: ```sql ALTER SYSTEM SET control_files='/new_path/control01.ctl' SCOPE=spfile; ``` #### 4. 确认数据库状态 ```sql SELECT status FROM v$instance; ``` - **必须为 `OPEN` 状态**,否则执行: ```sql ALTER DATABASE OPEN; ``` #### 5. 重新执行脚本 ```bash cd $ORACLE_HOME/rdbms/admin sqlplus / as sysdba @utlu112s.sql ``` --- ### 预防措施 1. **升级前验证路径** 使用 `cp` 或 `scp` 复制文件时,严格校验目标路径是否在新 `$ORACLE_HOME` 下(如引用[2]操作)[^2]。 2. **设置正确的 `glogin.sql`** 配置 SQL*Plus 环境变量确保路径提示准确(参考引用[3])[^3]。 3. **使用 restore point** 升级前创建还原点(需 `COMPATIBLE` 参数支持,操作见引用[2])[^2][^4]。 --- ### 相关问题 1. Oracle 升级过程中如何避免数据文件路径错误? 2. `utlu112s.sql` 执行失败后如何回退升级操作? 3. 除 ORA-01157 外,Oracle 升级常见错误有哪些及解决方法? [^1]: 文件复制需确保目标路径权限正确 [^2]: 参数修改需谨慎,`COMPATIBLE` 参数只能增大不可回退 [^3]: SQL*Plus 环境配置影响路径显示 [^4]: 滚动升级需严格遵循步骤顺序
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值