如何怎样Linux怎样启动Oracle实例

如何怎样Linux怎样启动Oracle实例,第1张

方法/步骤

Linux中启动oracle的数据库实例,需要注意以下几点。

下面是Linux启动oracle数据库的步骤

首先打开命令行窗口,切换到su - oracle,这点很重要。

启动数据库监听

打开sqlplus

用sys账户以sysdba的身份登录

输入sys用户的密码,然后按下enter

登录成功后,输入startup

步骤阅读

稍等片刻,可以看到数据库实例已经运行了。

Linux下oracle数据库启动和关闭 *** 作

第一步:登陆

root登陆之后切换到oracle用户上,输入

suoracle

第二步:连接

在oracle用户下,输入

sqlplus/nolog

第三步:使用管理员权限

输入

connect/assysdba

第四步:启动/关闭服务

输入

startup

startup参数

不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!

nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!

mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!

谢谢!不准确的地方请指教!

shutdown

shutdown的参数

Normal需要等待所有的用户断开连接

Immediate等待用户完成当前的语句

等待用户完成当前的事务

Abort不做任何等待,直接关闭数据库

normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接

immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。

在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。

abort执行强行断开连接并直接关闭数据库。

第五步:如果是启动服务,要开启监听

退出sqlplus模式,输入

lsnrctlstart

一 检查共享设备

一般情况下,存放OCR和Voting Disk的OCFS2 或者raw 都是自动启动的。 如果他们没有启动,RAC 肯定是启动不了。

11 如果使用ocfs2的

检查ocfs2 状态:/etc/initd/o2cb status

在挂载之前,/etc/initd/o2cb status 显示为Checking O2CB heartbeat: Not active。在格式化和挂载文件系统之前,应验证 O2CB 在两个节点上均联机;O2CB 心跳当前没有活动,因为文件系统还没有挂载 。挂载之后就会变成active。mount -t ocfs2 -o datavolume /dev/sdb1 /u02/oradata/orcl

12 如果使用raw device

[oracle@node1 raw]$ cd /dev/raw/

[oracle@node1 raw]$ ls -l

total 0

crw-r----- 1 oracle oinstall 162, 1 Jun 14 22:20 raw1

crw-r----- 1 oracle oinstall 162, 2 Jun 14 23:56 raw2

crw-r----- 1 oracle oinstall 162, 3 Jun 14 23:56 raw3

crw-r----- 1 oracle oinstall 162, 4 Jun 14 22:20 raw4

[oracle@node1 raw]$

或者:

[root@raw1 initd]# /etc/initd/rawdevices status

/dev/raw/raw1: bound to major 8, minor 17

/dev/raw/raw2: bound to major 8, minor 18

13 检查ASM

[oracle@node1 ~]$ /etc/initd/oracleasm listdisks

VOL1

VOL2

[oracle@node1 ~]$

二. 自动启动RAC并检查相关进程

RAC 在启动的时候crs 等进程都是自动启动的:

[oracle@node1 ~]$ ls -l /etc/initd/init

-r-xr-xr-x 1 root root 1951 Mar 24 05:30 /etc/initd/initcrs

-r-xr-xr-x 1 root root 4719 Mar 24 05:30 /etc/initd/initcrsd

-r-xr-xr-x 1 root root 35399 Mar 24 05:30 /etc/initd/initcssd

-r-xr-xr-x 1 root root 3195 Mar 24 05:30 /etc/initd/initevmd

[oracle@node1 ~]$

查看一下crs 的状态,正常情况下, 进程都是online的:

[root@raw1 bin]# /crs_stat -t

Name Type Target State Host

------------------------------------------------------------

orarawdb application ONLINE ONLINE raw1

orarawrawcs application ONLINE ONLINE raw1

oraaw1srv application ONLINE ONLINE raw1

oraaw2srv application ONLINE ONLINE raw2

oraw1inst application ONLINE ONLINE raw1

