虚拟机配置linux 10g 物理dataguard
准备工作
主库:IP:192.168.40.168 host:PDB DB_NAME:DGDEMO db_unique_name:DGDEMO
备库:IP:192.168.40.169 host:SDB DB_NAME:DGDEMO db_unique_name:DGDEMO_ST
一、建主库:
1、建虚拟机并安装linux 5.2操作系统
2、修改/etc/hosts
192.168.40.168 PDB.localdomain PDB
192.168.40.169 SDB.localdomain SDB
3、在虚拟机上安装oracle软件(只安装软件)
二、建备库:copy虚拟机(配置主机名,IP,hosts等)
三、配置监听 netca
四、建库 dbca
五、修改参数文件
1、create pfile from spfile;
2、在pfile文件中添加以下内容:
*.DB_UNIQUE_NAME='DGDEMO'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGDEMO,DGDEMO_ST)'
*.log_archive_dest_2='SERVICE=DGDEMO_ST ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGDEMO_ST'
*.log_archive_dest_state_1=ENABLE
*.log_archive_dest_state_2=ENABLE
*.standby_file_management='AUTO'
*.standby_archive_dest='/opt/app/oracle/flash_recovery_area/DGDEMO/archivelog'
*.FAL_SERVER='DGDEMO_ST'
*.FAL_CLIENT='DGDEMO'
*.LOG_ARCHIVE_MAX_PROCESSES=30
*.service_names='DGDEMO'
3、create spfile from pfile;
六、修改归档和强制日志
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER DATABASE FORCE LOGGING;
七、配置listener.ora,tnsnames.ora
1、listener.ora内容
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(
SID_DESC=
(GLOBAL_DBNAME=DGDEMO)
(ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1)
(SID_NAME=DGDEMO)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pdb.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
2、 tnsnames.ora内容
DGDEMO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pdb.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGDEMO)
)
)
DGDEMO_ST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sdb.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGDEMO)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
八、创建备库在线日志
alter database add standby logfile group 4 ('/opt/app/oracle/oradata/redo04.log') size 50M;
alter database add standby logfile group 5 ('/opt/app/oracle/oradata/redo05.log') size 50M;
alter database add standby logfile group 6 ('/opt/app/oracle/oradata/redo06.log') size 50M;
alter database add standby logfile group 7 ('/opt/app/oracle/oradata/redo07.log') size 50M;
查看备库在线日志是否创建成功:
select group#, thread#, archived, status from v$standby_log;
九、创建控制文件和参数文件
alter database create standby controlfile as '/tmp/standby.ctl';
CREATE PFILE='/tmp/initDGDEMO_ST.ora' FROM SPFILE;
十、备份主库
$ rman target=/
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
十一、备库上创建库目录
su - oracle
cd $ORACLE_BASE
mkdir -p oradata/DGDEMO
mkdir -p admin/DGDEMO/adump
mkdir -p admin/DGDEMO/bdump
mkdir -p admin/DGDEMO/cdump
mkdir -p admin/DGDEMO/dpdump
mkdir -p admin/DGDEMO/pfile
mkdir -p admin/DGDEMO/udump
mkdir -p flash_recovery_area/DGDEMO/archivelog
mkdir -p flash_recovery_area/DGDEMO/onlinelog
十二、将控制文件 ,参数文件,密码文件 主库备份文件传输到备库
1、备库控制文件
主库:scp /tmp/standby.ctl' sdb:/tmp/standby.ctl
备库:cp /tmp/standby.ctl $ORACLE_BASE/oradata/DGDEMO/control01.ctl
cp $ORACLE_BASE/oradata/DGDEMO/control01.ctl $ORACLE_BASE/oradata/DGDEMO/control02.ctl
cp $ORACLE_BASE/oradata/DGDEMO/control01.ctl $ORACLE_BASE/oradata/DGDEMO/control03.ctl
2、备库参数文件
主库:scp /tmp/initDGDEMO_ST.ora' sdb:/tmp/initDGDEMO_ST.ora
备库:cp /tmp/initDGDEMO_ST.ora $ORACLE_HOME/dbs/initDGDEMO.ora
修改参数文件:
*.DB_UNIQUE_NAME='DGDEMO_ST'
*.FAL_CLIENT='DGDEMO_ST'
*.FAL_SERVER='DGDEMO'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGDEMO,DGDEMO_ST)'
.log_archive_dest_2='SERVICE=DGDEMO ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGDEMO'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.standby_archive_dest='/opt/app/oracle/flash_recovery_area/DGDEMO/archivelog'
*.standby_file_management='AUTO'
*.service_names='DGDEMO'
3.备库密码文件
scp $ORACLE_HOME/dbs/orapwDGDEMO' sdb:$ORACLE_HOME/dbs/orapwDGDEMO
十三、创建备库监听并修改listener.ora,tnsnames.ora
1、netca
2、listener.ora内容修改如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sdb.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
2、tnsnames.ora内容不变
DGDEMO_ST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sdb.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGDEMO)
)
)
DGDEMO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pdb.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DGDEMO)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
十四、恢复备库
$ rman target=/
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;
十五、创建备份redo log
ALTER DATABASE ADD LOGFILE ('/opt/app/oracle/oradata/DGDEMO/online_redo01.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE ('/opt/app/oracle/oradata/DGDEMO/online_redo02.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE ('/opt/app/oracle/oradata/DGDEMO/online_redo03.log') SIZE 50M;
十六、
STARTUP NOMOUNT PFILE='/tmp/initDGDEMO_ST.ora';
$ rman TARGET
sys/password@DB11G AUXILIARY /
十七、duplicate target database for standby nofilenamecheck;
执行此步看会报什么错误如果成功此时备库是mount状态
十八、验证日志应用
在主备库上运行也下sql:
SELECT sequence#, first_time, next_time
FROM v$archived_log
ORDER BY sequence#;
在主库上交换日志:
ALTER SYSTEM SWITCH LOGFILE;
再查看日志备库是否同步了。
备库日志同步并应用了说明dataguard配置成功,如失败在主库查看以下sql:
select status,error from v$archive_dest_status;
看报什么错误,大部分会是参数文件配置有误。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25989950/viewspace-715003/
,如需转载,请注明出处,否则将追究法律责任。