如何在linux下重启oracle数据库
第一步:登陆
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、重启计算机。
0条评论