oraw2inst application ONLINE ONLINE raw2

oraSM1asm application ONLINE ONLINE raw1

oraW1lsnr application ONLINE ONLINE raw1

oraraw1gsd application ONLINE ONLINE raw1

oraraw1ons application ONLINE ONLINE raw1

oraraw1vip application ONLINE ONLINE raw1

oraSM2asm application ONLINE ONLINE raw2

oraW2lsnr application ONLINE ONLINE raw2

oraraw2gsd application ONLINE ONLINE raw2

oraraw2ons application ONLINE ONLINE raw2

oraraw2vip application ONLINE ONLINE raw2

如果出现以下情况:UNKNOWN状态

[root@rac2 bin]# /crs_stat -t

Name Type Target State Host

------------------------------------------------------------

oraracdb application ONLINE UNKNOWN rac1

oraorclcs application ONLINE UNKNOWN rac1

oraac1srv application OFFLINE OFFLINE

oraac2srv application OFFLINE OFFLINE

orac1inst application ONLINE UNKNOWN rac1

orac2inst application ONLINE UNKNOWN rac2

oraSM1asm application ONLINE ONLINE rac1

oraC1lsnr application ONLINE UNKNOWN rac1

orarac1gsd application ONLINE UNKNOWN rac1

orarac1ons application ONLINE ONLINE rac1

orarac1vip application ONLINE ONLINE rac1

oraSM2asm application ONLINE ONLINE rac2

oraC2lsnr application ONLINE UNKNOWN rac2

orarac2gsd application ONLINE UNKNOWN rac2

orarac2ons application ONLINE ONLINE rac2

orarac2vip application ONLINE ONLINE rac2

解决方法:

1 用crs_stat 查看进程全部信息:

[root@rac2 bin]# /crs_stat

NAME=oraracdb

TYPE=application

TARGET=ONLINE

STATE=ONLINE on rac2

NAME=orarac1LISTENER_RAC1lsnr

TYPE=application

TARGET=ONLINE

STATE=UNKNOWN on rac1

NAME=orarac1gsd

TYPE=application

TARGET=ONLINE

STATE=UNKNOWN on rac1

NAME=orarac2LISTENER_RAC2lsnr

TYPE=application

TARGET=ONLINE

STATE=UNKNOWN on rac2

2 对于offline 的进程,我们可以直接手动的启动它

[root@rac2 bin]# /crs_start oraracorclrac1srv

Attempting to start `oraracorclrac1srv` on member `rac1`

Start of `oraracorclrac1srv` on member `rac1` succeeded

3 对于UNKNOWN 的进程,我们可以先stop 它, 在start。

[root@rac2 bin]# /crs_stop orarac2gsd

Attempting to stop `orarac2gsd` on member `rac2`

Stop of `orarac2gsd` on member `rac2` succeeded

[root@rac2 bin]# /crs_start orarac2gsd

Attempting to start `orarac2gsd` on member `rac2`

Start of `orarac2gsd` on member `rac2` succeeded

4 如果crs_stop不能结束,crs_start 不能启动的进程,我们有2中方法来解决:

41)是用crs_stop -f 参数把crs中状态是UNKNOWN的服务关掉,然后再用crs_start -f (加一个-f的参数)启动所

有的服务就可以。要分别在两个节点上执行;

[oracle@rac2 ~]$ crs_start -f oraora9iora9i2inst

Attempting to start `oraora9iora9i2inst` on member `rac2`

Start of `oraora9iora9i2inst` on member `rac2` succeeded

[oracle@rac2 ~]$ crs_stop -f oraora9idb

Attempting to stop `oraora9idb` on member `rac2`

Stop of `oraora9idb` on member `rac2` succeeded

42)转换到root用户下用/etc/initd/initcrs stop先禁用crs,然后再用/etc/initd/initcrs start去启用crs,

启用crs后会自动启动crs的一系列服务,注意此种方法需要在两台节点上都执行;

