Oracle启动与关闭(基础操作)
- 软件开发
- 2025-09-03 12:42:02

11g读取参数文件的顺序
9i之前,只有静态参数文件pfile文件。
9i开始,引入了动态参数文件spfile文件。
Windows:
%ORACLE_HOME%\databaseSPFILEORCL就是动态参数文件
Linux:
$ORACLE_HOME/dbs11g中,启动数据库。
Oracle按照 spfileSID.ora -> spfile.ora -> initSID.ora -> init.ora顺序查找
都找不到就启动不了数据库。
SID是服务名,也叫做Oracle系统标识符。
Oracle的启动数据库的四种状态及打开数据库
Oracle是由数据库(数据文件)、实例(包含内存(SGA、PGA)和后台进程)组成
shutdown 实例(内存和进程都关闭掉)、数据库都关闭NOMOUNT 实例启动(内存分配,进程启动)数据库仍然关闭(数据文件没被打开)。可以执行:
select * from v$bgprocess; select * from v$instance; alter database mount; mount 数据库装载完成,打开控制文件(control file)控制文件记载着整个数据库信息控制文件(control file),可以找到database结构信息,但是用户的表的内容还没有打开用户的信息无法被读取,只能读取控制文件包含的信息。
可以执行:
select * from v$database; select * from v$tablespace; select * from v$datafile; alter database open; OPEN数据库打开并成功加载,可以访问用户表。 alter database open; 实操 sqlplus / as sysdba select open_mode from v$database; OPEN_MODE ------------------------------------------------------------ #数据库是读写状态 处于OPEN状态 READ WRITE 关闭数据库immediate:不允许新用户连接,不等待已连接用户做完所有的事务,回滚掉用户所做的事务,然后系统自动断开和他们的连接。
abort 强制断开和所有用户的连接。不安全!
SQL> shutdown immediate Database closed. #把数据库关闭把用户的表关闭 Database dismounted. #卸载就是把控制文件关闭掉 ORACLE instance shut down. #内存也都没了、进程也关闭了 实例启动 SQL> startup nomount ORACLE instance started. #实例启动了 #System Global Area 内存已经分配了 Total System Global Area 2.1179E+10 bytes Fixed Size 2185032 bytes Variable Size 1.0670E+10 bytes Database Buffers 1.0469E+10 bytes Redo Buffers 37048320 bytes 查看物理内存 SQL> show sga Total System Global Area 2.1179E+10 bytes Fixed Size 2185032 bytes Variable Size 1.0670E+10 bytes Database Buffers 1.0469E+10 bytes Redo Buffers 37048320 bytes 查看后台进程 SQL> select count(*) from v$bgprocess; COUNT(*) ---------- 295 说明后台进程已经启动! 查看控制文件 #此时控制文件处于关闭状态 SQL> select count(*) from v$controlfile; COUNT(*) ---------- 0 #更改为mount状态 alter database mount; #此时控制文件就打开了 SQL> select count(*) from v$controlfile; COUNT(*) ---------- 2 查看用户表 #此时还是读不了用户表的 SQL> select count(*) from scott.emp; select count(*) from scott.emp * ERROR at line 1: ORA-01219: database not open: queries allowed on fixed tables/views only #更改为open状态 alter database open; #此时就可以查看数据表了! SQL> select count(*) from scott.emp; COUNT(*) ---------- 14 实例启动二周目 SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. #一步到胃了属于是! SQL> startup ORACLE instance started. Total System Global Area 2.1179E+10 bytes Fixed Size 2185032 bytes Variable Size 1.0670E+10 bytes Database Buffers 1.0469E+10 bytes Redo Buffers 37048320 bytes Database mounted. Database opened. restrict我没用过了解把!
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. #用该方式启动会限制没有 restricted session 的权限用户无法登录 SQL> startup restrict ORACLE instance started. Total System Global Area 2.1179E+10 bytes Fixed Size 2185032 bytes Variable Size 1.0670E+10 bytes Database Buffers 1.0469E+10 bytes Redo Buffers 37048320 bytes Database mounted. Database opened. sqlplus t1/t1@orcl C:\Users\lenovo>sqlplus system/password@orcl SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 15 22:03:37 2025 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-12526: TNS:listener: all appropriate instances are in restricted mode force #全部关闭以后再打开 startup force 参数文件pfile静态参数文件可以被编辑的。
spfile动态参数文件是二进制文件。
创建一个静态文件 SQL> create pfile='G:\pfileorcl.ora' from spfile; File created.打开该文件
文件格式是这样的:
orcl. xxxxx ... *. xxx #只对这一个数据库实例起作用 #这一部分的话对内存分配管理 orcl. xxxxx #加*对所有实例都起作用 #这一部分指的是文件到底在哪个路径下面 #怎么按照路径找重要的文件 *. 从参数文件读数据启动 shutdown immediate startup pfile='G:\pfileorcl.ora'Oracle启动与关闭(基础操作)由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Oracle启动与关闭(基础操作)”