如何在linux下重启oracle数据库

如何在linux下重启oracle数据库,第1张

第一步:登陆

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

su oracle

第二步:连接

在oracle用户下,输入

sqlplus /nolog

第三步:使用管理员权限

输入

connect /as sysdba

第四步:启动/关闭服务

输入

startup

startup参数

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

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

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

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

shutdown

shutdown的参数

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

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

Transactional 等待用户完成当前的事务

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

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

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

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

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

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

退出sqlplus模式,输入

lsnrctl start

我们管理的有三台windows服务器都有这种情况,监听是一点都不敢动,而且重启之后还会弹出对话框提示 监听遇到了问题需要关闭,不过这个时候监听还是可以用的,但是一旦手动lsnrctl stop listener之后就起不起来了,这个错误是只有在windows操作系统当中才有的,当时我们也没有解决只有重启系统才能把监听启起来,不然的话是没有什么办法启动监听的,最后换成了linux的版本后才稳定下来。 楼主可以考虑将数据库备份后重装一次系统,然后恢复数据库。具体做法是将$ORACLE_BASE/oradata/$ORACLE_SID/ 目录下的所有文件在停机状态下进行copy(包括redo、undo、temp、controlfile、其他数据文件保存起来)还有$ORACLE_HOME/dbs目录下的服务参数文件、密码文件保存下来 ,然后重装oracle,将sid设置为和当前一样的名称,停机将原来保存的文件替换到相应的位置,然后启动数据库即可。

要是这个还不能解决的话,那么就考虑重装系统,然后再安装数据了。 当然这个是最不得已的方法,要是有其他更直接的办法可以解决监听问题的话 那就可以去尝试。

解决办法:

1、从另外一台安装有oracle数据库的机器上(要求oracle的版本一致)的注册表中导出所有的oracle服务。

依次打开注册表目录HEY_LOCAL_MACHINE --> SYSTEM --> ControlSet001 --> Services,导出(在注册表项上右键选择“导出”)所有oracle的项:OracleDBConsoleorcl、 OracleJobSchedulerORCL、OracleOraDb10g_home1iSQLPlus、 OracleOraDb10g_home1TNSListener、 OracleServiceORCL,保存为reg文件。

2、把上一步中导出的注册表文件,导入服务器上。把文件拷贝到数据库服务器上逐个双击即可。

3、修改导出的所有的注册表项,主要修改数据库实例(SID)名和数据库安装路径。

4、重启数据库服务器。

5、启动oracle的Net Manager工具,删除监听程序LISTENER和服务命名中的本机的服务,并重建监听程序和服务命名。

6、启动oracle服务即可。

在服务器上,用命令行分步启动,看看有什么错误:

Oracle的一个实例对应一个数据库,启动分三个步骤(可以分步启动):

sqlplus / as sysdba nolog

sql>startup nomount -- 启动实例,不加载数据库

sql>alter database mount -- 加载数据库

sql>alter database open -- 打开数据库

工具/原料 oracle数据库secureCRT或其他类似工具

方法/步骤

打开secureCRT,连接到数据库服务器,使用oracle用户登录系统

登录Oracle: sqlplus / as sysdba

关闭数据库 SHUTDOWN NORMAL

启动数据库 startup

参考 关闭数据库时的参数:

在shutdown时可选择关闭模式:NORMAL、TRANSACTIONAL、IMMEDIATE或ABORT

• ABORT:在关闭之前执行的任务最少。由于此模式需要在启动之前进行恢复,因此只在需要时才使用此模式。当启动实例时出现了问题,或者因紧急情况(如,通知在数秒内断电)而需要立即关闭时,如果其它关闭方式都不起作用,通常选择使用此模式。

• IMMEDIATE:这是最常用选项。选择此模式会回退未提交的事务处理。

• TRANSACTIONAL:允许事务处理完成

• NORMAL:等待会话断开

如果考虑执行关闭所花费的时间,则会发现ABORT的关闭速度最快,而NORMAL的关闭速度最慢。NORMAL和TRANSACTIONAL花费的时间较长,具体取决于会话和事务处理的数目。

