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

Oracle基础知识--启动数据库,连接用户

??? ?首先,使用sqlplus来管理数据库是最高的境界~而且对于我们理解oracle很有帮助,不要过于依赖第三方开发工具,如plsqldeveloper等等,这些工具是用来开发包,存储过程等等比较复杂的结构用的。

?

环境:windowsXP,oracle11g。

?

下面,从登陆数据库开始!

1. 启动服务

??? 第一种方法:右击我的电脑-->管理--> 服务和应用程序 --> 服务 --> 找到OracleOraDb11g_home1TNSListener和OracleServiceXXX(XXX是你的数据库实例名,如果没有改动的话是ORCL)这连个服务,双击,启动,确定。

??? 第二种方法:运行--> cmd --> 输入lsnrctl status,查看监听程序状态,如果监听没有启动的话,会提示:

C:\>lsnrctl status

LSNRCTL for 32-bit Windows: Version 11.1.0.6.0 - Production on 27-9月 -2011 11:22:44

Copyright (c) 1991, 2007, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=caoyongming2)(PORT=1521)))
TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
32-bit Windows Error: 61: Unknown error

??? 此时,可以输入:lsnrctl start,启动完毕监听程序之后,继续输入net start OracleServiceXXX,启动实例的服务即可。

?

??? 第一种方法比较简单,第二种方法很见个人功力...

?

??? 个人建议:如果是自己个人电脑,建议将这两个服务的启动类型设为“手动”,需要的时候根据上面的步骤启动即可,不然很费电脑资源,导致电脑速度变慢。设置方法:双击服务,将启动类型选为“手动”即可...

?

2. 启动sqlplus,连接用户

?

????第一种方法: 运行--> 敲入sqlplus 或者 在命令行下面敲入sqlplus.提示“请输入用户名” 输入 / as sysdba,此时就连接到了sys用户下。

??? 第二种方法:运行--> 敲入sqlplus /nolog,然后conn / as sysdba.

??? nolog是不登陆的意思,只进入sqlplus程序提示界面,等待你输入命令。

?

select status from v$instance;

????可以查看数据库状态,如果为open,则表明数据库已打开。

??? 如果不为open,可以敲入命令:

?

startup force

?

??? 强制打开数据库。以后介绍数据库启动的三个台阶:nomount,mount,open。

?

??? 好,此时连接到的是sys用户,也就是数据库的老大。我们都知道oracle下面有一个scott用户,我们可以尝试连接一下。

SQL> conn scott/tiger
ERROR:
ORA-28000: the account is locked

?

提示用户scott的状态是locked,即是锁定的。此时,需要重新连接到sys用户,将scott用户解锁。代码如下:

SQL> conn / as sysdba
已连接。
SQL>  alter user scott account unlock;
用户已更改。

?

再次连接到scott 用户下:

SQL> conn scott/tiger
已连接。

?

成功。

?

总结:1. 启动监听:lsnrctl start 停止监听使用:lsnrctl stop

???????? 2. 启动实例服务:net start OracleServiceXXX(XXX为实例名)

???????????? 停止实例服务:net stop OracleServiceXXX

?????????????注:后面不可加“;”

???????????? 可以使用下面命令查看数据库实例名

SQL>  show parameter instance_name

???????? 3. 连接用户使用“conn 用户名/密码”, 连接老大sys使用“conn / as sysdba”;

???????? 4. 解锁用户(sys下):alter user 用户名 account unlock; 同理,锁定一个用户使用命令:alter user 用户名???????????? account lock;

?