ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建


D:\Script>set day=-12-17

D:\Script>cd d:\backup

D:\backup>md -12-17

D:\backup>sqlplus /nolog @D:\script\cold_backup.sql -12-17

SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 12月 17 10:50:55 2009

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

已连接。
*** spooling to D:\script\cold_backup_command.sql
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\DUREX.ORA D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\PERFSTAT.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\SYSAUX01.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\SYSTEM01.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\TEST.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\TEST01.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\TEST02.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\TEST02_COPY.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\UNDOTBS01.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\USERS01.DBF D:\backup\
host copy D:\TEST\JERRY_UNDO.DBF D:\backup\
host copy D:\DISK3\REDO01A.LOG D:\backup\
host copy D:\DISK3\REDO02A.LOG D:\backup\
host copy D:\DISK3\REDO03A.LOG D:\backup\
host copy D:\DISK3\REDO04A.LOG D:\backup\
host copy D:\DISK3\REDO05A.LOG D:\backup\
host copy D:\DISK6\REDO01B.LOG D:\backup\
host copy D:\DISK6\REDO02B.LOG D:\backup\
host copy D:\DISK6\REDO03B.LOG D:\backup\
host copy D:\DISK6\REDO04B.LOG D:\backup\
host copy D:\DISK6\REDO05B.LOG D:\backup\
host copy D:\DISK9\REDO01C.LOG D:\backup\
host copy D:\DISK9\REDO02C.LOG D:\backup\
host copy D:\DISK9\REDO03C.LOG D:\backup\
host copy D:\DISK9\REDO04C.LOG D:\backup\
host copy D:\DISK9\REDO05C.LOG D:\backup\
host copy D:\DISK3\CONTROL01.CTL D:\backup\
host copy D:\DISK6\CONTROL02.CTL D:\backup\
host copy D:\DISK9\CONTROL03.CTL D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\TEMP01.DBF D:\backup\
host copy D:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\TEMP1129.DBF D:\backup\
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

已复制         1 个文件。

ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建立新的连接


SQL> show sga
ERROR:
ORA-03114: 未连接到 ORALCE


SQL> connect sys/test;
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress


SQL> startup
ORA-01031: insufficient privileges
SQL> show user;
USER 为 ""

ALERTLOG:

Archive process shutdown avoided: 0 active
Thu Dec 17 10:56:31 2009
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 2
KCCDEBUG_LEVEL = 0
Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
Dynamic strands is set to TRUE
Running with 2 shared and 18 private strand(s). Zero-copy redo is FALSE
IMODE=BR
ILAT =18
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 10.1.0.2.0.
System parameters with non-default values:
  processes                = 150
  __shared_pool_size       = 83886080
  shared_pool_size         = 83886080
  large_pool_size          = 8388608
  java_pool_size           = 50331648
  control_files            = D:\DISK3\CONTROL01.CTL, D:\DISK6\CONTROL02.CTL, D:\DISK9\CONTROL03.CTL
  db_block_size            = 8192
  db_cache_size            = 25165824
  db_cache_advice          = ON
  compatible               = 10.1.0.2.0
  db_file_multiblock_read_count= 16
  db_recovery_file_dest    = d:\oracle\product\10.1.0\flash_recovery_area
  db_recovery_file_dest_size= 21474836480
  undo_management          = AUTO
  undo_tablespace          = JERRY_UNDO
  remote_login_passwordfile= EXCLUSIVE
  db_domain                =
  dispatchers              = (PROTOCOL=TCP) (SERVICE=myoracleXDB)
  shared_servers           = 3
  job_queue_processes      = 10
  background_dump_dest     = D:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\BDUMP
  user_dump_dest           = D:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\UDUMP
  core_dump_dest           = D:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\CDUMP
  sort_area_size           = 65536
  db_name                  = myoracle
  open_cursors             = 300
  pga_aggregate_target     = 25165824
PMON started with pid=2, OS id=772
MMAN started with pid=3, OS id=3120
DBW0 started with pid=4, OS id=2264
LGWR started with pid=5, OS id=3520
CKPT started with pid=6, OS id=252
SMON started with pid=7, OS id=2608
RECO started with pid=8, OS id=3628
CJQ0 started with pid=9, OS id=1320
Thu Dec 17 10:56:32 2009
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
Thu Dec 17 10:56:32 2009
starting up 3 shared server(s) ...
Thu Dec 17 11:03:29 2009
Starting ORACLE instance (normal)
Thu Dec 17 11:04:43 2009
Starting ORACLE instance (normal)
Thu Dec 17 11:04:45 2009
Starting ORACLE instance (normal)
Thu Dec 17 11:04:46 2009
Starting ORACLE instance (normal)

 

 

客户端无法建立连接

 

SQL> connect sys/test@myoracle as sysdba;
ERROR:
ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接

 

服务器端:


SQL> connect / as sysdba;
已连接。
SQL> startup;
ORA-01081: ????????? ORACLE - ??????
USER 为 "SYS"
SQL> select status
  from v$instance;

STATUS
------------------------
STARTED

已选择 1 行。

SQL> startup;
ORA-01081: ????????? ORACLE - ??????
SQL> alter session set nls_date_formate=american;
alter session set nls_date_formate=american
*
第 1 行出现错误:
ORA-00922: ???????


SQL> alter session set nls_language=american;

Session altered.

SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> connect / as sysdba;
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  171966464 bytes
Fixed Size                   787988 bytes
Variable Size             145488364 bytes
Database Buffers           25165824 bytes
Redo Buffers                 524288 bytes
数据库装载完毕。
数据库已经打开。
SQL> select status
  from v$instance;

STATUS
------------
OPEN

已选择 1 行。

SQL>

 

执行冷备份脚本后数据库未能正常启动!

脚本较简单,执行到shutdown immediate再startup后报上述错误!无法正常启动,但在SQLPLUS中单独执行

shutdown immediate 再startup却没有问题!

 

再次执行脚本,故障依然,测试发现脚本没有问题,查了下资料是监听服务的问题,修改Tnsname.ora的配置在脚本中执行shutdown immediate再startup正常启动。记录一下

参考文章如下:

 

 

ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接

lsnrctl status
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hp1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
Services Summary...
Service "LSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully
修改listener.ora的参数,把动态的参数设置为静态的参数,红色标注部分,然后从新启动监听,就OK
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ammicly)
      (ORACLE_HOME = c:\oracle\product\10.1.0\db_1)
      (SID_NAME = ammicly)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

通过修改tnsnames.ora的参数,红色表注部分
# tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\db_1
\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
AMMICLY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ammicly)
      (UR=A)
    )
  )
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

然后 sqlplus /nolog
SQL>alter database mount;
SQL>alter database open;

这样就可以启动数据库了;

或者用Oradim -shutdown -sid ammicly -shuttype srvc,inst -shutmode immediate -syspwd ammic;关闭数据库
在用oradim -startup -sid ammicly -starttype srvc,inst -syspwd ammic;启动数据库解决;也可以在截面上从启动数据库服务来解决;

ORA-12528:监听中的服务使用了动态服务,系统启动后,数据库没有正常的MOUNT,因此在动态模式下,就会出现这个问题,用静态的就不会有这个问题,因此上面的方法就是把监听设置为静态,或者在tnsnames.ora中追加(UR=A)或者从启动服务,三种方法解决问题;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值