ITPub博客

首页 > 数据库 > Oracle > Oracle 单机配置DataGuard

Oracle 单机配置DataGuard

原创 Oracle 作者:kakaxi9521 时间:2021-05-20 14:13:47 0 删除 编辑

一.主库参数配置

1.启用force logging (强制记录日志)

-- 查看

select log_mode,force_logging from v$database;

-- 启动

alter database force logging;


2.启用归档

-- 查看

archive log list;

select log_mode from v$database;

alter database archivelog;


二.配置监听

TNS:

主库

DBPRI =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbpri)

    )

  )


备库:

DBSTD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbstd)

      (UR = A)

    )

  )


三.配置主库参数

--1. 修改归档文件名后缀为.arc(可选)

alter system set log_archive_format=’%t_%s_%r.arc’ scope=spfile;


--2. 检查db_unique_name

show parameter db_unique_name

alter system set db_unique_name=’dbpri’ scope=spfile;


--3. 修改log_archive_config 参数,括号中为组备库的db_unique_name

alter system set log_archive_config=’DG_CONFIG=(dbpri,dbstd)’ scope=both;


--4. 配置log_archive_dest_1 ,主库归档位置

alter system set log_archive_dest_1=’LOCATION=/u01/archivelog/dbpri  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=dbpri’ scope=both;


--5. 配置log_archive_dest_2,备份归档参数,采用LGWR异步传输方式

alter system set log_archive_dest_2=’SERVICE=dbstd LGWR ASYNC VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE)  DB_UNIQUE_NAME=dbstd’ scope=both;


--6. 修改归档日志进程的最大数量(可选)

alter system set log_archive_max_processes=30 scope=both;

show parameter log_archive_max_processes;


--7. 检查数据库口令文件的使用模式(可选)

Show parameter remote_login_passwordfile

Alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;


--8.修改/etc/hosts 文件


--9. 修改db_file_name_convert参数,主备库数据文件名称跟路径对应关系

--主库跟备库存放文件的路径不一定一样,如果一样的话可以不指定,但是不一样就需要指定,一般来说主库跟备库的实例名不一样,所以肯定是前面路径是备库数据文件路径,后面是主库路径

alter system set db_file_name_convert=’/u01/app/oracle/oradata/dbstd/’,’/u01/app/oracle/oradata/dbpri/’  scope=file;


--10. 修改log_file_name_convert参数,主备库日志文件名称跟路径对应关系

Alter system set log_file_name_convert=’/u01/app/oracle/oradata/dbstd/’,’/u01/app/oracle/oradata/dbpri/’  scope=file;;


--11. 设置standby_file_management为auto

--设置文件管理模式,此项设置为自动,不然在主库创建数据文件后,备库不会自动创建

Alter system set standby_file_management=auto;


--12.修改fal_client及fal_server

Alter system set fal_client=’dbpri’ scope=both;   --主库tns

Alter system set fal_server=’dbstd’ scope=both;  --备库tns



四.配置备库参数

1.密码文件,主库和备库的sys密码必须一致

-- 方式1: 使用orapwd 设置相同密码

orapwd file=orapwsbdb password=

-- 方式2: scp 主库密码文件到备库$ORALCE_HOME/dbs目录下,并修改密码文件名为orapwdbstd


2.设置pfile文件并启动到nomount状态

在备库的dbs目录下创建initdbstd.ora 并参考主库添加参数

db_name='dbpri'

db_unique_name='dbstd'

pga_aggregate_target=13520338944     --设置跟主库一样

sga_target=40563113984               --设置跟主库一样

audit_file_dest='/u01/app/oracle/admin/dbpri/adump'     --创建这个路径

compatible='11.2.0.4.0'                                --兼容性参数 主备库要保持一致

log_archive_format='%t_%s_%r.arc'

control_files='/u01/app/oracle/oradata/dbstd/control01.ctl','/u01/app/oracle/fast_recovery_area/dbstd/control02.ctl'   --注意修改文件路径中的实例名

log_archive_config='DG_CONFIG=(dbpri,dbstd)'

log_archive_dest_1='LOCATION=/u01/archivelog/dbstd VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dbstd'

log_archive_dest_2='SERVICE=dbpri LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbpri'

db_file_name_convert='/u01/app/oracle/oradata/dbpri/','/u01/app/oracle/oradata/dbstd/'     --前面是对方的,后面是本地的

log_file_name_convert='/u01/app/oracle/oradata/dbpri/','/u01/app/oracle/oradata/dbstd/'

fal_client='dbstd'  --该参数与主库设置相反

fal_server='dbpri'  --该参数与主库设置相反

standby_file_management='AUTO'


用刚编辑的initdbstd.ora 文件将数据库启动到nomount状态

startup nomount pfile=’/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initdbstd.ora';

Create spfile from pfile;

利用spfile将数据库启动到nomount状态。



五.配置备库tns

主库tns

DBPRI =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbpri)

      (UR = A)

    )

  )



备库tns:

DBSTD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbstd)

      (UR = A)

    )

  )



测试tns

主库和备库分别测试

tnsping dbpri

tnsping dbstd


sqlplus sys/system@dbpri as sysdba;

sqlplus sys/system@dbstd as sysdba;


六.使用duplicate 创建物理standby

备库执行

-- 连接RMAN 并连接辅助(auxiliary) 实例,备库目前状态是nomount状态。

rman target sys/system@dbpri auxiliary sys/system@dbstd;


-- 执行复制

-- nofilenamecheck 不进行文件名检查(如果复制数据时,备库的路径和原库一致,就需要加nofilenamecheck,否者会报错)

duplicate target database for standby from active database nofilenamecheck;


七.添加standby 日志组并开启同步

1.主库添加standby 日志组

?Standby 日志组数量: redo 日志组数量+1

?添加前需要查看已有的日志组号

?Standby 日志大小与普通日志相同大小即可

?为日后主备切换做准备,所以主库上也添加standby 日志


Select * from v$log;

Select * from v$logfile;


主库添加:

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/dbpri/redo04.log') size 50m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/dbpri/redo05.log') size 50m;

alter database add standby logfile group 6 ('/u01/app/oracle/oradata/dbpri/redo06.log') size 50m;

alter database add standby logfile group 7 ('/u01/app/oracle/oradata/dbpri/redo07.log') size 50m;


备库添加:

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/dbstd/redo04.log') size 50m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/dbstd/redo05.log') size 50m;

alter database add standby logfile group 6 ('/u01/app/oracle/oradata/dbstd/redo06.log') size 50m;

alter database add standby logfile group 7 ('/u01/app/oracle/oradata/dbstd/redo07.log') size 50m;

查看standby 日志:

Select * from v$standby_log;


打开备库:

alter database open;


2.设置同步

-- 1. 开启实时同步(启动MRP进程),备库操作

alter database recover managed standby database using current logfile disconnect from session;

alter database recover managed standby database using current logfile disconnect; -- 简写


--2. 开启同步,日志切换才会同步

Alter database recover managed standby database disconnect from session;


--3. 停止同步 (关闭MRP 进程)

Alter database recover managed standby database cancel;


3.主备库检查模式

Select open_mode,database_role,protection_mode,protection_level from v$database;


八.总结

本篇整理了oracle 11gR2 DG 单机环境搭建过程,日志传输为LGWR ASYNC异步传输,开启real time apply。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21374452/viewspace-2773108/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-13

  • 博文量
    136
  • 访问量
    179016