文章目录
1.读取参数文件顺序
9i之前,只有静态参数文件pfile文件;
9i开始,引入动态参数文件spfile文件(spfile二进制文件);
默认的查找参数文件路径:
windows下是 %ORACLE_HOME%\database
Linux下是$ORACLE_HOME\dbs
11g中启动数据库,Oracle按照spfileSID.ora 、 spfile.ora、 initSID.ora 、Init.ora的顺序查找,其中SID是服务名,也叫oracle系统标识符
2.数据库的四种状态以及打开数据库
2.1 四种状态
(1) shutdown:实例、数据库都关闭
(2) nomount :实例启动,包括读初始参数文件(注意初始参数文件的读取顺序)、分配物理内存、启动后台进程
上图表示 nomount 状态 控制文件处于关闭状态;
(3) mount : 数据库装载完成,打开控制文件(control file),可找到database结构信息,但用户的表内容不可读
(4) open : 数据库打开并成功加载,可以访问用户的表
2.2 打开数据库
数据库启动命令的完整格式
startup [nomount | mount | open | force ] [restrict] [pfile=filename]
(1)startup force : 强制启动,可用于各种模式;
(2)startup restrict : restrict模式会将数据库置于open模式,此时只有 restricted session 权限的用户才能访问数据库。
用于维护动作。维护完成后,禁用restricted session权限,以便普通用户连接
授予 restricted session 权限
grant restricted session to 用户;
revoke restricted session from 用户;
(3)pfile文件可进行编译,与spfile不同,不是二进制文件
创建pfile文件
create pfile='D:\pfileorcl.ora' from spfile;
orcl.__db_cache_size=3271557120
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base='D:\software\oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=1157627904
orcl.__sga_target=4093640704
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=754974720
orcl.__streams_pool_size=0
*.audit_file_dest='D:\software\oracle\admin\orcl\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='D:\software\oracle\oradata\orcl\control01.ctl','D:\software\oracle\flash_recovery_area\orcl\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='D:\software\oracle\flash_recovery_area'
*.db_recovery_file_dest_size=4102029312
*.diagnostic_dest='D:\software\oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.local_listener='LISTENER_ORCL'
*.memory_max_target=5767168000
*.memory_target=5251268608
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
3.数据库关闭的四种方式
shutdown normal | transactional | immediate | abort
normal : 不允许新用户连接,等待已连接的用户自己断开连接;
transactional : 不允许新用户连接,等待已连接的用户做完所有的事务,然后系统自动断开和他们的连接;
immediate : 不允许新用户连接,不等待已连接的用户做完所有的事务,回滚掉用户所做的事务,然后系统自动断开和他们的连接;
abort: 强制断开和所有用户的连接;