一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg

0    500    1

Tags:

👉 本文共约119860个字,系统预计阅读时间或需451分钟。

目录

RAC主库配置单实例ActiveDataguard

这里配置的过程中需要注意的一项是多看看rac1和rac2以及dg的告警日志会对配置过程有更深刻的理解。。。配置oracle rac的dg环境说白了首先将主库的数据恢复到从库上,然后在主从库上配置一些DG需要用到的参数

注意:

  1. 由于DG是以DB_UNIQUE_NAME作为区分数据库标识的,因此主从库的该参数一定要不同以做区分。但是数据库名db_name必须一致以便主从切换时方便
  2. Standby库只需要安装数据库软件,不必创建数据库
  3. 主从库的数据库软件大版本必须一致,且必须是企业版数据库EE

RAC主库准备工作

该步骤主要是① 将rac主库修改为归档+forcelogging模式 ② 利用rman备份db、archivelog、control file 、pfile 和口令文件

①RAC主库必须置为归档模式:

和下一步一起做

②RAC主库必须置为ForceLogging模式:

alter database force logging;

alter database archivelog; ---归档模式下修改

SQL> alter database force logging;

Database altered.

SQL> select name , open_mode, log_mode,force_logging from gv$database;

NAME OPEN_MODE LOG_MODE FOR

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

RACDB READ WRITE NOARCHIVELOG YES

RACDB READ WRITE NOARCHIVELOG YES

SQL> exit

