Oracle 12c rac 搭建 dg

news2024/11/16 13:35:47

环境

rac 环境 (主)byoradbrac

系统版本:Red Hat Enterprise Linux Server release 6.5
软件版本:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
byoradb1:172.17.38.44
byoradb2:172.17.38.45

单机环境 (备)byoradbdg

系统版本:CentOS Linux release 7.9.2009
软件版本:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
byoradbdg:172.17.38.55

主库操作(byoradb1)

主库开启归档模式

#关闭数据库,启动到mount状态
SQL> shutdown immediate

SQL> startup mount

#修改数据库为归档模式,因为DG是通过传送归档日志到备库然后应用来保证主备库一致的。
SQL> alter database archivelog;   

#查看归档日志状态
SQL> archive log list;

在这里插入图片描述
可参考 Oracle database 开启归档日志 archivelog

主库开启force logging

#修改数据库为强制记日志,这是必须的操作,主库的每一步操作都得记录到日志中去。
SQL> alter database force logging;

#查看是否为强制日志
SQL> select force_logging from v$database;

在这里插入图片描述

创建standby redo log

#查看Redo和Standby Redo
SQL> select * from v$logfile;
SQL> select group#,thread#,sequence#,archived,status from v$standby_log;
#仅仅显示Online Redo,不显示Standby Redo

#查看redo大小
SQL> select thread#,group#,bytes/1024/1024/1024 from v$log ;

#新增一组大小为500M的Standby Redo,这里的group号不得与Online redo重复
SQL> alter database add standby logfile group 5 '+DATADG' size 500M;
SQL>alter database add standby logfile group 6 '+DATADG' size 500M;
SQL>alter database add standby logfile group 7 '+DATADG' size 500M;
SQL>alter database add standby logfile group 8 '+DATADG' size 500M;

#查看是否添加成功
SQL> select GROUP#,TYPE,MEMBER from v$logfile;


创建pfile

这里创建pfile是为了做一些主库参数的配置,并且还得拷贝到备库再次修改成备库的配置。(如果是RAC到单机,则单机单独创建pfile)

SQL> create pfile='/u01/app/oracle/product/12c/dbhome_1/dbs/initbyoradb1.ora' from spfile;
 create pfile='/nob/initrac.ora' from spfile;
SQL> shutdown immediate  
     

修改主库pfile文件

# 编辑/u01/app/oracle/product/12c/dbhome_1/dbs/initbyoradb1.ora文件,追加

cat >> /u01/app/oracle/product/12c/dbhome_1/dbs/initbyoradb1.ora << "EOF"
*.db_unique_name='byoradbrac'
*.fal_server='byoradbdg'
*.log_archive_config='dg_config=(byoradbrac,byoradbdg)'
*.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=byoradbrac'
*.log_archive_dest_2='service=byoradbdg lgwr async valid_for=(online_logfile,primary_role) db_unique_name=byoradbdg'
*.log_archive_dest_state_1=ENABLE
*.log_archive_dest_state_2=ENABLE
*.standby_file_management='AUTO'
*.db_file_name_convert='/oracledata/app/oracle/oradata','+DATA'
*.log_file_name_convert='/oracledata/app/oracle/oradata','+ARCH'
EOF

此时由于备库是单机、 所以需注意

*.db_file_name_convert='/oracledata/app/oracle/oradata','+DATA'
*.log_file_name_convert='/oracledata/app/oracle/oradata','+DATA'

如果备库也是rac

*.db_file_name_convert='+DATA','+DATA'
*.log_file_name_convert='+DATA','+DATA'

用pfile启动主库,并创建spfile

SQL> shutdown immediate

SQL> startup nomount pfile='/u01/app/oracle/product/12c/dbhome_1/dbs/initbyoradb.ora'

SQL> create spfile from pfile;


用创建的spfile启动主库

SQL> shutdown immediate

SQL> startup

复制主库的密码文件到备库

#密码文件一般存放在$ORALCE_HOME/dbs
cd $ORALCE_HOME/dbs
scp orapwbyoradb1  byoradb:/oracledata/app/oracle/product/12.1.0/dbhome_1/dbs

