数据库启动
Oracle推荐的启动顺序为:
DatabaseControl----> Database Listener---->database
所有DatabaseControl的会话都是基于HTTPS协议的
启动DatabaseControl: emctl start dbconsole
关闭DatabaseControl: emctl stop dbconsole
查看DatabaseControl: emctl status dbconsole
在ORACLE_HOME\install下有一个portlist.in的文件,里面记录着Oralce使用的端口号;
启动监听:lsnrctlstart
关闭监听:lsnrctl stop
查看监听状态:lsnrctl status
对于一个精准的说法,数据库不能说启动和关闭(start and stop),这是对于实例来说的,数据库只能描述为挂载(mounted)和打开(open)
Oracle的认证方式:
1、数据字典认证:普通用户:connect scott/tiger@orafan11 可以通过网络远程进行
2、密码文件认证:sysdba和sysoper:connect sys/orafan7765410@orafan11 as sysdba:可以通过网络远程进行
3、操作系统认证:sysdba和sysoper:connect / as sysdba:在数据库服务器上进行
SYSDBA和SYSOPER不是用户,而是一种角色,可以分配给用户,默认情况下只有SYS用户拥有;
SYSDBA和SYSOPER的区别在于:
1、SYSDBA可以createdatabase,但SYSOPER不可以
2、SYSDBA可以执行不完全恢复incompleterecovery,但SYSOPER不可以
3、SYSDBA可以创建其他SYSOPER和SYSDBA用户,但SYSOPER不可以
相同点有以下:
1、启动和关闭数据库:STARTUP SHUTDOWN
2、更改数据库的模式: ALTER DATABASE [MOUNT | OPEN | CLOSE |DISMOUNT]
3、备份数据库:ALTER [DABASE | TABLESPACE ] [BEGIN |END] BACKUP
4、恢复数据库: RECOVER
数据库处于以下四种状态之一:
1、SHUTDOWN:所有文件处于关闭状态,实例不存在
2、NOMOUNT:实例启动读取参数文件(内存分配,后台进程启动),但是没有和数据库建立连接,在NOMOUNT阶段,只会用到两种文件:参数文件和日志文件
3、MOUNT:实例读取控制文件中其余各种文件的位置:控制文件的位置是通过读取参数文件中的CONTROL_FILE参数得到的,并且只有所有的控制文件都存在并且有效,数据库才能正常的进行MOUNT;
4、OPEN:
注:是SMON进程来辅助数据库完成MOUNT和OPEN的;
数据库的参数文件类型有三种:
1、ORACLE_HOME\database\SPFILESID.ORA
2、ORACLE_HOME\database\SPFILE.ORA
3、ORACLE_HOME\database\INITSID.ORA
在RAC系统中,你只能使用spfile.ora,用这个文件来启动过个实例;
数据库关闭
数据库关闭的顺序:
1、database close:在此阶段,所有会话被终止,PMON回滚所有活动事务,DBWn将所有完成的事务写入磁盘,数据文件和重做日志文件关闭
2、database dismonut:在此阶段,控制文件关闭
3、instance stop:在此阶段,实例停止,后台进程停止,释放SGA占用的内存;
shutdown
normal:默认值,新的连接不能建立,但是所有原有连接仍然继续,当所有用户都退出的时候,数据库才关闭;
transactional:新的连接不能建立,所有没有活动事务的会话被停止,当所有活动会话的事务结束后,数据库才能关闭;
immediate:新的会话不能建立,原有会话立即结束,活动事务立即回滚,数据库立即关闭
abort:实例立即关闭,没有任何事务回写磁盘,可能造成数据丢失;
前三种关闭方式都可以保证数据库处于“一致状态”:consistent,所谓一致状态就是指:
1、所有提交的事务都写入到磁盘的数据文件中
2、所有没有提交的事务被挂起,需要进行回滚处理
3、所有的数据文件和日志文件都有被同步;
不一致状态表现为:
1、提交的事务会丢失:因为他们在内存中,DBWn还没有写数据文件;
2、没有提交的事务不会被回滚,可能存在脏数据
这种破坏必须进行实例恢复:instance recovery
startupforce = shutdown abort + startup