您的位置:首页 > 数据库 > Oracle

Oracle学习-启动与关闭

2016-08-08 10:50 204 查看

Oracle启动分为3种过程,关闭分为四种方式

启动

1、nomount 模式【加载实例和spfile(参数文件)】

路径:cd $ORACLE_HOME/dbs

查看:strings spfile实例.ora【它不是文本文件,是二进制文件】  

strings spfile$ORACLE_SID.ora

ecom.__db_cache_size=188743680   【数据缓存大小】

ecom.__java_pool_size=4194304     【JAVA池大小】

ecom.__large_pool_size=4194304     【大池大小】

ecom.__shared_pool_size=83886080    【共享池大小】

ecom.__streams_pool_size=0           【流池大小】

*.audit_file_dest='/oracle/app/admin/ecom/adump'  【审计文件存放路径】

*.background_dump_dest='/oracle/app/admin/ecom/bdump' 【进程捕获文件存放路径】

*.compatible='10.2.0.1.0'  【当前库版本号】

*.control_files='/oracle/app/oradata/ecom/control01.ctl','/oracle/app/oradata/ecom/control02.ctl','/oracle/app/oradata/ecom/control03.ctl' 【控制文件路径】

*.core_dump_dest='/oracle/app/admin/ecom/cdump' 【核心的捕获文件存放路径】

*.db_block_size=8192 【块大小】

*.db_domain=''        【域名字】

*.db_file_multiblock_read_count=16 【一次最多可以读多少块】

*.db_name='ecom'  【库名字】

*.db_recovery_file_dest='/oracle/app/flash_recovery_area' 【闪回区域】

*.db_recovery_file_dest_size=2147483648  【闪回区域大小:2147483648/1024/1024/1024=2G】

*.dispatchers='(PROTOCOL=TCP) (SERVICE=ecomXDB)' 【开启的TCP网络协议,和监听有关系】

*.job_queue_processes=10   【工作进程数,后台的计划任务】

*.open_cursors=300 【开启的游标数】

*.pga_aggregate_target=94371840 【PGA大小】

*.processes=150  【开启的最大进程数】

*.remote_login_passwordfile='EXCLUSIVE'  【登录验证的方式】

*.sga_target=285212672  【SGA大小】

*.undo_management='AUTO'   【uodo表空间管理的方式】

*.undo_tablespace='UNDOTBS1' 【当前回滚表空间】

*.user_dump_dest='/oracle/app/admin/ecom/udump' 【用户捕获文件存放路径】

2、mount  加载控制文件(记录数据文件和日志文件的位置)

到Mount状态,加载完控制文件,目的是往后加载,加载日志文件和控制文件。

控制文件路径:cd $ORACLE_BASE/oradata/$ORACLE_SID/

查看:strings control01.ctl 

数据文件和日志文件路径

表空间名称

3、open   加载日志文件和数据文件

所有的数据库都会有日志文件,日志文件记录着你所有的动作,通过日志才能保证你数据库的完整性。

数据文件,咱们建的表,往表里插入的数据,在操作层面全是插入到数据文件中。

路径:cd $ORACLE_BASE/oradata/$ORACLE_SID/

oracle 单实例单库,一个实例上只能创建一个库

mysql  单实例多库

窗口1

SQL> shutdown immediate;
cd $ORACLE_BASE/admin/$ORACLE_SID/bdump

tail -f -n 200 alert_$ORACLE_SID.log【oracle的一些改变都会放在alert日志中,验证启动流程】

窗口2

SQL> startup

关闭

shutdown normal 需要等待所有事务/进程全部结束 才能关数据库【严谨性最好,但是没有人用】

shutdown transactional   需要等待,但在等待过程中,先把空闲事务进程自动关闭,活动的等人家工作完毕了,再关闭。

上面2种基本很少使用

shutdown immediate  关闭之前同步数据【该同步数据的同步,没有同步的就释放掉,对于你当前的操作,它会告诉你失败了】(生产关闭数据库常用)

以上3种,第3种方式关闭速度最快啊。这种方式不会丢数据。

【oracle为了严谨性, insert update delete操作后,要加上commit,才能生效 (开2个窗口,不commit操作,举个例子)】

客户操作完毕,打了commit操作,传输到服务器端,先写在内存中,然后往硬盘中写,因为内存的数据容易丢。

客户操作完毕,没有打commit操作,传输到服务器端,先写在内存中,现在我一重启,这些操作没有提交,就失效了。

窗口1

insert操作,不commit;

窗口2

shutdown normal;【一直卡着不动】

举例:

窗口1

insert操作,不commit;

窗口2

shutdown immediate;【提交的数据会同步到磁盘,但是没有提交的数据,直接丢弃了。没有丢失数据,会告诉你操作失败了。】

shutdown abort  强制关闭数据库相当于断电(它的速度最快,此动作非常危险,容易失数据)

启动数据库

startup 直接打此命令默认选项为open直接打开数据库

startup nomount 只启动实例(装载实例和打开参数文件)

startup mount  挂载数据库(装载实例和打开控制文件,激活某些功能,用户不能存取数据库可以进行实例或数据的恢复处理)

alter database mount 改变数据库从nomount状态到mount状态

alter database open 打开数据库(此时才可以正常对数据库进行读写)

alter database open read only 将数据库打开到只读状态(用得特别少)

startup force  重启数据库 【先shutdown abort ,然后startup ,生产中不会用,特别危险】

----------------------------------------------------------

生产关库:有些大哥直接在操作系统中直接reboot,这么操作库很容易出现问题,无法恢复

正常关闭过程:

1、关闭应用

2、查看数据库备份

3、正常关监听

4、正常关库shutdown immediate  【如果特别慢,可以编写脚本实现】

5、重启操作系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: