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

来源:互联网 发布:linux 查看大日志文件 编辑:程序博客网 时间:2024/05/16 17:31

数据库参数配置
下载附件可获取相关配置脚本
参数修改
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
0 0
原创粉丝点击