最近在总结rman,今晚在测试的时候,移动数据库文件的位置
SQL> select file#,name from v$datafile;
FILE#
----------
NAME
----------------------------------------------------------
1
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/SYSTEM01.DBF
2
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/UNDOTBS01.DBF
3
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/SYSAUX01.DBF
FILE#
----------
NAME
----------------------------------------------------------
4
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/USERS01.DBF
5
F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST02.DBF
SQL>
SQL> alter database datafile 5 offline;
数据库已更改。
SQL> host copy F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST01.DBF F:/ORACLE/PRODU
T/10.2.0/ORADATA/PROD/TEST02.DBF
已复制 1 个文件。
SQL> alter database rename file 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST01.D
F' to 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST02.DBF';
数据库已更改。
SQL> alter database datafile 5 online;
alter database datafile 5 online
*
第 1 行出现错误:
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'F:/ORACLE/PRODUCT/10.2.0/ORADATA/PROD/TEST02.DBF'
突然出现这个错误,正常来说不应该有错误的,既然有错误了,那就简单恢复下吧,首先关闭
数据库
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
怎么起不来呢? 监听器有问题?
看看服务是否正常?
SQL> quit
C:/Documents and Settings/skate>tnsping prod
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 11-9月 -
2007 01:34:24
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
F:/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = kstdby1))
(ADDRESS = (PROTOCOL = TCP)(HOST = zjgy-skate)(PORT = 1521)) (CONNECT_DATA = (S
ERVER = DEDICATED) (SERVICE_NAME = prod)))
OK (50 毫秒)
服务是正常的啊,在启动看看,看是什么提示?
C:/Documents and Settings/skate>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 9月 11 01:34:38 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /@prod as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
结果还是同样的错误
C:/Documents and Settings/skate> lsnrctl stop
C:/Documents and Settings/skate> lsnrctl start
重新启动监听器,问题依旧
没有办法了,那就去google吧
经过测试发现, 修改listener.ora文件,问题解决
# listener.ora Network Configuration File: F:/oracle/product/10.2.0/db_1
/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = F:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
--------------------skate add----------------------
(SID_DESC =
(GLOBAL_DBNAME = PROD)
(ORACLE_HOME = F:/oracle/product/10.2.0/db_1)
(SID_NAME = PROD)
)
------------------skate end---------------------------
)
只要添加skate add 到skate end之间的那一段 文件就可以解决
SQL> conn /@prod as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 209715200 bytes
Fixed Size 1248140 bytes
Variable Size 79692916 bytes
Database Buffers 125829120 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
至此问题解决.