[20190225]ORA-07217错误.txt --//昨天看链接:http://www.xifenfei.com/2019/02/ora-07217.html ,里面提到一个情况,就是如果建立的 --//数据文件包含$,会导致dg启动到mount报ORA-07217:sltln: environment variable cannot be evaluated.错误. --//自己测试看看: 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------- ---------- ---------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYS@book> show parameter db_file_name_convert NAME TYPE VALUE -------------------- ------ ------------------------------------ db_file_name_convert string /mnt/ramdisk/book, /mnt/ramdisk/book --//检查备库日志是否应用正常. SYS@bookdg> @ dg/dg PROCESS PID STATUS CLIENT_P GROUP# THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS --------- ------- ------------ -------- ------ ------- ---------- ---------- ---------- ---------- ARCH 24128 CONNECTED ARCH N/A 0 0 0 0 0 ARCH 24130 CONNECTED ARCH N/A 0 0 0 0 0 RFS 24163 IDLE ARCH N/A 0 0 0 0 0 RFS 24149 IDLE LGWR 1 1 698 122 1 0 ARCH 24126 CLOSING ARCH 4 1 695 1 154 0 ARCH 24132 CLOSING ARCH 5 1 697 1 25 0 MRP0 24151 APPLYING_LOG N/A N/A 1 698 122 102400 0 7 rows selected. 2.在主库建立数据文件,数据文件包含$: $ cat sugar.txt CREATE TABLESPACE SUGAR DATAFILE '/mnt/ramdisk/book/su$ar01.dbf' SIZE 10M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON; SYS@book> @ sugar.txt CREATE TABLESPACE SUGAR DATAFILE * ERROR at line 1: ORA-07217: sltln: environment variable cannot be evaluated. $ oerr ora 07217 07217, 00000, "sltln: environment variable cannot be evaluated." // *Cause: getenv call returned a null pointer. // *Action: Set the environment variable and try again. --//实际上建立时就保ORA-07217: sltln: environment variable cannot be evaluated.错误. --//在toad下建立看看,走菜单建立也是报错.修改如下: CREATE TABLESPACE SUGAR DATAFILE '/mnt/ramdisk/book/su\$ar01.dbf' SIZE 10M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON; --//报错如下: * ERROR at line 1: ORA-00600: internal error code, arguments: [ksfd_odmcrt2], [Invalid argument], [], [], [], [], [], [], [], [], [], [] --//奇怪,我在主库根本无法建立数据文件包含$的文件.取消db_file_name_convert参数再测试看看. SYS@book> alter system reset db_file_name_convert; System altered. --//依旧包ORA-07217: sltln: environment variable cannot be evaluated.,或者 --//ORA-00600: internal error code, arguments: [ksfd_odmcrt2], [Invalid argument], [], [], [], [], [], [], [], [], [], [] --//真不知道如何建立这样数据文件. 3.继续测试: --//建立环境变量看看: $ export ar01='$ar01' SYS@book> alter system set db_file_name_convert='/mnt/ramdisk/book','/mnt/ramdisk/book' scope=spfile; System altered. --//重启数据库: SYS@book> @ sugar.txt Tablespace created. --//OK.这样建立成功. $ ls -l /mnt/ramdisk/book/su\$ar01.dbf -rw-r----- 1 oracle oinstall 10493952 2019-02-25 09:14:13 /mnt/ramdisk/book/su$ar01.dbf --//不会链接巧合也建立环境变量吧.真不知道源链接数据文件如何建立的. 4.到dg查看,日志是否应用正常,数据文件是否建立. SYS@bookdg> @ dg/dg PROCESS PID STATUS CLIENT_P GROUP# THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS --------- ------- ------------ -------- ------ ------- ---------- ---------- ---------- ---------- ARCH 24130 CONNECTED ARCH N/A 0 0 0 0 0 RFS 24193 IDLE UNKNOWN N/A 0 0 0 0 0 RFS 24195 IDLE LGWR 3 1 700 3 1 0 ARCH 24126 CLOSING ARCH 4 1 695 1 154 0 ARCH 24128 CLOSING ARCH 4 1 699 1 1909 0 ARCH 24132 CLOSING ARCH 6 1 698 4096 384 0 MRP0 24151 APPLYING_LOG N/A N/A 1 699 898 1909 0 7 rows selected. SYS@bookdg> @ dg/dg PROCESS PID STATUS CLIENT_P GROUP# THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS --------- ------- ------------ -------- ------ ------- ---------- ---------- ---------- ---------- ARCH 24130 CONNECTED ARCH N/A 0 0 0 0 0 RFS 24193 IDLE UNKNOWN N/A 0 0 0 0 0 RFS 24195 IDLE LGWR 3 1 700 4 1 0 ARCH 24128 CLOSING ARCH 4 1 699 1 1909 0 ARCH 24126 CLOSING ARCH 4 1 695 1 154 0 ARCH 24132 CLOSING ARCH 6 1 698 4096 384 0 6 rows selected. --//可以发现dg日志应用已经停止. --//检查alert文件发现如下: Mon Feb 25 09:17:46 2019 Archived Log entry 7 added for thread 1 sequence 699 ID 0x4fb7d86e dest 1: Media Recovery Log /u01/app/oracle/archivelog/book/1_699_896605872.dbf Errors with log /u01/app/oracle/archivelog/book/1_699_896605872.dbf MRP0: Background Media Recovery terminated with error 7217 Errors in file /u01/app/oracle/diag/rdbms/bookdg/bookdg/trace/bookdg_pr00_24153.trc: ORA-07217: sltln: environment variable cannot be evaluated. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Managed Standby Recovery not using Real Time Apply Recovery interrupted! Recovered data files to a consistent state at change 13276937052 Mon Feb 25 09:17:47 2019 MRP0: Background Media Recovery process shutdown (bookdg) --//注:注意看下划线内容,MRP0进程shutdown.实际上正如惜分飞说的那样,不要在建立文件包含特殊符号. --//你可以发现在rman备份时如果没有定义环境变量ar01.报错如下: $ export ar01= RMAN> backup as copy datafile 7 format '/tmp/%b'; Starting backup at 2019-02-25 09:21:05 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=54 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=67 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=80 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00007 name=/mnt/ramdisk/book/su$ar01.dbf RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of backup command on ORA_DISK_1 channel at 02/25/2019 09:21:06 ORA-07217: sltln: environment variable cannot be evaluated. $ export ar01='$ar01' RMAN> backup as copy datafile 7 format '/tmp/%b'; Starting backup at 2019-02-25 09:25:08 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=41 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=54 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=67 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00007 name=/mnt/ramdisk/book/su$ar01.dbf output file name=/tmp/su$ar01.dbf tag=TAG20190225T092509 RECID=13 STAMP=1001150709 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 2019-02-25 09:25:10 Starting Control File and SPFILE Autobackup at 2019-02-25 09:25:10 piece handle=/u01/app/oracle/fast_recovery_area/BOOK/autobackup/2019_02_25/o1_mf_s_1001150710_g76jzq0x_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2019-02-25 09:25:11 --//环境变量正确,备份ok. $ export ar01='$xxxx' RMAN> backup as copy datafile 7 format '/tmp/aa%b'; Starting backup at 2019-02-25 09:25:42 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=41 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=54 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=67 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00007 name=/mnt/ramdisk/book/su$ar01.dbf RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of backup command on ORA_DISK_1 channel at 02/25/2019 09:25:45 ORA-07217: sltln: environment variable cannot be evaluated. 4.解决方法就是改名: --//主库: SYS@book> alter tablespace sugar offline; Tablespace altered. $ mv /mnt/ramdisk/book/su\$ar01.dbf /mnt/ramdisk/book/sugar01.dbf `/mnt/ramdisk/book/su$ar01.dbf' -> `/mnt/ramdisk/book/sugar01.dbf' --//顺便测试环境变量不存在的情况: $ export ar01= SYS@book> alter database rename file '/mnt/ramdisk/book/su\$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf'; alter database rename file '/mnt/ramdisk/book/su\$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf' * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-07217: sltln: environment variable cannot be evaluated. SYS@book> alter database rename file '/mnt/ramdisk/book/su$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf'; alter database rename file '/mnt/ramdisk/book/su$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf' * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-07217: sltln: environment variable cannot be evaluated. --//2种方式都不行!简直就是给自己下坑... $ export ar01='$ar01' SYS@book> alter database rename file '/mnt/ramdisk/book/su$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf'; Database altered. SYS@book> alter tablespace sugar online; Tablespace altered. 5.备库: $ export ar01='$ar01' SYS@bookdg> alter database recover managed standby database using current logfile disconnect ; Database altered. SYS@bookdg> @ dg/dg PROCESS PID STATUS CLIENT_P GROUP# THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS --------- ------- ------------ -------- ------ ------- ---------- ---------- ---------- ---------- ARCH 24130 CONNECTED ARCH N/A 0 0 0 0 0 RFS 24197 IDLE ARCH N/A 0 0 0 0 0 RFS 24195 IDLE LGWR 3 1 700 1533 1 0 ARCH 24128 CLOSING ARCH 4 1 699 1 1909 0 ARCH 24126 CLOSING ARCH 4 1 695 1 154 0 ARCH 24132 CLOSING ARCH 6 1 698 4096 384 0 6 rows selected. --//mrp0进程无法启动,重启再测试,问题依旧.报 ORA-07217: sltln: environment variable cannot be evaluated. SYS@bookdg> alter system reset db_file_name_convert; System altered. --//再次重启 SYS@bookdg> shutdown immediate ; Database closed. Database dismounted. ORACLE instance shut down. SYS@bookdg> startup ORACLE instance started. Total System Global Area 634732544 bytes Fixed Size 2255792 bytes Variable Size 197133392 bytes Database Buffers 427819008 bytes Redo Buffers 7524352 bytes Database mounted. Database opened. SYS@bookdg> alter database recover managed standby database using current logfile disconnect ; Database altered. SYS@bookdg> @ dg/dg PROCESS PID STATUS CLIENT_P GROUP# THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS --------- ------- ------------ -------- ------ ------- ---------- ---------- ---------- ---------- ARCH 24427 CONNECTED ARCH N/A 0 0 0 0 0 ARCH 24429 CONNECTED ARCH N/A 0 0 0 0 0 ARCH 24431 CONNECTED ARCH N/A 0 0 0 0 0 RFS 24438 IDLE UNKNOWN N/A 0 0 0 0 0 RFS 24440 IDLE LGWR 1 1 707 35 1 0 ARCH 24433 CLOSING ARCH 4 1 706 1 35 0 MRP0 24442 APPLYING_LOG N/A N/A 1 701 41954 88976 0 7 rows selected. --//取消db_file_name_convert定义,确实可以ok,备库上数据文件也建立. $ ls -l /mnt/ramdisk/book/su\$ar01.dbf -rw-r----- 1 oracle oinstall 10493952 2019-02-25 09:45:54 /mnt/ramdisk/book/su$ar01.dbf --//dg下数据文件改名比较特殊,必须在mount下进行.我不知道有什么好方法.注意一定要先定义环境变量$ export ar01='$ar01'才ok.不然一样报ora-07217 $ export ar01='$ar01' SYS@bookdg> startup mount; ORACLE instance started. Total System Global Area 634732544 bytes Fixed Size 2255792 bytes Variable Size 197133392 bytes Database Buffers 427819008 bytes Redo Buffers 7524352 bytes Database mounted. $ mv /mnt/ramdisk/book/su\$ar01.dbf /mnt/ramdisk/book/sugar01.dbf SYS@bookdg> alter database rename file '/mnt/ramdisk/book/su$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf'; alter database rename file '/mnt/ramdisk/book/su$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf' * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-01275: Operation RENAME is not allowed if standby file management is automatic. --//要修改参数standby_file_management=manual. SYS@bookdg> alter system set standby_file_management=manual scope=memory; System altered. SYS@bookdg> alter database rename file '/mnt/ramdisk/book/su$ar01.dbf' to '/mnt/ramdisk/book/sugar01.dbf'; Database altered. SYS@bookdg> alter database open read only ; Database altered. SYS@bookdg> alter database recover managed standby database using current logfile disconnect ; Database altered. SYS@bookdg> @ dg/dg PROCESS PID STATUS CLIENT_P GROUP# THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS --------- ------- ------------ -------- ------ ------- ---------- ---------- ---------- ---------- ARCH 24514 CONNECTED ARCH N/A 0 0 0 0 0 ARCH 24516 CONNECTED ARCH N/A 0 0 0 0 0 ARCH 24518 CONNECTED ARCH N/A 0 0 0 0 0 RFS 24530 IDLE ARCH N/A 0 0 0 0 0 ARCH 24520 CLOSING ARCH 5 1 707 1 210 0 MRP0 24582 APPLYING_LOG N/A N/A 1 708 42 102400 0 6 rows selected. 6.收尾: SYS@bookdg> alter system set db_file_name_convert='/mnt/ramdisk/book','/mnt/ramdisk/book' scope=spfile; System altered. SYS@bookdg> alter system set standby_file_management=auto; System altered. --//总之规范管理很重要.
[20190225]ORA-07217错误.txt
来源:这里教程网
时间:2026-03-03 12:57:31
作者:
编辑推荐:
- Word文档打印技巧03-03
- 9个Word技巧,提高工作效率03-03
- [20190225]ORA-07217错误.txt03-03
- 3步瞬间Word文字变成PPT演示文稿03-03
- Word实用技巧:修订与比较,文章改动看得到03-03
- WRH$_ACTIVE_SESSION_HISTORY未自动清理导致SYSAUX空间过度增长的处理方法03-03
- Word六大神操作!看到第一个技巧就傻眼了03-03
- Word文档中文本转表格的方法03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- WRH$_ACTIVE_SESSION_HISTORY未自动清理导致SYSAUX空间过度增长的处理方法
- Debian监控业务指标配置(手把手教你用Prometheus+Grafana搭建Debian系统性能监控平台)
- 【kingsql分享】Oracle跨版本迁移之XTTS_V4版本的实施
【kingsql分享】Oracle跨版本迁移之XTTS_V4版本的实施
26-03-03 - PLSQL Developer 提示字段名,回车后卡顿解决
PLSQL Developer 提示字段名,回车后卡顿解决
26-03-03 - oracle 正则表达式4个主要函数
oracle 正则表达式4个主要函数
26-03-03 - 数据泵:expdp/impdp
数据泵:expdp/impdp
26-03-03 - 用listagg函数分组实现列转行
用listagg函数分组实现列转行
26-03-03 - Debian网络身份认证详解(手把手教你配置Debian系统下的企业级WiFi与有线网络身份验证)
- Oracle Exadata 存储服务器原理探究
Oracle Exadata 存储服务器原理探究
26-03-03 - 我们都被骗了,所有的跨平台迁移都可以通过XTTS实现
我们都被骗了,所有的跨平台迁移都可以通过XTTS实现
26-03-03
