Oracle Dataguard搭建(上)

背景

1)主备库均为Aix操作系统  

2)数据库版本为11gR2

3)主库已搭建完成,这里主要是备库的搭建和配置

4)如文中出现分发库则为standby主库,副本库为standby备库

 

由于字数限制,Oracle Goldengate搭建分为上、下两部分,本文是上半部分

 

 

第一章:环境要求

1、操作系统版本与主库一致(不必完全一致,基本相同即可) 

     主库: 

    uname -a

    AIX hlsthxffdb01 1 7 00F955C04C00

    显示系统名称(AIX)、节点名称(nlthxffdb01)、版本(7.1)、计算机ID(00F955C04C00)

     备库:

    uname -a

    AIX hunands      1 7 00F7E1D84C00

2、分发库和副本库端口能互通(21 22 端口测通)

     因为主库需要往备库传送归档文件,这就要求主库到备库网络端口畅通

    telnet ip 21/22

    如果测试不通应协调相关人员进行开通进行开通。

3、查看主库数据文件大小,预估备份集大小,主库和备库保证有足够的空间存放备份文件

        备份集大小大约=数据文件大小 * 0.11

        预留备份空间大小=数据文件大小 * 0.11 * 2

        查看数据文件大小的两种方法:

        1)asm存储

            su - grid

            asmcmd

            lsdg

        2)通过数据库查询

            sqlplus / as sysdba                              

            select name,total_mb-free_mb from V$asm_diskgroup;

            select sum(bytes)/1024/1024/1024 from dba_segments;            

        检查主库磁盘空间大小

        df -g

第二章:备份前的准备工作(主库执行)

1、关闭主库库删除归档的定时任务

     备库adg搭建完成后,主库的归档文件会传送到备库,并被备库所应用,因此主库备份点以后的归档文件是必须的

2、联系主库负责人不要删除归档,并通知其协调其他备份厂商不要删除备份,并且不要更改备份策略。

        如果有足够空间,可以将归档文件自行进行备份。

3、查看并修改备份策略

        rman target /

        RMAN> show all;

        --查看rman备份策略(第三行)

        CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default -->1代表只保留一份归档,若主库已经备份了一份归档,再次备份会覆盖上一次的归档

        --修改rman备份策略

        CONFIGURE RETENTION POLICY TO REDUNDANCY 3; # default -->3代表保留三分归档

        --查看rman备份介质

        CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default;-->此此处若为tape(磁带),则改为disk(磁盘)

        --修改rman备份介质CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default;

第三章:备份传输(主库执行)

1、创建备份目录,更改权限

        su - root

        cd /backup -->该目录要求容量大小合适,放得下备份文件,多大才算放的下呢?-->查看数据量在最上面

        mkdir rman

        chown -R oracle:oinstall /backup/rman

        chmod -R 777 rman

2、编辑备份脚本(不备份归档日志)

        脚本中环境变量的内容要参考主库环境变量

      vi /backup/rman/rman.sh

        #!/bin/ksh

        umask 022

        export ORACLE_BASE=/u01/app/oracle

        export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

        export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

        ORACLE_UNQNAME=sxlthxff

        export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

        export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

        export PS1=`hostname`:'$PWD'"$"

        export ORACLE_SID=sxlthxff1

        rman target / log=/backup/rman/rman_backup_`date +%Y%m%d`.log <<EOF  -->存放备份log的目录,自己选

        run

        {

        allocate channel ch1 type disk maxpiecesize =20480M;

        allocate channel ch2 type disk maxpiecesize =20480M;

        allocate channel ch3 type disk maxpiecesize =20480M;

        allocate channel ch4 type disk maxpiecesize =20480M;

        allocate channel ch5 type disk maxpiecesize =20480M;

        allocate channel ch6 type disk maxpiecesize =20480M;

        allocate channel ch7 type disk maxpiecesize =20480M;

        allocate channel ch8 type disk maxpiecesize =20480M;

        allocate channel ch9 type disk maxpiecesize =20480M;

        allocate channel ch10 type disk maxpiecesize =20480M;

        backup AS COMPRESSED BACKUPSET database filesperset 10 format '/backup/rman/%d_DF_%T_%s_%p.bak'; -->数据文件的存放目录和命名格式

        backup format '/backup/rman/ctrl_st' current controlfile for standby; -->控制文件的存放目录和命名格式

        release channel ch1;

        release channel ch2;

        release channel ch3;

        release channel ch4;

        release channel ch5;

        release channel ch6;

        release channel ch7;

        release channel ch8;

        release channel ch9;

        release channel ch10;

        }

        exit

        EOF

 

