利用OGG搭建灾备环境保姆级操作步骤

系统灾备环境搭建,使用OGG同步数据,包括:nfs共享磁盘、acfs新增卷组、ogg目录创建、ogg安装、ogg搭建、数据导出、导入等。

一、工作内容

1.使用NFS共享一块存储,用于生产环境与灾备环境之间,数据泵导出的dump文件存放;

#生产环境新建OGG软件,灾备环境新增OGG软件,用于数据同步,OGG软件使用Oracle GoldenGate 11.2.1.0.3 for Linux x86-64版本;

2.OGG源端,ARCH ASM磁盘组添加2块ASM存储1T空间,使用Oracle acfs逻辑卷方式创建卷组,创建新的挂载点用于挂载ogg目录,及存储Ogg trail文件;

#OGG目标端,存在/ogg 500G目录空间

二、NFS存储配置

1、备用系统数据库操作:

(1)查看新分配的磁盘

upadmin show vlun

(2)新建nfs并赋权挂载点并挂载

mkdir /nfs

chmod 777 /nfs

mount -t ext4 /dev/sdp /nfs

(3)启动nfs相关服务

service rpcbind start

service nfs start

2、生产环境数据库操作:

(1)新建目录并挂载

mkdir /nfs

mount -t nfs -o port=12049 192.168.216.16:/nfs /nfs

以上即可,如果仍然有问题,可尝试使用下面参数

mount -t nfs -o port=12049 rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp 192.168.216.1:/nfs /nfs

(2)如有问题,可umount

umount -lf /nfs

(3)生产环境创建directory目录,用户导出数据

cd /nfs

mkdir dump

sqlplus / as sysdba

create directory bydump as '/nfs/dump';

grant read,write on directory bydump to public;

(4)应急环境创建directory目录,用户导入数据

备用环境数据库操作:

mkdir /nfs/dump

create directory bydump as '/nfs/dump';

grant read,write on directory bydump to public;

三、使用oracle acfs技术创建卷组并挂载

1、操作前查询

# oracleasm listdisks

查看asm磁盘

SQL>select group_number,name,TOTAL_MB, FREE_MB from v$asm_diskgroup;

2、添加磁盘

(1)节点1对磁盘进行分区

# fdisk /dev/sdd

n

p

1

default

default

w

(2)创建ASM磁盘

# /etc/init.d/oracleasm createdisk arch2 /dev/sdd1 

# /etc/init.d/oracleasm listdisks

# /etc/init.d/oracleasm scandisks

(3)另一个节点同步磁盘信息

#ll /dev/sd*

#partprobe sd*

(4)另一个节点磁盘确认

#/etc/init.d/oracleasm scandisks

#/etc/init.d/oracleasm listdisks

(5)检查磁盘组的情况

SQL>alter diskgroup arch check norepair;

--添加ARCH磁盘之前,进行检测,观察ASM ALERT日志no errors!

SUCCESS: check of diskgroup ARCH found no errors

SUCCESS: alter diskgroup arch check norepair

----

(6)arch磁盘组新增磁盘

$sqlplus / as sysasm

SQL>

alter diskgroup ARCH add disk '/dev/oracleasm/disks/ARCH2' rebalance power 0;

alter diskgroup ARCH add disk '/dev/oracleasm/disks/ARCH2' rebalance power 0;

alter diskgroup ARCH rebalance power 11; 

(7)查询验证

ASMCMD> lsdg

检查确认

查询asm_alert日志;

查询db_alert日志;

SQL> select group_number,disk_number,library,name,path from v$asm_disk where PATH like '/dev/oracleasm/disks/arch%' order by PATH desc; 

SQL> select group_number,name,total_mb/1024 TOTAL_GB,free_mb/1024 FREE_GB,free_mb/total_mb*100 free_percent,state,TYPE from v$ASM_DISKGROUP;

(8)创建acfs卷组

[grid@nfgw2 ~]$ crs_stat -t -v ora.registry.acfs  

Name           Type           R/RA   F/FT   Target    State     Host        

----------------------------------------------------------------------

ora....ry.acfs ora....fs.type 0/5    0/     ONLINE    ONLINE    nfgw1  

ASMCMD> volcreate -G ARCH -s 500g v01

SQL> select VOLUME_NAME,SIZE_MB,REDUNDANCY,STATE,VOLUME_DEVICE from v$asm_volume;

ASMCMD> volinfo -G ARCH v01

