前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手工冷备搭建 Oracle 11g DataGuard 物理备库

手工冷备搭建 Oracle 11g DataGuard 物理备库

作者头像
JiekeXu之路
发布2019-07-30 10:46:23
8520
发布2019-07-30 10:46:23
举报
文章被收录于专栏:JiekeXu之路

LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521))          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))    )  )

代码语言:javascript
复制
FAL_SERVER=bjFAL_CLIENT=shDB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh'LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh'STANDBY_FILE_MANAGEMENT=AUTO
代码语言:javascript
复制
*.control_files='/u02/oradata/sh/control01.ctl','/u02/oradata/sh/control02.ctl'DB_NAME=DGDBDB_UNIQUE_NAME=shanghaiLOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)'LOG_ARCHIVE_DEST_1= 'LOCATION=/u02/arch/sh/  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=shanghai'LOG_ARCHIVE_DEST_STATE_1=ENABLE
代码语言:javascript
复制
DB_NAME=DGDBDB_UNIQUE_NAME=beijingLOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)'CONTROL_FILES='/u01/app/oracle/oradata/DGDB/control01.ctl', '/u01/app/oracle/oradata/DGDB/control02.ctl'LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/beijing/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=beijing'LOG_ARCHIVE_DEST_2= 'SERVICE=sh ARCH ASYNC NOAFFIRM  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=shanghai'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLE 

本文通过手工冷备+pfile文件的方式,搭建oracle11g dataguard 物理备库。在搭建前的规划中,特意将主库的数据库名和服务名、备库的文件存放位置等等做了差异处理。 在进行初始化参数文件的配置时,也进行了最小化处理。这样能够更好的理解DataGuard搭建所需要的的日志传输、应用所需参数配置。

【实验环境】

代码语言:javascript
复制
操作系统:Red Hat Enterprise Linux Server release 5.4
数据库:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

【DG主库、物理备库结构信息】

【搭建过程】

1、主库上 强记日志

alter database force logging;

所有都记日志,nologging 无效。

防止主库上有操作不记日志。产生主从库差异。

2、创建口令文件 确保日志传输时的权限

主库创建口令文件,scp到从库、修改名称

是远程用户sysdba权限可以登录

echo $ORACLE_SID

orapwd file=$ORACLE_HOME/dbs/orapwBJ password=oracle entries=3 force=y

scp到从库

scp orapwBJ shanghai.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ oracle@shanghai.lxh.net's password: orapwBJ 100% 1536 1.5KB/s 00:00 oracle@beijing.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs>

从库上改名

3、【主库的初始化参数】

DB_NAME=DGDB DB_UNIQUE_NAME=beijing LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)' CONTROL_FILES='/u01/app/oracle/oradata/DGDB/control01.ctl', '/u01/app/oracle/oradata/DGDB/control02.ctl' LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/beijing/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=beijing' LOG_ARCHIVE_DEST_2= 'SERVICE=sh ARCH ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=shanghai' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE

LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)' 控制心跳

SERVICE=sh tns,要能连到备库 服务名

ARCH 传递归档

ASYNC 异步传输

NOAFFIRM 从库是否收到主库不用确认

如果主库参数中有审计目录等,备库需创建相应目录

在实验情况下,可删除主库、从库 审计和审计目录 删除OMF管理路径 重启数据库 看是否有效

4、主库备份数据文件、日志文件(冷备cp)

代码语言:javascript
复制
shutdown immediate;
cd /u01/app/oracle/oradata/DGDB
cp *.dbf /u02/backup/DGDB/
cp *.log /u02/backup/DGDB/

如果是rman备份,必须要先备份,再创建standby控制文件。

5、主库开归档、开库

6、主库生成standby控制文件

代码语言:javascript
复制
alter database create standby controlfile as '/u02/backup/DGDB/control.std';

至此,standby 控制文件 、所有数据文件、redo日志文件 全部在/u02/backup/DGDB目录下。

7、打包压缩后scp到备库

打包

oracle@beijing.lxh.net:/u02/backup> tar -cvf DGDB.tar DGDB/

压缩 gzip DGDB.tar

scp到备库

scp DGDB.tar.gz shanghai.lxh.net:/u02/oradata/

备库解压 gunzip DGDB.tar.gz

解包 tar –xvf DGDB.tar

改名

复制 standby控制文件 生成两个备库的控制文件

scp 初始化参数文件pfile到备库 修改文件名

代码语言:javascript
复制
scp beijing.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initBJ.ora $ORACLE_HOME/dbs/
代码语言:javascript
复制
mv initBJ.ora initSH.ora

8、【备库初始化参数文件】

控制文件路径

db_unique_name

本地归档路径:log_archive_dest_1=

删除dest_2

添加数据文件、日志文件 位置转换

*.control_files='/u02/oradata/sh/control01.ctl','/u02/oradata/sh/control02.ctl' DB_NAME=DGDB DB_UNIQUE_NAME=shanghai LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)' LOG_ARCHIVE_DEST_1= 'LOCATION=/u02/arch/sh/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=shanghai' LOG_ARCHIVE_DEST_STATE_1=ENABLE

FAL_SERVER=bj FAL_CLIENT=sh DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh' LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh' STANDBY_FILE_MANAGEMENT=AUTO

代码语言:javascript
复制
FAL_SERVER=bj    如果归档或日志有gap差异,从库向主库请求日志
代码语言:javascript
复制
FAL_SERVER=sh

STANDBY_FILE_MANAGEMENT=AUTO 主库创建文件,从库自动创建。

9、配置监听

主库监听配置listener

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = beijing.lxh.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )

从库监听配置

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )

10、配置tnsnames

主库配一个tnsnames

从库配两个tnsnames

sh = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = shanghai) ) ) bj = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = beijing.lxh.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = beijing) ) )

11、启动从库到mount状态

mount 从库

查看备库数据库身份

代码语言:javascript
复制
select database_role from v$database;

查看主库身份

12、从库进行standby recover 开始应用日志

【重启库后需再次执行】

代码语言:javascript
复制
alter database recover managed standby database disconnect from session;
代码语言:javascript
复制
root@shanghai.lxh.net:/root> tail -f /u01/app/oracle/diag/rdbms/shanghai/SH/trace/alert_SH.log

13、验证同步成功

主库切日志组

从库跟踪文件

代码语言:javascript
复制
tail –f /u01/app/oracle/diag/rdbms/shanghai/SH/trace/alert_SH.log

【实验总结】

本次实验,使用了手工冷备主库数据文件、scp到备库的方式,一步一步搭建dataguard物理备库。最主要的是突出主库、备库参数文件的配置。 参数文件:主库增加远程归档目录;备库增加FAL挖掘日志GAP、CONVERT进行目录转换。 控制文件:主库生产standby控制文件作为备库的控制文件。 数据文件:备库使用主库冷备的数据文件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JiekeXu之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【实验环境】
  • 【DG主库、物理备库结构信息】
  • 【搭建过程】
    • 1、主库上 强记日志
      • 4、主库备份数据文件、日志文件(冷备cp)
        • 5、主库开归档、开库
          • 6、主库生成standby控制文件
            • 7、打包压缩后scp到备库
              • 9、配置监听
                • 11、启动从库到mount状态
                  • 13、验证同步成功
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档