产品
解决方案
文档与社区
权益中心
定价
云市场
合作伙伴
支持与服务
了解阿里云
备案
控制台
登录/注册
开发者社区
首页
探索云世界
探索云世界
云上快速入门,热门云上应用快速查找
了解更多
问产品
动手实践
考认证
TIANCHI大赛
活动广场
活动广场
丰富的线上&线下活动,深入探索云世界
任务中心
做任务,得社区积分和周边
高校计划
让每位学生受益于普惠算力
训练营
资深技术专家手把手带教
话题
畅聊无限,分享你的技术见解
开发者评测
最真实的开发者用云体验
乘风者计划
让创作激发创新
阿里云MVP
遇见技术追梦人
直播
技术交流,直击现场
下载
下载
海量开发者使用工具、手册,免费下载
镜像站
极速、全面、稳定、安全的开源镜像
技术资料
开发手册、白皮书、案例集等实战精华
插件
为开发者定制的Chrome浏览器插件
探索云世界
新手上云
云上应用构建
云上数据管理
云上探索人工智能
云计算
弹性计算
无影
存储
网络
倚天
云原生
容器
serverless
中间件
微服务
可观测
消息队列
数据库
关系型数据库
NoSQL数据库
数据仓库
数据管理工具
PolarDB开源
向量数据库
热门
Modelscope模型即服务
弹性计算
云原生
数据库
物联网
云效DevOps
龙蜥操作系统
平头哥
钉钉开放平台
大数据
大数据计算
实时数仓Hologres
实时计算Flink
E-MapReduce
DataWorks
Elasticsearch
机器学习平台PAI
智能搜索推荐
人工智能
机器学习平台PAI
视觉智能开放平台
智能语音交互
自然语言处理
多模态模型
pythonsdk
通用模型
开发与运维
云效DevOps
钉钉宜搭
支持服务
镜像站
码上公益
开发者社区
数据库
文章
正文
Oracle基础知识-启动Oracle常见疑难问题分析
2017-12-04
1279
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议
》和 《
阿里云开发者社区知识产权保护指引
》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单
进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
+关注继续查看
实例和数据库的启动与关闭是DBA的重要职责之一。只有打开数据库,其他用户才能对数据库中的数据进行操作。一旦数据库关闭,便不能对其操作。对于DBA们来说,关闭和重新启动数据库以便优化、调整应用程序的运行是经常碰到的事情。如果用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则用户将失去连接,直到数据库重新启动。经常关闭和启动会对数据库性能造成一定的影响,当然也会影响到用户对数据库的使用。本文从管理数据库的角度来分析在Oracle启动和关闭时经常遇到的问题,并总结了在启动和关闭Oracle数据库中应该注意的问题和事项。
启动常见问题
(一)在一个控制文件被损坏情况下,如何正常启动?
系统环境
操作系统:Windows 2000 Advanced Server
数据库: Oracle 8i R2 (8.1.6) for NT 企业版
安装路径:C:\ORACLE
错误现象
因硬盘有坏道,一个控制文件损坏了,或人工误删一个控制文件,控制面板的Oracle相关服务可以启动成功,但用SQL*Plus无法连接。错误提示为“ORA-01034: ORACLE not available”。
解决方法
(1)在开始菜单中直接运行命令,进入“svrmgrl>”提示符模式。
(2)在“svrmgrl>”提示符下键入“connect internal”命令。
(3)在“svrmgrl>”提示符下键入“shutdown abort”命令关闭数据库。
(4)找到init.ora文件,它一般位于“C:\Oracle\admin\oradb\pfile”目录下,然后修改init.ora文件,使无法使用的控制文件不在control_files参数中定义。如“C:\Oracle\oradata\oradb\control03.ctl”,可在init.ora中将其删除掉,或者更换成其它可启动的控制文件。
修改前:
control_files=(“C:\Oracle\oradata\oradb\control01.ctl”.C:\Oracle\oradata\oradb\control02.ctl“,”“C:\Oracle\oradata\oradb\control03.ctl”)
修改后:
control_files=(“C:\Oracle\oradata\oradb\
control01.ctl”,“C:\Oracle\oradata\oradb\control02.ctl”)
(5)重新启动数据库实例,即可解决问题。
注意:在控制文件中最少要有两个控制文件。
(二)联机热备份失败后,如何打开数据库?
系统环境:
操作系统:Windows 2000 Advanced Server
数据库: Oracle 8i R2 (8.1.6) for NT 企业版
安装路径:C:\ORACLE
错误现象
进行联机热备份时,服务器发生故障(如掉电等)。重新启动服务器后,再启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。
解决方法
(1)先将数据库设置为归档模式
C:\>svrmgrl
svrmgrl>connect internal
svrmgrl>alter tablespace 表空间名 begin backup;
说明:这是在表空间进行热备份模式没结束时,就强行关闭数据库所造成的错误。
svrmgrl>shutdown abort
svrmgrl>startup mount
(2)将此表空间的数据文件在没打开数据库时,设置成“end backup”模式
svrmgrl>alter database datafile '表空间的数据文件名' end backup;
(3)执行表空间介质恢复
svrmgrl>recover tablespace 表空间名;
svrmgrl>alter database open;
(三)Oracle启动时,监听器不启动或打开出错?
错误现象:
ORACLE启动时,监听器不启动或打开出错;服务器端:用username/password登录正常,但用username/password@alias登录不成功;客户端:用username/password@alias登录不成功
解决方法
(1)如果是因为修改了NT的机器名,则把listener.ora文件中的host参数全部改为新的NT机器名,重新启动OracleTNSListener80服务即可。
例如:
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = NT_Name)(Port = 1521))
(ADDRESS=(PROTOCOL=TCP)(Host=NT_Name)(Port= 1526))
)
(2)使用监听器实用程序:LSNRCTL80.exe。
(3)检查监听器参数文件:c:\orant\NET80\admin\
listener.ora。
(4)检查监听器日志文件:c:\orant\NET80\log\
listener.log。
(5)Tnsnames.ora文件配置错误,重新配置。
(6)检查client端 Tnsnames.ora。
(四)Oracle Enterprise Manager(OEM)工具中如何以SYSOPER、SYSDBA方式登录?
软件环境:
Windows NT4.0+ORACLE 8.0.4
ORACLE安装路径为:C:\ORANT
错误现象
在以Oracle Enterprise Manager(OEM)工具登录数据库时,不论是sys用户、system用户,还是其他用户,在Connect As栏中以sysdba或sysoper角色登录均遭拒绝,报错:Ora-01017:invalid username/password;logon denied,但以normal登录成功。
出错分析
在Oracle数据库中有三种连接方式:
(1)normal正常方式,基本连接方式,级别较低。
(2)sysopr系统方式,系统连接方式,高一级。
(3)sysdba管理员方式,是数据库管理员连接方式,级别最高。
Oracle8中,sys、system已经只是具有特权的普通用户,而internal才是DBA。所以在DBA进行管理数据时,只能使用具有特权的“internal”连接方式才不会出错。
解决方法
以internal/oracle方式连接即可。
Oracle数据库的启动
启动实例
启动实例,以使Oracle Server完成如下任务:
◆ 读参数文件init.ora文件,以决定如何初始化该实例;
◆ 根据参数文件中提供的SGA大小,来为SGA分配存贮空间;
◆ 启动后台进程;
◆ 打开后台跟踪文件。
实例启动分正常启动和约束启动。所谓约束启动,就是当数据库打开后,只能使具有RESTRICTED SESSION系统特权的用户与其相连接。而正常启动则允许所有用户与其相连接。
实例启动有如下三种方式:
◆ 只启动实例;
◆ 启动实例并安装数据库,但不打开数据库;
◆ 启动实例,并安装和打开数据库。
数据库安装
数据库安装就是将指定的数据库与已启动的实例相联系。被安装的数据库在打开之前保持关闭,此时只有DBA能存取。在安装数据库时,实例查找参数文件中的CONTROL-Files参数所指定的控制文件,并打开它,从中取得数据库的数据文件名和日志文件名,然后确认这些文件是否存在。如果希望多个实例并发地安装同一个数据库,则DBA可选择并行方式安装该数据库。如果希望只有一个实例可安装该数据库,则选择专用方式安装该数据库。如果ORACLE版本不支持并行服务器选项,则只能按专用方式安装数据库。当选择并行方式安装数据库时,并发安装同一个数据库的实例个数受预定义最大值的限制,而且在参数文件中必须有命名的私用回滚段或可用的公用回滚段。
打开数据库
在安装的数据库被打开之前,所有合法的用户(除DBA)都不能对该数据库进行连接和存取;只有被打开以后才能进行连接和存取。在打开数据库的同时,实例也打开在线的数据文件和在线日志文件。如果数据库是由于实例的异常而中止或电源故障而被关闭时,则下次打开它时会自动执行实例恢复。在数据库被打开时,实例试图获取一个或多个回滚段。在分布事务中,若当—个数据库因电源故障等突然被关闭,此时若有一个或多个分布式事务还没提交或回滚,则在该数据库被重新打开时,继续完成实例恢复,RECO后台进程将自动、立即和一致地解决尚未提交或回滚的任何分布事务。
常用打开数据库和实例命令方式
(1)startup nomount
非安装启动,这种启动方式下可执行:重建控制文件、重建数据库和启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
(2)startup mount dbname
安装启动,这种启动方式下可执行:数据库日志归档、数据库恢复和重新命名一些数据库文件。
(3)startup open dbname
先执行“nomount”,然后执行“mount”,再打开包括Redolog文件在内的所有数据库文件,这种方式下可访问数据库中的数据。
(4)startup等于以下三个命令
startup nomount
alter database mount
alter database open
(5)startup restrict
约束方式启动,这种方式能够启动数据库,但只允许具有一定特权的用户访问,非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: Oracle 只允许具有RESTRICTED SESSION权限的用户使用。
(6)startup force
强制启动方式,当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令。
(7)startup pfile=参数文件名
带初始化参数文件的启动方式,先读取参数文件,再按参数文件中的设置启动数据库。例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora
(8)startup exclusive
SQL>conect internal
作为internal连接时,connect命令不需要口令,因为其授权是由操作系统隐式提供的。Internal连接等价于sys连接,它们都是拥有Oracle数据字典的用户。
应用
在Unix下启动Oracle8i,其整个过程步骤如下:
(1)telnet 主机IP或者是主机名
user:***** password:*****
(2)lsnrctl start
(3)svrmgrl
(4)svrmgrl>connect internal
(5)svrmgrl>startup
实例和数据库的关闭
关闭实例的步骤
关闭实例后,SGA从内存撤消,后台进程被停止。关闭实例的步骤如下:
(1)启动SQL*DBA
(2)作为INTERNAL用户与数据库相连接
(3)关闭实例
◆ 关闭数据库
◆ 卸下数据库
◆ 关闭实例
关闭数据库
数据库关闭时,首先将SGA中的所有数据库数据和日志项数据写入相应的数据文件和日志文件。然后关闭所有联机数据文件和日志文件。在数据库关闭后和卸下之前,控制文件仍保持打开,此时如果需要打开时,还可重新打开数据库。
卸下数据库
卸下数据库就是切断实例与数据库的联系,关闭数据库控制文件,使内存仅保留实例。
常用关闭数据库和实例命令
(1)shutdown normal(正常关闭数据库)
在正常关闭情况下,Oracle在关闭数据库前,等待所有与之相连接的用户正常结束其对话。于是在下次启动数据库时,就不需要恢复实例。
(2)shutdown immediate(立即方式关闭数据库)
当选择Immediate关闭方式时,即实现直接关闭。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭, 而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
该关闭方式主要用于下列情况:
①马上停电;
②Oracle正在非正规的运行数据库或一个数据库应用。
该方式关闭数据库过程如下:
①Oracle结束当前正在处理的SQL语句;
②回滚未提交的事务;
③Oracle不等待与之相连接的用户退出连接,就直接中断他们,使用这种关闭方式,下次启动数据库时,Oracle应自动执行实例恢复。
(3)shutdown abort(撤消实例方式关闭数据库)
这是一种最快的关闭方式,它主要用于下列情况:
①一分钟后就要停电;
②Oracle正在非正规的运行数据库或一个数据库应用,并且其它的关闭方式失效;
③启动一个数据库实例时碰到问题。
该方式关闭数据库的过程如下:
①Oracle不等待调用完成,直接中断正在处理的SQL语句;
②回滚未提交事物。
使用这种关闭方式,下次启动数据库时,Oracle应自动执行实例恢复。启动和关闭实例和数据库的操作需要connect internal系统特权,安装和打开数据库的操作还要有alter database系统特权。直接关闭数据库,正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。
应用
在Unix中关闭Oracle8i,其具体步骤如下:
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>exit
在关闭Oracle数据库时需注意问题
不要提前关闭SQL*NET。
当需要SHUTDOWN数据库,不要提前关闭SQL*NET,直到确认关闭了SERVER上的所有数据库后再关闭SQL*NET。如果关闭了SQL*NET,用户将失去和数据库的会话。
存档或删除旧的trace files和logs
当启动Oracle的一个实例时,Oracle把关于该实例的诊断信息写入指定的trace和log文件。每个后台进程都增加一个TRACE文件,它被存储在指定的目录,该路径由INIT.ORA或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定。用户在数据库中遇到一个内部错误时也增加用户的TRACE文件,该文件的位置由INIT.ORA或CONFIG.ORA文件中的USER_DUMP_DEST参数指定。TRACE文件的个数和名称形式由使用数据库的操作系统决定。
在每次启动和关闭数据库时,Oracle不会自动删除TRACE文件。如果长期不删除这些无用文件,它们将占据数据库中大量的自由空间。数据库管理员应该很好的管理这些文件,可以采取删除或者存档的策略来避免无用文件占用大量自由空间。
SQL*NET也产生LOG文件,一般叫LISTENER.LOG,LISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善管理它也能有效的利用空间。查看该文件可以键入命令:
lsnrctl status
在Oracle8i中使用该命令,其显示结果为:
o200 5% lsnrctl status
LSNRCTL for SGI IRIX64: Version 8.1.6.0.0 - Production on 09-APR-2003 09:16:26
(c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for SGI IRIX64: Version 8.1.6.0.0 - Production
Start Date 19-MAR-2003 14:43:53
Uptime 20 days 18 hr. 4607182418800017439 min. 56 sec
Trace Level off
Security OFF
SNMP OFF
Listener Log File /data/ora8i/OraHome/network/log/listener.log
The listener supports no services
The command completed successfully
改名ALERT LOG文件
ALERT LOG文件也是用来记录INSTANCE的诊断信息的。它的存放目录也通过BACKGROUND_DUMP_DEST参数来指定。一般情况下ALERT LOG文件命名方式为:ALERT_ .LOG。ALTER LOG文件包括了一些数据库主要事件信息,例如:startup和shutdown及redolog的使用、表空间的改变、文件的改变、内部错误信息和数据库备份状态的改变等。
ALTER LOG在后续数据库的使用中,其增长速度非常快。如果一段时间后,再查看它时,其文件已经变得非常大,所以查看它是非常的费劲。一般来讲,为了既能留下这些有用的信息,同时不至于浪费很大的空间,最好的管理办法就是给它改名。可以在任何时候更改ALTER LOG文件名,建议在SHUTDOWN/STARTUP数据库时更改名字。
本文转自博客园xingoo的博客,原文链接:
Oracle基础知识-启动Oracle常见疑难问题分析
,如需转载请自行联系原博主。
文章标签:
日志服务
数据库
关系型数据库
Oracle
SQL
监控
关键词:
Oracle数据库一键上云分析
Oracle数据库一键上云基础知识
Oracle数据库一键上云启动
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
青夜之衫
目录
相关文章
公子小六
|
5月前
|
SQL
Oracle
关系型数据库
【1024】图说Oracle基础知识
【1024】图说Oracle基础知识
公子小六
52
0
0
啸啸说
|
7月前
|
SQL
Oracle
关系型数据库
Oracle数据库管理员经典试题【Oracle基础知识测试】
Oracle数据库管理员经典试题【Oracle基础知识测试】
啸啸说
66
0
0
度假的小鱼
|
SQL
Oracle
安全
1 Oracle 基础知识
学习1 Oracle 基础知识。
度假的小鱼
144
0
0
青夜之衫
|
SQL
Oracle
关系型数据库
Oracle基础知识-SQL简单命令
青夜之衫
1023
0
0
青夜之衫
|
Oracle
关系型数据库
数据库
oracle基础知识-冷备份 热备份
青夜之衫
805
0
0
青夜之衫
|
SQL
Oracle
关系型数据库
Oracle基础知识-sqlplus使用
青夜之衫
1224
0
0
青夜之衫
|
SQL
Oracle
关系型数据库
Oracle基础知识-oracle常用命令
青夜之衫
857
0
0
青夜之衫
|
存储
Oracle
关系型数据库
Oracle基础知识-数据迁移
青夜之衫
1137
0
0
青夜之衫
|
SQL
Oracle
关系型数据库
Oracle基础知识-Oracle不同的启动关闭方式
青夜之衫
1248
0
0
余二五
|
Oracle
关系型数据库
通过案例学调优之--Oracle Latch基础知识
余二五
827
0
0
热门文章
最新文章
1
Oracle安装错误——[ INS-32010 ] 主目录位置包含无效字符
2
Oracle 入门
3
flink oracle cdc实时同步(超详细)
4
Oracle,Postgresql等数据库使用
5
php7.2安装OCI8扩展支持oracle数据库
6
windows 使用 Oracle Database 19c
7
FlinkCdc抽取Oracle数据时问题求解
8
LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)
9
医院检验科LIS系统源码,oracle数据库、报告管理、质控管理
10
小白也能学会的《Oracle数据库的安装与基本配置》
1
Oracle - Spool导出数据到TXT文件
5
2
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
18
3
【Oracle】sqlplus 复制数据文件时出现拒绝访问
13
4
【Oracle学习】—新建数据库连接,超详细
13
5
【Oracle学习】—Oracle11g修改用户名与密码(一)
18
6
flinkcdc的oracle同步到oracle
14
7
【Oracle报错】[INS-13001] 环境不满足最低要求。
14
8
选择适合您网站的 SQL 托管:MS SQL Server、Oracle、MySQL
21
9
小白也能学会的《Oracle数据库的安装与基本配置》
23
10
医院检验科LIS系统源码,oracle数据库、报告管理、质控管理
24
相关电子书
更多
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践
Oracle云上最佳实践
推荐文章
更多
重磅来袭!参与评测赢Iphone14 pro!
文件存储NAS评测征集令!
招募!寻找技术人的伯乐!
乘风者计划邀您入驻社区,精彩权益即刻享
推荐镜像
更多
oracle
postgresql
mysql
下一篇
手动搭建WordPress(CentOS 8)