oracle11g dataguard 完全手册Word文档下载推荐.docx
- 文档编号:16366256
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:15
- 大小:23.84KB
oracle11g dataguard 完全手册Word文档下载推荐.docx
《oracle11g dataguard 完全手册Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《oracle11g dataguard 完全手册Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
#df-h/tmp
5.配置环境数据库用户必须有sysdba权限
6.后面的环境:
主库192.168.215.101数据库实例名:
orcl
db_unique_name:
orcl
从库192.168.215.102数据库实例名:
orcldg
三、配置
1.判断DG是否已经安装:
select*fromv$optionwhereparameter='
OracleDataGuard'
;
如果是true表示已经安装可以配置,否则需要安装相应组件。
2.设置主库为强制记录日志。
默认情况下数据库操作会记录redolog,但是在一些特定的情况下可以使用nologging来不生成redo信息
(1)表的批量INSERT(通过/*+APPEND*/提示使用“直接路径插入“。
或采用SQL*Loader直接路径加载)。
表数据不生成redo,但是
所有索引修改会生成redo,但是所有索引修改会生成redo(尽管表不生成日志,但这个表上的索引却会生成redo!
)。
(2)LOB操作(对大对象的更新不必生成日志)。
(3)通过CREATETABLEASSELECT创建表
(4)各种ALTERTABLE操作,如MOVE和SPLIT
(5)在一些表迁移和表空间迁移中,可以使用altertableanologging;
或者altertablespacesnknologging;
在操作完成后再修改回logging状态。
这里需要多说一句,如果你使用nologging导入大批量数据,以后对这些数据的修改会在redo或者archivelog中,但是基准的数据是没有的,所以一旦介质损坏是无法完全恢复的,必须在使用nologging完成切换回logging后,做一次全备或者0级备份。
(1)强制记录日志:
sql>
alterdatabaseforcelogging;
(2)检查状态(YEs为强制):
selectname,force_loggingfromv$database;
(3)如果需要在主库添加或者删除数据文件时,这些文件也会在备份添加或删除,使用如下:
sql>
altersystemsetstandy_file_management='
AUTO'
默认此参数是manual手工方式sql>
showparameterstandby
3.创建standbylogfiles(备用日志文件)
从库使用standbylogfiles来保存从主库接收到的重做日志。
既然主要是从库在使用,那为什么需要在主库上也建立
standbylogfiles?
原因主要由两个:
一是主库可能转换为备库,而备库是需要有standbylogfiles的二是如果主库
建立了standbylogfiles那备库会自动建立。
建立standby如要注意以下几点:
<
1>
standbylogfiles的大小和redologfiles一样。
查询redologfiles文件大小(默认50M,3个):
selectgroup#,bytes/1024/1024asMfromv$log
2>
一般而言,standbyredo日志文件组数要比primary数据库的onlineredo日志文件组数至少多一个。
推荐standbyredo日志组数量基于primary数据库的线程数(这里的线程数可以理解为rac结构中的rac
节点数)。
有一个推荐的公式可以做参考:
(每线程的日志组数+1)*最大线程数
假设现在节点是1个,则=(3+1)*1=4
如果是双节点
则=(3+1)*2=8
这里我们创建4个standbylogfile:
另:
不建议组号group#紧挨着redo,因为后续redo有可能调整,这里我们从建立从11到14的standbylogfile
1
2
3
4
5
6
7
8
#cd$ORACLE_BASE/oradata/orcl/
#mkdirdg
#chownoracle:
dbadg
alter
database
add
standbylogfile
group
11
'
/opt/oracle/oradata/orcl/dg/standby11.log'
size
50M;
12
/opt/oracle/oradata/orcl/dg/standby12.log'
13
/opt/oracle/oradata/orcl/dg/standby13.log'
14
/opt/oracle/oradata/orcl/dg/standby14.log'
4.密码文件和控制文件的创建传输
(1)一般数据库默认就有密码文件,存放在$ORACLE_HOME/dbs/orapwSID
这里为orapworcl
如果没有sql>
orapwdfile=$ORACLE_HOME/dbs/orapworclpassword=oracle
(2)检查REMOTE_LOGIN_PASSWORDFILE值是否为EXCLUSIVE
showparameterREMOTE_LOGIN_PASSWORDFILE
如果值不是EXCLUSIVE,则:
altersystemsetremote_login_passwordfile=exclusivescope=spfile;
(3)密码文件需要scp到从库
#scporapworcl
**************.215.102:
/opt/oracle/11.2/dbs
提示输入yes
(4)控制文件:
11g的控制文件一共两份,内容一样,一份在$ORACLE_BASE/oradata/orcl/control01.ctl
一份在/opt/oracle/flash_recovery_area/orcl/control02.ctl
生成standby控制文件:
shutdownimmediate
startupmount
create
standbycontrolfile
as
/tmp/standby_control01.ctl'
startup
open;
然后在备库建立对应的目录,并授权
mkdirorcl---chownoracle:
oinstall(或dba)orcl
scpcontrol01.ctloracle@192.168.215.102:
/opt/oracle/oradata/orcl
scpcontrol02.ctloracle@192.168.215.102:
/opt/oracle/flash_recovery_area/orcl/
5.db_name和db_unique_name
默认db_name和db_unique_name和实例名是一致的,这里是orcl
需要注意在DG中主库和从库的db_unique_name是不能一致的,需要区分开的。
这里我们设置主库的db_unique_name为orcl,从库为orcldg
showparameterdb_unique_name
设置:
altersystemsetdb_unique_name=orclscope=spfile;
--注意虽然默认db_unique_name和db_name是一致的,但是需要显式设置,否则在spfile中没有此参数
6.闪回数据库:
强烈建议开启数据库闪回功能。
闪回允许你将数据库还原到以前的某一时间点。
当发生故障转移时,这个功能非常有用,
它能让你将老的主库闪回到故障前,然后将其转换为备库。
如果没有启用闪回功能,你就必须重建备库,意味着要再复制一次数据文件。
除了这个好处,闪回还能在某些情况下让你避免从备份恢复数据。
(1)快速恢复区(Flash/FastRecoveryArea),默认是配置的,但是需要确认这个区域的磁盘够大,至少300G以上(默认3G)
showparameterdb_recovery_file_dest
可以修改位置:
altersystemsetdb_recovery_file_dest='
新路径'
更改大小:
altersystemsetdb_recovery_file_dest_size=400G;
(2)查看是否启用,默认是不开启的
selectflashback_onfromv$database;
开启:
alterdatabaseflashbackon;
如果你碰到ORA-01153报错,那一定是在备库进行此操作。
你需要先取消重做日志应用,启用闪回日志,然后重新启用日志应用。
在主库启用闪回日志,不会同步备库也启用。
你必须手动在主库和备库上均启用闪回日志。
如果不启用闪回日志,当出现故障转移时,你将需要完全重新开始创建一个备库。
7.SQL*NET设置
(1)配置主库的监听
虽然可以通过netca来进行配置,但是除了这个默认的外,我们还需要一个静态注册SID_LIST_LISTENER,如果没有此从参数而且
dataguard启动顺序不正确,主库会报PING[ARC1]:
Heartbeatfailedtoconnecttostandby'
***'
.Erroris12514导致归档无法完成
配置如下
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/opt/oracle/11.2)
(SID_NAME=orcl)
)
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=primaryDB)(PORT=1521))
#vi$ORACLE_HOME/network/admin/listener.ora加入上面的内容
(2)配置tnsnames
#vi$ORACLE_HOME/network/admin/tnsnames.ora
ORCL=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.215.101)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=orcl)
ORCLDG=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.215.102)(PORT=1521))
(SERVICE_NAME=orcldg)
(3)传输到备库并修改listener.ora和tnsnames.ora
scp$ORACLE_HOME/network/admin/listener.ora**************.215.102:
/opt/oracle/11.2/network/admin/
scp$ORACLE_HOME/network/admin/tnsnames.ora**************.215.102:
--listener.ora:
SID_LIST_LISTENER
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcldg)
(ORACLE_HOME=/opt/oracle/11.2)
(SID_NAME=orcl)
)
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=standbyDB)(PORT=1521))
tnsnames.ora:
不需要修改
8.重做日志传输配置
(1)配置归档日志位置:
查询已经设置的归档路径sql:
archiveloglist或者showparameterlog_archive_dest_1
alter
systemset
log_archive_dest_1='
LOCATION=/opt/oracle/oradata/orcl/archive1valid_for=(all_logfiles,primary_role)db_unique_name=orcl'
scope=spfile;
还可以使用快速恢复区作为归档目录,如LOCATION=use_db_recovery_file_dest
官方文档里说使用valid_for=(online_logfiles,all_roles),这将导致备库无法归档备用日志文件,因为它们不是在线日志。
但如果使用all_logfiles选项,主备库将都能归档在线以及备用日志。
如果你想在备库进行备份,并同时备份归档日志的话,必须使用all_logfiles。
(2)配置重做日志到备份库:
log_archive_dest_2='
SERVICE=orcldglgwrsyncvalid_for=(online_logfile,primary_role)
db_unique_name=orcldg'
(3)要注意STANDBY_ARCHIVE_DEST参数不需要,已经被官方弃用。
设置此参数后启动数据库,只会报ORA-32004:
obsoleteordeprecatedparameter(s)specifiedforRDBMSinstance错。
9.配置FAL_SERVER
这个参数指定当日志传输出现问题时,备库到哪里去找缺少的归档日志。
它用在备库接收的到的重做日志间有缺口的时候。
这种情况会发生在日志传输出现中断时,比如你需要对备库进行维护操作。
在备库维护期间,没有日志传输过来,这时缺口就出现了。
设置了这个参数,备库就会主动去寻找那些缺少的日志,并要求主库进行传输。
你是主库,就填写:
fal_server=从库
从库上就反过来:
fal_server=主库
注意:
FAL_CLIENT在11g中已经废弃,虽然可以配置但是已经不起作用了。
altersystemsetFAL_SERVER='
orcldg'
10.DataGuard配置里的另外一个库的名字
altersystemsetlog_archive_config='
dg_config=(orcl,orcldg)'
以上的办法是我们采用altersystem的方式在线修改,还有一种比较方便的办法(但是容易出错,所以方便和安全什么时候都不可兼得)
createpfilefromspfile;
#手工修改pfile
createspfilefrompfile;
然后用pfile生成spfile同时传输pfile到从库修改后生成spfile
注意手工增加:
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
viinitorcl.ora
orcl.__db_cache_size=180355072
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='
/opt/oracle'
#ORACLE_BASEset
from
environment
orcl.__pga_aggregate_target=264241152
orcl.__sga_target=494927872
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=289406976
orcl.__streams_pool_size=8388608
*.audit_file_dest='
/opt/oracle/admin/orcl/adump'
*.audit_trail='
db'
*.compatible='
11.2.0.0.0'
*.control_files='
/opt/oracle/oradata/orcl/control01.ctl'
'
/opt/oracle/flash_recovery_area/orcl/control02.ctl'
#RestoreControlfile
*.db_block_size=8192
*.db_domain='
*.db_name='
orcl'
*.db_recovery_file_dest='
/opt/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest='
*.dispatchers='
(PROTOCOL=TCP)(SERVICE=orclXDB)'
*.fal_server='
*.job_queue_processes=1000
*.log_archive_config='
*.log_archive_dest_1='
*.log_archive_dest_2='
SERVICE=orcldglgwrsyncvalid_for=(online_logfile,primary_role)db_unique_name=orcldg'
*.log_archive_format='
orcl_%t_%s_%r.dbf'
*.memory_ta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle11g dataguard 完全手册 完全 手册