oracle数据库参数配置详细步骤

  • Post author:
  • Post category:其他



数据库参数配置

下载附件可获取相关配置脚本

参数修改

1.备份相关Oracle参数文件:

– a.在E盘根目录下建立文件夹:Oracle_Bak

– b.执行以下语句:create pfile from spfile;

– http://office.lifecycle.cn:5000/fbsharing/d96tj30B

– c.拷贝D:\oracle\product\11.2.0\dbhome_1\database下的INITorcl.ORA文件和SPFILEORCL.ORA文件到E:\Oracle_Bak

– http://office.lifecycle.cn:5000/fbsharing/IOSMPaY9

2.修改参数具体步骤:

a.首先确认内存达到配置要求:

SQL> SHOW PARAMETER TARGET

NAME TYPE VALUE

———————————— ———– ——————————

archive_lag_target integer 0

db_flashback_retention_target integer 1440

fast_start_io_target integer 0

fast_start_mttr_target integer 0

memory_max_target big integer 13120M

memory_target big integer 13120M

parallel_servers_target integer 96

pga_aggregate_target big integer 0

sga_target big integer 0

b.processes和open_cursors根据以上配置策略设置即可

SQL> alter system set processes = 3000 scope=spfile;

SQL> alter system set open_cursors = 1500 scope=spfile;

c.db_writer_processes需要根据show parameter cpu命令查到的cpu_count/8获得,例如:查到cpu_count=24,则db_writer_processes=24/8=3

SQL> show parameter cpu

SQL> alter system set db_writer_processes = 3 scope=spfile;

d.此处3个参数默认设置即可,这一点很重要,设置sga_max_size和sga_target均为0表示不启用ASMM模式

SQL> alter system set session_cached_cursors = 80 scope=spfile;

SQL> alter system set sga_max_size = 0 scope=spfile;

SQL> alter system set sga_target = 0 scope=spfile;

e.memory_max_target和memory_target根据以上配置策略设置即可,此处memory_max_target和memory_target必须不为0,保证启用AMM模



SQL> alter system set memory_max_target = 4G scope=spfile;

SQL> alter system set memory_target = 4G scope=spfile;

2016-04-10 1/4

– http://office.lifecycle.cn:5000/fbsharing/9NPQE9yH

f.orcl使用表空间超过200个时,需要把db_files的值调整为1024

SQL> show parameter db_files

SQL> alter system set db_files=1024 scope= spfile;

3.重启Oracle:

该命令需要在cmd窗口中执行,PL/SQL Developer中执行无效,若重启报错,请转第5步执行相关操作恢复数据库

SQL> shutdown immediate

SQL> startup

– http://office.lifecycle.cn:5000/fbsharing/oJIqkl2Y

4.查询修改结果:

确认processes是否为3000,db_writer_processes是否为3

SQL> show parameter processes;

– http://office.lifecycle.cn:5000/fbsharing/Mn8qzlbf

确认open_cursors是否为1500,session_cached_cursors是否为80

SQL> show parameter cursors;

– http://office.lifecycle.cn:5000/fbsharing/vMJLkpwk

确认memory_max_target和memory_target是否都为4G

SQL> show parameter memory;

– http://office.lifecycle.cn:5000/fbsharing/iQbti4fA

确认sga_target 是否是0,sga_max_size是否是4G(此处4G的值应该是与memory_target值相等)

SQL> show parameter sga;

– http://office.lifecycle.cn:5000/fbsharing/jfXxXGvk

5.在第三步执行startup报错时处理方法:

– 请从*cmd命令行窗口*登陆数据库,执行以下语句:

– a.startup pfile=’E:\Oracle_Bak\INITorcl.ORA’;//此操作会读取初始参数启动数据库

– b.重新执行2,3,4步修改参数

参考spfile 的控制:

http://www.dba-oracle.com/concepts/pfile_spfile.htm

配置Oracle日志文件:

在处理之前,先通过以下命令查看Oracle日志文件的状态,确定该Oracle日志文件组为3个,每组的日志成员大小为50M

SQL> SELECT group#, members, bytes / 1024 / 1024 || ‘M’ AS sizes, status FROM v$log;

2016-04-10 2/4

1.在D:\Oradata下建立目录:D:\Oradata\ORCL,同时在E盘根目录建立目录:E:\Oradata\ORCL

2.新增5个日志文件组