5 可以用命令一次启动和关闭相关进程

[root@rac2 bin]# /crs_stop -all

[root@rac2 bin]# /crs_start -all

三. 手动启动RAC

一般情况下每次节点启动的时候,所有服务都会自动启动,如果需要关闭或者启动某个节点,如下所示

停止RAC:

emctl stop dbconsole (EM控制台,根据自己是否安装EM 执行)

srvctl stop instance -d <dbname> -i <instance_name1>

srvctl stop instance -d <dbname> -i <instance_name2>

srvctl stop asm -n <node_name1>

srvctl stop asm -n <node_name2>

srvctl stop nodeapps -n <node_name1>

srvctl stop nodeapps -n <node_name2>

启动RAC:

和上面的步骤正好相反即

srvctl start nodeapps -n <node_name1>

srvctl start nodeapps -n <node_name2>

srvctl start asm -n <node_name1>

srvctl start asm -n <node_name2>

srvctl start instance -d <dbname> -i <node_name2>

srvctl start instance -d <dbname> -i <node_name1>

emctl start dbconsole

使用 SRVCTL 启动/停止所有实例及其启用的服务。

srvctl start database -d <dbname>

srvctl stop database -d <dbname>

注:CRS Resource 包括GSD(Global Serveice Daemon),ONS(Oracle Notification Service),VIP, Database, Instance 和 Service 这些资源被分成2类:GSD,ONS,VIP 和 Listener 属于Noteapps类;Database,Instance 和Service 属于 Database-Related Resource 类。

示例:

[root@raw1 bin]# /crs_stat -t

Name Type Target State Host

------------------------------------------------------------

orarawdb application ONLINE ONLINE raw1

orarawrawcs application ONLINE ONLINE raw1

oraaw1srv application ONLINE ONLINE raw1

oraaw2srv application ONLINE ONLINE raw2

oraw1inst application ONLINE ONLINE raw1

oraw2inst application ONLINE ONLINE raw2

oraSM1asm application ONLINE ONLINE raw1

oraW1lsnr application ONLINE ONLINE raw1

oraraw1gsd application ONLINE ONLINE raw1

oraraw1ons application ONLINE ONLINE raw1

oraraw1vip application ONLINE ONLINE raw1

oraSM2asm application ONLINE ONLINE raw2

oraW2lsnr application ONLINE ONLINE raw2

oraraw2gsd application ONLINE ONLINE raw2

oraraw2ons application ONLINE ONLINE raw2

oraraw2vip application ONLINE ONLINE raw2

--关闭

[oracle@node1 bin]$ /srvctl stop instance -d RACDB -i RACDB1

[oracle@node1 bin]$ /srvctl stop instance -d RACDB -i RACDB2

[oracle@node1 bin]$ /srvctl stop asm -n node1

[oracle@node1 bin]$ /srvctl stop asm -n node2

[oracle@node1 bin]$ /srvctl stop nodeapps -n node1

[oracle@node1 bin]$ /srvctl stop nodeapps -n node2

[oracle@node1 bin]$ /crs_stat -t

Name Type Target State Host

------------------------------------------------------------

oraB1inst application OFFLINE OFFLINE

oraB2inst application OFFLINE OFFLINE

oraRACDBdb application OFFLINE OFFLINE

oraSM1asm application OFFLINE OFFLINE

oraE1lsnr application OFFLINE OFFLINE

oranode1gsd application OFFLINE OFFLINE

oranode1ons application OFFLINE OFFLINE

oranode1vip application OFFLINE OFFLINE

oraSM2asm application OFFLINE OFFLINE

oraE2lsnr application OFFLINE OFFLINE

oranode2gsd application OFFLINE OFFLINE

oranode2ons application OFFLINE OFFLINE

oranode2vip application OFFLINE OFFLINE

[oracle@node1 bin]$

四 在启动的过程中最好检测着crs、ASM和数据库的日志:

crs日志:

