Oracle是一个庞大的系统,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,那么从哪开始学好呢?如果在大学期间学过数据库理论,或有一定的数据库基础自然很好;如果没有的话,真的是个大问题,我个人认为还是应该从日常基本运维命令及基本体系结构学起,下面我分享一下我常用的运维命令及总结的体系结构。
一、Oracle日常基本运维命令
- Oracle 打开数据库
# su – oracle
$ sqlplus
Enter user-name: con /as sysdba
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SYS@orcl>startup [nomount|mount|startup]
备注:打开数据库 startup 可带三个参数,分别是
SYS@orcl> startup nomount 仅启动 instances
SYS@orcl> startup mount 启动 instances,连上(mount)数据库
SYS@orcl> startup normal 启动 instances,连上(mount)数据库(推荐)
打开(open)数据库
startup 缺省参数是 normal
2.启动Oracle Listener
#su – oracle
$lsnrctl start
- 关闭 Oracle Listener
#su – oracle
$lsnrctl stop
- Oracle 关闭数据库
SYS@orcl> shutdown immediate
- 查找Oracle 软件位置
$ cd $ORACLE_HOME
$ pwd
/u01/app/oracle/product/10.2.0/db_1
- 查找Oracle 数据库的位置
$ cd $ORACLE_BASE
$ pwd
/u01/app/oracle
备注:Oracle数据库软件的文件和Oracle数据库的文件可以分开存储到两个地方。
我们最常使用的几乎全部的在生产环境里面的存放结构是:Oracle数据库软件存放在服务器本地硬盘上而Oracle数据库存放在存储上
- 查看是否存在Oracle实例
$ ps -ef|grep ora
oracle 8888 1 0 08:88 ? 00:00:00 ora_pmon_yxxt
- 查看内存状态
$ ipcs
—— Shared Memory Segments ——–
key shmid owner perms bytes nattch status
- 查询数据文件路径
SYS@orcl>select FILE_NAME from dba_data_files;
FILE_NAME
—————————————————
/data/oracle/app/oradata/orcl/users01.dbf
/data/oracle/app/oradata/orcl/undotbs01.dbf
/data/oracle/app/oradata/orcl/sysaux01.dbf
/data/oracle/app/oradata/orcl/system01.dbf
/data/oracle/app/oradata/orcl/essc5DBSpace_01.dbf
/data/oracle/app/oradata/orcl/tkmsDBSpace_01.dbf
6 rows selected.
10.查询重做日志文件
SYS@orcl>select * from v$logfile;
3 ONLINE
/data/oracle/app/oradata/orcl/redo03.log
NO
2 ONLINE
/data/oracle/app/oradata/orcl/redo02.log
NO
1 ONLINE
/data/oracle/app/oradata/orcl/redo01.log
NO
11.查询控制文件
SYS@orcl>select * from v$controlfile;
/data/oracle/app/oradata/orcl/control01.ctl
NO 16384 720
/data/oracle/app/fast_recovery_area/orcl/control02.ctl
NO 16384 720
12.查看是否启用了归档模式
SYS@orcl> archive log list;
13.查看归档路径
SYS@orcl>show parameter log_archiverd_dest ;
SYS@orcl>select name from v$archived_log ;
二、Oracle基本体系结构
1.Oracle实例有SGA,SGA中有六个池子,还有五个后台进程。
2.Oracle三大文件,控制文件、数据文件、重做日志文件
2.1控制文件:存放数据库的物理结构信息,所谓的物理结构,主要是数据库有多少数据文件,数据文件分别放在什么位置,Oracle数据库有多少redolog文件,这些文件分别放在什么位置;存放数据库的当前运行的一些状态信息,比如说那个数据文件是在线正常的,哪些数据文件是离线不正常的,Oracle数据库当前正在使用着众多重做日志文件的哪一个,哪一些日志文件有一些问题。
2.2数据文件:里面放的是Oracle实在的数据文件数据,Oracle数据主要放的是表,表信息就放在数据文件里面,控制文件会很小,但是数据文件会很大,因为Oracle所有的数据全部放在数据文件里面。
2.3重做日志文件:日志文件里放的是日志,日志记录的是Oracle对数据库、对数据文件所做的所有的修改,全部会以日志的方式记录在日志文件中。它记录的是数据文件的变化过程。
3.Oracle有六大内存块,共享池、streams池、大型池、java池、数据库缓冲区高速缓存、重做日志缓冲区。
4.Oracle有五大后台进程,检查点(CKPT)、系统监视器(SMON)、进程监视器(PMON)、数据库写进程(DBWn)、日志写进程(LGWR)。
作者:王博,某商业银行,系统管理工程师