您的位置:首页 > 数据库 > Oracle

oracle 使用(一)Oracle 启动和关闭

2013-01-22 11:23 375 查看
当你把oracle安装完毕后,首先你要会连接和启动还要查看oracl运行状态,然后才能去考虑怎么去操作。

第一、oracle 连接:oracle 安装在linux系统下你可以在本地机子上去操作,你打开终端要切换到oracle用户下(su - oracle);你也可以用linux远程去连接软件到linux机上操作同样也要切换到oracle用户;在window下你的启动就会装简单很多,一般默认安装就会自动添加到服务启动项里,大部分的是自动启动。所以一般情况下你只需更改里面的选项就可以。注:在这里面的启动只讲在linux下的操作,系统版本redhat 和centos
第二、启动数据库
首先是启去监听程序:
[oracle@oracle ~]$ lsnrctl start
其次在在打开em程序:
[oracle@oracle ~]$ emctl start dbconsole
注:这一项不是必须,是否开启主要是跟据DBA的 需要。
最后才是真正的启动数据库:
[oracle@oracle ~]$ sqlplus /nolog #登录sqlplus
SQL> connect /as sysdba; #用sys连接你也可以这样敲conn /as sysdba;
SQL>startup; #启动数据库实例
第三查看状态
查看监听程序状态:
[oracle@oracle ~]$ lsnrctl status
查看em运行状态
[oracle@oracle ~]$ emctl status dbconsole
数据库实例运行状态分为nomount,mount,open三种:nomount状态下oracle会打开参数文件,分配SGA并启动后台进程;mount状态下,oracle会在nomount的基础上按照初始化参数control_files的设置打开控制文件;open状态下,oracle会在mount的基础上按照控制文件的记录打开所有数据文件和重做日志。可能使用startup [ nomount | mount | open ]来启动实例,如果只使用startup后面没有跟option
默认是按open 状态来启动实例的。其实startup open其过程也是先进入nomount ,然后再进入到mount,最后再到open 。
因为在维护数据库时,我们会跟据我们的操作切换到不同的实例状态。在早期的版本中可以使用alter 命令来切换。这里建议在切换时最好先把实例shutdown然后再去startup [ nomount | mount | open ]切换在你所需要的状态下。
其他打开数据库的方式:
除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。
1> startup restrict #这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具备DBA角色的用户)才能够使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操作数据。
2> startup force #该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库碰到问题不能关闭数据库时采用。
3> alter database open read only #该命令在创建实例连同安装数据库后,以只读方式打开数据库对于那些仅仅提供查询功能的产品数据库能够采用这种方式打开。

第四、关闭oracle
首先是关闭实例:
1、SQL> shutdown normal; #发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待现在连接的任何用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时无需进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。
2、SQL> shutdown immediate; #这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。假如系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的任何用户退出系统,强行回滚当前任何的活动事务,然后断开任何的连接用户。

3、SQL> shutdown transactional; #该选项仅在Oracle 8i后才能够使用。该命令常用来计划关闭数据库,他使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在任何活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。
4、SQL> shutdown abort; #这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。假如下列情况出现时能够考虑采用这种方式关闭数据库。1、 数据库处于一种非正常工作状态,不能用shutdown normal或shutdown immediate这样的命令关闭数据库;2、 需要立即关闭数据库;3、 在启动数据库实例时碰到问题;任何正在运行的SQL语句都将立即中止。任何未提交的事务将不回滚。Oracle也不等待现在连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。
再次关闭em:
[oracle@oracle ~]$ emctl stop dbconsole
最后关闭监听程序
[oracle@oracle ~]$ lsntctl stop

这然就全部把oracle给关闭了本文出自 “沙漠之鹘” 博客,请务必保留此出处http://shamozhihu.blog.51cto.com/6144046/1123836
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: