欢迎光临
我们一直在努力

静默环境下配置DataGuard

 

安装Oracle软件

1)         安装前准备

安装必要的RPM包:

yum install -y binutils compat-libcap1
compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++
libstdc++-devel libaio libaio-devel make sysstat

创建Oracle用户和组:

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

/usr/sbin/useradd oracle –g oinstall –G
oinstall,dba

修改内核参数:

/etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

设置系统限制:

/etc/security.h/limit.h

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft stack 10240

oracle hard stack 32768

创建目录:

[root@adg database]# mkdir /oracle

[root@adg database]# mkdir -p
/oracle/product/11.2.0/dbhome_1

[root@adg database]# chown -R oracle:dba
/oracle/

[root@adg database]#

编辑环境变量:

.bash_profile

# User specific environment and startup
programs

ORACLE_BASE=/oracle

ORACLE_HOME=/oracle/product/11.2.0/dbhome_1

ORACLE_SID=adg

 

PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

 

 

export ORACLE_BASE ORACLE_HOME PATH
ORACLE_SID

[root@adg ~]#

2)         安装

在安装介质根目录下有个response文件夹,这个文件夹下有几个response文件,其中一个db_install.rsp可以用来进行Oracle数据库软件的静默安装,这个文件里包含有所有在你进行图形化安装时需要你输入或者选择的项,我们直接修改这个文件将我们的定制我们的安装选项即可,我的db_install.rsp内容为:

[root@adg ~]# grep -v ^# db_install.rsp
|grep -v ^$

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=adg

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/home/oracle/oraInventory

SELECTED_LANGUAGES=en

ORACLE_HOME=/oracle/product/11.2.0/dbhome_1

ORACLE_BASE=/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.EEOptionsSelection=false

oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

oracle.install.db.CLUSTER_NODES=

oracle.install.db.isRACOneInstall=false

oracle.install.db.racOneServiceName=

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

oracle.install.db.config.starterdb.globalDBName=

oracle.install.db.config.starterdb.SID=

oracle.install.db.config.starterdb.characterSet=ZHS16GBK

oracle.install.db.config.starterdb.memoryOption=true

oracle.install.db.config.starterdb.memoryLimit=

oracle.install.db.config.starterdb.installExampleSchemas=false

oracle.install.db.config.starterdb.enableSecuritySettings=true

oracle.install.db.config.starterdb.password.ALL=

oracle.install.db.config.starterdb.password.SYS=

oracle.install.db.config.starterdb.password.SYSTEM=

oracle.install.db.config.starterdb.password.SYSMAN=

oracle.install.db.config.starterdb.password.DBSNMP=

oracle.install.db.config.starterdb.control=DB_CONTROL

oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=

oracle.install.db.config.starterdb.automatedBackup.enable=false

oracle.install.db.config.starterdb.automatedBackup.osuid=

oracle.install.db.config.starterdb.automatedBackup.ospwd=

oracle.install.db.config.starterdb.storageType=

oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

oracle.install.db.config.asm.diskGroup=

oracle.install.db.config.asm.ASMSNMPPassword=

MYORACLESUPPORT_USERNAME=

MYORACLESUPPORT_PASSWORD=

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

DECLINE_SECURITY_UPDATES=true

PROXY_HOST=

PROXY_PORT=

PROXY_USER=

PROXY_PWD=

PROXY_REALM=

COLLECTOR_SUPPORTHUB_URL=

oracle.installer.autoupdates.option=SKIP_UPDATES

oracle.installer.autoupdates.downloadUpdatesLoc=

AUTOUPDATES_MYORACLESUPPORT_USERNAME=

AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

编辑好了response文件之后,我们就可以进行安装了,安装时运行:

./runInstall -silent  -responseFile /tmp/db_install.rsp

之后会自动将Oracle安装到指定目录。

 

安装grid

创建grid用户和组:

/usr/sbin/groupadd asmoper

/usr/sbin/groupadd asmadmin

/usr/sbin/groupadd asmdba

/usr/sbin/useradd grid –g oinstall –G
oinstall,dba, asmoper, asmadmin, asmdba

设置系统限制:

/etc/security.h/limit.h

grid soft nofile 1024

grid hard nofile 65536

grid soft nproc 2047

grid hard nproc 16384

grid soft stack 10240

grid hard stack 32768

创建目录:

[root@adg database]# mkdir /oracle

