yy 的个人资料每天都要做出不同的选择日志列表 工具 帮助

日志


7月31日

RA-01123: 无法启动联机备份;未启用介质恢复

 
问题:
-------------------------------------------
SQL> alter tablespace system begin backup;
alter tablespace system begin backup
*
ERROR 位于第 1 行:
ORA-01123: 无法启动联机备份;未启用介质恢复
 
原因:
-------------------------------------------
在noarchive的模式下不能做alter tablespace ....begin backup, 在进行热备份之前,必须先启用介质恢复。可以用archive log list查看当前数据库是否是归档的。

步骤:
------------------------------------------
SQL> archive log list;
数据库日志模式             非存档模式
自动存档             禁用
存档终点            D:\oracle\ora92\RDBMS
最早的概要日志序列     5
当前日志序列           7
 
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  101784276 bytes
Fixed Size                   453332 bytes
Variable Size              75497472 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。

SQL> alter database archivelog;
数据库已更改。
 
SQL> archive log list
数据库日志模式            存档模式
自动存档             禁用
存档终点            D:\oracle\ora92\RDBMS
最早的概要日志序列     5
下一个存档日志序列   7
当前日志序列           7

SQL> archive log start
已处理的语句
 
SQL> alter tablespace system begin backup;
表空间已更改。

结果:
----------------------------------
搞定!

ORA-12560: TNS: 协议适配器错误

{转贴}

 
解决ORA-12560: TNS: 协议适配器错误,与大家共享

今天遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI

D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。

6月22日

通过故障解释客户端连接到数据库的详细过程

故障:TNS-12154 (ORA-12154)TNS:could not resolve service name
该错误表示用于连接的网络服务名在tnsnames.ora文件中不存在,如果在tnsnames.ora中的网络服务名只有test,假如用户在连接时用sqlplus system/manager@test1则就会给出TNS-12154错误。

要注意的是,有时即使在tnsnames.ora文件中有相应的网络服务名,可是用该网络服务名连接时还会出错,出现这种情况的典型配置如下(在客户端的机器上):

sqlnet.ora
文件:

---------------------------
NAMES.DIRECTORY_PATH = (TNSNAMES, ….)
NAMES.DEFAULT_DOMAIN = server.com


tnsnames.ora

文件:

----------------------------
test =
(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)

sql*plus
运行基本机理:

在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN参数,假如该参数存在,则将该参数中的值取出,加到网络服务名的后面,即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@test.server.com ,然后再到tnsnames.ora文件中找test.server.com网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报错。解决的办法就是将sqlnet.ora文件中的NAMES.DEFAULT_DOMAIN参数注释掉即可,如#NAMES.DEFAULT_DOMAIN = server.com。假如NAMES.DEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnames.ora文件中找test网络服务名,然后取出其中的hostporttcpservice_name,利用这些信息将连接请求发送到正确的数据库服务器上。

另外原则上tnsnames.ora中的配置不区分大小写,但也有可能遇到区分大小写的情况,所以最好将使用的网络服务与tnsnames.ora中配置的完全一样。

另外,如果在$oracle_home\network\admin中不存在tnsname.ora,则可以通过Net Configuration Assistant来进行配置

解决非正常关闭数据库后出现的问题

我的数据库原本是正常使用的,但是在做试验的过程中用shutdown关闭数据库之后,很久都没有反应(之前都是很快),所以就手工把sqlplus /nolog界面关闭了,在关闭以后就不能开启数据库,登陆不了OEM,显示ORA-12519: TNS: 没有发现适用的服务处理程序:

出现的问题:

----------------------------------------------------------

SQL> conn sys/oracle@zyy_zyy as sysdba

ERROR:

ORA-12519: TNS: 没有发现适用的服务处理程序

 

警告: 您不再连接到 ORACLE

SQL> conn sys/oracle as sysdba

已连接到空闲例程。

SQL> startup

ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> startup pfile='h:\oracle\ora92\database\initzyy.ora'

ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> shutdown

ORA-24324: 未初始化服务句柄

ORA-24323: 不允许此值

ORA-01090: 正在进行关闭 --- 不允许连接

 

解决办法:

---------------------------------------------------------

SQL> shutdown abort

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

SQL> conn sys/oracle@zyy_zyy as sysdba

已连接。

 

原因:

---------------------------------------------------------

从出现问题的原因中我们可以看到,数据库是因为关闭过程被中断所引起的,之后用shutdown命令也无法关闭数据库,因此可以想到,在正常关闭和立即关闭无法工作时,我们可以用shutdown abort来中止当前的数据库实例。

Shutdown abort中止一个实例时具有如下特点:

l         Oracle服务器立即中止当前正在处理的SQL语句;

l         ORACLE服务器不会等待当前与数据库连接的用户断开连接;

l         数据重做日志缓冲不会写到磁盘中;

l         未完成的事务不会回滚;

l         实例终止,而不会关闭文件;

l         ORACLE关闭和卸载数据库;

l         下一次启动需要实例恢复,这是自动的。