oracle物理文件管理

一些参数文件参数设置及参数文件、控制文件、数据文件、redo文件损坏或丢失处理办法。

一、参数文件

一些数据库参数设置指南

sga_max_size:shared_pool_size=4:1

sga_max_size 大于 shared_pool_size、db_cache_size、java_pool_size、large_pool_size、stream_pool_size 之和 至少空出1G

sga_max_size:pga_aggregate_target=4:1

db_cache_size:shared_pool_size=3:1

java_pool_size、large_pool_size、stream_pool_size 一般给1G

sga_max_size、pga_aggregate_target 之和一般为总内存的60%~70%

vm.nr_hugepages=(sga+200M)/2M 不能比算出来的值小,一页为2m 略大于sga(sga为内存的40%)

kernel.sem =SEMMSL、SEMMNS、SEMOPM、SEMMNI

--信号量相关,第一个值和第三个值=process+10,第二个值=第一个值*第四个值

参数文件损坏或丢失:

①通过rman恢复

RMAN> list backup of spfile;
RMAN> restore spfile to '/oradata/test/spfiletest.ora'
SQL> shutdown immediate 
SQL> startup 

②从pfile文件中cp到dbs文件中

cp $ORACLE_BASE/admin/test/pfile/init.ora.862021171747 /oracle/app/oracle/product/11.2.0/db/dbs/inittest.ora

用这个文件启动数据库

startup nomount pfile='/oracle/app/oracle/product/11.2.0/db/dbs/inittest.ora';

③新建一个参数文件

create spfile='/home/oracle/spfileorcltest.ora' from memory;

或者建一个文件

vi inittest.ora

填写主要内容db_name和SGA可以初起数据库

db_name=test;
sga_max_size=8G;

二、控制文件

控制文件损坏或丢失:

①会有两个控制文件,一个坏了还能利用另一个恢复。


/oradata/test/control01.ctl
/u01/app/oracle/fast_recovery_area/test/control02.ctl

②使用RMAN恢复

rman target /
RMAN> startup nomount
RMAN> restore controlfile from '/oracle/app/oracle/fast_recovery_area/TEST/autobackup/o1_mf_s_1079221638_jj78q166_.bkp'; 
RMAN> alter database mount;
RMAN> recover database;  
RMAN> alter database open resetlogs;

③重建控制文件

备份创建控制文件的脚本到TRC文件

alter database backup controlfile to trace;

备份到指定位置

alter database backup controlfile to trace as '/home/oracle/backup/control1.trc';

查看cat control1.trc

startup nomount

执行下列语句,是文件中的复制过来执行:

CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/oradata/test/redo01.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 '/oradata/test/redo02.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 '/oradata/test/redo03.log'  SIZE 50M BLOCKSIZE 512
DATAFILE
  '/oradata/test/system01.dbf',
  '/oradata/test/sysaux01.dbf',
  '/oradata/test/undotbs01.dbf',
  '/oradata/test/users01.dbf',
  '/oradata/test/undo3.dbf'
CHARACTER SET ZHS16GBK;
alter database open resetlogs;

三、数据文件

①RMAN备份恢复

SQL> shutdown abort
SQL> startup mount
RMAN> restore datafile filename;
RMAN> recover datafile ;
SQL> alter database open;

②使用工具恢复,数据可能会丢失

③删除数据文件,数据丢失

四、redo日志文件

①单个 INACTIVE 成员丢失(redo02.log丢失)

$ cp /oradata/test/redo01.log /data/test/Redo/redo02.log

②日志组丢失(redo03.log日志组丢失)

初始化重建日志组

SQL> alter database clear unarchived logfile group 3;

③CURRENT 日志组损坏

加入隐参

vi inittest.ora
_allow_resetlogs_corruption=TRUE

pfile用mount启动

SQL> startup mount pfile='/u01/oracle/product/11.2.0/db/dbs/inittest.ora

 使用alter database open resetlogs;

SQL> alter database open resetlogs ;

可能会报错:

解决:用语句恢复,因为没有归档,做一个假的恢复语句,欺骗数据库。

SQL> recover database until cancel;

 再次使用alter database open resetlogs;

SQL> alter database open resetlogs ;

 最后建议删除隐参

vi initest.ora

_allow_resetlogs_corruption=TRUE   删除

所有redo恢复后,切换日志去触动它

SQL> alter system switch logfile;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值