• Linux 5.8 自定义静默安装Oracle 11gR2 全攻略


    最近做了一个生产库11g ADG 的安装,这里把安装用到的东西整理一下。很多东西都在 wait4friend 以前的文章提到过,这次就算整理打包了。

    1   服务器安装

    1.1   操作系统安装

    操作系统为 CentOS 5.8 x86_64

     

    注意:

    1.         为满足Oracle安装需求,设置系统swap空间至少为内存1.5倍,最大16G

    2.         磁盘规划部分,请参见下文 操作系统设置-->创建目录 部分

    3.         建议hostname分别设置为DBSRV1DBSRV2,和ADG环境数据库名称保持一致

    1.2   操作系统设置

    1.2.1   修改共享内存

    vi /etc/fstab

    tmpfs /dev/shm tmpfs defaults,size=3276M 0 0

    为了启用Oracle 11g AMM特性,此处size至少设置为物理内存的80%

     

    mount -o remount /dev/shm

     

    1.2.2   安装必要的包

    yum  -y  install binutils  compat-db compat-gcc-34  compat-gcc-34-c++  compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-* libXp.so.6 libXt.so.6 libXtst.so.6 libgcc_s.so.1 ksh libXp libaio-devel numactl numactl-devel  sysstat  unixODBC unixODBC-devel pdksh

     

    如果:pdkshyum不到,需要手工安装

    # rpm -e ksh   如果和 ksh有冲突,可以把ksh卸载掉

    # rpm -i pdksh-5.2.14-37.el5.i386.rpm

    # rpm -i pdksh-5.2.14-37.el5.x86_64.rpm

     

    1.2.3   临时禁用防火墙

    chkconfig iptables off

    service iptables stop

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

     

    1.2.4   内核参数

    ########################################

    vi /etc/sysctl.conf

     

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    fs.file-max = 6815744

    fs.aio-max-nr = 1048576

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default = 4194304

    net.core.rmem_max = 4194304

    net.core.wmem_default = 262144

    net.core.wmem_max = 1048576

     

    /sbin/sysctl -p

     

    ########################################

    vi /etc/security/limits.conf  

     

    # Added for Oracle Shell Limits

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

     

    grid soft nproc 2047

    grid hard nproc 16384

    grid soft nofile 1024

    grid hard nofile 65536

     

    ########################################

    vi /etc/pam.d/login

     

    # Added for Oracle Shell Limits

    session required /lib/security/pam_limits.so

    session required pam_limits.so

     

    1.2.5   创建用户

    groupadd oinstall

    groupadd dba

    groupadd asmdba

    groupadd asmadmin

    groupadd asmoper

    useradd -g oinstall -G dba,asmdba -d /home/oracle -s /bin/bash -m oracle

    echo oracle | passwd --stdin oracle

    useradd -g oinstall -G dba,asmdba,asmadmin,asmoper -d /home/grid -s /bin/bash -m grid

    echo grid | passwd --stdin grid

    1.2.6   创建目录

    目录名称

    用途

    其他

    /u01

     

     

    /u01/app

     

     

    /u01/app/grid

    $GI_BASE

     

    /u01/app/grid_home

    $GI_HOME

     

    /u01/app/oracle

    $ORACLE_BASE,安装数据库软件

     

    /u01/app/oracle /product/11.2.0/dbhome_1

    $ORACLE_HOME

     

    /u01/app/oraInventory

    数据库软件的配置信息

     

    /u01/oradata

     

    选用Raid 5Raid 1+0

    /u01/oradata/<SID>

    指定实例的数据文件

     

    /u01/redo

     

    优先选用Raid 1+0,并且和/u01/oradata处于不同磁盘组

    /u01/redo/<SID>

    指定实例的在线日志文件

     

     

     

     

    /u02

     

    用于备份和数据泵的目录,最好和/u01/oradata处于不同磁盘组

    /u02/archivelog

     

     

    /u02/archivelog/<SID>

    指定实例的归档日志文件

     

    /u02/rmanbackup

    RMAN备份文件

     

    /u02/dpdump

    数据泵使用的目录

    修改默认目录对象SYS.DATA_PUMP_DIR 为这个地址

     

     

     

    /home/oracle

    oracle用户根目录

     

    /home/oracle/script

    oracle用户日常使用脚本

     

    /home/grid

    grid用户根目录

     

     

    mkdir -p /u01/app/oracle

    mkdir -p /u01/app/grid

    mkdir -p /u01/app/grid_home

    mkdir -p /u01/oradata

    mkdir -p /u01/redo

    mkdir -p /u02/archivelog

    mkdir -p /u02/rmanbackup

    mkdir -p /u02/dpdump

    mkdir -p /home/oracle/script

    mkdir -p /home/oracle/upload

    mkdir -p /home/grid/upload

    chown -R oracle:oinstall /home/oracle

    chown -R grid:oinstall /home/grid

    chown -R oracle:oinstall /u01

    chown -R oracle:oinstall /u02

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

    chown -R grid:oinstall /u01/app/grid_home

    chmod -R 775 /u01

    chmod -R 775 /u02

     

    1.2.7   环境变量

    涉及文件

    Ø  rlwrap_static_x64

     

    # cp ./rlwrap_static_x64 /usr/bin/

    # chmod +x /usr/bin/rlwrap*

    # ln -s /usr/bin/rlwrap_static_x64 /usr/bin/rlwrap

     

     

    # vi /home/oracle/.bash_profile

     

    export ORACLE_BASE=/u01/app/oracle

    export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1

    export ORACLE_HOME_LISTNER=${ORACLE_HOME}

    export ORACLE_PATH=${ORACLE_HOME}/rdbms/admin

    export ORACLE_SID=bill

    export PATH=${PATH}:${ORACLE_HOME}/bin

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib

    export SQLPATH=~/script

    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

     

    alias sqlplus='rlwrap sqlplus'

    alias rman='rlwrap rman'

    alias dgmgrl='rlwrap dgmgrl'

     

     

    # vi /home/grid/.bash_profile

     

    export ORACLE_BASE=/u01/app/grid

    export GI_HOME=/u01/app/grid_home

    export ORACLE_HOME=${GI_HOME}

    export ORACLE_HOME_LISTNER=${ORACLE_HOME}

    export ORACLE_PATH=${ORACLE_HOME}/rdbms/admin

    export ORACLE_SID=+ASM

    export PATH=${PATH}:${ORACLE_HOME}/bin

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib

    export SQLPATH=~/script

    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

     

    alias ct='crs_stat -t'

    alias asmcmd='rlwrap asmcmd'

     

    1.3   GRID软件安装

    本节的操作如无特殊说明,都是使用grid用户执行。

     

    涉及文件

    Ø  my_grid_install_swonly.rsp

    Ø  p10404530_112030_Linux-x86-64_3of7.zip

     

    1.3.1   静默安装配置

    确认并修改静默安装配置文件my_grid_install_swonly.rsp

     

    配置文件要特别注意,ORACLE_HOME不能在ORACLE_BASE路径下面。(oracle用户的要求相反,ORACLE_HOME要在ORACLE_BASE下面)

    grep -E '^(ORACLE_HOSTNAME|INVENTORY_LOCATION|SELECTED_LANGUAGES|oracle.install.option|ORACLE_BASE|ORACLE_HOME|oracle.install.asm.OSDBA|oracle.install.asm.OSOPER|oracle.install.asm.OSASM)' ~/upload/my_grid_install_swonly.rsp

     

    # 主机名称

    ORACLE_HOSTNAME=xxxxxx

    #

    INVENTORY_LOCATION=/u01/app/oraInventory

    #

    SELECTED_LANGUAGES=en

    # 仅安装软件

    oracle.install.option=CRS_SWONLY

    #

    ORACLE_BASE=/u01/app/grid

    #

    ORACLE_HOME=/u01/app/grid_home

    #

    oracle.install.asm.OSDBA=asmdba

    oracle.install.asm.OSOPER=asmoper

    oracle.install.asm.OSASM=asmadmin

     

    1.3.2   静默安装软件

    注意:-responseFile参数必须使用绝对路径

    $ ./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /home/grid/upload/my_grid_install_swonly.rsp

     

    顺利执行完安装之后,还是以root身份运行配置文件

    # /u01/app/oraInventory/orainstRoot.sh

    # /u01/app/grid_home/root.sh

     

    重点来了,当执行root.sh之后,有提示信息要求看log文件的,一定要看。日志最后有这样的内容

    To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user:

    /u01/app/grid_home/perl/bin/perl -I/u01/app/grid_home/perl/lib -I/u01/app/grid_home/crs/install /u01/app/grid_home/crs/install/roothas.pl

     

    To configure Grid Infrastructure for a Cluster execute the following command:

    /u01/app/grid_home/crs/config/config.sh

     

    大意就是说,如果是安装standalone的,要运行roothas.pl,如果是RAC,运行config.sh。这里是安装单机的,执行

    # /u01/app/grid_home/crs/install/roothas.pl

     

    1.3.3   静默配置监听

    安装Grid之后,监听以及数据库的启动都由has来负责,所以在grid用户下建立监听。这里可以自动注册(如果先安装Oracle,然后安装Grid,就涉及到手工注册等一系列问题)

     

    $ netca -silent -responseFile /u01/app/grid_home/assistants/netca/netca.rsp

     

    虽然数据库会自动注册监听,但如果要使用 RMAN duplicate 命令创建备库,备库必须首先处于 NOMOUNT 状态。在 NOMOUNT 状态下,数据库实例不会自动注册监听,这种场景必须配置静态监听。

    $ vi /u01/app/grid_home/network/admin/listener.ora

    增加下列内容(ORACLE_HOME部分指定的是oracle用户的$ORACLE_HOME,因为后面要配置DG,这里使用了dbsrv1作为服务名称)

    SID_LIST_LISTENER =

      (SID_LIST =

        (SID_DESC =

          (GLOBAL_DBNAME = dbsrv1)

          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)

          (SID_NAME = bill)

        )

      )

     

    静态监听配置完成之后,暂时不要重启Listener,因为现在还没有安装Oracle软件。

    1.4   ASM安装

    1.4.1   驱动安装

    本节的操作如无特殊说明,都是使用root用户执行。

     

    涉及文件(和系统内核统一版本)

    Ø  oracleasm-support-2.1.7-1.el5.x86_64.rpm

    Ø  oracleasm-2.6.18-308.el5-2.0.5-1.el5.x86_64.rpm

    Ø  oracleasmlib-2.0.4-1.el5.x86_64.rpm

     

    安装ASM

    # rpm -ivh *.rpm

    默认安装顺序和上面文件列表的排序一致

     

    配置ASM

    # oracleasm configure –i

    在提示输入用户和组信息的时候,输入gridasmadmin

     

    创建ASM磁盘

    这里使用4个盘做DATA2个盘做ARCfdisk分区过程略

    # oracleasm createdisk DATA1 /dev/sda5

    # oracleasm createdisk DATA2 /dev/sda6

    # oracleasm createdisk DATA3 /dev/sda7

    # oracleasm createdisk DATA4 /dev/sda8

    # oracleasm createdisk FRA1 /dev/sda9

    # oracleasm createdisk FRA2 /dev/sda10

     

    查看ASM磁盘

    # oracleasm scandisks

    # oracleasm listdisks

     

    1.4.2   ASM实例创建

    本节的操作如无特殊说明,都是使用grid用户执行。

    ASM实例的创建,可以在静默安装GRID当中配置,也可以使用命令行独立配置。这里使用命令行方式。我使用的是ASMLib磁盘,指定了ORCL:*作为发现路径

     

    $ asmca -silent -configureASM -sysAsmPassword 888888 -asmsnmpPassword 888888 -diskString 'ORCL:*' -diskGroupName DATA -diskList 'ORCL:DATA1,ORCL:DATA2' -redundancy EXTERNAL -compatible.asm 11.2 -compatible.rdbms 11.2

     

    $ asmca -silent -createDiskGroup -sysAsmPassword 888888 -diskString 'ORCL:*' -diskGroupName FRA -diskList 'ORCL:FRA1,ORCL:FRA2' -redundancy EXTERNAL -compatible.asm 11.2 -compatible.rdbms 11.2

     

    1.5   数据库软件安装

    本节的操作如无特殊说明,都是使用oracle用户执行。

     

    涉及文件

    Ø  my_db_install_swonly.rsp

    Ø  p10404530_112030_Linux-x86-64_1of7.zip

    Ø  p10404530_112030_Linux-x86-64_2of7.zip

     

    1.5.1   卸载数据库(可选)

    $ dbca -silent -deleteDatabase -sourceDB bill

    $ rm -rf $ORACLE_BASE

     

    # rm -f /etc/oraInst.loc /etc/oratab

    # rm -rf /tmp/Ora*

    # cd /usr/local/bin/  

    # rm -f coraenv dbhome oraenv

    1.5.2   静默安装配置

    确认并修改静默安装配置文件my_db_install_swonly.rsp(绝大部分参数已经修改过)

    grep -E '^(oracle.install.option|ORACLE_HOSTNAME|UNIX_GROUP_NAME|INVENTORY_LOCATION|SELECTED_LANGUAGES|ORACLE_HOME|ORACLE_BASE|oracle.install.db.InstallEdition|oracle.install.db.isCustomInstall|oracle.install.db.DBA_GROUP|oracle.install.db.OPER_GROUP|DECLINE_SECURITY_UPDATES)' ~/upload/my_db_install_swonly.rsp

     

     

    # 仅安装数据库软件

    oracle.install.option=INSTALL_DB_SWONLY

    # 主机名称

    ORACLE_HOSTNAME=xxxxxx

    UNIX_GROUP_NAME=oinstall

    INVENTORY_LOCATION=/u01/app/oraInventory

    # 安装过程语言

    SELECTED_LANGUAGES=en

    # 目录

    ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

    ORACLE_BASE=/u01/app/oracle

    # 安装企业版

    oracle.install.db.InstallEdition=EE

    # 默认安装组件

    oracle.install.db.isCustomInstall=false

    # 用户组

    oracle.install.db.DBA_GROUP=dba

    oracle.install.db.OPER_GROUP=oinstall

    # 这个必须设置为true

    DECLINE_SECURITY_UPDATES=true

     

    1.5.3   静默安装软件

    注意:-responseFile参数必须使用绝对路径

    $ ./runInstaller -silent -force -responseFile /home/oracle/upload/my_db_install_swonly.rsp

     

    安装过程中查看日志来了解进度

    $ tail -f /u01/app/oraInventory/logs/installActions*.log

     

    最后步骤是用root身份执行下面两个文件,和GUI安装一样。如果前面安装了Grid软件,那这里只有root.sh需要执行。

    # bash /u01/app/oracle/oraInventory/orainstRoot.sh

    # bash /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

     

    1.6   数据库安装

    本节的操作如无特殊说明,都是使用oracle用户执行。

     

    涉及文件

    Ø  my_dbca_createdb.rsp

     

    1.6.1   定制模版文件

    默认静默安装使用的是General_Purpose.dbc这个模版文件。对于生产数据库,我们需要更细粒度的配置,所以我们可以选择自定义模版的方式。如果不使用默认安装,注意修改TEMPLATENAME参数。

     

    注意:模版文件需要放在$ORACLE_HOME/assistants/dbca/templates/

    1.6.2   静默安装配置

    确认并修改静默安装配置文件my_dbca_createdb.rsp或者my_dbca_createdb_asm.rsp(注意修改GDBNAMESIDTOTALMEMORY和密码)

    grep -E '^(GDBNAME|SID|TEMPLATENAME|SYSPASSWORD|SYSTEMPASSWORD|DATAFILEDESTINATION|RECOVERYAREADESTINATION|STORAGETYPE|DISKGROUPNAME|RECOVERYGROUPNAME|CHARACTERSET|NATIONALCHARACTERSET|MEMORYPERCENTAGE|TOTALMEMORY)' ~/upload/my_dbca_createdb_asm.rsp

     

    # 数据库名称

    GDBNAME = "bill"

    SID = "bill"

    # 自定义模版文件名称

    TEMPLATENAME = " General_Purpose.dbc "

    # ASM配置

    STORAGETYPE=ASM

    DISKGROUPNAME=DATA

    RECOVERYGROUPNAME=FRA

    # 初始化密码

    SYSPASSWORD = "888888"

    SYSTEMPASSWORD = "888888"

    # 数据库使用的中文字符集

    CHARACTERSET = "ZHS16GBK"

    # 默认就是AL16UTF16

    NATIONALCHARACTERSET= "AL16UTF16"

    # Oracle实例将使用物理内存

    TOTALMEMORY = "2800"

    1.6.3   静默安装数据库

    注意:-responseFile参数必须使用绝对路径

    $ dbca -silent -responseFile /home/oracle/upload/my_dbca_createdb_asm.rsp

     

    1.6.4   检查参数(可选)

    根据具体需要,对参数进行调整(这里使用的是FS)

     

    -- undo

    alter database datafile '/u01/oradata/bill/undotbs01.dbf' resize 80m;

    alter database datafile '/u01/oradata/bill/undotbs01.dbf' autoextend on next 10m maxsize unlimited;

    -- users

    alter database datafile '/u01/oradata/bill/users01.dbf' resize 10m;

    alter database datafile '/u01/oradata/bill/users01.dbf' autoextend on next 1m maxsize unlimited;

     

    -- enable AMM

    alter system set memory_max_target=2800m scope=spfile;

    alter system set memory_target=2800m scope=spfile;

    alter system set sga_target=0 scope=spfile;

    alter system set pga_aggregate_target=0 scope=spfile;

     

    -- misc

    alter system set processes=500 scope=spfile;

    alter system set open_cursors=300;

    alter system set undo_retention=86400;

    alter system set db_recovery_file_dest_size=8G;

     

    alter system set recyclebin=off scope=spfile;

    alter system set sec_case_sensitive_logon = false;

     

    -- archive log

    alter system set log_archive_format = '%T_%S_%r.arc' scope=spfile;

    alter system set log_archive_dest_1='LOCATION=/u02/archivelog/bill/';

    alter system set log_archive_dest_1='LOCATION=+FRA/bill/archivelog/'

    需要先建立对应的目录,如果是ASM,需要使用asmcmd

     

    -- 闪回保留24小时

    alter system set db_flashback_retention_target=1440;

     

    startup mount

    -- 启用归档

    alter database archivelog;

    -- 启用闪回日志记录

    alter database flashback on;

    1.6.5   安装OEM

    静默安装数据库,是没有安装OEM的。如果需要使用OEM,必须手工安装。

     

    # 必须启动监听

    $ lsnrctl start

     

    # 卸载已有的EM (可选)

    $ emca -deconfig dbcontrol db -repos drop

     

    # 安装

    $ emca -config dbcontrol db -repos create

     

    #启动OEM

    $ emctl start dbconsole

     

    # 登录地址

    https://hostname:1158/em/console/aboutApplication

    1.7   ADG配置

    实施方案是按照最高性能模式(MAXIMUM PERFORMANCE)配置的ADG。有关DG三模的区别,请参阅官方手册。

     

    1.7.1   Primary配置

    1.7.1.1     强制归档模式

    sqlplus / as sysdba

     

    startup mount;

    alter database force logging;

    alter database archivelog;

    archive log list;

    1.7.1.2     备用重做日志

    Standby redo log是使用Real Time Apply必须的条件

    Oracle文档要求standby logfile的数量至少比online logfile多一组. 所以我们在此创建4standby logfile.

     

    alter database add standby logfile group 11('/u01/redo/bill/stan1101.log') size 100m;

    alter database add standby logfile group 12('/u01/redo/bill/stan1201.log') size 100m;

    alter database add standby logfile group 13('/u01/redo/bill/stan1301.log') size 100m;

    alter database add standby logfile group 14('/u01/redo/bill/stan1401.log') size 100m;

     

    -- check logfile

    col member for a50;

    select * from v$logfile order by group#;

    1.7.1.3     初始化参数文件

    create pfile='/tmp/initora.ora' from spfile;

     

    vi /tmp/initora.ora

    增加或修改下列参数(这里把主库备库用的配置文件放到一起了,方便记录)

     

    注意:location部分根据实际的目录地址修改

     

    # 下面是增加的部分,主库使用

    *.db_unique_name='dbsrv1'

    *.archive_lag_target=1800

    *.dg_broker_start=TRUE

    *.fal_client='dbsrv1'

    *.fal_server='dbsrv2'

    *.log_archive_config='DG_CONFIG=(dbsrv1,dbsrv2)'

    *.log_archive_dest_1='location=/u02/archivelog/bill/ VALID_FOR=(all_logfiles,all_roles) db_unique_name=dbsrv1'

    *.log_archive_dest_2='service=dbsrv2 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=dbsrv2'

    *.log_archive_dest_state_1='enable'

    *.log_archive_dest_state_2='enable'

    *.standby_file_management='auto'

     

    # 下面是增加的部分,备库使用

    *.db_unique_name='dbsrv2'

    *.archive_lag_target=1800

    *.dg_broker_start=TRUE

    *.fal_client='dbsrv2'

    *.fal_server='dbsrv1'

    *.log_archive_config='DG_CONFIG=(dbsrv1,dbsrv2)'

    *.log_archive_dest_1='location=/u02/archivelog/bill/ VALID_FOR=(all_logfiles,all_roles) db_unique_name=dbsrv2'

    *.log_archive_dest_2='service=dbsrv1 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=dbsrv1'

    *.log_archive_dest_state_1='enable'

    *.log_archive_dest_state_2='enable'

    *.standby_file_management='auto'

     

    用编辑过的配置文件重新启动主库

    shutdown immediate;

    startup pfile='/tmp/initora.ora' nomount;

    create spfile from pfile='/tmp/initora.ora';

    shutdown immediate;

    startup;

    1.7.1.4     密码文件

    密码文件路径是 $ORACLE_HOME/dbs/orapwSID,默认安装数据库的时候就已经建立。如果没有建立,可以手工建立一个

     

    $ orapwd file=orapwbill password=888888 entries=5

     

    1.7.1.5     TNS配置

    TNS中配置Primary,Standby的信息分别为DBSRV1DBSRV2,格式片段如下

     

    DBSRV1 =

      (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.25.5.41)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = dbsrv1)

        )

      )

     

    验证TNS

    $ tnsping dbsrv1

     

    1.7.1.1     注册Oracle Restart

    oracle 用户执行注册,必要的时候先注销原来注册的部分

    $ srvctl remove database -d bill

    $ srvctl add database -d bill -o /u01/app/oracle/product/11.2.0/dbhome_1

    手工注册之后,使用grid用户启动数据库

    $ srvctl start database -d bill

    1.7.2   Standby配置

    Standby端仅按照数据库软件即可,见前文数据库软件安装部分。为方便主备端操作,最好建立ssh信任连接。ssh-keygen ssh-copy-id

    1.7.2.1     创建目录

    创建必要的目录,需要数据文件,控制文件,日志文件,审计文件的目录。这里的路径信息和主库一致。注意修改路径中的SID

     

    mkdir -p /u01/app/oracle/oradata/bill

    mkdir -p /u01/app/oracle/admin/bill/adump

    mkdir -p /u01/app/oracle/flash_recovery_area/bill

    mkdir -p /u02/archivelog/bill

    1.7.2.2     密码文件

    建议直接把主库的这个orapwSID文件直接scp过来。如果手工建立,需要保证密码和主库的一致。

    1.7.2.3     初始化参数文件

    参见前面的主库参数文件,仅需要备库的配置部分。

    1.7.2.4     配置监听和TNS

    直接把主库的文件scp过来,修改监听地址即可。

    1.7.2.5     重新启动

    用编辑过的配置文件重新启动到nomount模式

     

    startup pfile='/tmp/initora.ora' nomount;

    create spfile from pfile='/tmp/initora.ora';

    shutdown immediate;

    startup nomount;

     

    1.7.2.6     初始化备库

    RMAN初始化备库,在主库启动RMAN,连接到备库

     

    $ rman target sys/888888@dbsrv1 auxiliary sys/888888@dbsrv2

    RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;

     

    PS: 11gR2 ADG使用RMAN复制的时候,必须使用明文密码登陆,否则会出现ORA-17627ORA-17629错误。参见这里 http://space.itpub.net/519536/viewspace-722247

    1.7.2.7     启动备库

    运维阶段应该使用Oracle RestartDG Broker,但是这里可以手工启动备库到只读应用模式进行验证。

     

    alter database open read only;

    alter database recover managed standby database disconnect from session using current logfile;

     

    1.7.2.8     注册Oracle Restart

    oracle 用户执行注册,备库注册需要指定-r

    $ srvctl add database -d bill -o /u01/app/oracle/product/11.2.0/dbhome_1 -r PHYSICAL_STANDBY

    手工注册之后,使用grid用户启动数据库

    $ srvctl start database -d bill

     

     

    1.7.3   Broker配置

    1.7.3.1     设置相关参数

    如果在配置文件部分没有配置dg_broker_start这个参数,这里在主备库分别执行语句

    alter system set dg_broker_start=TRUE;

     

    1.7.3.2     增加监听

    $ vi /u01/app/grid_home/network/admin/listener.ora

    调整后的监听部分如下,其中broker使用的监听名称dbsrv1_DGMGRL,固定格式为<db_uniuqe_name>_DGMGRL

    PS11gR2中会自动注册一个<db_uniuqe_name>_DGB的监听。

    SID_LIST_LISTENER =

      (SID_LIST =

        (SID_DESC =

          (GLOBAL_DBNAME = dbsrv1)

          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)

          (SID_NAME = bill)

        )

        (SID_DESC =

          (GLOBAL_DBNAME = dbsrv1_DGMGRL)

          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)

          (SID_NAME = bill)

        )

      )

     

    1.7.3.3     设置Broker

    oracle用户身份进行DG Broker的配置,在Primary机器上进行操作

    $ dgmgrl /

    $ dgmgrl sys/888888@dbsrv1

     

    -- 建立一个配置,加入Primary

    create configuration dgcfg1 as primary database is dbsrv1 connect identifier is dbsrv1;

     

    -- 在配置中加入Physical Standby

    add database dbsrv2 as connect identifier is dbsrv2 maintained as physical;

     

    -- 启用配置

    enable configuration;

     

    -- 查看下具体配置

    show database verbose dbsrv2;

     

    1.7.4   主备切换测试

    使用Data Guard Broker进行切换

     

    -- 测试一下switchover (Primary机器上进行操作)

    switchover to dbsrv2;

     

    -- 测试failover(Standby机器上进行操作)

    failover to dbsrv2;

     

    -- 测试恢复原来的主库

    -- startup mount

    reinstate database dbsrv1;

     

    2   数据库初始化

    2.1   表空间创建

    表空间以TBS_作为前缀,建立需要使用的表空间。

     

    create tablespace tbs_bill datafile  '/u01/oradata/bill/bill01.dbf' size 4g autoextend on next 200m maxsize unlimited;

    alter tablespace tbs_bill add datafile '/u01/oradata/bill/bill02.dbf' size 4g autoextend on next 200m maxsize unlimited;

    2.2   Schema创建

     

     

    3   运维脚本配置

    3.1   自动启动脚本

    如果配置了Oracle Restart,就跳过此步骤

     

    涉及脚本

    Ø  dg_start_db.sh

     

    单机环境

    vi /etc/oratab

    data:/u01/app/oracle/product/11.2.0/dbhome_1:Y

     

    vi $ORACLE_HOME/bin/dbstart  dbshut

    # First argument is used to bring up Oracle Net Listener

    ORACLE_HOME_LISTNER=$ORACLE_HOME

     

    vi /etc/rc.local

    su - oracle -c "dbstart"

     

    ADG环境

    vi /etc/rc.local

    su – oracle -c "/home/oracle/script/dg_start_db.sh"

    3.2   RMAN脚本

    涉及脚本

    Ø  backup.rman.sh

    Ø  dg_clean_arc.sh

     

    单机环境

    $ crontab -l

    30 0 * * 0 /home/oracle/script/backup.rman.sh 0

    30 0 * * 1,2,3,4,5,6 /home/oracle/script/backup.rman.sh 1

     

    ADG环境

    $ crontab -l

    30 0 * * 0           /home/oracle/script/backup.rman.sh 0

    30 0 * * 1,2,3,4,5,6 /home/oracle/script/backup.rman.sh 1

    0 1 * * *           /home/oracle/script/dg_clean_arc.sh 1

     

     

    3.3   参考资料

    我的Blog文章

    64Linux平台安装Oracle11gR2

    Oracle 11gR2 Silent Install

    CentOS环境配置Oracle 11g R2 Data Guard

    CentOS 下修改/dev/shm 大小解决ORA-00845

    Oracle Restart 11gR2 安装

     

     

     

     

    作者:wait4friend
    Weibo:@wait4friend
    Twitter:@wait4friend
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    gitolite 丢失管理密钥/访问权限 解决办法
    4/20
    socket套接字模块
    网络编程part2
    网络编程part1
    异常处理
    类的属性查找
    多继承带来的菱形问题
    property装饰器
    类的继承派生
  • 原文地址:https://www.cnblogs.com/wait4friend/p/2773508.html
Copyright © 2020-2023  润新知