基本配置:centOS6.5 oracle11g
主库配置:
IP:192.168.154.2
SID_name=source
service name:=source
Net service name=denver
备库配置:
IP:192.168.154.3
SID_name=target
service name:=target
Net service name=chicago
(数据库启动后会自动把数据库名注册到监听成为服务名)
主库安装数据库,备库使用RMAN复制主数据库。
1.输入Setup 出现关掉ip6tables,iptables :(关闭防火墙主备库都要做)
或者输入以下命令关掉防火墙:(主备库都要做)有可能一次关不掉,要多检查几次
service iptables stop
service ip6tables stop
2./etc/hosts文件内加入以下:
linux主机名的相关配置文件就是/etc/hosts;这个文件告诉主机那些域名对应那些ip,哪些主机名对应哪些ip:
3.tns配置(主备库相同)
4.主备库启动监听(Listener.ora和tns配置好之后进行此操作)
Lsnrctl start;
1.Listener.ora配置:
配动态监听和静态监听
2.建和主库相同路径的目录
3.创建(和主库相同的路径)目录,oradata主要存储数据库控制文件, 数据文件,重做日志文件
4.在u01/app/oracle/路径下创建 flash_recovery_area (存放所有备份文件和闪回数据 ,该目录存储并管理与备份和恢复有关的文件)下
输入mkdir target ;
mkdir TARGET
创建两个目录
5.修改Oracle口令重命名文件(此操作在拷贝完主库口令文件之后操作)
找到口令文件使用 命令mv orapwsource orapwtarget
6.cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/目录下创建 初始化文件inittarget.ora 在文件中输入(dataguard官方文档说明DB_NAME最好保持一致)
7.输入sql命令处于nomount状态
startup nomount非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
读取inittarget.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要inittarget.ora文件。
8.以下(步骤在主库执行完dup.txt文件后操作)
输入以下命令此时备库就可以接受来自主库的信息
9.输入下面命令 再打开数据库,
停止Standby,取消日志应用
再打开数据库
1.Listener.ora配置:
2.在/home/oracle/目录下创建 dup.txt文件 在文件内输入以下内容
DB_FILE_NAME_CONVERT = ‘主库数据文件位置’,’备库数据文件位置’;
3.把Oracle口令文件拷贝到备库上
4.SQL> alter database archivelog;确保主库处于归档模式
5.设置主库force logging模式
6.输入以下sql命令创建rdo文件(数据库默认创建3组online redo文件,所以需要3+1组standby redo文件)
:
alter database add standby logfile ‘/u01/app/oracle/oradata/source/sredo01.rdo’ size 52428800;
alter database add standby logfile ‘/u01/app/oracle/oradata/source/sredo02.rdo’ size 52428800;
alter database add standby logfile ‘/u01/app/oracle/oradata/source/sredo03.rdo’ size 52428800;
alter database add standby logfile ‘/u01/app/oracle/oradata/source/sredo04.rdo’ size 52428800;
7.查询是否创建成功
8.复制数据库,备库要启动实例,主库(必须处于startup状态)输入
rman target sys/oracle@denver auxilary sys/oracle@chicago 进入RMAN 模式
9.修改配置文件
10.查看设置此时主库处于读写状态,备库处于只读状态
此时dataguard 完成输入 conn system/oracle@chicago; 可以连接上备库 表示成功
动态监听和静态监听的区别
静态注册,listener不知道实例的状态,只有在进程通过其连接数据库时才能知道,如果你想使用远程管理数据库就使用静态监听
动态注册:listener实时的都知道实例的状态,数据库在关闭的时候会动态的从listener中注销,所以远程管理数据库的启动和停止就不行了。
注意:
Dataguard设置成功关闭数据库之后就无法同步问题:
1.连接数据库之前就要打开监听
2.主备库处于mount状态
3.重新连接成功数据库一定要输入
Alter database recver managed standby database using current logfile disconnect;