1 安装环境
在Primary库上安装数据库软件,并建监听和实例,在Standby库上安装数据库软件,并建监听,但不建实例。
Primary库 |
Standby库 |
|
操作系统 |
CentOS release 6.4 64位 |
CentOS release 6.4 64位 |
IP/主机名 |
192.183.3.17/nn |
192.183.3.145/kk |
数据库软件版本 |
oracle 11.2.0.1.0 |
oracle 11.2.0.1.0 |
ORACLE_HOME |
/home/oracle/product |
/home/oracle/product |
ORACLE_SID |
orcl |
orcl |
db_unique_name |
primary |
standby |
Net Service Name |
ser_pri |
ser_std |
2 Primary库配置
2.1 设置数据库强制归档与归档模式
- 将主库设置为FORCE LOGGING模式
SQL>alter database force logging;
- 开启归档模式
查看归档模式:
SQL>archive log list;
设置归档模式:
2.2重建密码文件
同一个Dataguard中所有数据库必须拥有独立的密码文件,并且保证sys用户拥有相同密码来保证redo的传输。默认Oracle自建的密码文件保存在$ORACLE_HOME/dbs/orapw$ORACLE_SID中,可以直接copy到standby库对应目录中(本案例采用该方法),如果没有该文件也可以通过如下方式重建。
[[email protected]~]$ orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=123456 force=y ignorecase=y
2.3 STANDBY日志文件与控制文件创建
- 添加standby日志文件
SQL>alter database add standby logfile group 4('/home/oracle/oradata/orcl/stdby01.log')size 50M; SQL>alter database add standby logfile group 5('/home/oracle/oradata/orcl/stdby02.log')size 50M; SQL>alter database add standby logfile group 6('/home/oracle/oradata/orcl/std03.log')size 50M; SQL>select group#,member from v$logfile order by 1;
- 创建standby控制文件
SQL> alter database create standby controlfile as 'home/oracle/oradata/orcl/standby01.ctl'; [[email protected] ~]$ cp /home/oracle/oradata/orcl/standby01.ctl /home/oracle/flash_recovery_area/orcl/ standby02.ctl
2.4 修改primary库pfile
2.4.1 生成pfile
SQL>create pfile from spfile; SQL>shutdown immediate;
2.42 修改pfile
[[email protected]~]$vi $ORACLE_HOME/dbs/initorcl.ora
在最后添加如下红色框内内容:
2.4.3 生成spfile
SQL>startup pfile='/home/oracle/product/dbs/initorcl.ora' SQL>create spfile from pfile='/home/oracle/product/dbs/initorcl.ora';
2.5 修改监听配置文件
监听文件目录$ORACLE_HOME/network/admin,配置完成后重启监听。
[[email protected] admin]$vi listener.ora
2.6修改TNS配置文件
TNS文件目录$ORACLE_HOME/network/admin。
[[email protected] admin]$vi tnsnames.ora
2.7 备份数据库
[[email protected] backupset]$rman target/ RMAN>sql ''alter system archive log current''; RMAN>backup database include current controlfile for standby plus archivelog;
备份完成后会在闪回区生产备份文件。
3 standby库配置
3.1 建立相应的文件目录
包括dump文件目录,闪回区,数据文件目录,可以通过show parameter dest命令查看
[[email protected]~]$mkdir -p /home/oracle/admin/orcl/adump [[email protected]~]$mkdir -p /home/oracle/admin/orcl/dpdump [[email protected]~]$mkdir -p /home/oracle/admin/orcl/pfile [[email protected]~]$mkdir -p /home/oracle/diag/rdbms [[email protected]~]$mkdir -p /home/oracle/flash_recovery_area [[email protected]~]$mkdir -p /home/oracle/oradata/orcl
3.2 从primary库服务器上拷贝文件
3.2.1 拷贝闪回区的备份内容
[[email protected] ORCL]$scp -r /home/oracle/flash_recovery_area/ORCL/backupset 192.183.3.145:/home/oracle/flash_recovery_area/ORCL/
3.2.2 拷贝参数文件与密码文件
[[email protected] ORCL]$scp -r /home/oracle/product/dbs 192.183.3.145:/home/oracle/product/dbs
3.2.3 拷贝监听文件
[[email protected]~]$scp -r /home/oracle/product/network/admin/*.ora 192.183.3.145:/home/oracle/product/network/admin/
3.3 修改监听配置文件
3.4TNS配置文件
3.5 修改参数文件
[[email protected] ~]$ vi $ORACLE_HOME/dbs/initorcl.ora
修改如下内容:
3.6 启动standby库nomount状态
SQL> STARTUP nomount pfile='/home/oracle/product/dbs/initorcl.ora'; SQL> create spfile from pfile='/home/oracle/product/dbs/initorcl.ora';
3.7恢复数据库
[[email protected]~]$rman target sys/[email protected]_pri auxiliary/ RMAN> duplicate target database for standby nofilenamecheck dorecover;
或者执行如下的脚本也可以进行standby库的恢复。
3.8启动STANDBY库
Duplicate 完成后standby库已经处于正常的mount状态,应打开recover。
SQL> alter database recover managed standby database disconnect from session;
查看数据库角色、角色切换、保护模式
SQL> select database_role,switchover_status,protection_mode,protection_level from v$database;
3.9 验证配置是否成功
归档日志Current log sequence相同,说明配置成功,如下:
- Primary库
- Standby库
时间: 2024-10-29 09:08:47