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 安装

 

 

 

 

posted on 2012-11-16 16:34  wait4friend  阅读(1638)  评论(0编辑  收藏  举报