#如果主库密码文件不存在则需要重新创建
#注意此步会修改sys用户的密码
orapwd file=/oracledata/app/oracle/product/12.1.0/dbhome_1/dbs/orapwbyoradb1 password=zyz123123 entries=10 ignoreCase=Y force=y

cd $ORALCE_HOME/dbs
scp orapwbyoradb1  byoradb:/oracledata/app/oracle/product/12.1.0/dbhome_1/dbs

配置主库监听listener.ora / tnsnames.ora

#查看监听文件位置
lsnrctl  status

在这里插入图片描述

#grid  用户操作
vi /u01/app/12.1.0/grid/network/admin/listener.ora

#添加以下内容
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = byoradbrac)
      (ORACLE_HOME = /u01/app/oracle/product/12c/dbhome_1)
      (SID_NAME = byoradb1)
    )
  )

#静态监听中,GLOBAL_DBNAME 为 service_name  ORACLE_HOME为oracle用户的

#配置tnsnames.ora 路径一般在$ORACLE_HOME/network/admin/

vi $ORACLE_HOME/network/admin/tnsnames.ora

#添加以下内容
byoradbdg =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.38.55)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = byoradb)
    )
  )

#测试是否能连通
sqlplus sys/zyz123123@byoradbdg as sysdba

备库操作(byoradb)

配置静态监听

#查看监听文件位置
lsnrctl  status

在这里插入图片描述

#oracle  用户操作
vi /oracledata/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora

#添加以下内容
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = byoradbdg)
      (ORACLE_HOME = oracledata/app/oracle/product/12.1.0/dbhome_1)
      (SID_NAME = byoradbdg)
    )
  )

#静态监听中,GLOBAL_DBNAME 为 service_name  ORACLE_HOME为oracle用户的

配置tnsnames.ora

vi $ORACLE_HOME/network/admin/tnsnames.ora


#增加以下内容
byoradbrac =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.38.44)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = byoradb)
    )
  )
#测试是否能连通
sqlplus sys/zyz123123@byoradbdg as sysdba

修改备库pfile参数

如是空实例,可手动创建一个pfile文件

SQL> create pfile='/oracledata/app/oracle/product/12.1.0/dbhome_1/dbs/initbyoradbdg.ora' from spfile;


#编辑/oracledata/app/oracle/product/12.1.0/dbhome_1/dbs/initbyoradb.ora文件,修改备库初始化参数

cat >> /oracledata/app/oracle/product/12.1.0/dbhome_1/dbs/initbyoradbdg.ora << "EOF"
*.db_unique_name='byoradbdg'
*.fal_server='byoradb'
*.log_archive_config='dg_config=(byoradb,byoradbdg)'
*.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=byoradbdg'
*.log_archive_dest_2='service=byoradb lgwr async valid_for=(online_logfile,primary_role) db_unique_name=byoradb'
*.log_archive_dest_state_1=ENABLE
*.log_archive_dest_state_2=ENABLE
*.standby_file_management='AUTO'
*.db_file_name_convert='+DATA','oracledata/app/oracle/oradata'
*.log_file_name_convert='+DATA','oracledata/app/oracle/oradata'
EOF

# 用修改后的pfile启动,并创建spfile,再用spfile启动
SQL> shutdown immediate

SQL> startup nomount pfile='/oracledata/app/oracle/product/12.1.0/dbhome_1/dbs/initbyoradbdg.ora'

SQL> create spfile from pfile;

SQL> shutdown immediate

启动备库到nomount

SQL> startup nomount

开始使用RMAN进行ADG

首先RMAN连接到目标数据库和辅助数据库

[oracle@ora-dg admin]$ rman target sys/zyz123123@byoradbrac auxiliary sys/zyz123123@byoradbdg

在这里插入图片描述

使用RMAN的duplicate命令进行复制,两边目录结构相同,需要添加nofilenamecheck参数

RMAN> duplicate target database for standby from active database nofilenamecheck;

复制成功后,备库自动被加载为mount模式,进入sqlplus查看

SQL> select instance_name,status from v$instance;

打开备库并开启apply service

