测试环境安装11g dataguard

来源:互联网 发布:淘宝网的营销策略 编辑:程序博客网 时间:2024/05/21 09:01

OS :

linux1

linux2

Oracle software:

Oracle database 11.2.0.1 64bit

两个主机安装Oracle软件

1上传数据库安装包,并且解压

2配置主机

检查安装包

rpm -qa | grep binutils

rpm -qa | grep compat-libstdc++

rpm -qa | grep elfutils-libelf

rpm -qa | grep elfutils-libelf-devel

rpm -qa | grep elfutils-libelf-devel-static

rpm -qa | grep gcc

rpm -qa | grep gcc-c++

rpm -qa | grep glibc

rpm -qa | grep glibc-common

rpm -qa | grep glibc-devel

rpm -qa | grep glibc-headers

rpm -qa | grep kernel-headers

rpm -qa | grep ksh

rpm -qa | grep libaio

rpm -qa | grep libaio-devel

rpm -qa | grep libgcc

rpm -qa | grep libgomp

rpm -qa | grep libstdc++

rpm -qa | grep libstdc++-devel

rpm -qa | grep make

rpm -qa | grep sysstat

  

安装必要的软件包

yum install compat-libstdc++ elfutils-libelf-devel elfutils-libelf-devel-static gcc-c++ glibc-devel glibc-headers kernel-headers ksh libaio-devel libstdc++-deve

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

yum install unixODBC unixODBC-devel

  

  

rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" \

binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

ksh \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

sysstat \

numactl \

unixODBC \

unixODBC-devel \

| grep "not installed" | grep -v grep | awk '{print "yum install -y " $2 }'

  

  

编辑hosts文件

[root@linux2 ~]# cat /etc/hosts

127.0.0.1 linux2 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  

[root@linux1 ~]# cat /etc/hosts

127.0.0.1 linux1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  

  

配置/etc/sysctl.conf

cat >> /etc/sysctl.conf <<EOF

fs.aio-max-nr = 1048576

fs.file-max = 6815744

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

EOF

  

sysctl -p

  

  

配置/etc/security/limits.conf

cat >> /etc/security/limits.conf <<EOF

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

EOF

  

配置/etc/pam.d/login

cat >> /etc/pam.d/login <<EOF

session required pam_limits.so

EOF

  

配置/etc/profile

cat >> /etc/profile <<EOF

if [ \$USER = "oracle" ]; then

if [ \$SHELL = "/bin/ksh" ];then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

EOF

  

配置/etc/csh.login

cat >> /etc/csh.login <<EOF

if( \$USER == "oracle" ) then

limit maxproc 16384

limit descriptors 65536

umask 022

endif

EOF

  

添加用户、配置目录

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

/usr/sbin/useradd -g oinstall -G dba oracle

passwd oracle

  

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1

chown -R oracle:oinstall /u01/app/

chmod -R 775 /u01/app/

  

配置环境变量

su - oracle

vim .bash_profile

ORACLE_BASE=/u01/app/oracle

ORACLE_SID=demo

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

export ORACLE_BASE ORACLE_SID ORACLE_HOME

export PATH=$PATH:$ORACLE_HOME/bin

  

  

. .bash_profile

  

关闭防火墙和selinux

chkconfig iptables off

service iptables stop

vim /etc/selinux/config 修改SELINUX=disabled ,重启后生效

setenforce 0 ,不需要重启,立即生效,只限于当次

  

  

  

创建/etc/oraInst.loc文件,内容如下

[oracle@linux1 database]$ cat /etc/oraInst.loc

inventory_loc=/u01/app/oraInventory

inst_group=oinstall

  

安装的过程中缺少很多必要的32bit的包【参考--没有解决问题】

cd /etc/yum.repos.d

wget http://public-yum.oracle.com/public-yum-ol6.repo

yum install

参考<http://www.itpub.net/thread-1613588-1-1.html>

  

下载安装过程中提示的缺少的包

http://yunpan.cn/QCP6uRyqsCx5m 提取码 b6c7

rpm -ivh *.rpm --force --nodeps

  

  

cd $ORACLESOFT_mount/database

./runInstaller -silent -debug -force \

FROM_LOCATION=/software/database/stage/products.xml \

oracle.install.option=INSTALL_DB_SWONLY \

UNIX_GROUP_NAME=oinstall \

INVENTORY_LOCATION=/u01/app/oraInventory \

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

ORACLE_HOME_NAME="Oracle111" \

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=dba \

DECLINE_SECURITY_UPDATES=true

  

. /u01/app/oraInventory/orainstRoot.sh

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

  

配置监听

[oracle@linux1 admin]$ vim listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

)

)

  

ADR_BASE_LISTENER = /u01/app/oracle

  

  

Lsnrctl start

  

在节点2上建立静态监听

  

[oracle@linux2 admin]$ cat listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

)

)

  

ADR_BASE_LISTENER = /u01/app/oracle

  

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = standby)

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

(SID_NAME = standby)

)

)

  

  

[oracle@linux2 admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

STANDBY =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = standby)

)

)

DEMO =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = demo)

)

)

  

主节点建库

[oracle@linux1 ~]$ vim /home/oracle/dbca.rsp

  

[GENERAL]

RESPONSEFILE_VERSION = "11.2.0"

OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]

GDBNAME = "demo"

SID = "demo"

TEMPLATENAME = "General_Purpose.dbc"

SYSPASSWORD = "oracle"

SYSTEMPASSWORD = "oracle"

SYSMANPASSWORD = "oracle"

DBSNMPPASSWORD = "oracle"

DATAFILEDESTINATION ="/u01/app/oracle/oradata"

STORAGETYPE=FS

CHARACTERSET = "AL32UTF8"

