1. 管理数据库实例概述
描述:使用管理工具对数据库进行管理,要操作数据库必须要把数据库加载到实例中,在启动数据库过程中,有参数文件,spfile、pfile,就可以启动数据库,停止数据库,数据库启动成功后,它就是一直运行状态,要通过告警日志和跟踪文件去了解信息系统信息,SQL语句执行的过程,监控数据库的实时的运行状态,oracle提供动态的性能视图
2. 管理框架
- oracle 11g R2版本管理框架的组件,包括
OEM(oracle enterprise manager)
sql developer
sql*plus
- oracle database 10g和9i中,还包括:iSQL*PLUS(基于网页,默认端口是5560)
如:http://192.168.201.22:5560/isqlplus (默认情况下使用普通用户登录)
a. sqlplus
在oracle11g的项目中,由于ASM加入oracle数据库,要操作数据库
[oracle@oracledemo ~]$ . oraenv #设置对应环境变量,以下的操作都是针对oracle数据库
ORACLE_SID = [orcl] ? orcl
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle
有三种数据库连接:本地、远程、分布式
[oracle@oracledemo ~]$ sqlplus scott/tiger@localhost:1521/orcl.example.com 本地,@后面可以省略
[oracle@oracledemo ~]$ sqlplus scott/tiger@192.168.201.93:1521/orcl.example.com 远程
执行脚本(导入脚本)
[oracle@oracledemo ~]$ cat a.sql #登录时,会自动执行
select * from dept;
quit
[oracle@oracledemo ~]$ sqlplus scott/tiger @a.sql
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 19 10:18:12 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
b. sql developer: JAVA语言(有数据库的Jar包和驱动就可以连接) oracle11g R2自带
[oracle@oracledemo ~]$ . oraenv
ORACLE_SID = [oracle] ? orcl
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle
[oracle@oracledemo ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/
[oracle@oracledemo dbhome_1]$ ls
apex deinstall jdbc ons relnotes
assistants demo jdev OPatch root.sh
bin diagnostics jdk opmn scheduler
ccr dv jlib oracledemo_orcl slax
cdata emcli ldap oracore sqldeveloper #####
cfgtoollogs EMStagePatches_orcl lib oraInst.loc sqlj
clone has log ord sqlplus
config hs md oui srvm
crs ide mesg owb sysman
csmig install mgw owm timingframework
css install.platform network perl ucp
ctx instantclient nls plsql uix
cv inventory oc4j precomp utl
dbs j2ee odbc racg wwg
dc_ocm javavm olap rdbms xdk
[oracle@oracledemo dbhome_1]$ cd sqldeveloper/
[oracle@oracledemo sqldeveloper]$ ls
BC4J j2ee otn_new.css sqlcli.bat
BugsFixed_v155.html jdbc raptor_image.jpg sqldeveloper
dvt jdev rdbms sqldeveloper.exe
icon.png jlib relnotes_v155.html sqldeveloper.sh
ide lib sqlcli timingframework
[oracle@oracledemo sqldeveloper]$ sh sqldeveloper.sh
c. OEM: oracle enterprise manager
默认端口:1158 要使用管理员:sys
普通用户登录要授权:select_catalog_role
[oracle@oracledemo ~]$ sqlplus / as sysdba
SQL> grant select_catalog_role to scott
管理命令:emctl status/start/stop dbconsole
[oracle@oracledemo ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://oracledemo:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/dbhome_1/oracledemo_orcl/sysman/log
3. 初始化参数文件
- 初始化参数文件的类型
pfile(文本) 9i前
spfile(二进制)
SQL> show parameter spfile; #oracle启动时,会读取这个参数文件中的值
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora
[oracle@oracledemo ~]$ ls /u01/app/oracle/product/11.2.0/dbhome_1/dbs
hc_DBUA0.dat hc_orcl.dat init.ora lkORCL orapworcl peshm_DBUA0_0 peshm_orcl_0 spfileorcl.ora
pfile和spfile转换: create pfile='/home/oracle/pfile_orcl.ora' from spfile;
pfile和spfile转换: create pfile='/home/oracle/pfile_orcl.ora' from spfile;
[oracle@oracledemo ~]$ ll
total 16
-rw-r--r-- 1 oracle oinstall 25 Jul 19 10:17 a.sql
drwxr-xr-x 2 oracle oinstall 4096 Jul 17 09:27 Desktop
drwxr-x--- 3 oracle oinstall 4096 Jul 12 19:34 oradiag_oracle
-rw-r--r-- 1 oracle oinstall 972 Jul 19 11:27 pfile_orcl.ora
[oracle@oracledemo ~]$ cat pfile_orcl.ora
*.audit_trail='db' 审计信息
SGA和PGA内存值的大小:大部分是oracle自动分配
orcl.__db_cache_size=318767104
orcl.__java_pool_size=16777216
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=436207616
orcl.__sga_target=822083584
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=436207616
orcl.__streams_pool_size=16777216
*.db_block_size=8192 数据块的大小
*.db_domain='example.com' 数据库的名称
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' 分发器
*.open_cursors=300 会话中可以打开洲标的数量
参数类型:静态参数(需要重启)和动态参数
修改方式:alter system set open_cursors=400 scope=spfile; #如果是静态参数,scope必须写spfile
scope取值:spfile(静态参数) memory(动态参数) both(前两者)
SQL> show parameter cursor;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
SQL> alter system set open_cursors=400 scope=both;
SQL> show parameter cursor;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 400
- 管理初始化参数文件
描述:参数文件中是记录控制文件位置,控制文件中记录日志文件和数据文件
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/flash_recovery_area/orcl/control02.ctl'
oracle启动过程中读取文件的顺序:
参数文件spfile --> 控制文件 --> 日志文件和数据文件
4. Oracle数据库的启动过程
描述:把数据库文件加载到内存中形成实例,才能操作数据库
关机:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
启动:
SQL> startup
ORACLE instance started.
Total System Global Area 820236288 bytes
Fixed Size 1339628 bytes
Variable Size 486543124 bytes
Database Buffers 327155712 bytes
Redo Buffers 5197824 bytes
Database mounted.
Database opened.
oracle启动过程中读取文件的顺序
参数文件spfile --> 控制文件 --> 日志文件和数据文件
描述:如果spfile有问题(丢失或者损坏),可以通过pfile进行启动,前提是对spfile做好备份
使用pfile来启动数据库
SQL> startup pfile='/home/oracle/pfile_orcl.ora'
ORACLE instance started.
Total System Global Area 820236288 bytes
Fixed Size 1339628 bytes
Variable Size 486543124 bytes
Database Buffers 327155712 bytes
Redo Buffers 5197824 bytes
Database mounted.
Oracle数据库的启动过程
- 包括四个阶段:shutdown nomount mount open
shutdown: 释放内存、停止oracle的进程
nomount: startup nomount 实现通过记取参数文件找到控制文件,主要作用是恢复控制文件
mount: startup mount 记取控制文件找到日志文件和数据文件,
主要作用是恢复日志和数据文件,
还能切换日志模式,oracle默认的日志模式是非归档模式,如果要在归档模式必须要在mount阶段,
设置数据库闪回
startup: 不写open,默认就是open,作用是读取数据文件和日志文件,打开数据库
重启数据库: startup force = shutdown immediate + startup
5. 停止Oracle数据库
命令: shutdown [option]
option: abort 相当于拨电源,这是最快关数据库的,但是很容易丢失数据,重新启动数据库时,要通过实例把内存中丢失的数据恢复
建议使用immediate[默认]: 触发一个完全检查点(如果触发会把内存中的dirty数据写到数据文件中,再关闭事务,没有提交的事务会全部回滚)
normal: 回滚没有提交的事务,等待所有的连接退出,然后关闭数据库(因为要等待所有的连接退出,所以一般是关不掉)
shutdown transactional: 禁止所有新的连接,等待所有事务结束,关闭数据库(只有有一个事务没结束,就无法关闭)
OEM操作:https://192.168.201.93:1158/em/ 主目录下有"启动"按钮
6.告警日志和动态性能视图
- 告警日志:
SQL> show parameter dump;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/trace
core_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/cdump
max_dump_file_size string unlimited
shadow_core_dump string partial
user_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/trace
日志内容
(*)启动和停止和过程
(*)死锁
(*)强制审计的内容
[oracle@oracledemo ~]$ cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace
[oracle@oracledemo trace]$ vim alert_orcl.log
Thu Jul 12 19:37:55 2018
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Shared memory segment for instance monitoring created
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =27
LICENSE_MAX_USERS = 0
SYS auditing is disabled
- trc和trm的文件,trc是跟踪文件,trm跟踪文件是元信息文件
- v$数据字典
描述:v$开头的都可以反映内存的信息,了解到数据库的运行状态,从而对数据库进行性能的优化
v$database 数据库实例的信息
v$session 会话的信息
v$lock 锁的信息
v$lock_enqueue 锁队列
SQL> select * from v$database;