[oracle@ST dbs]$ sqlplus / as sysdba 
     
    SQL> alter database open;  
      
    SQL> select open_mode from v$database;  
      
    OPEN_MODE  
    --------------------  
    READ ONLY  
#开启日志实时应用

    SQL> alter database recover managed standby database disconnect from session;  
      

检验是否成功

#主备库角色状态查询

SQL> select switchover_status,database_role from v$database;

1–主库显示:TO STANDBY/PRIMARY,如果显示SESSION ACTIVE表示还有活动的会话,需要关闭活动的会话再检查
2–备库显示:NOT ALLOWED/PHYSICAL STANDBY

可进行切换日志或插入数据效验是否同步完成。

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

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

相关文章

算法——哈希表

哈希表简介 **是什么&#xff1a;**存储数据的容器有什么用&#xff1a;快速查找某个元素&#xff0c;时间复杂度O(1)&#xff0c;空间复杂度O(n)**什么时候使用哈希表&#xff1a;**频繁查找某一个数&#xff08;这里不要忘了之前的二分&#xff0c;时间复杂度O(logN)&#x…

论文阅读:Large Language Models Are Zero-Shot Time Series Forecasters(2023NIPS)

摘要 文章涉及了两个时间序列的任务&#xff1a;forecasting&#xff0c;imputation. 对于预测任务&#xff1a;通过将时间序列编码为一系列数字&#xff0c;可以将时间序列预测任务转化为文本里面的next-token预测任务。在大规模预训练语言模型的基础上&#xff0c;文章提出了…

泰迪智能科技分享:AI大模型发展趋势分析

大规模预训练语言模型&#xff0c;也被称为“大模型”或“基座模型”&#xff0c;其特点在于拥有巨大的参数量&#xff0c;构成了复杂的人工神经网络模型。大模型具有规模性&#xff08;参数量大&#xff09;、涌现性&#xff08;产生预料之外的新能力&#xff09;以及通用性&a…

k8s二进制最终部署(网络 负载均衡和master高可用)

k8s中的通信模式 1、pod内部之间容器与容器之间的通信&#xff0c;在同一个pod 中的容器共享资源和网络&#xff0c;使用同一个网络命名空间&#xff0c;可以直接通信的 2、同一个node节点之内&#xff0c;不同pod之间的通信&#xff0c;每个pod都有一个全局的真实的IP地址&a…

最新国内使用GPT4教程,GPT语音对话使用,Midjourney绘画,ChatFile文档对话总结+DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;文档对话总结DALL-E3文生图&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和…

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

目录 ​专题一 开启大模型 专题二 基于ChatGPT大模型提问框架 专题三 基于ChatGPT大模型的数据清洗 专题四 基于ChatGPT大模型的统计分析 专题五 基于ChatGPT大模型的机器学习 专题六 基于ChatGPT大模型的科研绘图 专题七 基于ChatGPT大模型的GIS应用 专题八 基于基于C…

k8s集群etcd备份与恢复

一、前言 k8s集群使用etcd集群存储数据&#xff0c;如果etcd集群崩溃了&#xff0c;k8s集群的数据就会全部丢失&#xff0c;所以需要日常进行etcd集群数据的备份&#xff0c;预防etcd集群崩溃后可以使用数据备份进行恢复&#xff0c;也可用于重建k8s集群进行数据恢复 二、备份…

[C/C++]排序算法 快速排序 (递归与非递归)

目录 &#x1f6a9;概念: &#x1f6a9;实现: ⚡1.hoare ⚡2.挖坑法 ⚡3.双指针法 &#x1f6a9;快速排序递归实现 &#x1f6a9;快速排序非递归实现 &#x1f6a9;概念: 通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据比另一部分的所有…

华为OD机试真题-手机App防沉迷系统-2023年OD统一考试(C卷)

题目描述&#xff1a; 智能手机方便了我们生活的同时&#xff0c;也侵占了我们不少的时间。“手机App防沉迷系统”能够让我们每天合理的规划手机App使用时间&#xff0c;在正确的时间做正确的事。 它的大概原理是这样的&#xff1a; 1、在一天24小时内&#xff0c;可注册每个Ap…

