Oracle10g高安全性冗余备份方案

对oracle关键文件controlfile,redolog,archive实现双份方案,实现本地磁盘与共享存储上各一份,本地磁盘路径为/data

1. 挂载共享磁盘到/data
2. 依次创建archive,controlfile,redolog,rman_bak四个目录。
3. 配置归档冗余存放
4. 配置controlfile冗余存放
5. 配置redolog冗余存放

一、挂载iscsi共享磁盘

说明:本实例采用的是iscsi共享存储,采用的是openfiler来搭建,假定事先已经配置好一个共享磁盘如下。
也可以采用常见的nfs来实现。

(1) 准备iscsi客户端环境
iscsi target: 192.168.187.200   
IQN:  iqn.2006-01.com.openfiler:tsn.eca3da916592

# rpm -ivh iscsi-initiator-utils-6.2.0.871-0.10.el5.x86_64.rpm

# chkconfig --level 2345 iscsi on
# chkconfig --level 2345 iscsid on
# service iscsi start
# service iscsid start

(2) 挂载与分区
# iscsiadm --mode discovery --type sendtargets --portal 192.168.187.200
# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eca3da916592 -p 192.168.187.200 -l
# fdisk -l
# fdisk /dev/sdb  n   p   1   w 
# mkfs.ext3 /dev/sdb1
# mount /dev/sdb1 /data


(3) 查看磁盘的UUID
# tune2fs -l /dev/sdb1
tune2fs 1.39 (29-May-2006)
Filesystem volume name:   data
Last mounted on:          <not available>
Filesystem UUID:          c160af38-3928-42c8-9155-ac05a1d20538
Filesystem magic number:  0xEF53

(4) 开机挂载共享磁盘
# cat /etc/fstab 
...
UUID=6e04aed8-1ce7-4c80-ba58-4576ff32ae46  /data  ext3  _netdev      0 0

说明:采用uuid挂载对于多target挂载时不会产口分区交错情况。

[root@dbtest data]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              16G  6.0G  8.8G  41% /
/dev/sda1              99M   22M   73M  23% /boot
tmpfs                1006M     0 1006M   0% /dev/shm
/dev/sdb1              20G  354M   18G   2% /data


二、创建目录
在挂载的存储的分区上创建台下分区,用于存放冗余的oracled/data/archive     存放一份归档日志文件(归档本地磁盘一份,存储上一份)
/data/controlfile 存放一份控制文件(存储上一份)
/data/redolog     存放一份redolog文件(存储上一份)
/data/rman_bak    存放rman备份,包扩rman自动备份控制文件

(1) 创建目录
# mkdir -p /data/{archive,controlfile,redolog,rman_bak}  
# chown -R oracle:oinstall /data/{archive,controlfile,redolog,rman_bak}

(2) 创建本地磁盘归档目录
# mkdir -p /u01/app/archive
# chown -R oracle:oinstall /u01/app/archive
用于本地存放归档日志文件

[root@dbtest data]# cd /data
[root@dbtest data]# ll
drwxr-xr-x 2 oracle oinstall  4096 03-06 21:49 archive
drwxr-xr-x 2 oracle oinstall  4096 03-06 20:43 controlfile
drwx------ 2 root   root     16384 03-05 23:41 lost+found
drwxr-xr-x 2 oracle oinstall  4096 03-06 21:38 redolog
drwxr-xr-x 2 oracle oinstall  4096 03-06 21:38 rman_bak


三、数据库配置规档

# su - oracle
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> shutdown immediate
SQL> startup mount;
SQL> alter database archivelog; 
SQL> alter database open;

SQL> alter system set log_archive_dest_1='location=/u01/app/archive' scope=both;
SQL> alter system set log_archive_dest_2='location=/data/archive' scope=both;

SQL> show parameter archive;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string      location=/u01/app/archive
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/data/archive
...

SQL> alter system switch logfile;
可以观察两个归档目录有相同的归档目志文件。

[root@dbtest data]# ll /u01/app/archive/
total 4048
-rw-r----- 1 oracle oinstall 1308160 Mar  6 20:30 1_7_777161447.dbf

[root@dbtest data]# 
[root@dbtest data]# 
[root@dbtest data]# ll /data/archive/
total 4048
-rw-r----- 1 oracle oinstall 1308160 Mar  6 20:30 1_7_777161447.dbf
[root@dbtest data]#


四、配置controlfile冗余配置

oracle控制文件默认三份都是一致的,任何一份出现问题,都可以通过其它文件替换掉,将其中一份存储在存储分区上,可以实现本地磁盘挂掉,控制文件还有一份存在。
当然控制文件也可以采用rman自动备份控制文件的方式还实现控制文件的最新备份。

(1) 关闭数据库,创建pfile文件
# su - oracle
$ sqlplus /nolog
SQL> conn / as sysdba;
SQL> create pfile from spfile;
SQL> shutdown immediate;

(2) 修改pfile文件,增加控制文件
$ vi /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora

*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl','/data/controlfile/control04.ctl'

(3) 拷贝现在控制文件到存储上分区中

cp /u01/app/oracle/oradata/orcl/control01.ctl /data/controlfile/
cd /data/controlfile
mv control01.ctl control04.ctl

(4) 通过pfile启动oracle,并新创建spfile

startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora';
create spfile from pfile;
shutdown immediate;
startup;

(5) 查看结果
查看方法一:
SQL> select name from v$controlfile;
NAME
----------------------------------------------
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/oradata/orcl/control02.ctl
/u01/app/oracle/oradata/orcl/control03.ctl
/data/controlfile/control04.ctl

查看方法二:
SQL> show parameter control;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7
control_files                        string      /u01/app/oracle/oradata/orcl/c
                                                 ontrol01.ctl, /u01/app/oracle/
                                                 oradata/orcl/control02.ctl, /u
                                                 01/app/oracle/oradata/orcl/con
                                                 trol03.ctl, /data/controlfile/
                                                 control04.ctl


五、 配置redolog冗余存放
redolog的存在对oracle数据库的介质恢复起着重要的作用,默认状态下,redolog是只有三个组,每个组一个日志文件。本方案是将每个组中再增加一个日志文件,与原日志文件相互镜像,实现了redolog日志文件冗余设计。

# su - oracle
$ sqlplus /nolog
SQL> conn / as sysdba;

向原来redolog日志组各增加一个成员
SQL> alter database add logfile member '/data/redolog/redo01.log' to group 1;
SQL> alter database add logfile member '/data/redolog/redo02.log' to group 2;
SQL> alter database add logfile member '/data/redolog/redo03.log' to group 3;

SQL> set pagesize 999;
SQL> set linesize 200;
SQL> col MEMBER format a50
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
         1 INVALID ONLINE  /data/redolog/redo01.log                           NO
         2 INVALID ONLINE  /data/redolog/redo02.log                           NO
         3 INVALID ONLINE  /data/redolog/redo03.log                           NO

6 rows selected.

切换三次日志文件,可以完成使redolog生效。
SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> alter system switch logfile;

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
         1         ONLINE  /data/redolog/redo01.log                           NO
         2         ONLINE  /data/redolog/redo02.log                           NO
         3         ONLINE  /data/redolog/redo03.log                           NO

6 rows selected.

结束,此文章转载而来,本人稍加调整,感谢原创的努力!

你可能感兴趣的:(Oracle10g高安全性冗余备份方案)