[root@adg database]# mkdir -p /oracle/ 11.2.0/
grid

[root@adg database]# chown -R grid:oinstall
 /oracle/ 11.2.0/ grid

[root@adg database]#

编辑环境变量:

# User specific environment and startup
programs

ORACLE_HOME=/oracle/11.2.0/grid

ORACLE_SID=+ASM

PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

export ORACLE_SID ORACLE_HOME PATH

[grid@adg ~]$

对于grid安装介质,同样存在一个response文件grid_install.rsp,位于response文件夹下,我们可以把这个文件拷贝到/tmp下,再编辑/tmp/grid_install.rsp,我的grid_install.rsp内容是:

[root@adg ~]# grep -v ^# grid_install.rsp
|grep -v ^$

oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0

ORACLE_HOSTNAME=adg

INVENTORY_LOCATION=/home/oracle/gridinven

SELECTED_LANGUAGES=en

oracle.install.option=HA_CONFIG

ORACLE_BASE=/oracle

ORACLE_HOME=/oracle/11.2.0/grid

oracle.install.asm.OSDBA=dba

oracle.install.asm.OSOPER=dba

oracle.install.asm.OSASM=dba

oracle.install.crs.config.gpnp.scanName=ascan

oracle.install.crs.config.gpnp.scanPort=9999

oracle.install.crs.config.clusterName=

oracle.install.crs.config.gpnp.configureGNS=false

oracle.install.crs.config.gpnp.gnsSubDomain=

oracle.install.crs.config.gpnp.gnsVIPAddress=

oracle.install.crs.config.autoConfigureClusterNodeVIP=

oracle.install.crs.config.clusterNodes=

oracle.install.crs.config.networkInterfaceList=

oracle.install.crs.config.storageOption=

oracle.install.crs.config.sharedFileSystemStorage.diskDriveMapping=

oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=

oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=NORMAL

oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=

oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=NORMAL

oracle.install.crs.config.useIPMI=false

oracle.install.crs.config.ipmi.bmcUsername=

oracle.install.crs.config.ipmi.bmcPassword=

oracle.install.asm.SYSASMPassword=www

oracle.install.asm.diskGroup.name=OCR

oracle.install.asm.diskGroup.redundancy=EXTERNAL

oracle.install.asm.diskGroup.AUSize=1

oracle.install.asm.diskGroup.disks=/dev/raw/raw1

oracle.install.asm.diskGroup.diskDiscoveryString=/dev/raw/raw*

oracle.install.asm.monitorPassword=www

oracle.install.crs.upgrade.clusterNodes=

oracle.install.asm.upgradeASM=false

oracle.installer.autoupdates.option=

oracle.installer.autoupdates.downloadUpdatesLoc=

AUTOUPDATES_MYORACLESUPPORT_USERNAME=

AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

PROXY_HOST=

PROXY_PORT=

PROXY_USER=

PROXY_PWD=

PROXY_REALM=

[root@adg ~]#

这个文件里有很多项,每一项都有非常详细的注释。

接下来我们就可以创建一个ASM实例了,创建ASM实例之前的第一步是启动cssd

crsctl start res cssd

再进行localconfig

编辑一个pfile文件/oracle/11.2.0/grid/dbs/init+ASM.ora

#+ASM.asm_diskgroups=’UNDO’,’TEMP’#Manual
Mount

*.asm_diskstring=’/dev/asm*’

*.asm_power_limit=1

*.diagnostic_dest=’/u01/app/grid’

*.instance_type=’asm’

*.large_pool_size=12M

*.remote_login_passwordfile=’EXCLUSIVE’

sysasm角色登陆:

[grid@adg ~]$ export ORACLE_HOME=/oracle/11.2.0/grid

[grid@adg ~]$  /oracle/11.2.0/grid/bin/sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on
Sat Nov 1 22:13:30 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

 

SQL>

(注意必须要将ORACLE_HOME设置为$GRIDHOME,否则报错:

ERROR:

ORA-01031: insufficient privileges

创建磁盘组:

create diskgroup ocr external redundancy
disk ‘/dev/raw/raw1’;

 

SQL>startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size                  2260728 bytes

Variable Size            1108320520 bytes

ASM Cache                  25165824 bytes

SQL> select name from v$asm_diskgroup;

no rows selected

此时还没有diskgroup

SQL> create diskgroup ocr external redundancy
disk ‘/dev/raw/raw1’;

Diskgroup created.

SQL>

SQL>

SQL> select name from v$asm_diskgroup;

NAME

——————————

OCR

SQL>

ASM实例和磁盘组已经创建好了。

搭建备库

修改主库的参数:

Node1:

log_archive_dest_1             location=+TEMP/

log_archive_dest_2            

SERVICE=ADG ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) D B_UNIQUE_NAME=ADG