Diskgroup Name: ARCH

         Volume Name: V01

         Volume Device: /dev/asm/v01-317

         State: ENABLED

         Size ('MB): 2048

         Resize Unit ('MB): 32

         Redundancy: UNPROT

         Stripe Columns: 4

         Stripe Width ('K): 128

         Usage: 

         Mountpath: 

(9)格式化卷组

[root@nfgw2 ~]# mkfs -t acfs /dev/asm/v01-317

(10)注册acfs并挂盘

[grid@nfgw1 /]$ acfsutil registry -a /dev/asm/v01-317 /ogg

#mount -t acfs /dev/asm/v01-317 /ogg

四、查找存在主键的表和没有主键的表,分别建立ogg通道

1、查找存在主键的表

select a.owner,a.table_name from dba_constraints a where a.constraint_type='P' and a.status='ENABLED' AND  (a.owner,a.table_name)  in (

('OSGPCDB','T_XXX'),

('OSGSFA','TB_XXX'),

2、查找没有主键的表

create table t as 

select owner,table_name from dba_tables where (owner,table_name) in (

('OSGPCDB','T_XXX'),

('OSGSFA','TB_XXX'),

);

select *

  from t

 where (t.owner, t.table_name) not in

       (select a.owner, a.table_name

          from dba_constraints a

         where a.constraint_type = 'P'

           and a.status = 'ENABLED'

           AND (a.owner, a.table_name) in

               (

   ('OSGPCDB','T_XXX'),

('OSGSFA','TB_XXX'),

)

);

drop table t purge;

五、ogg搭建准备

1、检查生产数据库情况

archive log list;

SQL> select supplemental_log_data_min,FORCE_LOGGING from v$database;

SUPPLEME FOR

-------- ---

YES      YES

alter database add supplemental log data ;

SQL> show parameter enable_goldengate_replication

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

enable_goldengate_replication        boolean     TRUE

2、查看ogg需要用的用户和表空间

select username,default_tablespace from dba_users;

3、ogg用户赋权

USERID ogg,PASSWORD osgmc02

grant connect, resource,CREATE SESSION to ogg;

exec dbms_goldengate_auth.grant_admin_privilege('ogg');

exec dbms_goldengate_auth.grant_admin_privilege(grantee=>'ogg');

grant select any dictionary to ogg;

commit;

六、ogg静默安装

1、准备

cd /ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/

cp oggcore.rsp oggcore-setup.rsp

vim oggcore-12c.rsp

修改这几项

INSTALL_OPTION=ORA12c

SOFTWARE_LOCATION=/u01/app/ogg

START_MANAGER=false

2、安装  

mkdir /u01/app/ogg

chown -R oracle:dba /u01/app/ogg

chown -R oracle:dba /ogg

su - oracle

cd /ogg/fbo_ggs_Linux_x64_shiphome/Disk1

./runInstaller -silent -responseFile /ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore-12c.rsp

3、创建目录

./ggsci

create subdirs

4、创建和配置管理进程

edit params mgr

PORT 27809

DYNAMICPORTLIST 27810-27910

--AUTOSTART ER *

--AUTORESTART EXTRACT *,REtrailES 5,WAITMINUTES 3

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

SYSLOG ERROR, WARN

5、创建和配置抽取进程

ADD EXTRACT e_bypri1, TRANLOG,BEGIN now,threads 2 —RAC为节点数

ADD EXTTRAIL ./dirdat/bypri1/by, EXTRACT e_bypri1

edit params e_bypri1

EXTRACT e_bypri1

--setenv ('NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8)

USERID ogg,PASSWORD osgmc02

--USERIDALIAS pmsprod

TRANLOGOPTIONS DBLOGREADER 

EXTTRAIL ./dirdat/bypri1/by

DISCARDFILE ./dirrpt/e_bypri1.dsc, APPEND, MEGABYTES 4000

table OSGPC.HX_ELE_AREA;

6、创建和配置抽取进程2

--------------

ADD EXTRACT e_bynpri, TRANLOG,BEGIN now,threads 2 —RAC为节点数

ADD EXTTRAIL ./dirdat/bynpri/by, EXTRACT e_bynpri

EXTRACT e_bynpri

--setenv ('NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8)

USERID ogg,PASSWORD osgmc02

--USERIDALIAS pmsprod

TRANLOGOPTIONS DBLOGREADER 

EXTTRAIL ./dirdat/bynpri/by

DISCARDFILE ./dirrpt/e_bynpri.dsc, APPEND, MEGABYTES 4000

table OSGPC.HX_ELE_AREA;

7、创建和配置投递进程

edit params p_bypri1

extract p_bypri1

passthru

rmthost 192.168.216.1,mgrport 27809,compress

rmttrail ./dirdat/bypri1/by

table OSGPC.HX_ELE_AREA;

add extract p_bypri1,exttrailsource ./dirdat/bypri1/by

add rmttrail ./dirdat/bypri1/by,extract p_bypri1,megabytes 200

8、创建和配置投递进程2

edit params p_bynpri

extract p_bynpri

passthru

rmthost 192.168.216.1,mgrport 27809,compress

rmttrail ./dirdat/bynpri/by

table OSGPC.HX_ELE_AREA;

add extract p_bynpri,exttrailsource ./dirdat/bynpri/by

add rmttrail ./dirdat/bynpri/by,extract p_bynpri,megabytes 200

9、新增tradata

./ggsci

dblogin USERID ogg,PASSWORD osgmc02

add trandata OSGPC.HX_ELE_AREA

10、创建和配置复制进程

(1)新增全局checkpointtable表

edit params ./GLOBALS

CHECKPOINTTABLE ogg.ggchktable

dblogin USERID ogg,PASSWORD osgmc02

add checkpointtable ogg.ggchktable

(2)复制进程参数

edit params r_bypri1

replicat r_bypri1

USERID ogg,PASSWORD osgmc02

discardfile ./dirrpt/r_bypri1.DSC,append,megabytes 1024

discardroolover at 02:30

reperror default,abend

report at 02:01

map SCOTT.*, target SCOTT.*;

(3)复制进程新增

add replicat r_bypri1,exttrail ./dirdat/bypri1/by,checkpointtable ogg.ggchktable

(4)复制2进程参数

edit params r_bynpri

replicat r_bynpri

USERID ogg,PASSWORD osgmc02

discardfile ./dirrpt/r_bynpri.DSC,append,megabytes 1024

discardroolover at 02:50

reperror default,abend

report at 02:11

map SCOTT.*, target SCOTT.*;

(5)复制2新增

add replicat r_bynpri,exttrail ./dirdat/bynpri/by,checkpointtable ogg.ggchktable

七、数据传输

1、表结构导出

create directory bynfgw as '/nfs/dump';

grant read,write on directory bynfgw to public;

expdp \'/as sysdba\'  parfile=zfzx_meta.pra

vi zfzx_meta.pra

directory=bynfgw

dumpfile=zfzx_meta%U.dmp

parallel=8

logfile=zfzx_meta.log

exclude=db_link

CLUSTER=N

filesize=5G

CONTENT=METADATA_ONLY

COMPRESSION=ALL

tables=

2、导入表结构

create user OSGPC identfied by Qwert##741852 default tablespace xxx ;

grant connect,resource to osgpc;

create directory bynfgw as '/nfs/dump';

grant read,write on directory bynfgw to public;

impdp \'/as sysdba \'  directory=bynfgw dumpfile=zfzx_meta%U.dmp 

3、导出数据

SQL> select to_char(current_scn ) from v$database;

TO_CHAR('CURRENT_SCN)

----------------------------------------

19658145443

expdp \'/as sysdba\'  parfile=zfzx_data.pra

vi zfzx_data.pra

directory=bynfgw

dumpfile=zfzx_data%U.dmp

parallel=16

logfile=zfzx_data.log

filesize=5G

FLASHBACK_SCN=19658145443

CONTENT=DATA_ONLY

CLUSTER=N

COMPRESSION=ALL

tables=

impdp \'/as sysdba \'  directory=bynfgw dumpfile=zfzx_data%U.dmp table_exists_action=replace  

4、启动复制进程

start replicat r_bypri1,aftercsn 19658145443

start replicat r_bynpri,aftercsn 19658145443

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ 设计模式 的课本范例(下)

(19) 桥接模式 Bridge,不是采用类继承,而是采用类组合,一个类的数据成员是类对象,来扩展类的功能。源码如下: class OS // 操作系统负责绘图 { public:virtual ~OS() {}virtual void draw(cha…

拼多多滑块逆向

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi …

花生壳 搭建服务器

使用花生壳来搭建服务器。下面是一个基本的步骤指南,帮助您完成搭建过程: 注册花生壳账号: 访问花生壳官网(https://hsk.oray.com/),点击注册账号。根据提示填写相关信息,完成账号注册。 下载并…

js懒加载

懒加载(Lazy Loading)是一种在网页加载过程中延迟加载某些资源的技术。在JavaScript中实现懒加载的方式有很多,下面是其中一种简单的实现方式: 1. 首先,给需要懒加载的元素添加一个特定的class(例如"l…

uniapp中使用threejs加载几何体

我的建议是使用这个库 https://github.com/deepkolos/three-platformize 为什么?我试了uniapp推荐的和threejs-miniprogram这个小程序官方库,都加载不出来我的obj模型。所有我推荐不要用obj模型最好,挺多都支持GLTF模型的,但是我不…

基于ssm口红商城管理的设计与实现

一、👨‍🎓网站题目 口红商城项目可以提供更加便捷和高效的购物方式。消费者可以在家中使用电脑或手机随时随地购物,避免了传统购物方式中需要花费时间和精力去实体店铺购物的麻烦。此外,口红商城项目还提供了更多的选择和更低的…

【Android面试八股文】性能优化相关面试题:什么时候会发生内存泄漏?举几个你遇到过的例子

内存泄漏通常发生在程序中某些对象被分配了内存但在不再需要时未能正确释放,导致这部分内存无法被垃圾回收器回收,最终造成系统内存的浪费和性能问题。 以下是一些常见的内存泄漏示例: 未关闭资源: 当使用了需要手动关闭的资源(如文件、数据库连接、网络连接等),但在使…

2D 激光 SLAM-Cartographer 实战

源码 https://github.com/cartographer-project/cartographer https://github.com/cartographer-project/cartographer_ros 课 程 下 的 注 释 版 代 码 : https://github.com/xiangli0608/cartographer_detailed_comments_ws 备用地址: https://gi…

复分析——第8章——共形映射(E.M. Stein R. Shakarchi)

第8章 共形映射(Conformal Mappings) The results I found for polygons can be extended under very general assumptions. I have undertaken this research because it is a step towards a deeper understanding of the mapping problem, for which not much has hap…

C++视觉开发 二.OpenCV基础

目录 本章记录OpenCV开发中的基本操作语法 一.基础 1.读取图像 2.显示图像 3.保存图像 二.图像 1.像素处理 2.彩色图像 三.滤波 1.高斯滤波(Gaussian Blur) 功能: 高斯滤波是一种常用的线性平滑滤波器,用于降低图像噪声…

绕过HTTP401和403响应限制工具

目录 介绍 开发语言 特征 动态 安装使用 参数 示例用法 工具地址 介绍 一种旨在自动化各种技术的工具,以绕过HTTP 401和403响应代码并访问系统中未授权的区域。此代码是为安全爱好者和专业人士只。使用它在您自己的风险。 开发语言 Python3 特征 探测HTTP 401和403…

关于嵌入式变量存储位置的思考

嵌入式软件中的变量存储比较灵活,可以将变量存储在内核中,此时变量的访问最快;也可以将变量存储在ram中,此时变量的访问速度次之;最后可以将变量存储于flash中,此时变量的访问速度最快。(不考虑…

v-for中key的原理以及用法

在 Vue.js 中,v-for 指令用于基于源数据多次渲染元素或模板块。当使用 v-for 渲染列表时,为每个列表项提供一个唯一的 key 属性是非常重要的。key 的主要作用是帮助 Vue 跟踪每个节点的身份,从而重用和重新排序现有元素。 先来张原理图&#…

Batch文件中的文件移动指南:使用move命令的深度解析

Batch文件,也称为批处理脚本,是Windows操作系统中一种自动化执行一系列命令的脚本文件。使用Batch文件可以极大地提高工作效率,尤其是在需要重复执行相同命令序列的情况下。move命令是Batch文件中用于移动或重命名文件和目录的基本命令之一。…

开机弹窗缺失OpenCL.dll如何解决?分享5种靠谱的解决方法

在电脑使用过程中,我们可能会遇到一些错误提示,其中之一就是“开机提示找不到OpenCL.dll”。那么,这个错误提示到底是怎么回事呢?它又对电脑有什么影响?我们又该如何解决这个问题并预防OpenCL.dll再次丢失呢&#xff1…

基于Ollama Python的本地多模态大模型

0,背景 最近测试Ollama,发现之前直接下载开源模型在我电脑上都跑不动的模型,居然也能运行了(AMD 7840HS核显/32GB内存),突发奇想那些多模态大模型能不能基于Python接口使用,所以决定尝试一下。…

网页用事件监听器播放声音

一、什么是监听器: 在前端页面中,事件监听器(Event Listener)是一种编程机制,它允许开发者指定当特定事件(如用户点击按钮、鼠标悬停、页面加载完成等)发生时执行特定的代码块。简而言之&#x…

用Python实现的10种聚类算法汇总

前言 聚类是一种无监督学习问题。 它经常用来在输入数据的特征空间中寻找分组,例如基于顾客行为将消费者分组。 聚类算法有很多种,没有哪一种聚类算法适用于所有的问题。不过,有必要去探究多种聚类算法,以及每种算法的不同配置…

服务器上VMWare Workstation虚拟机声卡支持

问题:联想服务器没有声卡,Windows 服务器安装了VMWare Workstation,里面的Windows 11虚拟机,我远程桌面上来,没有声卡,但是我想做 声音方面的测试就没办法。 解决办法: 服务器主机上安装虚拟机…

Java 多线程编程:线程的基本概念

在现代计算中,多线程编程是一种常见且重要的技术。Java 提供了强大的多线程支持,使得开发者可以轻松地实现并发编程。本文将详细介绍 Java 中线程的基本概念,包括线程与进程的区别以及线程的生命周期。 线程和进程 首先,让我们了…