最大可用性保护模式dataguard实施

可能看着有点儿乱,基本思路是利用控制文件复制一个库到灾备机,然后配置dataguard,最后由最大性能升级到最大可用性。

[@more@]

环境描述

A机:primary(这里A机在现场为HA的主,对于主的所有参数调整都要对备作相应调整)192.168.1.4

B机:standby(这里指现场的灾备机)192.168.1.7

Oracle_SIDtestdb

环境:aix , Oracle版本:9.2.0.6

第一步:核查并创建oracle软件副本

检查A机、B机的oracle版本是否一致

如果一致,不做任何操作。检查路径profile文件

如果不一致,将A机的$ORACLE_HOME目录打包,然后传送到B机,解压缩,路径保持一致,调整profile文件路径。

tar cvf product.tar product

sftp B或者sftp A

tar xvf product.tar

注意:如果是新装oracle,需按照oracle安装文档作设置系统参数等操作。这里不作说明。

第二步:调整AB机的listener.ora以及tnsnames.ora文件

添加如下内容

service_nameprimary的指向A

service_namestandby的指向B

l tnsnames.ora

STANDBY =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = testdb)

)

)

PRIMARY =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = testdb)

)

)

l listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/product/9.2.0.6)

(PROGRAM = extproc)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

启动a机、b机的监听进程。

第三步:A机操作

l 调整为归档模式

>startup mount

>alter database archivelog;

>archive log list;

l 创建RMAN副本

rman target / nocatalog

RMAN> run

{

allocate channel d1 type disk;

backup database format '/backup/temp/backup%d%U.rman';

}

l 创建standby的控制文件

上一步成功做完之后

SQL>alter database create standby controlfile as ‘/oracle/final/testdbstandby.ctl’;

l 创建A机的pfile并备份,一定要做好备份,这是对A机数据库唯一进行调整的地方,生产机尤其注意了,参数文件作备份

SQL>create pfile=’/oracle/final/inittestdb.ora’ from spfile;

$cp inittestdb.ora inittestdb.ora.backup.20070727

l 保证数据库所有操作都生成日志。避免nologging造成的数据丢失。

alter database force logging;

第四步:b机操作

l 创建如下目录

mkdir -p $ORACLE_BASE/admin/testdb/bdump/

mkdir -p $ORACLE_BASE/admin/testdb/udump/

mkdir -p $ORACLE_BASE/admin/testdb/cdump/

mkdir -p $ORACLE_BASE/admin/testdb/pfile/

mkdir -p $ORACLE_BASE/admin/testdb/create/

mkdir -p $ORACLE_BASE/oradata/testdb

mkdir -p $ORACLE_BASE/oradata/testdb/archive

本次$ORACLE_BASE=/oracle

l 生成密码文件

orapwd file=$ORACLE_HOME/dbs/orapwtestdb password=oracle entries=5

l A机中获取如下文件

