管理框架包括:数据库实例、监听程序、管理界面(database control ,管理代理,使用Grid control是使用)管理database control(
管理框架包括:数据库实例、监听程序、管理界面(database control ,管理代理,使用Grid control是使用)
管理database control(Oracle为没有连接到crid control关键的数据库提供一种成为Database control的管理控制台,一个Database Control只能管理一个数据库,EM是基于web方式的Database control,使用EM可以查看预警概要与性能师徒、创建修改对象,以及备份、恢复)
启动database control emctl start dbconsole
停止database control emctl stop dbconsole
查看database control状态 emctl status dbconsole
访问方式::port/em 其中端口通过$ORACLE_HOME/install/portlist.ini查看,默认端口是1158,
如果端口正确EM还是不能启动,可以删除之前的EM配置,然后重新配置EM。
删除EM: emca -deconfig dbcontrol db -repos drop
重建EM: emca -config dbcontrol db -repos create
打开和停止监听
启动 lsnrctl start
停止 lsnrctl stop
查看状态 lsnrctl status
sql*plus(常见命令行工具)
1、 sqlplus 账户名/密码@实例名 as 角色名
2、 sqlplus sys/oracle as sysdba
3、 show user ;
4、 exit
5、 sqlplus / as sysdba
6、 sqlplus hr/hr
7、 在SQLplus里使用 ;结尾 (语句的结束)
8、 查看当前缓存值 list 简写l
9、 执行缓冲中的SQL语句 /
10、 保存执行的SQL语句 save 路径;例如: save /u01/1.sql
11、 切换到操作上去: ! ; 回到SQLPLUS : exit
12、 如何执行SQL脚本: @ 路径 / start 路径
13、 只想查看脚本内容,不执行:: get 路径
14、 修改缓冲中的语句使用编辑器 (vi)
15、 ed调用编辑器来修改缓冲内的数据
16、 切换用户使用conn 如:现已用普通用户登录,切换至DBA conn / as sysdba
17、 清屏: !clear
18、 使用host+操作系统命令可以在sqlplus中执行操作系统中命令,如: host cp *
19、 关闭数据库使用:shutdown 开启数据库使用: startup
20、 查看表结构描述: desc 表名,如 desc temp
21、 set设置环境变量: set linesize 100; set pagesize 100;
isql*plus和sql*plus(1.执行数据库管理操作 2.通过执行 SQL 命令在数据库中查询、插入、更新或删除数据)
isql*plus(基于浏览器,默认不能让有dba权限的用户登录)
启动前先启动isqlplus服务 isqlplusctl start
在浏览器中输入URL name:port/isqlplus(默认端口号5560)
修改端口 修改$ORACLE_HOME/install/portlist.ini文件
初始化参数文件pfile & spfile(决定数据库启动)
(9i以前常使用pfile ; 9i开始出现spfile (建议使用))
Pfile 文本文件 可以使用vi编辑
名字:init
路径:$ORACLE_HOME/dbs/
来源: 1 可以通过create pfile from spfile 生成
2 可以通过联机丛书
books --->Administrator's Guide -->2 Creating an Oracle Database--->Step 3: Create the Initialization Parameter File-->see "Understanding Initialization Parameters". 复制 到你的init
3 模板 cp $ORACLE_HOME/dbs/init.ora initorcl.ora
4 如果数据库运行过一次,会在/u01/app/oracle/admin/orcl/pfile 生成一个pfile文件
spfile 二进制文件, 不能用编辑器修改
使用alter systme 命令去修改
名称: spfile
路径:$ORACLE_HOME/dbs,可以通过strings spfileorcl.ora来查看
来源:1、 DBCA创建 ,自动生成
2、通过pfile 来生成spfile :create spfile from pfile ;
例如:create spfile='/u01/sporcl.ora' from pfile='$ORACLE_HOME/dbs/initorcl.ora';
查看参数文件的内容
v$parameter 查看session级别的参数内容:
alter session set 参数=值;修改的会话级别的参数 ,只是当前session 有效,不保存。
v$system_parameter显示的是system级的参数;
使用alter system 修改参数的 (scope=spfile ,momoery,both 如果省略了scope则表示修改spfile和当前内存中的参数)
scope = memory 只修内存的值,不保存到参数文件
= spfile 当前不生效,只是修改该到参数文件,下次启动生 效
= both 表立即生效,下次启动也生效
v$spparameter显示的就是保存在spfile中的参数值(scope=spfile)
show parameter spfile ; 查看当前使用的是spfile还是pfile
有值: 使用spfile启动
无值: 使用pfile启动
参数分类:
静态参数 :只能修改参数文件,下次启动才能生效
动态参数: 可以立即生效的参数
(通过v$PARAMETER 中的字段名为ISSYS_MODIFIABLE来判断参数的类型,,FALSE:静态参数表示必须重启实例后生效 )
IMMEDATE:动态参数,立即生效,下次实例重启后也会生效
DEFERRED:动态参数,当前会话生效,下次实例重启后值会被还原
select distinct issys_modifiable from v$parameter;
数据库启动和关闭
启动 sql>startup [option]
nomount
过程
按以下顺序搜索
spfile
如果未找到,则搜索 spfile.ora
如果未找到,则搜索 init
分配SGA
启动后台进程
打开alert
作用:创建数据库期间、重新创建控制文件期间、执行某些备份和恢复方案期间
mount
过程
将数据库与以前启动的实例关联
定位并打开参数文件中指定的控制文件
通过读取控制文件来获取数据文件和联机重做日志文件的名称和状态。但是,此时不必执行任何检查便可验证数
据文件和联机重做日志文件是否存在
作用:重命名数据文件、启用和禁用联机重做日志文件归档选项、执行完整的数据库恢复
open(会验证是都可以打开所有数据文件和联机重做文件)(默认)
过程
打开联机数据文件
打开联机重做日志文件
关闭 sql>shutdown [option]
normal(默认)
不可以建立新连接。
Oracle 服务器等待所有用户断开连接才完成关闭。
数据库和重做缓冲区会写入到磁盘中。
后台进程被终止,从内存中删除 SGA
Oracle 服务器在关闭实例之前关闭并断开数据库。
下一次启动不需要进行实例恢复。
TRANSACTIONAL
任何客户机都不能利用这个特定实例启动新事务处理
客户机在结束正在进行的事务处理后断开连接。
完成所有事务处理后立即执行关闭。
下一次启动不需要进行实例恢复。
IMMEDIATE
Oracle 数据库正在处理的当前 SQL 语句尚未完成。
Oracle 服务器不等待当前连接到数据库的用户断开连接。
Oracle 服务器会回退活动的事务处理,而且会断开所有已连接的用户。
Oracle 服务器在关闭实例之前关闭并断开数据库。
下一次启动不需要进行实例恢复。
ABORT
立即终止 Oracle 数据库正在处理的当前 SQL 语句。
Oracle 服务器不等待当前连接到数据库的用户断开连接。
数据库和重做缓冲区不写入到磁盘。
不回退未提交的事务处理。
实例已终止,但未关闭文件。
数据库未关闭,也未卸载。
下一次启动时需要进行实例恢复,实例恢复是自动进行的。
预警日志
内容:相关链接-->预警日志内容alert_
历史:相关链接-->预警历史
动态性能视图(通过动态性能视图可访问有关在数据库中更改状态和条件的信息。)(读取可能不一致)
内容、会话、文件状态、作业和任务的进度、锁定、备份状态、内存使用和分配、系统和会话参数、SQL 执行、统计信息和度量
示例:SQL> SELECT sql_text, executions FROM v$sqlWHERE cpu_time > 200000;
SQL> SELECT * FROM v$session WHERE machine = 'EDRSR9P1' and logon_time > SYSDATE - 1;
SQL> SELECT sid, ctime FROM v$lock WHERE
block > 0;