Linux下重启Oracle数据库

场景: 由于 部门 多人 并发 使用 同一个 Oracle 服务,导致 Oracle 性能急剧下降,每单个简单的SQL  查询服务 都是 很慢,遂于是 关闭Oracle 重启试试


以oracle 用户登录 Linux 机器

(1) 以oracle身份登录数据库,命令:su – oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 启动数据库,命令:startup
(5) 如果是关闭数据库,命令:shutdown immediate
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl
(8) 启动监听器,命令:start
(9) 退出监听器控制台,命令:exit
(10) 重启数据库结束

启动Oracle数据库:

      第一步:打开Oracle监听

  $ lsnrctl start

  第二步:进入sqlplus

  $ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 4 16:15:52 2014

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

SQL>

第三步:使用sysdab角色登录sqlplus

SQL> conn /as sysdba
Connected to an idle instance.

  第四步:启动数据库

SQL> startup 

结果如下:

ORACLE instance started.
Total System Global Area  839282688 bytes
Fixed Size            2217992 bytes
Variable Size          578815992 bytes
Database Buffers      251658240 bytes
Redo Buffers            6590464 bytes
Database mounted.
Database opened.
SQL>

关闭Oracle数据库:

1、关闭数据库 

su oracle
[root@JTWF oracle]# su oracle
bash-4.1$ sqlplus /nolog
登陆sqlplus,结果如下: 
SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 4 15:10:59 2014

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

SQL>
SQL>conn /as sysdba
Connected.
关闭数据库: 
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
关闭数据库后,若执行查询命令, 则会报如下错误: 
SQL> select * from vio_business_request;
select * from vio_business_request
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 14138
Session ID: 75 Serial number: 503
SQL>

退出sqlplus:

SQL> exit   
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


<think>好的,我现在需要回答用户关于在Linux环境下重启Oracle数据库的具体步骤的问题。首先,我需要回忆一下自己之前学过的Oracle数据库管理知识,尤其是涉及关闭启动数据库实例的部分。 用户的问题是关于重启的步骤,所以应该包括关闭数据库和重新启动数据库两个主要部分。根据我之前了解的内容,正确的流程应该是先关闭数据库实例,然后再启动它。不过,在关闭之前,可能需要先以sysdba身份连接到数据库,确保有足够的权限执行操作。 然后,我想到可能需要使用SQL*Plus工具来执行这些命令。例如,用户需要先进入SQL*Plus环境,然后以sysdba身份连接,执行shutdown immediate命令来关闭数据库,之后再执行startup命令来启动。这些步骤是否正确呢?有没有遗漏的部分? 接下来,我需要确认这些命令在Linux终端中的具体执行方式。比如,用户可能需要先切换到oracle用户,或者设置好环境变量,比如ORACLE_SID和ORACLE_HOME。这些环境变量如果没有正确设置,可能会导致命令执行失败。因此,在步骤中可能需要包含这些前提条件的说明。 另外,考虑到权限问题,执行这些命令可能需要使用具有适当权限的用户,比如oracle用户,而不是root用户。所以,在步骤中应该提醒用户切换到oracle用户,或者在执行命令时使用sudo,不过通常建议直接以oracle用户身份操作。 然后,我需要检查是否有引用到提供的参考内容。用户给出的引用[2]中提到了执行sqlplus /nolog和conn /as sysdba,以及shutdown immediate,这与我之前的想法一致。因此,在回答中可以引用这些命令,并按照正确的顺序组织步骤。 但是,用户提供的引用[1]是关于创建目录的,可能和重启步骤无关,所以可能不需要引用到这部分内容。不过,为了确保正确性,应该只引用相关的部分,即引用[2]。 此外,是否需要考虑监听器的重启?有时候,重启数据库实例后,可能需要重启监听器服务,但用户的问题可能仅指数据库实例的重启,因此可能不需要包括监听器的部分。不过,是否需要提到这一点作为补充说明呢?可能需要根据用户的问题范围来决定,但用户明确询问的是重启数据库的方法,所以可能不需要涉及监听器,除非步骤中确实包含。 最后,总结一下步骤:首先连接到数据库关闭实例,再启动实例。中间可能需要检查环境变量和用户权限,确保命令能够顺利执行。同时,在回答中需要将这些步骤分点说明,结构清晰,并且引用提供的参考内容中的相关命令,如引用[2]中的sqlplus和shutdown命令。 可能还需要注意一些细节,比如在关闭数据库时使用shutdown immediate是否是最佳实践,或者是否有其他关闭模式可选,但用户的问题可能只需要基本的步骤,因此可以简要说明使用shutdown immediate的原因,比如它允许当前活动完成后再关闭,避免数据损坏。 另外,启动时使用startup命令是否正确?是的,startup命令会启动实例并打开数据库。是否需要分步骤启动,比如先启动到nomount状态,再mount,再open?一般情况下,直接使用startup即可完成整个过程,所以可以保持步骤简洁。 最后,是否需要验证数据库的状态?例如,在重启后执行一些检查命令,如select status from v$instance; 但用户的问题可能只需要重启步骤,这部分可以作为可选步骤或建议。 总之,回答的结构应包括前提条件(切换用户、设置环境变量)、关闭数据库启动数据库,每一步给出具体的命令示例,并引用相关的参考内容。同时,语言需要清晰,步骤明确,便于用户按照操作。</think>在Linux系统中重启Oracle数据库的步骤如下: ### 1. 切换至Oracle用户并设置环境变量 首先需切换到Oracle数据库的安装用户(通常为`oracle`),并加载环境变量: ```bash su - oracle export ORACLE_SID=<实例名> # 设置实例名,例如ORCL export ORACLE_HOME=<安装路径> # 例如/u01/app/oracle/product/12.1.0/dbhome_1 ``` ### 2. 关闭数据库实例 通过SQL*Plus连接数据库并执行关闭命令: ```bash sqlplus /nolog conn /as sysdba # 以sysdba身份连接[^2] shutdown immediate; # 立即关闭数据库实例 exit ``` ### 3. 启动数据库实例 再次连接并执行启动命令: ```bash sqlplus /as sysdba startup # 启动实例并打开数据库 exit ``` ### 4. 验证状态(可选) 确认数据库状态是否为`OPEN`: ```sql sqlplus /as sysdba SELECT status FROM v$instance; ``` ### 注意事项 - 若需重启监听服务,可额外执行:`lsnrctl stop` → `lsnrctl start` - 使用`shutdown immediate`可避免事务中断导致的数据异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值