日期:2014-05-16  浏览次数:20404 次

oracle 启动
Oracle9I开始,取消了服务器管理器(svrmgl)和internal用户,数据库的启动和停止都是通过sql*plus来完成!Oracle10g可以通过浏览器来启动和停止数据库服务!这里主要说说9I下的启动和停止服务,下面的命令在8i下也可以使用
要启动或者停止服务,必须拥有sysdba的权限。可以使用两中方式连接
第一种,以sys用户连接
c:\>;sqlplus sys/change_on_install as sysdba;
进入sql*plus环境;(注意,ORACLE9I在安装的时候需要你自己设定sys和system的口令,并且不能才用ORACLE9I以前这两个用户的默认口令,这主要是为了保证数据库系统的安全,我为了好记忆,在安装完成后立刻恢复了默认的口令)
第二种:
C:\>;sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004

Copyright (c) 1982, 2002>>, Oracle Corporation.  All rights reserved.

SQL>; connect /as sysdba
已连接。
SQL>;
在进入后就可以进行下面的操作了!
先说关闭数据库
shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
数据库的启动
数据库启动使用startup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!




前几天重新安装了数据库服务器,在服务器上使用都一切正常。然后在我的客户端配置一个tns服务名,通过sqlplus命令来连接,确报错:
C:\Documents and Settings\myname>sqlplussys/password@orcl118
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 1 18:41:06 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

查看服务器端的listener.ora,内容如下:
# listener.ora Network Configuration File: /usr/app/oracle/product/10.2/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/app/oracle/product/10.2/db_1)
      (PROGRAM = extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = oraclesvr)(PORT = 1521))
    )
  )

SQL> show parameter service_name
NAME                                TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
service_names                       string
orcl
没有发现问题,再看客户端的tnsnames.ora,如下:

ORCL118 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.118)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
也没发现问题了,客户端删除再重建了几次“本地net服务名配置”,没有任何作用。对比了tnsnames文件中其他的连接,配置信息几乎完全一致,其他连接确可以正常连接。

然后我通过tnsping来ping数据库服务器Ip和端口:

C:\Documents and Settings\myname>tnsping 192.168.0.118
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 02-3月 -2011 11:00:
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
已使用的参数文件:
D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
已使用 EZCONNECT 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=192.168.0.118))(ADDRESS=(PRO
TNS-12560: TNS: 协议适配器错误

C:\Docum