参数文件:inittestdb.ora(考虑到每台机器的配置可能不同,内存参数不一致,该参数文件不一定非要从A机获取,另外从A机获取的参数文件需要调整control_file的位置

控制文件:/oracle/final/testdbstandby.ctl

rman备份文件:/backup/temp/backup*.rman

l 调整oracle数据库启动参数文件inittestdb.ora

增加如下内容:

*.fal_client='standby'

*.fal_server='primary'

*.standby_archive_dest='/tttarch1'

*.standby_file_management=auto

注意:此处的primarystandby对应你在前面的tnsnames.ora里面设置的service_name

l 拷贝控制文件

拷贝控制文件到指定参数文件inittestdb.oracontrol_files指定的位置

cp testdbstandby.ctl /oracle/final/ testdbstandby.ctl001.ctl

cp testdbstandby.ctl /oracle/final/ testdbstandby.ctl002.ctl

cp testdbstandby.ctl /oracle/final/ testdbstandby.ctl003.ctl

l 利用rman复制a机数据库到b

由于路径的原因,需要做

#ln -s /tttmngarch1 /backup/temp

sqlplus /nolog

SQL>connect / as sysdba

SQL>startup nomount pfile=’/oracle/final/inittestdb.ora’

SQL>alter database mount standby database;

$rman target / nocatalog

RMAN>run

{

allocate channel d1 type disk;

restore database;

}

注意/backup/temp备份文件目录要与a机路径一致。

l 设置自动恢复模式

SQL>shutdown immediate;

SQL>create spfile from pfile=’/oracle/final/inittestdb.ora’

SQL>startup nomount ;

SQL> alter database mount standby database;

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

第五步:a机操作

a机作一次重启,重启的意义在于强制所有操作都生成日志 alter database force logging;

如果没有业务执行或者稳妥考虑,可不做重启动作。

调整参数文件inittestdb.ora,增加如下内容并重新启动

*.fal_client=standby

*.fal_server=primary

*.standby_archive_dest='/tttarch1'

*.standby_file_management=auto

注意此处作如下操作

startup mount pfile=’/oracle/final/inittestdb.ora’;

alter database force logging;

alter database open;

alter system set log_archive_dest_2=' service=standby reopen=200';

注意:此时不能做操作覆盖spfile文件,重新启动用pfile启动。

第六步:升级成最大可用性模式

1. b机添加standby redo log

SQL> alter database recover managed standby database cancel;

SQL> alter database add standby logfile '/ora_std_log/std_redo_log1' size 387973120 reuse;

SQL> alter database add standby logfile '/ora_std_log/std_redo_log2' size 387973120 reuse;

SQL> alter database add standby logfile '/ora_std_log/std_redo_log3' size 387973120 reuse;

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

需要注意的一点:standby_redo_log和redo_log应该保持一致。

2. 修改a机参数:

SQL> shutdown immediate;

关闭数据库后修改init 初始化参数文件(/oracle/final/inittestdb.ora)参数

log_archive_dest_2=' service=standby LGWR SYNC mandatory affirm reopen=200'

SQL> startup mount;

SQL> alter database set standby to maximize availability;

SQL> alter database open;

到这maximize performance 升级成为 Maximize availability 就算完成,同样还可以升级到最大数据保护模式.

第七步:测试

测试一:

a机作强制归档

SQL>alter system archive log current

监控b机的alert_testdb.log,如果获得类似下面的提示,表明部署成功。

Fri Jul 27 13:09:52 2007

Media Recovery Log /oracle/oradata/testdb/archive/1_31.dbf

Media Recovery Log /oracle/oradata/testdb/archive/1_32.dbf

Media Recovery Log /oracle/oradata/testdb/archive/1_33.dbf

Media Recovery Log /oracle/oradata/testdb/archive/1_34.dbf

Media Recovery Waiting for thread 1 seq# 35

测试二:

a机上

SQL>create user test identified by testuser;

SQL>grant connect,resource to test;

SQL>alter system archive log current;

b机上以只读方式打开数据库

alter database recover managed standby database finish/cancel;

alter database open read only;

然后以test用户登录,成功登陆,说明部署成功。

connect test/testuser

第八步:其他操作

l 所有测试通过并确认无误以后,对a机作spfile生成操作,并重新启动。

SQL>create spfile from pfile=’/oracle/final/inittestdb.ora’

SQL>shutdown immediate;

SQL>startup

l ha的另外一台机器上192.168.1.3上调整spfile参数

调整步骤如下:

sqlplus /nolog

SQL>connect / as sysdba

SQL>create pfile=’/oracle/fina/inittestdb.ora’ from spfile;

修改inittestdb.ora参数文件,增加

log_archive_dest_2=' service=standby LGWR SYNC mandatory affirm reopen=200'

SQL>create spfile from pfile=’/oracle/final/inittestdb.ora’

另外需要调整tnsnames.ora文件,添加

STANDBY =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = testdb)

)

)

PRIMARY =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = testdb)

)

)

l 注意:如果利用pfile启动的时候

alter system log_archive_dest_2=’ service=testdbguard reopen=200’

在每次重新启动时需要重做一遍。

l 不能调整b机的归档模式,也就是说不能调整成非归档模式

SQL> startup mount;

ORACLE instance started.

Total System Global Area 135337540 bytes

Fixed Size 452164 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

ORA-01666: controlfile is for a standby database

l 其他的参数

log_archive_config 10g增加的新参数

db_unique_name 10g增加的新参数

本次9i,用不到

参考资料见:

http://orafaq.com/parms/index.htm

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/137423/viewspace-929554/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/137423/viewspace-929554/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值