[oracle@node1 node1]$ tail -f /opt/ora10g/product/1020/crs_1/log/node1/alertnode1log

ASM日志:

[oracle@rac1 ~]$ tail -f /opt/ora10g/admin/+ASM/bdump/alert_+ASM1log

数据库日志:

[oracle@rac1 ~]$ tail -f /opt/ora10g/admin/RACDB/bdump/alert_RACDB1log

首先,RAC是基于应用的集群,HA是基于 *** 作系统的集群,两种集群有很大区别的。

RAC是在集群中的每台服务器上启动一个数据库实例,同时对用户群组的请求进行响应。而HA其实是由 *** 作系统决定数据库运行在哪个主机上,其他主机上面是一般是不运行任何数据库的(除了双机互备系统),实际上HA是个单机数据库,它是为避免单个主机故障而出现的。

crs_stat 命令是oracle的集群组件中的工具。如果使用crs_stat -t命令返回结果如下:

rac2-> crs_stat -t

Name Type Target State Host

------------------------------------------------------------

oraCRMcs application OFFLINE OFFLINE

oradb1srv application OFFLINE OFFLINE

oradevdbdb application ONLINE ONLINE rac2

orab1inst application ONLINE ONLINE rac1

orab2inst application ONLINE ONLINE rac2

oraSM1asm application ONLINE ONLINE rac1

oraC1lsnr application ONLINE OFFLINE

orarac1gsd application ONLINE ONLINE rac1

orarac1ons application ONLINE ONLINE rac1

orarac1vip application ONLINE ONLINE rac1

oraSM2asm application ONLINE ONLINE rac2

oraC2lsnr application ONLINE OFFLINE

orarac2gsd application ONLINE ONLINE rac2

orarac2ons application ONLINE ONLINE rac2

orarac2vip application ONLINE ONLINE rac2

包含以下两行

orab1inst application ONLINE ONLINE rac1

orab2inst application ONLINE ONLINE rac2

就说明是RAC数据库

其中第一行说明orab1inst这个数据库实例是在rac1这个主机上online的

同理第二行是orab2inst这个数据库实例是在rac2这个主机上online的

(1)startup(用sys用户或者其他拥有启动数据库权限的用户登录数据库软件,然后执行该命令即可,如果存在多个实例,请在启动前确认SID),数据库有三个状态nomount,mount,和open,默认开启到open,如果开启到另外两个状态,那么可以通过alter命令改变状态。

(2)如果是rac中启停数据库节点,那么有专门的命令srvcrl(这个仅仅是命令的 *** 作符,后面有参数的,参数我就不写了,具体可以查一下,网上很多与偶内容的),另外还有crscrl(启停crs服务的命令,同样也是 *** 作符,后面有参数的,这里也不写了,自己查一下就可以了)

(3)启动数据库还有一个命令就是启动监听,lsnrctl命令(后面同样有参数,能启动停止,也能查询监听状态,这个监听的基本命令)

关闭:

srvctl stop instance -d orcl -i orcl1

srvctl stop instance -d orcl -i orcl2

启动:

srvctl start instance -d orcl -i orcl1

srvctl start instance -d orcl -i orcl2

以上命令假设你的数据库名为orcl,实例名分别为orcl1,orcl2

启动oracle数据库步骤:

首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:

第一步:打开Oracle监听

$ lsnrctl start

第二步:进入sqlplus

$ sqlplus /nolog

SQL>

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

SQL> conn /as sysdba

第四步:启动数据库

SQL> startup

经过上面的四个步骤,oracle数据库就可以启动了。

关闭数据库用 shutdown 是要等待事物结束才关闭,强制关闭用 shutdown abort。

以上就是关于如何怎样Linux怎样启动Oracle实例全部的内容,包括:如何怎样Linux怎样启动Oracle实例、linux下怎么启动从的数据库(linux下启动oracle数据库)、如何进行 Oracle 10g RAC关闭及启动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9875591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存