log_archive_dest_state_2       ENABLE

log_archive_config             DG_CONFIG=(zgdb,zgdb1,zgdb2,ADG)

standby_file_management        AUTO

remote_login_passwordfile      EXCLUSIVE

db_name                        zgdb

node2:

log_archive_dest_1             location=+TEMP/

log_archive_dest_2            

SERVICE=ADG ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ADG

log_archive_dest_state_2       ENABLE

log_archive_config             DG_CONFIG=(zgdb,zgdb1,zgdb2,ADG)

standby_file_management        AUTO

remote_login_passwordfile      EXCLUSIVE

db_name                        zgdb

 

备库参数:

control_files                  /home/oracle/control.ctl

db_file_name_convert           +OCR/zgdb/, +OCR/ADG/

log_file_name_convert          +OCR/zgdb/, +OCR/ADG/

log_archive_dest_1             location=/home/oracle/oraarch

log_archive_dest_2            

SERVICE=zgdb ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zgdb

log_archive_dest_state_2       ENABLE

fal_client                     ADG

fal_server                     zgdb1,zgdb2

log_archive_config             DG_CONFIG=(zgdb,zgdb1,zgdb2,ADG)

db_create_file_dest            +OCR

standby_file_management        AUTO

remote_login_passwordfile      EXCLUSIVE

service_names                  ADG,stdby

db_name                        zgdb

db_unique_name                 ADG

在主备库上都配置好tnsnames.ora

zgdb =

 
(DESCRIPTION =

   
(ADDRESS = (PROTOCOL = TCP)(HOST = scan-cluster)(PORT = 1521))

   
(CONNECT_DATA =

     
(SERVER = DEDICATED)

     
(SERVICE_NAME = zgdb)

    )

  )

 

 

ADG =

 
(DESCRIPTION =

   
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.154)(PORT = 1521))

   
(CONNECT_DATA =

     
(SERVER = DEDICATED)

     
(SERVICE_NAME = adg)

    )

  )

 

zgdb1 =

 
(DESCRIPTION =

   
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.101)(PORT = 1521))

   
(CONNECT_DATA =

     
(SERVER = DEDICATED)

     
(SERVICE_NAME = zgdb)

     
(INSTANCE_NAME = zgdb1)

    )

  )

 

zgdb2 =

 
(DESCRIPTION =

   
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.103)(PORT = 1521))

   
(CONNECT_DATA =

     
(SERVER = DEDICATED)

     
(SERVICE_NAME = zgdb)

     
(INSTANCE_NAME = zgdb2)

    )

  )

将主库一个节点的的orapw文件拷贝到节点2及备库,并命名为orapwSID的形式,并用cksum检查确定文件在传输过程中没有发生损坏:

node1-> cksum orapwzgdb1

3568537300 2048 orapwzgdb1

node2-> cksum orapwzgdb2

3568537300 2048 orapwzgdb2

 [oracle@adg
dbs]$ cksum orapwadg

3568537300 2048 orapwadg

[oracle@adg dbs]$

确保remote_login_passwordfile=EXCLUSIVE,并用sysdba远程连接确定密码文件可以进行认证:

在主库执行:

sqlplus sys/www@adg as sysdba

在备库执行:

sqlplus sys/www@sszgdb as sysdba

sqlplus sys/www@sszgdb1 as sysdba

sqlplus sys/www@sszgdb2 as sysdba

 

接下来从主库通过rman备份并将备份文件传输到备库。

Rman>backup dadabase including
controlfile plus archivelog delete all input;

在主库创建standby控制文件并传输到备库。

SQL>alter database create standby
controlfile as ‘/tmp/control.ctl’;

在备库利用standby控制文件进行恢复。

Rman>Restore database;

Rman>Restore archivelog all;

执行recover

Sql>recover automatic standby database;

进入到管理恢复状态。

SQL>alter database recover managed
standby database disconnect from session;

此时默认以read only方式打开数据库,也就是11GR2的新特性Active DataGuard的概念。

 

未经允许不得转载:SRE空间 » 静默环境下配置DataGuard

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

oracle