三、启动\关闭数据库启动和关闭oracle有很多种方法。
这里只给出3种方法:●Sql*plus●OEM控制台●Windows 控制台1.以sql*plus为例:a.准备首先我们用sql*plus来连接到OracleSqlplus /nolog 是以不连接数据库的方式启动sql*plus Connect /as sysdba 是以DBA身份连接到oracleb.启动启动还是比较简单的Startup就OK了。
不过oracle启动模式有3种:●Startup nomount (nomount模式)启动实例不加载数据库。
●Startup mount (mount模式)启动实例加载数据库但不打开数据库●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模式下可以将数据库设置为非受限状态和受限状态在受限状态下,只有DBA才能访问数据库,所以说:1)执行数据导入导出2)使用sql*loader提取外部数据3)需要暂时拒绝普通用户访问数据库4)进行数据库移植或者升级操作这4种操作都必须在这个状态下进行在打开数据库时使用startup restrict命令即进入受限状态。
使用alter system disable restricted session命令即可以将受限状态改变为非受限状态。
使用alter system enable restricted session命令可以将非受限状态变为受限状态使用alter database open read only可以使数据库进入只读状态。
使用alter database open read write 可以使数据库进入读写状态。
当然在某些情况下可能是用上述各种启动方式都无法成功启动数据库,这个时候就要使用startup force命令来强行启动数据库。
当然谁都不想碰到这种情况:)c.关闭数据库1)正常关闭 shutdown2) 立即关闭 shutdown immediate3) 关闭事务 shutdown transactional4) 强行关闭 shutdown abort,当然谁都不想碰到这种情况。
2.OEM为例Oracle Enterprise Management(OEM),这个名字有时候会让人误解呵呵。
所有的数据库都差不多,都有个 Enterprise Management,就连Mysql这样的小型数据库都有,当然每个数据库的Enterprise Management功能都有一些差异,当然差别不是很大。
Enterprise Management的目的就是让我们能够快速、方便、傻瓜化的去管理数据库,想想假如我每天都去用DOS界面去操作P-SQL,T-SQ L……郁闷不?当然我写起来也比较的方面,ctrl C,ctrl V就OK了跟第一小节讲的Sqlplus /nolog ,Connect /as sysdba 这2个命令差不多的操作如图:按照上面的一步步操作就能够连接到数据库。
下面是如何启动和关闭数据库:点击我们前几章创建的ORADB01这个数据库树中的配置选项,这个里面的:1)已启动对应 Nomount模式2)已转载对应 mount模式3)打开对应 open模式当你点击应有按钮之后就会进入如下对话框1)正常对应正常关闭 shutdown2) 立即对应立即关闭 shutdown immediate3) 事务处理对应关闭事务 shutdown transactional4) 中止对应强行关闭 shutdown abort确定之后出现如下对话框限制对数据库访问对应 alter system disable restricted sessionalter system enable restricted session 只读模式对应 alter database open read onlyalter database open read write简单吧,sql*plus的一大堆命令到OEM中变成了几个按钮罢了。
3.windows控制台这个熟悉吧:oracle ************Agent 用于OEM管理结构oracle************HTTPSERVER oracle Web服务器oracle ************ManagementServer 用于OEM管理结构oracle ************ TNSListener oracle网络结构的服务器端进程oracle ************OEMREP 资料档案库文件oracle ************ORADB001 用户创建的数据库我一般都把所有的服务全部选成手动启动,如果全开,内存要用掉700 M..............配置数据库归档模式(ARCHIVELOG/NOARCHIVELOG)本文介绍如何启动或关闭数据库归档模式Oracle数据库可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog)归档与非归档的区别请参考ORACLE相关文档。
数据库循环使用LOG文件,若数据库处于“非归档日志”模式,当LOG文件被使用后,文件中记录的重做信息将覆盖。
为了恢复数据库,必须启用归档。
归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来麻烦。
SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdPL/SQL Release 10.2.0.1.0 - ProductionCORE 10.2.0.1.0 ProductionTNS for 32-bit Windows: Version 10.2.0.1.0 - ProductionNLSRTL Version 10.2.0.1.0 - Production[操作步骤]一、设置NOARCHIVELOG--->ARCHIVELOG1、确认当前数据模式SQL> select dbid, name, log_mode from v$database;DBID NAME LOG_MODE---------- --------- ------------1182163329 ORCL NOARCHIVELOG注:通过查询v$database进行确认数据库当前处于何种模式2、关闭数据库(shutdown immediate)SQL> shutdown immediate数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
3、启动数据库至MOUNT状态(a)启动数据库到NOMOUNT状态SQL> startup nomountORACLE 例程已经启动。
Total System Global Area 209715200 bytesFixed Size 1248140 bytesVariable Size 79692916 bytesDatabase Buffers 125829120 bytesRedo Buffers 2945024 bytes(b)执行alter database mount更改数据到MOUNT状态SQL> alter database mount;数据库已更改。
注:通过分步操作使数据库启动至MOUNT状态4、设置数据库为ARCHIVELOG状态(alter database archivelog)(a)更改前状态:SQL> archive log list数据库日志模式非存档模式自动存档禁用存档终点USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 6当前日志序列8(b)执行更改命令:alter database archivelogSQL> alter database archivelog;数据库已更改。
(c)更改后状态:SQL> archive log list数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 6下一个存档日志序列8当前日志序列85、打开数据库SQL> alter database open;数据库已更改。
二、设置ARCHIVELOG--->NOARCHIVELOG1、确认当前数据模式SQL> archive log list数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 6下一个存档日志序列8当前日志序列82、干净关闭数据库(shutdown normal或shutdown immediate)SQL> shutdown immediate数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
3、启动数据库至MOUNT状态SQL> startup mountORACLE 例程已经启动。
Total System Global Area 209715200 bytesFixed Size 1248140 bytesVariable Size 79692916 bytesDatabase Buffers 125829120 bytesRedo Buffers 2945024 bytes数据库装载完毕。
4、设置数据库为NOARCHIVELOG状态(alter database noarchivelog)(a)更改前状态:SQL> archive log list数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 6下一个存档日志序列8当前日志序列8(b)执行更改命令:alter database noarchivelogSQL> alter database noarchivelog;数据库已更改。