ORACLE数据库备份技术
ORACLE数据库是一种大型关系型的数据库,可以存贮达到存储TB级的数据,那么如何保证这些数据的安全尤其至关重要,我们制定了一整套的ORACLE数据库的备份制度。供大家参考。
ORACLE数据库有两种运行方式:一是归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复所有已提交的事物;二是不归档方式(NOARCHIVELOG),恢复数据库到最近的回收点。我们根据数据库的高可用性和用户可承受丢失的工作量的多少,把我们正式运行的数据库采用为归档方式;那些正在开发和调试的数据库采用不归档方式。在创建数据库时,作为创建数据库的一部分,就决定了数据库初始的存档方式。一般情况下为NOARCHIVELOG方式。当数据库创建好以后,根据我们的需要把需要运行在归档方式的数据库改成ARCHIVELOG方式。
关闭数据库,备份已有的数据改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现的问题作出保护。
下面开始具体介绍:
启动Instance ,Mount数据库但不打开数据库,来改变归档方式
sqldba lmode=y(svrmgrl)
sqldba>connect internal
sqldba>startup mount
sqldba>alter database archivelog;
使能自动存档
在初始化文件init*.ora(一般放ORACLE根目录的下层目录dbs下)加参数:
log_archive_start=true
指定存档的重做登录文件名和存放的位置
同样是在初始化文件init*.ora中加入下面的参数:
log_archive_format=%S.arc
log_archive_dest=/arch12/arch (arch12 是日志文件存放的目录)
关闭数据库,重新启动数据库,归档方式转换完成。
根据数据库的运行方式和可承受丢失的工作量来决定数据库的回收制度对于不归档方式,我们用的是ORACLE数据库的逻辑备份Export ,回收的制度是:一个月作一次全备份(x01.dmp),一周作一次累积备份(c*.dmp),一天一次增量备份(I*.dmp),具体的是星期一到星期五作增量备份,星期六做累积备份或全备份,每次做完备份后自动传到其它的机器上存储。这些备份都是自动执行的,后面给出程序文本。
对于归档方式,我们用的是ORCALE的物理备份:当数据库创建好以后,做一次物理上的全备份,平时在不关闭数据库的前提下,一个星期对经常改变的数据文件做联机的数据库数据文件的物理备份;当数据库的结构发生改变,如:增加表空间,加数据文件等,如允许关机,正常关闭数据库,重新做数据库全备份,否则,备份控制文件,备份数据文件照常。联机的日志文件我们是写在阵列上的,不用镜象和备份。
我们拿曙光AIX操作系统为例,来讲解以下如何做自动备份:
首先建UNIX用户demo/demo ;
拷贝oracle用户下的 .profile 到demo 用户下,以保证demo 用户可以用Export命令;
用root用户登录,编辑/var/adm/cron/cron.allow 加入用户名demo,这样demo用户就有权自动执行数据库备份的shell程序;
创建数据库备份程序,放到本用户的下层目录bin下,并且这些文件要有可执行权
Oracle数据库备份与恢复的三种方法(1)
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)、“完全”增量导出(Complete)
即备份三个数据库,比如:
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
(3)、“累积型”增量导出
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。比如数据库的被封任务可以做如下安排:
星期一:完全备份(A)
星期二:增量导出(B)
星期三:增量导出(C)
星期四:增量导出(D)
星期五:累计导出(E)
星期六:增量导出(F)
星期日:增量导出(G)
如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:第一步:用命令CREATE DATABASE重新生成数据库结构;
第二步:创建一个足够大的附加回滚。
第三步:完全增量导入A:
第四步:累计增量导入E:
第五步:最近增量导入F:
二、冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:
1、是非常快速的备份方法(只需拷文件)
2、容易归档(简单拷贝即可)
3、容易恢复到某个时间点上(只需将文件再拷贝回去)
4、能与归档方法相结合,做数据库“最佳状态”的恢复。
5、低度维护,高度安全。
但冷备份也有如下不足:
1、单独使用时,只能提供到“某一时间点上”的恢复。
2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。
4、不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:
1、所有数据文件
2、所有控制文件
3、所有联机REDO LOG文件
4、Init.ora文件(可选)
值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。
下面是作冷备份的完整例子。
(1)关闭数据库
(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
(3)重启Oracle数据库
三、热备份
热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:
1.数据文件一个表空间一个表空间的备份。
(1)设置表空间为备份状态
(2)备份表空间的数据文件
(3)回复表空间为正常状态
2.备份归档log文件
(1)临时停止归档进程
(2)log下那些在archive rede log目标目录中的文件
(3)重新启动archive进程
(4)备份归档的redo log文件
3.用alter database bachup controlfile命令来备份控制文件热备份的优点是:
1.可在表空间或数据库文件级备份,备份的时间短。
2.备份时数据库仍可使用。
3.可达到秒级恢复(恢复到某一时间点上)。
4.可对几乎所有数据库实体做恢复
5.恢复是快速的,在大多数情况下爱数据库仍工作时恢复。
热备份的不足是:
1.不能出错,否则后果严重
2.若热备份不成功,所得结果不可用于时间点的恢复
3.因难于维护,所以要特别仔细小心,不允许“以失败告终”。
(T114)
ORACLE 数据库备份技术
1 引言
---- ORACLE数据库是一种大型关系型的数据库,可以存贮达到存贮TB的数据,那么如何保证这些数据的安全尤其至关重要,我们从1991年开始使用ORACLE数据库,通过这些年的使用,我们制定了一整套的ORACLE数据库的备份制度。现在把我们的备份制度介绍给大家,供大家参考。
---- 2 根据实际需要决定数据库的运行方式
---- ORACLE数据库有两种运行方式:一是归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复所有已提交的事物;二是不归档方式(NOARCHIVELOG),恢复数据库到最近的回收点。我们根据数据库的高可用性和用户可承受丢失的工作量的多少,把我们正式运行的数据库采用为归档方式;那些正在开发和调试的数据库采用不归档方式。
---- 3 如何改变数据库的运行方式
---- 3.1在创建数据库时设置数据库的运行的方式
---- 在创建数据库时,作为创建数据库的一部分,就决定了数据库初始的存档方式。一般情况下为NOARCHIVELOG方式。当数据库创建好以后,根据我们的需要把需要运行在归档方式的数据库改成ARCHIVELOG方式。
---- 3.2改变不归档方式为为归档方式
关闭数据库,备份已有的数据
改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现的问题作出保护。
启动Instance ,Mount数据库但不打开数据库,来改变归档方式
sqldba lmode=y(svrmgrl)
sqldba>connect internal
sqldba>startup mount
sqldba>alter database archivelog;
使能自动存档
在初始化文件init*.ora(一般放ORACLE根目录的下层目录dbs下)加参数:
log_archive_start=true
指定存档的重做登录文件名和存放的位置
同样是在初始化文件init*.ora中加入下面的参数:
log_archive_format=%S.arc
log_archive_dest=/arch12/arch (arch12 是日志文件存放的目录)
关闭数据库,重新启动数据库,归档方式转换完成。
---- 4 回收制度
---- 4.1根据数据库的运行方式和可承受丢失的工作量来决定数据库的回收制度对于不归档方式,我们用的是ORACLE数据库的逻辑备份Export ,回收的制度是:一个月作一次全备份(x01.dmp),一周作一次累积备份(c*.dmp),一天一次增量备份(I*.dmp),具体的是星期一到星期五作增量备份,星期六做累积备份或全备份,每次做完备份后自动传到其它的机器上存储。这些备份都是自动执行的,后面给出程序文本。
---- 对于归档方式,我们用的是ORCALE的物理备份:当数据库创建好以后,做一次物理上的全备份,平时在不关闭数据库的前提下,一个星期对经常改变的数据文件做联机的数据
库数据文件的物理备份;当数据库的结构发生改变,如:增加表空间,加数据文件等,如允许关机,正常关闭数据库,重新做数据库全备份,否则,备份控制文件,备份数据文件照常。联机的日志文件我们是写在阵列上的,不用镜象和备份。
---- 4.2回收的方法
---- 4.2.1不归档方式
---- 我们拿曙光AIX操作系统为例,来讲解以下如何做自动备份:
---- a.首先建UNIX用户demo/demo
---- b.拷贝oracle用户下的 .profile 到demo 用户下,以保证demo 用户可以用Export命令
---- c.用root用户登录,编辑/var/adm/cron/cron.allow 加入用户名demo,这样demo 用户就有权自动执行数据库备份的shell程序;
---- d.创建数据库备份程序,放到本用户的下层目录bin下,并且这些文件要有可执行权文件zlbf1:(增量备份1,星期一执行的程序)
. /u11/demo/.profile
exp system/manager inctype=INCREMENTAL file=i01.dmp
ftp -n< < !
open 10.10.10.40
user demo demo
binary
prompt
cd backup40
put i01.dmp
close
bye
!
文件zlbf2:(增量备份2, 星期二执行的程序)
. /u11/demo/.profile
exp system/manager inctype=INCREMENTAL file=i02.dmp ftp -n< < !
open 10.10.10.40
user demo demo
binary
prompt
cd backup40
put i02.dmp
close
bye
!
文件zlbf3:(增量备份3, 星期三执行的程序)
. /u11/demo/.profile
exp system/manager inctype=INCREMENTAL file=i03.dmp ftp -n< < !
open 10.10.10.40
user demo demo
binary
prompt
cd backup40
put i03.dmp
close
bye
!
文件zlbf4:(增量备份4, 星期四执行的程序)
. /u11/demo/.profile
exp system/manager inctype=INCREMENTAL file=i04.dmp ftp -n< < !
open 10.10.10.40
user demo demo
binary
prompt
cd backup40
put i04.dmp
close
bye
!
文件zlbf5:(增量备份5, 星期五执行的程序)
. /u11/demo/.profile
exp system/manager inctype=INCREMENTAL file=i05.dmp ftp -n< < !
open 10.10.10.40
user demo demo
binary
prompt
cd backup40
put i05.dmp
close
bye
!
文件zlbf6:(增量备份6, 星期六执行的程序)
. /u11/demo/.profile
js=`ls c*.dmp|wc -l`
if test $js = 0
then
exp system/manager inctype=CUMULATIVE file=c01.dmp ftp -n< < !
open 10.10.10.40
user demo demo
binary
prompt
cd backup40
put c01.dmp
close
bye
!
fi
if test $js = 1
then
exp system/manger inctype=CUMULATIVE file=c02.dmp ftp -n< < !
open 10.10.10.40
user demo demo
Oracle数据库系统紧急故障处理方法 Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。 控制文件损坏: 控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。 损坏单个控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。 4. 用下面的命令重新启动数据库: svrmgrl>startup; 5. 用适当的方法进行数据库全备份。 损坏所有的控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份的点用相应的rman脚本来恢复最近的控制文件。 3. 用下面的命令来创建产生数据库控制文件的脚本:
svrmgrl>startup mount; svrmgrl>alter database backup controlfile to trace noresetlogs; 4. 修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为createcontrol.sql. 注意: Trace文件的具体路径可以在执行完第3)步操作后查看 $ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定。 5. 用下面命令重新创建控制文件: svrmgrl>shutdown abort; svrmgrl>startup nomount; svrmgrl>@createcontrol.sql; 6. 用适当的方法进行数据库全备份。 重做日志文件损坏: 数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做日志成员损坏的情况。 确定损坏的重做日志的位置及其状态: 1. 如果数据库处于可用状态: select * from v$logfile; svrmgrl>select * from v$log; 2. 如果数据库处于已经异常终止: svrmlgr>startup mount; svrmgrl>select * from v$logfile;
Oracle数据库startup和shutdown方式 昨天晚上,回去好好整理了下关于"Oracle数据库提供了几种不同数据库启动和关闭方 式",然后,自己就回去就写了个示例. 其中,就出现了1个问题: ORA-12528: TNS:listener: all appropriate instances are blocking new connections 于是到网上就大量的查阅资料,哈哈,好不错,解决方法找到了.其中红色的就是主要解决方法.下面就把我整理的东西给共享下. 一:注意事项 要启动和关闭数据库,必须要以具有Oracle 管理员权限用户登陆,通常也就是以具有SYSDBA 权限用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接同义词)。Oracle数据库新版本将逐步淘汰INTERNAL这个内部用户,所以我们最还是设置DBA用户具有SYSDBA权限。 二:启动一个数据库需要三个步骤 1、创建一个Oracle实例(非安装阶段) 2、由实例安装数据库(安装阶段) 3、打开数据库(打开阶段) 三:Startup(启动数据库命令) 1、STARTUP NOMOUNT NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例配置,包括内存结构大小和启动后台进程数量和类型等。实例名根据Oracle_SID设置,不一定要与打开数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小列表,如下所示: SQL> startup nomount ORACLE 例程已经启动。 Total System Global Area 35431692 bytes Fixed Size 70924 bytes Variable Size 18505728 bytes Database Buffers 16777216 bytesu Redo Buffers 77824 bytes 2、STARTUP MOUNT 该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"提示。 3、STARTUP
以下资料来自Oracle数据库精讲与疑难解析,仅供学习 一、Oracle数据库的启动 Oracle数据库的启动要经历3个阶段。 阶段一:启动实例 (Start An Instance)--nomount 阶段二:装载数据库 (Mount The Database)--mount 阶段三:打开数据库 (Open The Database)--open 1.启动实例 ①读取参数文件(Initialization Parameter File, PFILE 或者 Server Parameter Files, SPFILE) ②Oracle根据参数文件中的参数,分配系统全局区(System Global Area, SGA) ③启动后台进程(DBWR: 数据库写入进程,LGWR:日志写入进程,CKPT:检查点进程,SMON: 系统监控进程,PMON:进程监控进程,ARCH归档进程等)。 这些内存和后台进程组合起来组成实例(Oracle Instance)。 参数文件(PFILE或者SPFILE)还指定了控制文件(Control File)的位置。 2.装载数据库 打开控制文件(Control File),从控制文件中获得数据文件(Data File)和联机日志文件(Redo Log File)的名字和位置。这时候,Oracle已经把实例和数据库关联起来。对于普通用户,数据库 还是不可访问。 3.打开数据库 Oracle打开数据文件 (Data Files) 和联机日志文件 (Redo Log File) 。这时候,数据库可以使用。 普通可以登录数据库,对数据库进行操作。 4.分步启动Oracle STARTUP NOMOUNT; ALTER DATABASE MOUNT; ALTER DATABASE OPEN; 5.直接启动Oracle STARTUP (相当于上面三个过程依次进行) 6.使用特定初始化参数文件 (Initialization Parameter File, FILE) 启动数据库 STARTUP PFILE='C: \oracle\product\10.2.0\db_1\dbs\PFILEORCL.ORA'; 7.把数据库启动到限制模式(RESTRICT) 在限制模式下,只有CREATE SESSION 和RESTRICTED SESSION权限的用户可以访问数据库。 ①如果数据库是关闭的 STARTUP RESTRICT; ②如果数据库是开启的 ALTER SYSTEM enable restricted session; 8.以只读模式(Read Only)打开数据库 ①如果数据库是关闭的 STARTUP open read only; ②如果数据库是开启的 ALTER DATABASE OPEN read only; 在直读模式下,数据文件和日志文件都禁止写操作。整个数据库是只读的。 但是允许数据库恢复(Database Recovery)及其他不会产生回滚的操作。 9.把数据库启动到回复模式 (RECOVER) STARTUP OPEN RECOVER; 10.重启数据库(RESET) STARTUP FORCE
服务器(O R A C L E)启动 与关闭
一、重启服务器顺序: 关闭数据库(toppord/toptest)→重启设备(reboot)→开启数据 库(只需要开启toptest,topprod已设置自动启用) 二、Linux下启动 oracle 数据库 -- ssh连接上数据库主机,正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su – root/tiptop -- su – oracle -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) # 设置实例 -- lsnrctl start -- sqlplus / as sysdba -- startup 至此,已将数据库开启到OPEN状态。 三、Linux下关闭ORACLE数据库 -- ssh连接上正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su - root/root #切换至ROOT管理员用户 -- su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正 确) -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例
-- sqlplus / as sysdba #以数据库管理员身份进入数据库 -- shutdown immediate #关闭数据库 -- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas 备注: oracle数据库几种关闭方式: 1、shutdown normal 正常方式关闭数据库 关闭时间较长,等待事务完成才会关闭数据库。 2、shutdown immediate 立即方式关闭数据库(一般使用该方式) 会结束事务,将未提交的事务全部回滚。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 3、shutdown abort 直接关闭数据库 会造成数据库的不一致,再次启动数据库会自动执行恢复,会造成等待时间较长。正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。
Oracle 数据库启动过程各步骤详解 Oracle数据库的完整启动过程包含以下3个步骤:简单地说,就是:启动实例-->加载数据库-->打开数据库.------------------------------------------------------------------------------------------------------------------ 1.创建并启动与数据库对应的实例。在启动实例时,将为实例创建一系列后台进程和服务进程,并且在内存中创建SGA 区等内存结构。在实例启动的过程中只会使用到初始化参数文件,数据库是否存在对实例的启动没有影响。如果初化参数设置有误,实例将无法启动。 2.为实例加载数据库。加载数据库时实例将打开数据库的控制文件,从控制文件中获取数据库名称、数据文件的位置和名称等有关数据库物理结构的信息,为打开数据库做好准备。如果控制文件损坏,则实例将无法加载数据库。在加载数据库阶段,实例并不会打开数据库的物理文件----数据文件和重做日志文件。 3.将数据库设置为打开状态。打开数据库时,实例将打开所有处于联机状态的数据文件和重做日志文件。控制文件中的任何一个数据文件或重做日志文件无法正常打开,数据库都将返回错误信息,这时需要进行数据库恢复。只有将数据库设置为打开状态后,数据库才处于正常状态,这时普通用户才能够访问数据库。在很多情况下,启动数据库时并不是直接完成上述
3个步骤,而是逐步完成的,然后执行必要的管理操作,最后才使数据库进入正常运行状态。所以,才有了各种不同的启动模式用于不同的数据库维护操作。 ============================================== ===============================Oracle 数据库启动与关闭各种方式详解整理 前言: 首先要知道,Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤:启动实例-->加载数据库-->打开数据库详解看这里: https://www.wendangku.net/doc/eb3201239.html,/lutinghuan/article/details/7484103因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库。 小白:在启动实例之前,需要先启动SQL*Plus,并以一个用户身份连接到Oracle。启动模式详解1.NoMount 模式(启动实例不加载数据库)命令:startup nomount 讲解:这种启动模式只会创建实例,并不加载数据库,Oracle 仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。在NoMount模式下,只能访问那些与SGA区相关的数据字典视图,包括V$PARAMETER、V$SGA、V$PROCESS 和V$SESSION等,这些视图中的信息都是从SGA区中获
oracle启动的三个阶段 三个阶段: 1. 启动到nomount状态,这个阶段数据库读取spfile/pfile文件中的参数,启动数据库实例。 1-1读取初始化参数文件.注意读取顺序.主要是指定控制文件及数据库实例名1-2分配系统全局区 1-3启动后台进程 1-4打开alertSID.log文件和跟踪文件 补充说明: 在nomount阶段,oracle 会查找参数文件,启动实例,参数文件的查找顺序为spfile.ora,init
补充说明: 在mount阶段,oracle会打开控制文件,加载数据库,此时数据库的基本结构信息都能够查询了,但是还不能查询用户表的内容。 3. 启动到open状态,这个阶段数据库打开控制文件里描述的文件。 3.打开数据库--database open 3-1打开数据文件 3-2打开联机重做日志文件. 补充说明: 在open阶段,就是打开数据库,在这个阶段SMON会对数据文件的检查点进行一致性检查,不一致时smon会介入进行恢复。 Oracle中数据库实例和数据库是独立实体,可以独立存在。因此启动过程分成多个阶段:首先在内存中构建实例,然后通过安装数据库启用到数据库的连接,最后打开数据库来使用它。Oracle数据库有四种状态:SHUTDOWN:所有数据库文件都关闭,不存在实例 NOMOUNT:实例在内存中创建(SGA已经被创建,根据参数文件指定启动某些后台进程),但没有连接到任何数据库。 MOUNT:实例定位并读取数据库控制文件。 OPEN:所有的数据库文件都被定位和打开,终端用户可以使用数据库。 数据库的启动可分为三个阶段:
Oracle数据库重新启动的方法 2010-11-15 10:02 佚名互联网我要评论(0)字号:T | T Oracle数据库是大家都非常熟悉的数据库系统,下文就将教您重新启动Oracle的详细步骤方法,希望可以对您能有所帮助。 AD: Oracle数据库重新启动应该如何实现呢?这是很多人都提到过的问题,下面就为您详细介绍Oracle数据库重新启动的方法,供您参考。 1. 停应用层的各种程序。 2. 停oralce的监听进程: $lsnrctl stop 3. 在独占的系统用户下,备份控制文件: SQL>alter database backup controlfile to trace; 4. 在独占的系统用户下,手工切换重作日志文件,确保当前已修改过的数据存入文件: SQL>alter system switch logfile; 5. 在独占的系统用户下,运行下面SQL语句,生成杀数据库用户连接的kill_all_session.sql文件: set head off; set feedback off; set newpage none; spool /oracle_backup/bin/kill_all_session.sql select 'alter system kill session '''||sid||', '||serial#||''';' from v$session where username is not null; spool off; 6. 在独占的系统用户下,执行杀数据库用户连接的kill_all_session.sql文件: SQL>@/oracle_backup/bin/kill_all_session.sql
ORACLE数据库启动过程祥解 本文目的 在ORACLE数据库治理中,启动数据库遇到问题较多。而且多数ORACLE的使用者在数据库启动过程中遇到错误提示,无从下手使用了错误的方法修改数据库的相关文件,而从造成了不必要的数据缺失。通过本文使读者对ORACLE数据库的启动过程有一个较为详细的了解,遇到启动过程的错误不至于手忙脚乱造成更大的缺失。 一、数据库启动方法 1、UNIX平台数据库启动方法 使用oracle用户登录服务器 $>sqlplus ‘/ as sysdba’(使用sys用户登录数据库) Sql>(系统提示连接到一个没有启动的实例) Sql>startup(正常启动数据库) 2、WINDOWS平台数据库启动方法 ●使用手工方式启动数据库。 ?打开DOS窗口 ?C:\>ordim –startup –sid ora9i(其中ora9i为实例的名称) 在WINDOWS平台启动ORACLE时经常遇到如下错误:
以上错误是由于,没有启动ORACLE数据库在WINDOWS平台中的服务。 正确启动过程如下: C:\>oradim -startup -sid ora9i C:\>lsnrctl start LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 28-7月-2006 22:24 :16 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 启动tnslsnr:请稍候... TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production 系统参数文件为c:\oracle\ora92\network\admin\listener.ora 写入c:\oracle\ora92\network\log\listener.log的日志信息监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXT PROC0ipc)))监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dba)(PORT=1521)) )正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) LISTENER 的STATUS ------------------------ 别名LISTENER 版本TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc tion 启动日期28-7月-2006 22:24:16 正常运行时刻0 天0 小时0 分 4 秒 跟踪级别off 安全性OFF SNMP OFF 监听器参数文件c:\oracle\ora92\network\admin\listener.ora
Linux平台Oracle多个实例启动说明: 环境说明:oracle实例1的SID为orcl(为默认启动的实例),第二个实例的SID为orcl2 启动步骤: 1)启动数据库实例完成后,启动数据库监听服务 #lsnrctl start 2)切换到需要启动的数据库实例下,如下表示启动的是orcl数据库实例,若要启动orcl2,则修改ORACLE_SID=orcl2 #export ORACLE_SID=orcl 3)使用oracle账号登陆Linux系统 #oracle #passwd:oraclepass 4)启动数据库实例 #sqlplus /nolog #conn /as sysdba #startup #exit 5)启动实例对应的管理控制台服务 #emctl start dbconsole oracle数据库启动和关闭方式 一、几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件 如:系统表空间或日志文件。 执行“nomount”,然后打开控制文件 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,, 这种方式下可访问数据库中的数据。 4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权的用户访问 非特权用户访问时,会出现以下提示: ERROR: ORA-01035: ORACLE 只允许具有RESTRICTED SESSION 权限的用户使用
Oracle数据库的启动与关闭方法 这篇文章主要介绍了Oracle数据库的启动与关闭方法,需要的朋友可以参考下一、启动数据 $sqlplus "sys/pass as sysdba" sql>startup 二、启动监听器 数据库启动后,如果未启动监听进程,则客户端无法与数据库连接。监听进程的启动方法为: $lsnrctl start 在widnows中,可以从服务列表中启动监听器。 监听里程配置文件为listener.ora,位于目录/home/app/oracle/product/10.1.0/db1/ne twork/admin/。 此配置文件分为两部分,一部分为监听程序本身的配置,包括协议,地址,端口号等;另一部分为监听程序所连接的数据库的实例信息,包括:实例名,全局数据库名,oracle主目录等。监听器可以利用oracle net config 向导来配置。 要显示监听器的运行状态:$lsnrctl status; 要停止监听器:$lsnrctl stop。 三、数据库的启动过程 分为三个阶段: 1. 启动实例,包括以下操作: 1) 读取参数文件 2) 分配SGA 3) 启动后台进程 2.装载数据库
装载数据库是将数据库与已启动的实例相联系。数据库装载后,数据库保持关闭状态。3.打开数据库 此步骤使用数据库可以进行正常的操作的处理。主要是打开控制文件,数据库文件和 日志文件。 四、数据库启动参数 1.NOMOUNT:只启动实例,不装载数据库 sql>startup nomount 2.MOUNT:启动实例,并装载数据,但不打开数据库 sql>startup mount 3.READ ONLY:将数据库置为只读 sql>startup mount sql>alter database open read only 4.READ WRITE:以可读写方式打开数据,这是默认方式 sql>startup mount sql>alter database open read write 5.OPEN:打开数据库,这是默认方式 sql>startup mount sql>alter database open; 6.RESTRICT:以受限方式打开,只有具有RESTRICTED SESSION权限的用户才可以连接数据 库 sql>startup restrict 7.PFILE:启时指定参数文件 sql>startup pfile=/u02/user/mypfile.ora 8.FORCE:以强制方式启动数据库 sql>startup pfile=/u02/user/mypfile.ora open restrict force
一、重启服务器顺序: 关闭数据库(toppord/toptest)重启设备(reboot)开启数据库(只需要开启toptest,topprod已设置自动启用) 二、Linux下启动 oracle 数据库 -- ssh连接上数据库主机,正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su – root/tiptop -- su – oracle -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例 -- lsnrctl start -- sqlplus / as sysdba -- startup 至此,已将数据库开启到OPEN状态。 三、Linux下关闭ORACLE数据库 -- ssh连接上正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su - root/root #切换至ROOT管理员用户 -- su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正确) -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例-- sqlplus / as sysdba #以数据库管理员身份进入数据库 -- shutdown immediate #关闭数据库 -- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas
Linux下启动和关闭Oracle服务和监听程序 分类:Database2008-08-29 10:54 4195人阅读评论(0) 收藏举报oraclelinux数据库sqlshell任务 原文链接:https://www.wendangku.net/doc/eb3201239.html,/lgnemo/blog/item/481c0266faff6622aa184cb5.html oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下。 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_profile 添加几个环境变量:ORACLE_SID,ORACLE_BASE,ORACLE_HOME。比如: export ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx 启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。 1.$ su - oracle 2.$ sqlplus / nolog 3.sql> conn / as sysdba 4.sql> startup (一般不需要加参数,只要设置好环境变量) 5.sql> quit (退出sql模式) 6.$ lsnrctl start (启动监听器) 关闭oracle 1.$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序) 2.$ sqlplus /nolog 3.sql>shutdown 其参数:shutdown有四个参数,四个参数的含义如下: Normal 需要等待所有的用户断开连接 Immediate 等待用户完成当前的语句 Transactional 等待用户完成当前的事务 Abort 不做任何等待,直接关闭数据库 normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接 immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
以下的操作是在DOS 下的sqlplus下执行的 一,连接 1,直接运行sqlplus,然后要求输入用户名和密码。如果你是管理员的身份,应该在用户名后加上as sysdba(以下例子使用sysdba身份). 如下图: 2,运行如下语句直接进入: Sqlplus 用户名/密码as sysdba 如下图: 3,运行sqlplus /nolog, 此语句只是进入了sqlplus编辑器,而没有连接到数据库。所以还需要使用connect语句来连接到数据库。如下图:
二,关闭数据库 停止数据库使用shutdown命令来完成。 此命令带有四个参数,四个参数的含义如下: Normal 需要等待所有的用户断开连接 Immediate 等待用户完成当前的语句 Transactional 等待用户完成当前的事务 Abort 不做任何等待,直接关闭数据库 normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接 immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。 abort 执行强行断开连接并直接关闭数据库。 前三种方式不回丢失用户数据。第四种在不得已的情况下,不建议采用! 当用户使用此命令关闭数据库后,就会自动的卸载数据库。如下图 三,启动数据库(挂载数据库) 当用户关闭数据库后,可以使用startup来打开数据库,此命令有两个可选参数:第一种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用! 第二种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了! 如果用户没有参数,直接使用startup来启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! 如下图
oracle 重启与关闭 Oracle 中不同启动和关闭方式的区别 Oracle 数据库提供了几种不同的数据库启动和关闭方式,本文将周详介绍这些启动和关闭 方式之间的区别连同他们各自不同的功能。 一、启动和关闭 Oracle 数据库 对于大多数 Oracle DBA 来说, 启动和关闭 Oracle 数据库最常用的方式就是在命令行方式 下的
Server Manager 。从 Oracle 8i 以后,系统将 Server Manager 的任何功能都集中 到了 SQL*Plus 中,也就是说从 8i 以后对于数据库的启动和关闭能够直接通过SQL*Plus 来完成, 而不再另外需要 Server Manager , 但系统为了保持向下兼容, 依旧保留了 Server Manager 工具。另外也可通过图像用户工具( GUI
Oracle Enterprise Manager 来 完成系统的启动和关闭,图像用户界面Instance Manager 很简单,这里不再详述。 要启动和关闭数据库,必须要以具备Oracle 管理员权限的用户登陆,通常也就是以具备SYSDBA 权限的用户登陆。一般我们常用INTERNAL 用户来启动和关闭数据库 ( INTERNAL 用户实际上是 SYS 用户以 SYSDBA 连接的同义词) 。
数据库的新版 本将逐步淘汰 INTERNAL 这个内部用户,所以我们最好还是配置DBA 用户具备 SYSDBA 权限。 二、数据库的启动( STARTUP ) 启动一个数据库需要三个步骤: 1 、 创建一个 Oracle 实例(非安装阶段)
三、启动\关闭数据库启动和关闭oracle有很多种方法。这里只给出3种方法: l Sql*plus l OEM控制台 l Windows 控制台 1.以sql*plus为例: a.准备 首先我们用sql*plus来连接到Oracle Sqlplus /nolog 是以不连接数据库的方式启动sql*plus Connect /as sysdba 是以DBA身份连接到oracle b.启动
启动还是比较简单的 Startup就OK了。 不过oracle启动模式有3种: l Startup nomount (nomount模式)启动实例不加载数据库。 l Startup mount (mount模式)启动实例加载数据库但不打开数据库 l Startup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,所以说:1)创建新数据库 2)重建控制文件 这2种操作都必须在这个模式下进行。 Mount模式中oracle只装载数据库但不打开数据库,所以说: 1)重命名数据文件 2)添加、删除和重命名重做日子文件 3)执行数据库完全恢复操作 4)改变数据库的归档模式 这4种操作都必须在这个模式下进行 Open模式(就是我们上面的startup不带任何参数的)呵呵就不多说了,正常启动。 当然这3种模式之间可以转换: Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式) 当然还有其它一些情况,在我们open模式下可以将数据库设置为非受限状态和受限状态
实验2 Oracle数据库的创建启动和关闭 开发语言及实现平台或实验环境 Oracle 11g 实验目的 (1) 掌握Oracle 11g数据库的创建与删除。 (2) 掌握Oracle 数据库实例的启动和关闭。 实验要求 (1) 记录数据库创建和删除过程中遇到的问题及解决方法。 (2) 记录数据库实例的基本操作。 (3) SQL*Plus工具的基本使用。 (4)熟悉数据库创建过程中的管理和配置。 实验指导 一、创建数据库 1.规划数据库 1) 确定数据库的类型 根据数据库的用途,可以分为事务处理(OLTP)类型、数据仓库(DSS)类型及两者兼具的一般用途的通用类型。 2) 确定数据的存储方式 Oracle 11g 数据库存储方式主要有3 种:以操作系统文件存储的文件系统、采用自动存储管理的ASM 和集群系统中的裸设备。 3) 确定数据库的管理方式 Oracle 11g 的数据库管理分为使用Grid Control 的集中管理和使用Database Control 的本地管理。 4) 为新安装的数据库指定全局数据库名 全局数据库名是Oracle 数据库的全球唯一标识,它的格式如XXX.域名,其中XXX 表示SID,即服务名。 5) 熟悉相关初始化参数 2.使用Oracle 数据库配置助手创建数据库 (1)启动数据库配置助手 选择“开始”|“程序”|“Oracle 主目录”(视安装情况而定)|“配置和移置工具”|“Database Configuration Asssiant”快捷方式。或者在开始菜单运行栏中键入DBCA,即可启动 DBCA。 DBCA 启动之后,就出现“Database Configuration Assiant:欢迎使用”界面。 单击“下一步”按钮,进入操作选择对话框,选择要执行的操作 (2)选择操作内容 选择创建数据库:完成数据库创建或模板的创建。单击“下一步”按钮,进入“选择数据库类型”对话框 (3)选择数据库的类型 数据库类型选择对话框中一共有3 种数据库模板可供选择:一般用途或事务处理、定制
启动与关闭数据库事例 Oracle数据库实例的启动过程分为3个步骤,分别是: 1.启动实例 2.装载数据库 3.打开数据库 ?启动实例完成以下操作: 1.读取初始化参数文件。 2.分配系统全局区。 3.启动后台进程。 4.打开alertSID.log文件和跟踪文件 ?装载数据库主要完成以下操作: 1.将数据库与一个已打开的实例关联起来。 2.打开初始化参数文件中指定的控制文件。 3.根据控制文件获得数据文件和重做日志文件的名称和 状态(为打开数据库做准备) ?打开数据库完成以下操作: 1.打开数据文件 2.打开联机重做日志文件 打开时,后台进程SMON即系统监视器(System Monitor)要检查控制文件、数据文件及重做日志确定是否处于同步状态,不同步时,由SMON进行实例恢复。
启动数据库实例 ?启动Oracle Server通过执行命令STARTUP来完成。根据不同的启动方式,使用不同的参数启动数据库。 ?执行该命令,要求用户必须有SYSDBA或SYSOPER系统权限。 用户可以根据实际情况的需要,以不同的模式启动数据库,启动数据库所使用的命令格式如下: STARTUP [nomount|mount|open|force][resetrict][pfile=filename] Nomount:表示启动实例不加载数据库; Mount:表示启动实例、加载数据库并保持数据库的关闭状态; Open:表示启动实例、加载并打开数据库,这个是默认选项; Force:表示终止实例并重新启动数据库; Resetrict:用于指定以受限制的会话方式启动数据库; Pfile:用于指定启动实例时所使用的文本参数文件,filename是文件名。 注:查看状态: Select status from v$instance; 1、STARTUP NOMOUNT NOMOUNT选项仅仅创建一个Oracle实例(即创建Oracle实例的各种内存结构和服务进程)。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据
一、摘要 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例-->加载数据库-->打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库。 1. Oracle启动需要经历四个状态:SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN 2. Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort 3. 启动和关闭过程详解 二、数据库启动过程 1.NoMount 模式(启动实例不加载数据库) (1). 命令:startup nomount (2). 讲解:这种启动模式只会创建实例,并不加载数据库,Oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。
在NoMount模式下,只能访问那些与SGA区相关的数据字典视图,包括VPARAMETER、VSGA、VPROCESS和VSESSION等,这些视图中的信息都是从SGA 区中获取的,与数据库无关。 (3). 模式用途: 创建新数据库; 重建控制文件; 2.Mount模式(加载数据库但不打开数据库) (1). 命令:startup mount (2). 讲解:这种启动模式将为实例加载数据库,但保持数据库为关闭状态。因为加载数据库时需要打开数据库控制文件,但数据文件和重做日志文件都都无法进行读写,所以用户还无法对数据库进行操作。 在Mount模式下,只能访问那些与控制文件相关的数据字典视图,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和V$LOGFILE等,这些视图都是从控制文件中获取的。 (3). 模式用途: 重命名数据文件; 添加、删除或重命名重做日志文件; 执行数据库完全恢复操作; 改变数据库的归档模式; 3.Open模式(正常打开数据库) (1). 命令:startup [open] (2). 讲解:正常按3个步骤启动数据库。