什么洗地机值得推荐?2024入门级智能洗地机

对于当代社畜&#xff0c;每天下班后回家已经疲惫不堪&#xff0c;但家务活仍然等待着处理。虽然外卖可以解决洗碗的问题&#xff0c;但地面的清洁却是无法回避的任务。传统的扫地、拖地流程让人感到腰酸背痛&#xff0c;因此人们纷纷寻找能够快速清洁地面的工具&#xff0c;如…

Shell命令与Linux操作系统:深入理解其原理和功能(2/2)

在当今数字化时代&#xff0c;操作系统的安全性和稳定性对于个人用户和企业都至关重要。Linux&#xff0c;作为一个广泛使用的操作系统&#xff0c;其强大的文件权限系统是保护系统安全的核心机制之一。无论是在服务器管理、软件开发还是日常使用中&#xff0c;有效地管理和理解…

scons_交叉编译arm64_sysroot基于根文件rootfs编译方法

文章目录 1.问题现象2.环境变量3.实例1:交编译arm64 hello.c解决方法1: 指定rootfs下的include头文件解决方法2: 下载开源arm64-linux-gnu-gcc小结 4.交叉编译依赖第3方库1.前言2.小知识: gcc默认搜索与支持的库3.实例: 交叉编译依赖ROS的程序gcc/g 编译流程gcc/g 链接流程 5.遇…

阿里云双11活动:如何通过客户端连接linux服务器?配置入门详解

前言 最近双11活动&#xff0c;发现阿里云有服务器活动&#xff0c;就买了一个&#xff0c;今天主要给大家介绍下&#xff0c;如何通过通过客户端进行连接linux服务器后&#xff0c;进行简单的操作。 配置服务器信息 打开浏览器登录到阿里云服务器页面上&#xff0c;找到个人…

uni-app/vue封装etc车牌照输入,获取键盘按键键值

先看下效果如下&#xff1a; 动态图如下 uniapp的keyup获取不到keyCode和compositionstart&#xff0c;compositionend&#xff0c;所以需要监听input节点的keyup事件&#xff0c; 思路以及代码如下&#xff1a; 1.将每一个字符用文本框输入&#xff0c;代码如下 <view …

ClickHouse基础知识(二):ClickHouse 安装教程

1. 准备工作 1.1 确定防火墙处于关闭状态 1.2 CentOS 取消打开文件数限制 &#xff08;1&#xff09;在 hadoop101 的 /etc/security/limits.conf 文件的末尾加入以下内容 sudo vim /etc/security/limits.conf&#xff08;2&#xff09;在 hadoop101 的/etc/security/limits.…

64.乐理基础-打拍子-前八后十六、前十六后八拍子

前置内容&#xff1a;63.乐理基础-打拍子-四十六-CSDN博客 前八后十六指的是前半拍是一个八分音符&#xff0c;后半怕是两个十六分音符的节奏型&#xff0c;如图1。 前十六后八刚好就与前八后十六反着&#xff0c;如图3。 图1&#xff1a;在以四分音符为一拍的时候这三个音符加…

Android下载gradle失败解决方法

1、在gradle-wrapper.properties文件中查看自己需要下载gradle什么版本的包和zip路径&#xff08;wrapper/dists&#xff09;。 2、在setting中查看Gradle的保存路径&#xff0c;如下图&#xff1a;C:/Users/Administrator/.gradle&#xff0c;加上第一步的zip路径得到下载grad…

chcp 65001

chcp 65001 DOS,BAT,CMD乱码 转UTF-8&#xff0c;就不会汉字乱码了 936 GBK 65001 UTF-8

C语言中关于if else的理解

if else我们可以理解为 if(条件1) //如果条件1成立 语句1&#xff1b; //执行语句1 else //如果条件1不成立 语句2; //执行语句2 这是一个经典的if els…

Vue Echarts 多折线图只有一条X轴(合并X轴数据并去重排序) - 附完整示例

echarts&#xff1a;一个基于 JavaScript 的开源可视化图表库。 目录 效果 一、介绍 1、官方文档&#xff1a;Apache ECharts 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 echarts 2、指定容器并设置容器宽高 3、数据处理&am…