ITPub博客

首页 > 数据库 > Oracle > 《大型Oracle系统在AIX/Unix环境下的实践》

《大型Oracle系统在AIX/Unix环境下的实践》

Oracle 作者:banbanfj 时间:2013-10-31 17:17:47 0 删除 编辑
《大型Oracle系统在AIX/Unix环境下的实践》



TAR备份命令


-c 创建一个新的压缩备份
-f 指定备份设备名称
-v 列出每个被处理的文件名称
-x 从压缩备份中提取一个或多个文件
-t 显示压缩备份中包含的文件。


1、将/db/orale(Oracle系统的安装目录)备份至磁带上。
tar -cvf /dev/rmt0 /db/oracle

2、列表显示备份文件内容
tar -tvf /dev/rmt0 |more

3、从tar备份中恢复文件
tar -xvf /dev/rmt0 /db/oracle


tar -cvf /home/ectadm/bk  /home/ectadm/jason #将jason这个目录备份至bk中
tar -xvf /home/ectadm/bk #可用rm -r jason将jason这个目录删除后,再执行恢复
tar -xvf /home/ectadm/bk /home/ectadm/jason/t1 #仅恢复某个文件


find /home/etcadm/jason -print | cpio -ov >bkup
cpio -itv < bkup |more



如何进行数据库冷备

1、了解数据库的物理结构
select name from v$datafile union
select member from v$logfile union
select name from v$controlfile;
显示如下:
/oradata/origlogA/log_g11m1.dbf
/oradata/mirrlogA/log_g11m2.dbf
/oradata/origlogB/log_g12m1.dbf
/oradata/mirrlogB/log_g12m2.dbf
/oradata/origlogA/log_g13m1.dbf
/oradata/mirrlogA/log_g13m2.dbf
/oradata/origlogB/log_g14m1.dbf
/oradata/mirrlogB/log_g14m2.dbf

/oradata/origlogA/cntrl/cntrlECT.dbf
/oradata/origlogB/cntrl/cntrlECT.dbf
/oradata/sapdata1/cntrl/cntrlECT.dbf

/oradata/sapdata7/sr3_31/sr3.data31
/oradata/sapdata7/sr3_32/sr3.data32
/oradata/sapdata7/sr3_33/sr3.data33

……

2、将oradata备份至根文件系统的dbbackup文件中
SQL>shutdown imediate;
tar -cvf /dbbackup /oradata/
SQL>startup

备份制度 P322

Oracle包括三种类型的数据库文件:数据文件、重做日志文件、控制文件(数据库结构信息、运行状态、备份信息等)。
数据库并非实时向硬盘写入数据。
DBWn后台进程与事务是否提交无直接关系,在用户执行COMMIT/ROLLBACK语句结束事务之后,与该事务相关的脏缓存块会暂留在数据高速缓存中,并非立即写入数据文件。

数据库实例恢复过程。
1、数据文件不同步状态。
2、前滚数据,恢复未保存数据。
3、回退数据,删除

用户进程对应的服务进程,在修改数据库数据时(默认情况下)将会产生重做记录,这些重做记录由Oracle写入到得做日志缓存中。在一定条件下,日志写盘进程LGWR从重做日志

缓存中读取重做记录,并将之写入联机重做日志文件中,同时清空重做日志缓存


系统中任何一个事务进行提交或回退操作,都会导致LGWR后台进程将重做记录写入到联机重做日志文件中,由于记录其操作的日志信息已经写盘,记录其数据的数据调整缓存就没

有必要立刻写盘了——因为重做信息可以用来重做事务、恢复数据库数据。


在一个事务的提交记录和重做信息都被写入重做日志文件后,Oracle会认为一个事务已经成功提交,同时向用户返回提交成功的信息。即便这时发生实例崩溃,这个事务也不会丢

失,因为联机重做日志文件中保存了这个事务的重做记录,并可以用来恢复这个事务。

检查是Oracle实例中用于调度数据缓冲区中数据与硬盘数据同步的一个后台进程,严格来说,是一个事件,当检查点事件发生时,数据库调整缓存中所有的脏数据块(已提交、未

写盘的数据块)都将被写入数据文件中,进行内存和硬盘的数据同步。同时ORACLE刷新所有控制文件及数据文件的信息,在其文件头(File Header)的数据块中,记录当前数据库的

SCN信息。
因此可以这样类似地认为——检查点执行后的瞬间,所有已提交的数据都被同步到数据文件中,事务所产生的重做记录也都被同步到联机重做日志中。这时,整个数据库瞬间处于

一致状态,当然这个状态也是瞬间完成的。

CKPT进程负责两个工作:执行检查点和更新控制文件与数据文件的SCN信息。



