Heim >Datenbank >MySQL-Tutorial >搭建DataGuard环境
1. 确保源数据库在归档模式,并且是强制logging模式。shutdown immediate ;startup mount ;alter database archivelog ;alter da
1. 确保源数据库在归档模式,并且是强制logging模式。
shutdown immediate ;
startup mount ;
alter database archivelog ;
alter database force logging ;
alter database open ;
2. 确保已经建立的密码文件。(确保能够远程登录(@xxx as sysdba)
cd $Oracle_HOME/dbs/
查看是否已经建立了passwordfile .
若没有,执行下列命令。
这里要注意,oracle的密码文件都是存放在$ORACLE_HOME/dbs目录下面的。而且默认查找的时候会在目录下查找格式为orapw$ORACLE_SID文件名的密码文件,例如你的数据库名是dex,则使用下面的命令。
orapwd file=orapwdex password=xiaojun entries=20
最后验证一下,在tnsnames.ora中配置监听服务名,比如为dex70 然后执行
sqlplus sys/xiaojun@dex70 as sysdba
3. 创建standby logfile
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4
('/dhome/orcl/oradata/dex/standby1.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 5
('/dhome/orcl/oradata/dex/standby2.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 6
('/dhome/orcl/oradata/dex/standby2.log') SIZE 50M;
验证一下:
sys@DEX> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------
4 0 0 YES UNASSIGNED
5 0 0 YES UNASSIGNED
6 0 0 YES UNASSIGNED
4. 修改源库的参数文件
先创建一个pfile
create pfile from spfile ;
会在$ORACLE_HOME/dbs/admin/init$ORACLE_SID.ora
加入如下内容
DB_NAME=dex
DB_UNIQUE_NAME=dex
#主备库设置
LOG_ARCHIVE_CONFIG='DG_CONFIG=(dex,dex_hell)'
#控制文件位置
CONTROL_FILES='/dhome/orcl/oradata/dex/control01.ctl','/dhome/orcl/oradata/dex/control02'
#归档目录1
LOG_ARCHIVE_DEST_1= 'location=/dhome/arch1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dex'
#归档目录2,使用用于远程同步日志文件
LOG_ARCHIVE_DEST_2= 'SERVICE=dex_hell LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dex_hell'
#开启
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
#允许远程@ as sysdba 登陆
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
#fail 配置 当目标数据库发生故障时,,使用本地服务 这里都使用tnsnames中service名称
FAL_SERVER=dex_hell
FAL_CLIENT=dex
#file name 替换,可以是目录,也可以是单词。替换的目的是为了目标数据库发生故障的时候,目标数据的datafile和日志文件能够在本地找到副本。
DB_FILE_NAME_CONVERT='dex_hell','dex'
#这里的配置需要和实际库中相匹配,如果dex_hell fail无法访问时,需要置换logfile的位置。
LOG_FILE_NAME_CONVERT= '/arch1/dex/','/arch1/dex_hell/'
STANDBY_FILE_MANAGEMENT=AUTO