Oracle 10g Data Guard的创建与维护

Oracle 10g Data Guard的创建与维护[@more@]Maximum protection:零数据丢失。发生事务时需要同时向主数据库和备用数据写重做日志。
为了保证数据不丢失,如果有一个事务发现不能向备用数据写重做日志,那么主数据库会自动关闭。
Maximum availability:在保证主数据库可用的情况下最大程度上保证数据的不丢失。同Maximum protection一样也是同时向主和备用数据库写重做日志。与Maximum protection不同的时当发现不能向备用数据库写重做日志时不会关闭数据库,而是采用Maximum performance的模式管理直到修复故障。
当发生第二次错误时至少要能够将重做日志写入到一个备用数据库中才能保证零数据丢失。(多备用库的情况下。如果是一个备用库发生一次错误就会丢失数据)

Maximum performance:Oracle默认采用这种方式。在不影响主库的性能的情况下最大程度上保证数据不丢失。由于前两种方式要同时向主和备库写重做日志这就会给系统的性能带来负面影响。当事务提交时会立即将数据写入到本地的联机日志中。主库的重做数据流
至少要写入到一个从库中,但是这个并不是与主库同时发生的。
如果采用了足够的带宽的话,这种模式提供的数据保护保证最大的可用性,同时最主库的性能影响最小。

创建物理备用数据库的步骤:
一、强制主库产生日志,由于备库是采用归档日志恢复的,如果没有归档日志恢复无从谈起。
SQL> ALTER DATABASE FORCE LOGGING;
二、创建备库的密码文件
D:>orapwd file=D:oracleproduct10.2.0db_1databasePWDauxdb.ora password=oracle entries=5;
创建实例
D:> oradim -NEW -SID auxdb -INTPWD D:oracleproduct10.2.0db_1databasePWDauxdb.ora -STARTMODE manual
三、创建备库的重做日志
1)、maximum protection 和 maximum availability模式必须要求有从库的重做日志。数据传输模式建议采用LGWR ASYNC。
Data Guard可以更多地采用备库的重做日志恢复,而不仅仅是采用归档日志恢复。
2)、确保从库的重做日志大小与主库的重做日志大小完全一致。
3)、创建合适的重做日志组数量。
从库的重做日志组至少要比主库多一组。
通常情况下一个实例对应一个thread。
推荐采用如下公式来计算重做日志组的个数。
(maximum number of logfiles for each thread + 1) * maximum number of threads
采用这中方式可以减少由于备库重做日志不能被分配从而导致主库的日志读写进程(LGWR)的阻塞。
例如:主库每个thread有两个日志组,那么备库应该有6个重做日志组。
添加从库的日志组。
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo04.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo05.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo06.log' size 50m;
SQL>alter database add standby logfile thread 1 'D:oracleproduct10.2.0oradataorclredo07.log' size 50m;
4)、检查备用重做日志是否创建成功
在主库上执行
SQL>alter system switch logfile;
然后从库查询
SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
4 1 0 NO ACTIVE
5 1 0 YES UNASSIGNED
6 1 0 YES UNASSIGNED
7 1 0 YES UNASSIGNED
四、修改主库的参数文件,并同步到spfile
orcl.__db_cache_size=88080384
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=67108864
orcl.__streams_pool_size=0
*.audit_file_dest='D:oracleproduct10.2.0adminorcladump'
*.background_dump_dest='D:oracleproduct10.2.0adminorclbdump'
*.compatible='10.2.0.1.0'
*.control_files='D:oracleproduct10.2.0oradataorclCONTROL01.CTL','D:oracleproduct10.2.0oradataorclCONTROL02.CTL','D:oracleproduct10.2.0oradataorclCONTROL03.CTL'
*.core_dump_dest='D:oracleproduct10.2.0adminorclcdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest_size=2147483648
*.db_recovery_file_dest='d:oracleproduct10.2.0flash_recovery_area'
*.db_unique_name='orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_config='dg_config=(orcl,auxdb)'
*.log_archive_dest_1='location=D:oracleproduct10.2.0oradataorclarchive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'
*.log_archive_dest_2='service=AUX VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=auxdb'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.log_archive_max_processes=1
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='D:oracleproduct10.2.0adminorcludump'
*.fal_client='aux'
*.standby_archive_dest='D:oracleproduct10.2.0oradataorclstandbyarchive'
*.standby_file_management=auto
五、创建备库的数据文件
查看主库数据文件列表
SQL> select file#,name from v$datafile;

FILE# NAME
----- ----------------------------------------------------
1 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
2 D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
3 D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
4 D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
5 D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
6 D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.DBF

已选择6行。
1)、将主库的数据文件copy到从库的路径下
SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'd:bakstandby.ctl';
然后关闭数据库将file 1、2、3、4、5、6 copy到d:bak下。
或采用如下方法:
2)、采用rman将数据文件copy到备库中
C:Documents and SettingsAdministrator.XY>rman target/

恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 15 14:42:25 2007

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

已连接到目标数据库: ORCL (DBID=1140649303, 未打开)

RMAN> copy datafile 1 to 'd:baksystem01.dbf',datafile 2 to 'd:bakundotbs01.d
bf',datafile 3 to 'd:baksysaux01.dbf',datafile 4 to 'd:bakusers01.dbf',dataf
ile 5 to 'd:bakexample01.dbf',datafile 6 to 'd:baktest01.dbf', current contr
olfile for standby to 'd:bakstandby.ctl';
2>
启动 backup 于 15-3月 -07
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 启动数据文件副本
。。。
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
通道 ORA_DISK_1: 启动数据文件副本
复制备用控制文件
输出文件名 = D:BAKSTANDBY.CTL 标记 = TAG20070315T144240 recid = 40 时间戳 = 61
7294620
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 15-3月 -07
RMAN>
打开数据库
SQL> ALTER DATABASE OPEN;

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

转载于:http://blog.itpub.net/8570952/viewspace-905777/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值