SQL> show parameter log_checkpoints_to_alert;
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
log_checkpoints_to_alert             boolean     TRUE
上面为TRUE设置,在警告文件中可以看到检查点发出的信息。



SQL> show parameter FAST_START_MTTR_TARGET;
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
fast_start_mttr_target               integer     0
此参数用于控制数据库崩溃情况下数据恢复所需的时间长度,太短,硬盘I/O压力大,太长,则崩溃恢复耗费时长。


SQL> show parameter CONTROL_FILES;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /oradata/origlogA/cntrl/cntrlECT.dbf, 
/oradata/origlogB/cntrl/cntrlECT.dbf, 
/oradata/sapdata1/cntrl/cntrlECT.dbf
建议将控制文件放到RAID0+1的阵列上。

SQL> show parameter user_dump_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------------------------------------
user_dump_dest                       string      /oracle/ECT/saptrace/diag/rdbms/ect/ECT/trace
数据库用户跟踪文件路径。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;  #反向抽取生成控制文件。

LGWn,ARC0  事务链条


SQL> show parameter log_archive_max_process;   #可以动态设置 ALTER SYSTEM SET log_archive_max_processes = 15 scope=both;
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
log_archive_max_processes            integer     4  (默认是4,最大为30)
初始ARC进程数量。

SQL> ARCHIVE LOG LIST;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /oraarc/ECTarch/
Oldest online log sequence     32405
Next log sequence to archive   32408
Current log sequence           32408

如用了闪回恢复区,则有:  Archive Destinaton USE_DB_RECOVERY_FILE_DEST

控制文件,数据库结构图

数据库备份集备份,数据块抽取方式,压缩,

可采用的备份方式P352

缓存恢复 (Rollforward)、事务恢复(Rollback)

在联机重做日志文件中,不仅包含已提交事务的重做日志,也包含了未提交事务的重做日志。

备份演习(恢复演练),各种情况 P363

RMAN恢复目录,RMAN资料档案

可利用块跟踪机制,快速备份。

RMAN> report need backup redundancy 2 database;

Report of files with less than 2 redundant backups
File #bkps Name
---- ----- -----------------------------------------------------
1    1     /oracle/IDS/sapdata1/system_1/system.data1
2    1     /oracle/IDS/sapdata1/sysaux_1/sysaux.data1
3    1     /oracle/IDS/sapdata1/undo_1/undo.data1
4    1     /oracle/IDS/sapdata1/sr3_1/sr3.data1
5    1     /oracle/IDS/sapdata1/sr3_2/sr3.data2
……


Datafile Copy   /oracle/IDS/sapbackup/cntrlIDS.dbf
/oracle/IDS/sapbackup


配置文件:/oracle/IDS/sapbackup/IDS/


#控制文件中的使用记录至少需要保留的天数。
SQL> show parameter control_file_record_keep_time
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------
control_file_record_keep_time        integer     30


Oracle自己的备份管理软件Oracle Security Backup(OSB)、还有Veritas,Legato,EMC,IBM的TSM(Tivoli Storage Manager)等厂商也有自己的产品。
TSM是AIX平台执行数据库备份的佼佼者。

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 6; #提高备份的并行度
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
released channel: ORA_DISK_1

RMAN>backup as backupset database; #不包含归档日志。
RMAN>backup as backupset plus archivelog delete input; #含归档日志文件备份,同时将已备份的归档日志文件删除。

col FILE_ID format 9999
col FILE_NAME format a60
col TABLESPACE_NAME format a30
select FILE_ID,FILE_NAME,TABLESPACE_NAME from DBA_DATA_FILES order by 3;


RMAN> list backup of controlfile;


crontab -e
crontab -l

whoami
oracle
chmod 750 *.sh

#检查数据文件及归档日志是事完好。
RMAN>BACKUP VALIDATE DATABASE ARCHIVELOG ALL;
可通过V$BACKUP_CORRUPTION或V$COPY_CORRUPTION查看物理坏块的信息。
select FILE#,BLOCK#,CORRUPTION_TYPE from V$BACKUP_CORRUPTION;
select FILE#,BLOCK#,CORRUPTION_TYPE from V$COPY_CORRUPTION;



第11章 恢复崩溃的系统
Tivoli Sysback环境,Veritas NBU等。
#shutdown -Fr 重启系统


发现4号数据文件offline后,如何恢复?
col NAME format a50
col ENABLED format a12
col STATUS format a8
select NAME,ENABLED,STATUS from v$datafile;

SQL>alter database datafile 4 offline;
RMAN>list backup summary;
RMAN>list backup of datafile 4 summary;
RMAN>restore datafile 4; #装载
RMAN>recover datafile 4; #恢复
RMAN>sql "alter database datafile 4 online";
退出RMAN,再查询select NAME,ENABLED,STATUS from v$datafile; 发现4号文件Online了。