3、主库执行备份脚本

        给脚本添加执行权限:

        chmod +x /backup/rman/rman.sh

        后台运行备份脚本:

        nohup /backup/rman/rman.sh >/backup/u01/rman.log&

        查看备份日志:

        cd /backup/rman/

        tail -f /backup/rman/rman_backup_*.log 

        检查日志中是否存在error

4、传输备份到备库

        su - root

        cd /u01

        mkdir rman

        chmod -R 777 rman

        scp /backup/rman/* 100.12.98.118:/u01/rman

        注:备份文件较多,传输时开多个窗口并行传输以加快速度

第四章:主机检查(备库执行)

1、操作系统检查,看主备库是否一致

        xmgsfbk[/u01/sw/patch]# oslevel -s

        7100-03-05-1524

        7100-03-05-1524

2、cpu核心数检查

        lsdev -C | grep proc | wc -l -->

       2

3、检查内存、SWAP、/TMP空间大小

计算机内存检查:

        /usr/sbin/lsattr -HE -l sys0 -a realmem  -->

        attribute value    description                                user_settable

        realmem   12582912 Amount of usable physical memory in Kbytes False

计算机swap分区大小:       

        /usr/sbin/lsps -a

        Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type Chksum

        hd6             hdisk0            rootvg       16384MB     1   yes   yes    lv     0

tmp目录空间大小:

        df -g /tmp

        Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on

        /dev/hd3          10.00      9.77    3%      144     1% /tmp

4、检查系统安装包-->会提示有一个包没安装,可忽略

lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat \

        bos.perf.perfstat bos.perf.proctools rsct.basic.rte rsct.compat.clients.rte \

        xlC.aix61.rte gpfs.base     

5、检查已安装的系统补丁

xmgsfbk[/u01/sw/patch]# /usr/sbin/instfix -i -k "IZ87216 IZ87564 IZ89165 IZ97035"

    All filesets for IZ87216 were found.

    All filesets for IZ87564 were found.

    All filesets for IZ89165 were found.

    All filesets for IZ97035 were found.       

6、检查内核参数

    vmo -L minperm%

    vmo -L maxperm%

    vmo -L maxclient%

    vmo -L strict_maxclient

    vmo -L strict_maxperm

    如参数不合适修改命令为:

    vmo -p -o minperm%=3

    vmo -p -o maxperm%=90

    vmo -p -o maxclient%=90

    vmo -p -o strict_maxclient=1

    vmo -p -o strict_maxperm=0   

7、检查网络参数

        no -a | fgrep rfc1323

        no -a | fgrep ipqmaxlen

        no -a | fgrep sb_max

        no -a | fgrep tcp_recvspace

        no -a | fgrep tcp_sendspace

        no -a | fgrep udp_recvspace

        no -a | fgrep udp_sendspace

        no -a | fgrep ephemeral   

  如参数不合适修改命令为:

        no -r -o rfc1323=1

        no -r -o ipqmaxlen=512

        no -p -o sb_max=4194304

        no -p -o tcp_recvspace=1048576

        no -p -o tcp_sendspace=1048576

        no -p -o udp_recvspace=262144

        no -p -o udp_sendspace=262144

        # /usr/sbin/no -p -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500

        # /usr/sbin/no -p -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500

8、检查&修改内核参数

        lsattr -E -l sys0 -a ncargs   

        lsattr -E -l sys0 -a maxuproc

        注:lsattr命令可显示设备属性;-E显示当前有效值,从用户定义数据库读取;-l <设备>逻辑设备名;-a <属性值>

  如参数不合适修改命令为:

        chdev -l sys0 -a ncargs=256

        chdev -l sys0 -a maxuproc=16384

重启服务器使参数生效后,重新检查第六步以后的参数。

重启命令为:reboot

第五章:数据库软件安装(备库执行)

1 、创建用户组和用户

        mkgroup -'A' id='501' adms='root' oinstall

        mkgroup -'A' id='502' adms='root' asmadmin

        mkgroup -'A' id='503' adms='root' asmdba

        mkgroup -'A' id='504' adms='root' asmoper

        mkgroup -'A' id='505' adms='root' dba

        mkuser id='502' pgrp='oinstall' groups='dba,asmdba' home='/home/oracle' fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

         passwd oracle

         Changing password for "oracle"

        oracle's New password: -->设为oracle123

        Enter the new password again:

2、创建目录

          **介质存放目录**

        mkdir -p /u01/sw/db    -->oracle软件安装包

        mkdir -p /u01/sw/psu   -->补丁包

        mkdir -p /u01/sw/patch  -->补丁工具包

        mkdir -p /u01/sw/rpm    -->rpm包,一般为空   

        chmod -R 777 /u01/sw 

           ***Oracle inventory 目录*** 

        mkdir -p /u01/app/oraInventory  -->是和oracle base平级的目录,用于保存本机上安装的oracle软件的目录清单;本机上安装的所有oracle都共享该目录

        chown -R oracle:oinstall /u01/app/oraInventory

        chmod -R 775 /u01/app/oraInventory

           ***Oracle Base 目录*** 

        mkdir -p /u01/app/oracle  -->oracle软件安装的最顶层目录,该目录下可以安装多个版本的oracle软件

        mkdir /u01/app/oracle/cfgtoollogs

        chown -R oracle:oinstall /u01/app/oracle

        chmod -R 775 /u01/app/oracle

        ***Oracle Rdbms Home 目录***

        mkdir -p /u01/app/oracle/product/11.2.0/db_1  -->与product平级的目录有:sdmin/cfgtoollogs/checkpoints/diag和product目录

        chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1

        chmod -R 775 /u01/app/oracle/product/11.2.0/db_1

3、检查创建的用户

        # id oracle

        uid=502(oracle) gid=501(oinstall) groups=503(asmdba),505(dba)

4、检查权限

        # lsuser -a capabilities oracle

        oracle capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE

5、设置oracle用户的环境变量  -->由主库复制而来

        vi .profile

        PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.

        export PATH

        umask 022

        export ORACLE_BASE=/u01/app/oracle

        export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

        export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

        export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

        export ORACLE_SID=xmsthxff

        export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

        export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/home/oracle/ggs:$PATH

        export PS1=`hostname`:'$PWD'"$"

6、检查图形界面是否可以启动  -->一般选用第二种方法,需安装vnc

第一种调用图形方法:

        xmanage

        启动 Xmanager - Passive

        su - oracle

        --export DISPLAY=100.12.56.114:0.0

        export DISPLAY=100.12.56.128:0.0

        测试 xclock

第二种调图形方法

        1.将RPM包传到/tmp下

        scp /tmpvnc-3.3.3r2-6.aix5.1.ppc.rpm oracle@99.12.100.252:tmp  -->将vnc的安装包从青海地税scp过来

        2.安装RPM包(root用户?):rpm -ivh vnc-3.3.3r2-6.aix5.1.ppc.rpm

        3.输入vncserver设置密码  -->需输入两次

        123456

        123456

        4.将客户端安装到window桌面  -->window上也许安装vnc

        5.打开window客户端的vnc登录。

        注:Linux和Unix的vnc是不一样的

7、确定数据库版本,根据数据库版本传输相应的介质  -->根据主库而定,在sqlplus链接数据库时 ,会显示数据库版本

需要传输的文件有:  -->若分发库为40,就传40,若分发库为30,就找30的来传,宁夏可能是30

数据库介质压缩包:

/u01/sw/db/p13390677_112040_AIX64-5L_1of7.zip

/u01/sw/db/p13390677_112040_AIX64-5L_2of7.zip

解压文件:

        /u01/sw/unzip

打补丁工具压缩包:

        /u01/sw/patch/p6880880_112000_AIX64-5L.zip

补丁包:

        /u01/sw/psu/p18706488_11203011_AIX64-5L.zip

如果数据库版本为:11.2.0.3.0都去上海税务副本库去取ip为:99.12.100.197

8、解压数据库安装包

        su - root

        chmod 775 /u01/sw/db/unzip

        su - oracle

        cd /u01/sw/db/

        unzip p13390677_112040_AIX64-5L_1of7.zip    -->默认解压到当前目录,解压后才能安装

        unzip p13390677_112040_AIX64-5L_2of7.zip

9、安装数据库软件  -->在VNC打开的图形界面上执行

        cd /u01/sw/db/database

        启动图形界面:在图形界面下执行。

        ./runInstaller

10、安装打补丁工具

        su - oracle

        cd /u01/sw/patch/

        unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME  -->解压到ORACLE_HOME/下

11、打补丁

        cd /u01/sw/psu/

解压补丁包:

        unzip p18706488_11203011_AIX64-5L.zip

修改打补丁工具的权限:

        chmod 777 $ORACLE_HOME/OPatch/opatch

打补丁:

        $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /u01/sw/psu/18522512/18522512

12、执行图形界面出现的两个脚本

        su - root

        sh /u01/app/oraInventory/orainstRoot.sh

        sh /u01/app/oracle/product/11.2.0/db_1/root.sh

点击图形界面的ok

13、检验软件是否安装成功

      sqlpplus / as sysdba  -->如果成功登陆证明安装成功。

posted @ 2017-09-05 19:36  wounder  阅读(1871)  评论(0编辑  收藏  举报