SQL> alter database add logfile group 4 (‘D:\ORADATA\ORCL\REDO04.LOG’) size 200m;

SQL> alter database add logfile group 5 (‘D:\ORADATA\ORCL\REDO05.LOG’) size 200m;

SQL> alter database add logfile group 6 (‘D:\ORADATA\ORCL\REDO06.LOG’) size 200m;

SQL> alter database add logfile group 7 (‘D:\ORADATA\ORCL\REDO07.LOG’) size 200m;

SQL> alter database add logfile group 8 (‘D:\ORADATA\ORCL\REDO08.LOG’) size 200m;

3.可通过以下语句确认日志文件的状态

SQL> SELECT group#, members, status FROM v$log;

– UNUSED状态表示还未使用,可以删除(该状态只在新建日志时才出现,一旦使用就无法变为该状态)

– CURRENT状态表示当前正在使用,不可删除

– ACTIVE状态表示未归档,不可删除(该状态在Oracle执行完归档后变为INACTIVE状态)

– INACTIVE状态表示已归档,可以删除

– 状态的切换顺序:UNUSED ——> CURRENT ——> ACTIVE ——> INACTIVE ——> CURRENT ——> ACTIVE …

– http://office.lifecycle.cn:5000/fbsharing/U9XNnS2R

4.强制切换Oracle日志文件,可能需要执行多次,需要将Oracle的当前日志切换到新建日志中,即将1、2、3三个日志文件组设置为

非CURRENT状态

SQL> alter system switch logfile;

5.先执行以下语句,然后重新查询日志文件状态,当看到123的状态均为INACTIVE时(见如下截图),再执行以下命令,删除123日志文件



SQL> alter system checkpoint;

– http://office.lifecycle.cn:5000/fbsharing/akBeMoew

SQL> alter database drop logfile group 1;

SQL> alter database drop logfile group 2;

SQL> alter database drop logfile group 3;

6.去D:\Oradata\ORCL下手动删除文件REDO01.LOG,REDO02.LOG,REDO03.LOG

7.重新建立123日志文件组,并在E盘目录下建立复用日志文件成员

SQL> alter database add logfile group 1 (‘D:\ORADATA\ORCL\REDO01.LOG’) size 200m;

SQL> alter database add logfile group 2 (‘D:\ORADATA\ORCL\REDO02.LOG’) size 200m;

SQL> alter database add logfile group 3 (‘D:\ORADATA\ORCL\REDO03.LOG’) size 200m;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO01a.LOG’ to group 1;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO02a.LOG’ to group 2;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO03a.LOG’ to group 3;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO04a.LOG’ to group 4;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO05a.LOG’ to group 5;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO06a.LOG’ to group 6;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO07a.LOG’ to group 7;

SQL> alter database add logfile member ‘E:\ORADATA\ORCL\REDO08a.LOG’ to group 8;

8.通过以下语句查询日志文件组状态,确保共有8个组,每个组两个成员,每个成员200M

SQL> SELECT group#, members, bytes / 1024 / 1024 || ‘M’ AS sizes, status FROM v$log;

– http://office.lifecycle.cn:5000/fbsharing/iZ7oL0sQ

2016-04-10 3/4

sessions/processes 介绍

session/connection: 是通信双方从开始通信到通信结束期间的一个上下文(context)。session 是和connection同时建立的,两者是对同一件事

情不同层次的描述。简单讲,connection是物理上的客户机同服务器段的通信链路,session是逻辑上的用户同服务器的通信交互。session

被应用于oracle层次而非操作系统层次.在不考虑通过专用服务器或共享服务器进行登录的情况下,这个参数限制了对指定实例的并发登陆

数.

*process:*这个参数限制了能够连接到SGA的操作系统进程数(或者是Windows 系统中的线程数),这个总数必须足够大,从而能够适用于后台

进程与所有的专用服务器进程,此外,共享服务器进程与调度进程的数目也被计算在内.此外,共享服务器进程与调度进程的数目也被计算在

内.因此,在专用服务器环境中,这是一种限制并发连接数的方法.

session与process的关系

oracle的连接数(sessions)与其参数文件中的进程数(process)相关,它们的关系如下:sessions=(1.1*process+5),若果资源允许,而当

前process 数过小,那么可以适当增大processs 数( session 数依赖于process数,一般不去直接修改session数)。

2016-04-10 4/4