注意:

在SHUTDOWN NORMAL或SHUTDOWN TRANSACTIONAL或 SHUTDOWN IMMEDIATE 这三个模式下关闭数据库,则:

关闭时:执行immediate时,会回退未提交的更改;数据库缓冲区高速缓存,会写入到数据文件;会释放资源。

启动时:不用恢复实例。

在SHUTDOWN ABORT或 实例错误 或STARTUP FORCE,则

关闭时:修改过的缓冲区未写入数据文件;不回退未提交的更改。

启动时:使用联机重做日志文件重新应用更改;使用还原段回退未提交的更改。

我们一般修改到1000~1500,就好了,再大也没有什么用处了。

一般和你机器的内存有关:

给你copy一段:

ORACLE最大连接数问题

(2010-09-08 20:27:17)

转载▼

标签:

oracle优化

it

分类: 多少会点

oracle 10g安装在windows 2003 32位操作系统,连接数到120个就不能连接,报ora12518

服务器IBM XSERVER,内存:4G

oracle 数据库配置的主要参数如下:

processes integer 800

sessions integer 885

pga_aggregate_target big integer 350M

sga_max_size big integer 1256M

sga_target big integer 1152M

shared_pool_size big integer 400M

large_pool_size big integer 16M

数据库配置的连接数是800个,但是现在当oracle的连接数达到250个时候,其他的客户端就无法再连接上oracle服务器了,报个错:ORA-12518: TNS: 监听程序无法分发客户机 ;

但是已经连接上数据库的应用还可以正常应用,就是其他没连上的就再也连不上了,除非已有的连接有退出的,其他的才能再联上,就是可连接的总数是250个;

上网查:说是在可以在listenerora中加入一行: direct_handoff_ttc_<listener name>=off,但是依旧不成;

这期间我尝试着把

pga_aggregate_target 改成200或者500等,结果是一样的;

sga_target改成800m后,结果数据库就起不来了,提示说要不能小于1024m;

后来查到有可能是oracle 10g for win32的一个bug,上网下了补丁,打完补丁后的版本是:10203);还怀疑是不是windows 2003的tcp连接数不够,上网查说好像是有这毛病,下了个2003的补丁,把tcp连接数扩到了1000,结果能够达到可以有350个并发连接,但是再多就又连不上了;

现在就是不太清楚究竟是什么参数配置的不合适,(不管是oracle10g的,还是windows 2003的),才会造成实际上没有达到oracle设置的最大连接数时就不能连接了;

又后来,怀疑是不是windows 2003(32位)的问题,于是就装了个64位的windows 2003,同样版本的oracle 10g,装好后就把连接数process参数配置成800,然后做连接测试,一直可以有800个session连接上来,到现在为止,可以大致总结出症结所在了,就是我装的这个windows 2003 server(32位)的操作系统,在安装oracle 10g(10201-10203)时有问题,连接数不能达到系统配置的那么大;可以采用64位的替代。但是我在想,究竟为什么windows 2003 server(32位)的操作系统+oracle 10g数据库连接数会有限制,有没有什么办法,修改一下2003的配置或者oracle 10g的配置, 就可解决掉这个问题,

解决方案:

一、修改oracle参数

1、原有参数

#pga_aggregate_target=67108864

#processes=500

#sessions=555

# pga_aggregate_target此参数是扩大并发连接数占用内存大小。

# 可调整此参数,放大或缩小,同时影响并发数量。

# 公式: 约=可按照并发数量4M

pga_aggregate_target=720M

# processes、sessions是扩大并发连接数,是同时使用。

# 公式: sessions = processes 11 +5

processes=600

sessions=665

2、在监听参数文件LISTENERORA 文件中增加参数

direct_handoff_ttc_listener = off

3、重新启动数据库服务。

二、1、修改Windows系统中Bootini文件

/3GB /PAE

说明:修改操作系统中Bootini文件,可以使oracle使用更多的内存空间。

2、修改用户组策略中锁定内存页大小权限。

参数修改完毕问题解决。

3、重启计算机。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在linux下重启oracle数据库

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情