数据库启动遇到的问题

   昨天服务器因停电,所有应用关停,第二天来重启数据库,由于这个服务的数据库不太了解,以为只有一个数据库的实例。进入oracle用户启动数据库。数据库虽然是启动了,但是,只启动了默认的实例数据库,不是我要的数据库实例,关闭,重启好几回都无效。在网上查了普及了一些基础知识:区分---数据库名(DB_NAME)/实例名(Instance_Name)/操作系统环境变量(ORACLE_SID).
[size=medium]1.数据库与实例之间是一对多的关系,一个数据库上可以装很多实例,所有碰到这种多实例的数据库,连接上去可以查看下默认的是哪个实例,可以用: (select instance_name from v$instance;).

2.如果想换成其它实例名的话,就要理解(ORACLE_sid)操作系统环境变量,它是用于和操作系统交互的,也就是说,在操作系统中要得到实例名,就必须使用ORACLE_sid.切换成其它的实例可以在 oracle用户名 输入:export ORACLE_SID=efsdb (efsdb 为实例名),验证是否切换到这个用户 输入: echo $ORACLE_SID .

3.关闭数据库:如用 shutdown的话,有时关闭需要好几天,这个太慢了,可以考虑用,shutdown immediate 或者shutdown abort(shutdown immediate----这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。

当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。假如系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的任何用户退出系统,强行回滚当前任何的活动事务,然后断开任何的连接用户。    SHUTDOWN ABORT

这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。假如下列情况出现时能够考虑采用这种方式关闭数据库。

1、 数据库处于一种非正常工作状态,不能用shutdown normal或shutdown immediate这样的命令关闭数据库;

2、 需要立即关闭数据库;

3、 在启动数据库实例时碰到问题;

任何正在运行的SQL语句都将立即中止。任何未提交的事务将不回滚。Oracle也不等待现在连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。)
[/size]

你可能感兴趣的:(oracle,sql,工作,应用服务器,活动)