如果是还原表空间或系统表空间损坏,则数据库系统不能运行,数据库一定不能处于打开状态。

数据库系统崩溃的恢复
思路:装载回数据库的一个完整备份集进行恢复。
$rman target/
RMAN>restore database;
RMAN>recover database;
RMAN>alter database open;
此方法简单,但代价大。

各种文件(控制/日志)损坏情况下的恢复? P433

整体崩溃下的系统重构?P434
Oracle安装卷组(备份方法:savevg,backup,tar,cpio等方式)和数据卷组。

磁盘冷热迁移 P441

深入学习理解下卷组
《大型Oracle系统在AIX/Unix环境下的实践》

# lsvg
rootvg
esdbvg
esdbarcvg


# lspv -L
hdisk0          00c37a803b0ff3ae                    rootvg          active
hdisk2          00c37a806f6aa09d                    rootvg          active
hdisk1          00c37a8017dd14c8                    esdbvg          active
hdisk3          00c37a8017dd6caa                    esdbvg          active
hdisk4          00c37a8017dd9942                    esdbvg          active
hdisk5          00c37a8017ddbf10                    esdbvg          active
hdisk18         00c37a8021d8f12c                    esdbarcvg       active


# lsvg -p rootvg     #显示rootvg由两块物理硬盘构成。
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk0            active            558         100         72..00..00..07..21
hdisk2            active            558         64          12..00..00..48..04

# lsvg -p esdbvg #查看esdbvg的状态
esdbvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk1            active            799         0           00..00..00..00..00
hdisk3            active            799         0           00..00..00..00..00
hdisk4            active            799         0           00..00..00..00..00
hdisk5            active            799         45          00..00..00..00..45

# lsvg -p esdbarcvg
esdbarcvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk18           active            799         18          00..00..00..00..18


# lsvg -l esdbvg  #esdbvg这个卷组上定义了逻辑卷(lvoradata),且该逻辑卷被条带化设置,上面创建了文件系统/oradata。 
esdbvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lvoradata           jfs2       3150    3150    4    open/syncd    /oradata
loglv01             jfs2log    1       1       1    open/syncd    N/A 


查看Oracle数据库的jfs2(not裸设备)设备使用状态,当前是open的,而不是closed的。
# lsvg -l esdbvg
esdbvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lvoradata           jfs2       3150    3150    4    open/syncd    /oradata
loglv01             jfs2log    1       1       1    open/syncd    N/A

查看hdisk5的使用情况
# lspv -p hdisk5
hdisk5:
PP RANGE  STATE   REGION        LV NAME             TYPE       MOUNT POINT
  1-160   used    outer edge    lvoradata           jfs2       /oradata
161-320   used    outer middle  lvoradata           jfs2       /oradata
321-479   used    center        lvoradata           jfs2       /oradata
480-639   used    inner middle  lvoradata           jfs2       /oradata
640-753   used    inner edge    lvoradata           jfs2       /oradata
754-754   used    inner edge    loglv01             jfs2log    N/A
755-799   free    inner edge                      

# varyoffvg esdbvg 在适宜的时间内,(关闭数据库后)将卷组关闭。
# chvg -Q y esdbvg 重新激活。


磁盘故障定位与处理

iostat 2 #查看磁盘是否工作良好,通常某个盘有问题,上面无I/O操作。


假如hdisk0怀疑有问题,进一步检查,发现是非工作状态(missing),说明有问题。
# lspv hdisk0
PHYSICAL VOLUME:    hdisk0                   VOLUME GROUP:     rootvg
PV IDENTIFIER:      00c37a803b0ff3ae VG IDENTIFIER     00c37a8000004c00000001153bb03d9a
PV STATE:           missing                                     
STALE PARTITIONS:   0                        ALLOCATABLE:      yes
PP SIZE:            512 megabyte(s)          LOGICAL VOLUMES:  14
TOTAL PPs:          558 (285696 megabytes)   VG DESCRIPTORS:   2
FREE PPs:           100 (51200 megabytes)    HOT SPARE:        no
USED PPs:           458 (234496 megabytes)   MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  72..00..00..07..21                         
USED DISTRIBUTION:  40..112..111..104..91    

然后在SMITTY中查看OS日志,获得系统硬件错误信息。

# errpt -aj  EAA3D429   也可通过EAA3D429这个Error Code来查。

将坏盘取走,放新盘。

cfgmgr   设备扫描


第四篇

集群篇

第12章 构建AIX下的Oracle集群环境



第13章 在AIX中管理Oracle集群环境





<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22498693/viewspace-1113975/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-09-08