现在的位置: 首页 > 综合 > 正文

oracle安装规划

2012年01月26日 ⁄ 综合 ⁄ 共 3404字 ⁄ 字号 评论关闭

[问题]:

         1.oracle控制文件和在线重做日志没有实现多路镜像,导致数据库可靠性降低。

         2.没有依据IO负载 对数据文件进行调整,导致各磁盘IO不均衡,个别磁盘IO过高。

                        Av                    Av  

Tablespace           Reads Reads/s    Writes Writes/s 

-------------- ------- ------ -- -------- ---------

DATALIST       539,798     152   101,605       29 

TEMP           187,745      53   110,712       31 

INDEXFLUX      125,182      35    25,469        7 

DATAFLUX        55,270      16       852        0 

DATACFG         48,725      14     5,365        2 

UNDOTBS1         1,463       0    39,789       11 

INDEXLIST       11,268       3    15,265        4 

INDEXCFG        13,359       4     4,512        1 

SYSTEM           6,557       2       325        0 

DATAEXAM         3,016       1       451        0 

SYSAUX           2,231       1       386        0 

INDEXPATH          671       0       278        0 

INDEXEXAM          405       0        19        0 

DATAPATH           326       0        84        0 

          -----------------------------------------

1.    规划原则:

  1. 将控制文件分别部署到不同的磁盘。

a)         Alter system set control_files=”/oradata1/dbnms/ control01.ctl, /oradata2/dbnms/ control02.ctl’;

b)         关闭数据库

c)         物理移动控制文件到指定目录

  1. 在线重做日志至少分为三个组,每组至少两个成员,分别部署到不同的磁盘上。

(1)增加日志组:

ALTER DATABASE ADD LOGFILE GROUP <n> ‘日志文件’ SIZE <n>;

(2)删除日志组:

ALTER DATABASE DROP LOGFILE GROUP <n>;

(3)增加日志成员:

ALTER DATABASE ADD LOGFILE MEMBER ‘日志文件’ TO GROUP <n>;

(4)删除日志成员:

ALTER DATABASE DROP LOGFILE MEMBER ‘日志文件’ ;

  1. 将表空间按照IO负载高低均衡分布到不同的磁盘上。
  2. 重做日志和回滚表空间文件和临时表空间要放到IO速度快的磁盘上,raid10的IO比raid5好。

 

 [现场]

SYS AS SYSDBA> archive log list

数据库日志模式             非存档模式

自动存档             禁用

[问题]

数据库无法恢复的风险非常高。多次数据库故障由于没有开启归档,导致恢复时间从半小时以内延长到了几个小时甚至几天。

2.  开启归档日志

  1. 开启数据库归档模式

1.关闭数据库
SQL> shutdown immediate;
2.启动数据库为mount模式
SQL> startup mount
3.显示和修改归档模式
SQL> archive log list
SQL> alter database archivelog;
SQL> alter database open
4.设置归档日志的格式
SQL>alter system set log_archive_format='ARC%s%t%r.log' scope=spfile;
6.强制切换归档日至
SQL>alter system switch logfile;
7.取消归档
SQL>alter database noarchivelog;

  1. 修改数据库参数,将归档日志目录设置在空间大的磁盘分区上

设置归档日志的存放路径
SQL>alter system set log_archive_dest='+data/arcl' scope=spfile;
SQL>shutdown immediate
SQL>startup

  1. 设置好归档日志自动清除脚本,归档日志保留时间越久越好。
  2. 启动闪回数据库

http://blog.sina.com.cn/s/blog_a3813a410101066l.html

SQL>select FLASHBACK_ON from v$database;

FLASHBACK_ON

------------------------------------

YES

SQL>startup mount

SQL>alter database flashback on;

数据库已更改。

SQL> alter database open;

数据库已更改。

  1. 设置闪回数据库参数

如果设置了闪回恢复区,则log_archive_dest和log_archive_duplex_dest将不可用

  • oracle中log_archive_dest_n和log_archive_dest不能共存

SYS AS SYSDBA> show parameters flash

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_flashback_retention_target        integer     1440

SYS AS SYSDBA> show parameters recover

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      /oracle/flash_recovery_area

db_recovery_file_dest_size           big integer 2G

  1. 监控闪回数据库空间利用

SQL> select * from v$flash_recovery_area_usage;
增加闪回区(Flash Recovery Area)的大小。

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE =20G SCOPE=BOTH SID='*';

 

3.  数据库模式

专有模式和共享模式中要  优先选择专有模式 

4.  参数调整

dbfiles -> 2000          数据库的数据文件总数

processes  -> 2000       数据库支持的服务进程数

sessions   ->3000        数据库支持的session上限

shared_servers -> 0      专有|共享模式开关,0-〉专有

db_recovery_file_dest      /oracle/flash_recovery_area

sga_max_size ->物理内存的50%

sga_target   -> 物理内存的50%

pga_aggregate_target   ->   2M*预计session数

cursor_sharing    ->   EXACT

db_writer_processes   ->   cpu核数/2

job_queue_processes    ->   5   如果等于0,oracle的job不执行

抱歉!评论已关闭.