2. Oracle实例管理
2.1 Instance管理
Oracle实例(instance)是一组Oracle后台进程和内存结构的集合。
- 后台进程主要包括SMON,PMON,DBWR,CKPT和LGWR等;
- 内存结构包括数据库高速缓冲区、重做日志缓冲区、共享池、大池等组成系统全局区(SGA)的重要组件。
实例主要实现对数据库的访问和控制功能,是Oracle服务器的核心。
实例管理主要包括:配置初始化参数、启动和关闭数据库实例、监控数据库实例、管理会话和管理事务等内容,并利用Oracle诊断文件判断Oracle数据库中遇到的一些瓶颈及依赖问题。
Oracle Server是由实例和数据库组成,数据库实际上就是三种物理文件:控制文件、数据文件和联机重做日志文件的集合。
一个实例只能访问一个数据库,而一个数据库可以被多个实例同时进行访问。
启动和关闭Oracle数据库的方法有很多种,可以使用OEM, SQL*plus命令行或操作系统的服务。启动和关闭一个Oracle实例的用户必须具有sysdba或sysoper权限。
2.2 参数文件
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/12.2.0
/db_1/dbs/spfileorcl.ora
VALUE有值表示以二进制参数文件来启动的,如果VALUE值为空,则代表以文本文件来启动
由于二进制参数文件不好看配置,因此可以生成一个文本文件
SQL> create pfile from spfile;
File created.
SQL> create pfile=‘/home/oracle/initorcl-20221117.ora’ from spfile; # 指定文件路径
[root@ora-server ~]# ll /u01/app/oracle/product/12.2.0/db_1/dbs/
total 24
-rw-rw----. 1 oracle oinstall 1544 Nov 17 09:34 hc_orcl.dat
-rw-r--r--. 1 oracle oinstall 3079 May 15 2015 init.ora # 模板文件
-rw-r--r--. 1 oracle oinstall 1101 Nov 17 09:40 initorcl.ora # 文本的参数文件,格式为init+数据库名
-rw-r-----. 1 oracle oinstall 24 Nov 16 16:16 lkORCL
-rw-r-----. 1 oracle oinstall 3584 Nov 16 16:18 orapworcl
-rw-r-----. 1 oracle oinstall 3584 Nov 17 09:35 spfileorcl.ora # 二进制的参数文件,格式为spfile+数据库名,有时还会有spfile不带数据库名的ora文件,启动优先级仅次于该文件
文本文件的参数文件便于查看和修改,但不是所有的参数都能够修改,比如数据块大小,数据库名
[root@ora-server ~]# cat /u01/app/oracle/product/12.2.0/db_1/dbs/initorcl.ora
orcl.__data_transfer_cache_size=0
orcl.__db_cache_size=637534208
orcl.__inmemory_ext_roarea=0
orcl.__inmemory_ext_rwarea=0
orcl.__java_pool_size=16777216
orcl.__large_pool_size=33554432
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=671088640
orcl.__sga_target=989855744
orcl.__shared_io_pool_size=50331648
orcl.__shared_pool_size=234881024
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/fast_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area/orcl'
*.db_recovery_file_dest_size=4016m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.local_listener='LISTENER_ORCL'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=1571m
*.nls_language='AMERICAN'