zoukankan      html  css  js  c++  java
  • linux下一个oracle11G DG建立(一个):准备环境

    linux下一个oracle11G  DG建立(一个):准备环境


    周围环境

    名称

    主库

    备库

    主机名

    bjsrv

    shsrv

    软件版本号

    RedHat Enterprise5.5、Oracle 11g 11.2.0.1

    RedHat Enterprise5.5、Oracle 11g 11.2.0.1




    一.环境准备:

    1.vbox

    导入虚拟机镜像(已安装oracle、已建库)

    1、导入虚拟机(主库-北京,下面简称bj)

    2、导入虚拟机(备库-上海,下面简称sh)



    3、主库、备库分别加入一块磁盘

    为主库和备库分别加入1块磁盘,大小为30g。

    (1)、bj加入磁盘。





    (2)、bj网卡设置

    依实际须要进行设置host only或桥接,例如以下图:




    (3)、sh加入磁盘、网卡设置

    操作步骤同上(略)。

    2.主机

    1、rootpassword

    (1)、改动bj的rootpassword



    (2)、改动sh的rootpassword

    略。

    2、主机名

    (1)、改动bj下主机名

     vi /etc/sysconfig/network     //改动主机名

     

    NETWORKING=yes

    NETWORKING_IPV6=no

    HOSTNAME=bjsrv

     

    #hostname  bjsrv            //使主机名生效或重新启动系统

     

    (2)、改动sh下主机名

    vi /etc/sysconfig/network     //改动主机名

     

    NETWORKING=yes

    NETWORKING_IPV6=no

    HOSTNAME=shsrv

     

    #hostname  shsrv            //使主机名生效或重新启动系统

     

    3、.bash_profile

    此处为显示格式习惯的设置。可不做改动。

    (1)、改动bj的.bash_profile

    #vi .bash_profile

     

    # .bash_profile

    # Get the aliases and functions

    if [ -f ~/.bashrc ]; then

            .~/.bashrc

    fi

    # User specific environment and startup programs

    PATH=$PATH:$HOME/bin

    export PATH

    unset USERNAME

    #PS1=`whoami`@`hostname`':${PWD}> '

    PS1='[u@h w]$'

    export PS1

     

    [root@bjsrv ~]#source.bash_profile

    (2)、改动sh的.bash_profile

    #vi .bash_profile

     

    # .bash_profile

    # Get the aliases and functions

    if [ -f ~/.bashrc ]; then

            .~/.bashrc

    fi

    # User specific environment and startup programs

    PATH=$PATH:$HOME/bin

    export PATH

    unset USERNAME

    #PS1=`whoami`@`hostname`':${PWD}> '

    PS1='[u@h w]$'

    export PS1

     

    [root@shsrv ~]#source.bash_profile

    4、网络配置

    (1)、改动bj网络配置

    #vi  /etc/hosts




    #vi /etc/sysconfig/network-scripts/ifcfg-eth0   //改动IP地址

     

    DEVICE=eth0

    BOOTPROTO=static

    IPADDR=192.168.4.71

    NETMASK=255.255.255.0

    ONBOOT=yes

     

    #service  networkrestart


    (2)、改动sh网络配置

    #vi  /etc/hosts




    #vi /etc/sysconfig/network-scripts/ifcfg-eth0   //改动IP地址

     

    DEVICE=eth0

    BOOTPROTO=static

    IPADDR=192.168.4.72

    NETMASK=255.255.255.0

    ONBOOT=yes

     

    #service  networkrestart




    3.安装数据库

    因为导入虚拟机中已安装好oracle,此处不进行安装。安装详见“oracle安装”文档,此步骤略。

    [root@bjsrv ~]#cat /etc/oratab   //验证库已经存在



    注意:在主库安装oracle 软件和数据库,在备库仅仅要安装oracle软件。


    4.磁盘

    简单介绍:

    使用逻辑卷作为物理卷使用。

    分别在bj和sh新创建一块30G的硬盘,创建逻辑卷,aix的逻辑卷必须是一整块磁盘,linux下能够是磁盘的一个分区,逻辑卷组就是把好几块物理卷整合在一起,逻辑卷就是从逻辑组切割出来各种大小的分区。(需改动

    目的:虚拟出4块磁盘

    1.对bj加入磁盘操作

    1、分区→逻辑卷

    为磁盘分区,分一个主分区。

    然后再转换为逻辑卷。

    [root@bjsrv ~]#fdisk –l            //查看硬盘情况




    [root@bjsrv ~]# fdisk   /dev/sdb

    Command (m for help): m

    Command action

       a   toggle a bootable flag

       b   edit bsd disklabel

       c   toggle the dos compatibility flag

       d   delete a partition

       l   list known partition types

       m   print this menu

       n   add a new partition

       o   create a new empty DOS partition table

       p   print the partition table

       q   quit without saving changes

       s   create a new empty Sun disklabel

       t   change a partition's system id

       u   change display/entry units

       v   verify the partition table

       w   write table to disk and exit

       x   extrafunctionality (experts only)

    Command (m forhelp): n

     

    Command action

       e  extended

       p  primary partition (1-4)  p

    Partition number(1-4): 1

    First cylinder(1-3916, default 1):

    Using default value1

    Last cylinder or+size or +sizeM or +sizeK (1-3916, default 3916):

    Using default value3916

     

    Command (m forhelp): p

     

    Disk /dev/sdb: 32.2GB, 32212254720 bytes

    255 heads, 63sectors/track, 3916 cylinders

    Units = cylinders of16065 * 512 = 8225280 bytes

     

       Device Boot      Start         End      Blocks  Id  System

    /dev/sdb1               1        3916   31455238+  83  Linux

     

    Command (m forhelp): t        //(change a partition'ssystem id)转换成逻辑卷格式

    Selected partition 1

    Hex code (type L tolist codes): L

    8e  Linux LVM 

    Hex code (type L tolist codes): 8e       创建逻辑卷格式

    Changed system typeof partition 1 to 8e (Linux LVM)

     

    Command (m forhelp): p

     

    Disk /dev/sdb: 32.2GB, 32212254720 bytes

    255 heads, 63sectors/track, 3916 cylinders

    Units = cylinders of16065 * 512 = 8225280 bytes

     

       Device Boot      Start         End      Blocks     Id  System

    /dev/sdb1              1        3916    31455238+   8e  Linux LVM

    //查看可知转换逻辑卷格式成功,接下来就是创建逻辑卷

    Command (m for help): w    //保存退出




    2、创建物理卷

    创建物理卷(pv):

     [root@bjsrv ~]#   pvcreate  /dev/sdb1       //把分区作为一个物理卷来使用



     [root@bjsrv ~]#pvdisplay                                                       //显示物理卷信息


    3、建立卷组

    将物理卷增加卷组(vg):

    [root@bjsrv ~]#vgcreate datavg /dev/sdb1                                     //创建卷组

    //格式:vgcreate   datavg                             /dev/sdb1

    //说明:建立卷组  逻辑卷组名                    物理卷




    [root@bjsrv ~]#vgdisplay                                 //查看卷组信息


    4、创建逻辑卷

    在卷组下创建逻辑卷:

    lvcreate [-n取名] [-L 指定大小]

    參考图例:




    操作:

    # lvcreate-n lv_dsk1 -L 7g datavg

    # lvcreate-n lv_dsk2 -L 7g datavg

    # lvcreate-n lv_dsk3 -L 7g datavg

    lvcreate -n lv_dsk4 -L 8g datavg

    //剩余一些空间给卷组头使用

     

    # lvdisplay  //查看逻辑卷信息





    5、格式化逻辑卷

    对逻辑卷进行格式化:

    參考图例:




    操作例如以下:

    #mkfs.ext3 /dev/datavg/lv_dsk1

    #mkfs.ext3  /dev/datavg/lv_dsk2

    #mkfs.ext3  /dev/datavg/lv_dsk3

    #mkfs.ext3  /dev/datavg/lv_dsk4

    6、建虚拟磁盘文件夹

    为虚拟出的4块磁盘建立文件夹:

    #mkdir  /dsk1

    #mkdir  /dsk2

    #mkdir  /dsk3

    #mkdir  /dsk4

    7、自己主动挂载

    设置自己主动挂载,即将上几步所创建的文件夹设置为开机自己主动挂载

    #vi  /etc/fstab  设置自己主动挂载

    參考图例:



    操作加入:

    /dev/datavg/lv_dsk1     /dsk1                 ext3       defaults    0  0

    /dev/datavg/lv_dsk2     /dsk2                 ext3       defaults    0  0

    /dev/datavg/lv_dsk3     /dsk3                 ext3      defaults    0  0

    /dev/datavg/lv_dsk4     /dsk4                 ext3      defaults    0  0

     

    挂载四块磁盘:

    #mount /dsk1

    #mount /dsk2

    #mount /dsk3

    #mount  /dsk4

    #df–h                                             //查看磁盘信息



    8、赋权

    把新建文件夹的全部者改为oracle。属组设为dba:

    #chown -R oracle:dba /dsk1

    #chown -R oracle:dba /dsk2

    #chown -R oracle:dba /dsk3

    #chown -R oracle:dba /dsk4

    2.对sh加入磁盘操作

    操作步骤參考“对bj磁盘操作”。

    步骤(略)。

    5.改造数据库

    说明:完毕对数据库的改造,与DG无关。是为了设置一个模拟环境。

    1、改动显示方式

    bj改动

    $vi $ORACLE_HOME/sqlplus/admin/glogin.sql

    改动

    setsqlprompt ‘_user@ _connect_identifier>’

    settermout on;

    set timeon

    set timingon

    參考下图:




    sh改动

    參考bj改动,略。

    2、改造文件位置

    目的:模拟redo日志、datafile不在同一磁盘下。

     

    SQL>startup                                    //启库

     

    【补充】:报MEMORY_TARGETnot supported on this system

    启库时报00845错误




    查看告警日志:

    $tail -f /u01/app/oracle/diag/rdbms/testdb12/TestDB12/alert/ log.xml

    $df -h



    内存超出了。须要改动初始化參数文件里的參数值:

    SQL>create pfile fromspfile;

    $vi$ORACLE_HOME/dbs/initTestDB12.ora;

    对内存值进行改动。參考例如以下图:




    SQL>create spfile from pfile;

    SQL>startup

    补充结束


    SQL>select name from v$controlfile;                       //查看控制文件位置




    SQL>select member from v$logfile;                          //查看日志位置




    SQL>select name from v$datafile;                           //查看数据文件位置



    SQL>archive log list                                               //查看归档模式。DG必须是归档模式




    以上查询得知:

    控制文件、日志文件、数据文件在同一文件夹下,且未开归档。于是以下就要依据查询出的结果对数据库进行改造。模拟一个较复杂的环境。

     

    创建文件放置位置所需文件夹:

     

    规划:

    redo日志放在dsk1、dsk2下

    归档日志放在dsk4下

    1、创建文件夹
    bj创建文件夹

    $mkdir -p /dsk1/oradata/bj

    $mkdir -p /dsk2/oradata/bj

    $mkdir -p /dsk3/oradata/bj

    $mkdir -p /dsk4/oradata/bj

    $mkdir -p /dsk4/arch_bj

    sh创建文件夹

    $mkdir -p /dsk1/oradata/sh

    $mkdir -p /dsk2/oradata/sh

    $mkdir -p /dsk3/oradata/sh

    $mkdir -p /dsk4/oradata/sh

    $mkdir -p /dsk4/arch_sh

     

    补充:

    查看告警日志


    2、改造redo日志位置(bj)

    SQL>selectmember from v$logfile;




    SQL> selectgroup#,status,bytes from v$log;




    SQL>alterdatabase add logfile member

    ‘/dsk2/oradata/bj/redo01b.log’to group 1,

    ‘/dsk2/oradata/bj/redo02b.log’to group 2,

    ‘/dsk2/oradata/bj/redo03b.log’to group 3;

    SQL> selectmember from v$logfile;




    迁移redo日志:(需在mount下进行)

    SQL>shutdownimmediate;

     

    $ cp/u01/app/oracle/oradata/TestDB12/redo03.log  /dsk1/oradata/bj/redo03a.log;

    $ cp/u01/app/oracle/oradata/TestDB12/redo02.log  /dsk1/oradata/bj/redo02a.log;

    $ cp/u01/app/oracle/oradata/TestDB12/redo01.log  /dsk1/oradata/bj/redo01a.log;

    $ls/dsk1/oradata/bj




    SQL>startupmount;

    SQL>alterdatabase rename file

    ‘/u01/app/oracle/oradata/TestDB12/redo03.log’to ‘/dsk1/oradata/bj/redo03a.log’;

    SQL>alterdatabase rename file

    ‘/u01/app/oracle/oradata/TestDB12/redo02.log’to ‘/dsk1/oradata/bj/redo02a.log’;

    SQL>alterdatabase rename file

    ‘/u01/app/oracle/oradata/TestDB12/redo01.log’to ‘/dsk1/oradata/bj/redo01a.log’;

    SQL>selectmember from v$logfile;




    删除旧的redo日志文件:

    $rm/u01/app/oracle/oradata/TestDB12/redo*;

    $ls/u01/app/oracle/oradata/TestDB12/




    至此,实现了日志文件与数据文件的文件夹分离(即模拟了文件不在同一个磁盘)。



    3、设置归档(bj)

    SQL>alterdatabase archivelog;

    SQL>showparameter archive

    SQL>altersystem set log_archive_dest_1='location=/dsk4/arch_bj';

    SQL>altersystem set log_archive_format='arch_%t_%s_%r.log' scope=spfile;

    SQL>startupforce;

    SQL>archivelog list;




    4、所有操作均生成redo设置(bj)

    强制“全部操作”都生成redo日志:

    SQL>alterdatabase force logging;

    SQL>selectname from v$archived_log;        //再查看一下归档日志信息






    ********************未完待续**************************

    声明:
             原创作品。出自 “深蓝的blog” 博客,同意转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。

             关于涉及版权问题。在追究法律责任的权利。



    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    基于 Docker 安装 RocketMQ
    167. 两数之和 II
    阿里云的使用
    自动关机程序
    C语言学习关于数据类型的一些知识点(初学者)
    关于C语言学习的一些感想(初学者)
    c# 第14节 字符方法、转义字符、字符串的方法
    c# 第13节 迭代语句、while、do...while、for、foreach、goto
    c# 第12节 分支语句if、switch、三位运算符
    c# 第11节 运算符大全
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4727867.html
Copyright © 2011-2022 走看看