[oracle@rac1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 3 15:30:17 2014

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

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

Total System Global Area 784998400 bytes

Fixed Size 2232472 bytes

Variable Size 532680552 bytes

Database Buffers 247463936 bytes

Redo Buffers 2621440 bytes

Database mounted.

SQL> select name , open_mode, log_mode,force_logging from gv$database;

NAME OPEN_MODE LOG_MODE FOR

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

RACDB MOUNTED NOARCHIVELOG YES

SQL> alter database archivelog;

Database altered.

SQL> shutdown immediate;

ORA-01109: database not open

Database dismounted.

ORACLE instance shut down.

SQL>

SQL> select name , open_mode, log_mode,force_logging from gv$database;

NAME OPEN_MODE LOG_MODE FOR

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

RACDB READ WRITE ARCHIVELOG YES

RACDB READ WRITE ARCHIVELOG YES

SQL>

③RAC主库执行RMAN全备:

run {

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

allocate channel c4 type disk;

backup database format '/rmanbackup/FULL%U.bak';

backup archivelog all format '/rmanbackup/ARC%U.bak';

release channel c1;

release channel c2;

release channel c3;

release channel c4;

}

④RAC主库执行创建物理备库控制文件:

Rman下:backup device type disk format '/rmanbackup/standby%U.ctl' current controlfile for standby;

或:SQL>alter database create standby controlfile as ‘/dats/backup/standby.ctl’

⑤RAC主库创建物理备库初始化参数文件:

SQL> create pfile ='/rman_backup/initphydb.ora' from spfile;

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string +DATA/racdb/spfileracdb.ora

SQL>

SQL> show parameter cluster_database

NAME TYPE VALUE

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

cluster_database boolean TRUE

cluster_database_instances integer 2

SQL>

⑥RAC主库修改口令文件,使双节点SYS用户口令一致:

最好是将其中一个口令文件复制到另外一个节点上,最后复制到dg下,确保口令文件是一样的

物理备库准备工作

①FTP主库备份文件+备库控制文件+备库参数文件至物理备库服务器:

将备份文件全部传递到dg库:

----rac1

scp /rman_backup/* oracle@192.168.59.140:/rman_backup/

scp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwracdb1 oracle@192.168.59.140:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwphydb

②物理备库创建口令文件:

上一步已做,不需要创建了

③物理备库初始化参数文件修改:

----------dg

[oracle@dg rman_backup]$ cp initphydb.ora $ORACLE_HOME/dbs/

[oracle@dg rman_backup]$ cd $ORACLE_HOME/dbs

这个是比较重要的步骤,我把行号弄出来了,当然写的时候是没有前边的行号的

物理备库初始化参数文件修改:

  1. phydb.__db_cache_size=255852544
  2. phydb.__java_pool_size=4194304
  3. phydb.__large_pool_size=4194304
  4. phydb.__oracle_base='/u01/app/oracle'#ORACLE_BASE environment from set
  5. phydb.__pga_aggregate_target=419430400
  6. phydb.__sga_target=423624704
  7. phydb.__shared_io_pool_size=0
  8. phydb.__shared_pool_size=146800640
  9. phydb.__streams_pool_size=0
  10. *.audit_file_dest='/u01/app/oracle/admin/phydb/adump'
  11. *.audit_trail='db'
  12. *.cluster_database=false
  13. *.compatible='11.2.0.0.0'
  14. *.control_files='+DATA/phydb/controlfile/cont.ctl'
  15. *.core_dump_dest='/u01/app/oracle/diag/rdbms/phydb/cdump'
  16. *.db_block_size=8192
  17. *.db_create_file_dest='+DATA'
  18. *.db_domain=''
  19. *.db_file_name_convert='+DATA/racdb/','+DATA/phydb/'
  20. *.db_name='racdb'
  21. *.db_recovery_file_dest='+FRA'
  22. *.db_recovery_file_dest_size=4070572032
  23. *.db_unique_name='phydb'
  24. *.diagnostic_dest='/u01/app/oracle'
  25. *.dispatchers='(PROTOCOL=TCP)(SERVICE=phydbXDB)'
  26. *.fal_client='phydb'
  27. *.fal_server='racdb1','racdb2'
  28. *.log_archive_config='dg_config=(racdb,phydb)'
  29. *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=phydb'
  30. *.log_archive_dest_2='service=racdb1 valid_for=(online_logfiles,primary_role) db_unique_name=racdb'
  31. *.log_archiveformat='ARC%t%S%r.arc'
  32. *.log_file_name_convert='+DATA/racdb/','+DATA/phydb/'
  33. *.memory_target=842006528
  34. *.open_cursors=300
  35. *.processes=150
  36. *.remote_login_passwordfile='exclusive'
  37. *.service_names='phydb'
  38. *.standby_file_management='auto'
  39. *.thread=1
  40. *.undo_management='auto'
  41. *.undo_tablespace='UNDOTBS1'

[oracle@dg dbs]$ mkdir -p /u01/app/oracle/admin/phydb/adump

[oracle@dg dbs]$ mkdir -p /u01/app/oracle/diag/rdbms/phydb/cdump

[oracle@dg dbs]$

[grid@dg ~]$ asmcmd

ASMCMD> ls

DATA/

FRA/

GRIDDG/

ASMCMD> cd DATA

ASMCMD> ls

ASMCMD> mkdir phydb

ASMCMD> ls

phydb/

ASMCMD>

④配置RAC主库,物理备库的tnsnames.ora文件:

将以下内容复制到rac1,rac2和dg库:

racdb =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = racdb.lhr.com)

)

)

racdb1 =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = racdb.lhr.com)

(INSTANCE_NAME = racdb1)

)

)

racdb2 =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = racdb.lhr.com)

(INSTANCE_NAME = racdb2)

)

)

phydb =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = phydb)

)

)

验证一下:

分别在3个库上执行:

sqlplus sys/lhr@racdb as sysdba

sqlplus sys/lhr@racdb1 as sysdba

sqlplus sys/lhr@racdb2 as sysdba

确保3个库可以连接

创建物理备库

①物理备库启动NOMOUNT状态:

startup nomount

[oracle@dg dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sat Oct 25 20:12:54 2014

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

Connected to an idle instance.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area 839282688 bytes

Fixed Size 2233000 bytes

Variable Size 574623064 bytes

Database Buffers 260046848 bytes

Redo Buffers 2379776 bytes

SQL>

②RMAN恢复备库控制文件:

[oracle@dg dbs]$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Oct 3 19:06:52 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: RACDB (not mounted)

RMAN> restore standby controlfile from '/rman_backup/standby_0tpk53jq_1_1.ctl';

Starting restore at 2014-10-03 19:06:55

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=16 device type=DISK

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:25

output file name=+DATA/phydb/controlfile/cont.ctl

Finished restore at 2014-10-03 19:07:22

RMAN>

③MOUNT物理备库:

SQL> alter database mount;

或rman下:

RMAN> alter database mount;

database mounted

released channel: ORA_DISK_1

RMAN>

④RMAN restore物理备库:

run {

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

allocate channel c4 type disk;

restore database ;

release channel c1;

release channel c2;

release channel c3;

release channel c4;

}

RMAN> restore database ;

Starting restore at 2014-10-03 19:13:48

Starting implicit crosscheck backup at 2014-10-03 19:13:48

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=32 device type=DISK

Crosschecked 6 objects

Finished implicit crosscheck backup at 2014-10-03 19:13:49

Starting implicit crosscheck copy at 2014-10-03 19:13:49

using channel ORA_DISK_1

Finished implicit crosscheck copy at 2014-10-03 19:13:49

searching for all files in the recovery area

cataloging files...

no files cataloged

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00001 to +DATA/phydb/datafile/system.256.859849357

channel ORA_DISK_1: restoring datafile 00004 to +DATA/phydb/datafile/users.259.859849357

channel ORA_DISK_1: restoring datafile 00005 to +DATA/phydb/datafile/example.264.859849549

channel ORA_DISK_1: reading from backup piece /rman_backup/FULL_0npk5395_1_1.bak

channel ORA_DISK_1: piece handle=/rman_backup/FULL_0npk5395_1_1.bak tag=TAG20141003T164524

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:04:23

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00002 to +DATA/phydb/datafile/sysaux.257.859849357

channel ORA_DISK_1: restoring datafile 00003 to +DATA/phydb/datafile/undotbs1.258.859849357

channel ORA_DISK_1: restoring datafile 00006 to +DATA/phydb/datafile/undotbs2.265.859849971

channel ORA_DISK_1: reading from backup piece /rman_backup/FULL_0opk53c4_1_1.bak

channel ORA_DISK_1: piece handle=/rman_backup/FULL_0opk53c4_1_1.bak tag=TAG20141003T164524

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:01:45

Finished restore at 2014-10-03 19:20:01

RMAN>

⑤备库上创建standbylogfile:

set line 9999

set pagesize 9999

col name format a100

select 'datafile' , name from v$datafile

union

select 'controlfile', name from v$controlfile

union

select 'logfile', member from v$logfile;

-----dg库

SQL> select name from v$datafile

2 union

3 select name from v$controlfile

4 union

5 select member from v$logfile;

NAME

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

+DATA/phydb/controlfile/cont.ctl

+DATA/phydb/datafile/example.258.860008433

+DATA/phydb/datafile/sysaux.260.860008695

+DATA/phydb/datafile/system.257.860008433

+DATA/phydb/datafile/undotbs1.261.860008697

+DATA/phydb/datafile/undotbs2.262.860008697

+DATA/phydb/datafile/users.259.860008435

+DATA/phydb/onlinelog/group_1.261.859849493

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部