DATABASETYPE = "MULTIPURPOSE"

AUTOMATICMEMORYMANAGEMENT = "FALSE"

TOTALMEMORY =8192

  

[oracle@linux1 ~]$ dbca -silent -responseFile /home/oracle/dbca.rsp

复制数据库文件

1% 已完成

3% 已完成

11% 已完成

18% 已完成

26% 已完成

37% 已完成

正在创建并启动 Oracle 实例

40% 已完成

45% 已完成

50% 已完成

55% 已完成

56% 已完成

60% 已完成

62% 已完成

正在进行数据库创建

66% 已完成

70% 已完成

73% 已完成

85% 已完成

96% 已完成

100% 已完成

有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/demo/demo.log

[oracle@linux1 ~]$ sqlplus / as sysdba

  

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 24 00:59:43 2014

  

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

  

  

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

  

SQL> select instance_name from V$instance;

  

INSTANCE_NAME

----------------

demo

  

主库上登录备库测试

[oracle@linux1 admin]$ sqlplus sys/oracle@standby as sysdba

  

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 24 01:43:48 2014

  

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

  

Connected to an idle instance.

  

主库上准备

开启归档日志

mkdir /u01/app/arch/demo -p

SQL> create pfile='/home/oracle/initdemo.ora' from spfile;

alter system set log_archive_dest_1='location=/u01/app/arch/demo' scope=spfile;

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

archive log list;

  

  

启用force logging;

ALTER DATABASE FORCE LOGGING;

  

如果没有密码文件,则创建密码文件

orapwd file=orapwdemo password=oracle entries=5

  

创建备用 redo 日志

SQL> col file_name for a50

SQL> set pagesize 1000 linesize 400

SQL> select lf.group#,member as file_name,bytes/1024/1024 as size_MB from v$logfile lf,v$log l where lf.group#=l.group# order by group#;

  

GROUP# FILE_NAME SIZE_MB

---------- -------------------------------------------------- ----------

1 /u01/app/oracle/oradata/demo/redo01.log 50

2 /u01/app/oracle/oradata/demo/redo02.log 50

3 /u01/app/oracle/oradata/demo/redo03.log 50

  

注意:创建的standby redo大小需要和主库的redo大小保持一致

  

SQL> col member for a50

SQL> select type,member from v$logfile;

  

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/demo/standby04.log') size 50m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/demo/standby05.log') size 50m;

alter database add standby logfile group 6 ('/u01/app/oracle/oradata/demo/standby06.log') size 50m;

alter database add standby logfile group 7 ('/u01/app/oracle/oradata/demo/standby07.log') size 50m;

  

修改参数

修改之前做一次spfile备份

create pfile='/home/oracle/demoinit.ora' from spfile;

  

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(demo,standby)';

alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/arch/demo VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=demo';

alter system set LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby';

alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;

alter system set FAL_SERVER=standby;

alter system set FAL_CLIENT=demo;

alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/standby/','/u01/app/oracle/oradata/demo/' scope=spfile;

alter system set LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/standby/','/u01/app/oracle/oradata/demo/' scope=spfile;

  

******修改主库和备库的listener.ora 和 tnsname.ora******

这部分已经在上面做过了

  

  

备库上准备

复制主库的密码文件

scp orapwdemo 192.168.122.102:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/

mv orapwdemo orapwstandby

建立归档路径

mkdir /u01/app/arch/standby -p

因为我是先建立了standby实例,然后直接删除了datafiles 所以目录不用重新建立

创建一个临时intistandby.ora

  

[oracle@linux2 ~]$ cat intistandby.ora

*.db_name='demo'

*.db_unique_name='standby'

*.diagnostic_dest='/u01/app/oracle'

*.open_cursors=300

*.processes=150

*.db_block_size=8192

  

启动到nomount状态

  

SQL> startup nomount pfile='/home/oracle/intistandby.ora';

ORACLE instance started.

  

Total System Global Area 217157632 bytes

Fixed Size 2211928 bytes

Variable Size 159387560 bytes

Database Buffers 50331648 bytes

Redo Buffers 5226496 bytes

  

  

Rman duplicate

在主库上sys/oracle as sysdba登录

sqlplus sys/oracle@standby as sysdba

测试登录成功

  

主库上使用rman duplicat from active database 进行建立dataguard

  

run {

allocate channel prmy1 type disk;

allocate channel prmy2 type disk;

allocate channel prmy3 type disk;

allocate channel prmy4 type disk;

allocate auxiliary channel stby type disk;

duplicate target database for standby from active database

spfile

parameter_value_convert 'demo','standby'

set db_unique_name='standby'

set db_file_name_convert='/u01/app/oracle/oradata/demo/','/u01/app/oracle/oradata/standby/'

set log_file_name_convert='/u01/app/oracle/oradata/demo/','/u01/app/oracle/oradata/standby/'

set control_files='/u01/app/oracle/oradata/standby/control01.ctl'

set log_archive_max_processes='5'

set fal_client='standby'

set fal_server='demo'

set standby_file_management='AUTO'

set log_archive_config='dg_config=(demo,standby)'

set log_archive_dest_1 = 'LOCATION=/u01/app/arch/standby VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby'

set log_archive_dest_2='service=demo ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=demo'

;

}

  

在备库上打开realtime-apply

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

  

**********************************************************************************************

select open_mode from v$database;

因为有备重做日志,所以可以加using current logfile 语句,实现实时应用

select sequence#, applied from v$archived_log where applied='YES' order by sequence#;

  

alter database recover managed standby database cancel;

alter database open read only;

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

**********************************************************************************************

  

yum groupinstall "X Window System"

yum groupinstall "Desktop"

  

0 0
原创粉丝点击