Oracle 19c单实例的DataGuard的搭建

Oracle 19c单实例的DataGuard的搭建

一、环境的搭建

环境的基本信息:

类型IP主机名ORACLE_HOMEORACLE_SIDORACLE_UNQNAME
主库192.168.199.51xgedu51/opt/oracle/product/19c/dbhome_1itpuxdbitpuxdb
备库192.168.199.52xgedu52/opt/oracle/product/19c/dbhome_1itpuxdbitpuxdg

1.配置静态ip和配置yum源

配置静态ip

https://blog.csdn.net/qq_61173488/article/details/134317433

配置yum源:(配置网络源和本地源都可以)

https://blog.csdn.net/weixin_63131036/article/details/133914372(本地yum)

2.下载静默的包:

image-20240312204554565

Database Software Downloads | Oracle 中国

RedHat 7.9,下载链接地址:

https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html

二、主库和备库的搭建

1.主库的搭建

配置hosts

echo "192.168.199.51 xgedu51" >> /etc/hosts
echo "192.168.199.52 xgedu52" >> /etc/hosts

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

配置目录

mkdir /opt/oracle

这个是配置目录,如果有的话就不用创建啦

准备预先安装的包

先把下载的包传到soft目录下
mkdir /soft
cd /soft
rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

注意:(这里会出现问题)
根据提示安装所需要的包:()

yum -y install compat-libcap1 ksh

修改密码:

passwd oracle

手工目录的授权

chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle

安装oracle-database-ee:

rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm

准备配置文件:

cd /etc/sysconfig/
cp oracledb_0RCLCDB-19c.conf oracledb_itpuxdb-19c.conf
cat /etc/sysconfig/oracledb_itpuxdb-19c.conf


cd /etc/init.d/
cp oracledb_ORCLCDB-19c oracledb_itpuxdb-19c
vi /etc/init.d/oracledb_itpuxdb-19c
下面是在vi里面执行
:%s/ORCLCDB/itpuxdb/g	
:%s/ORCLPDB1/itpuxpdb/g
(为了全局替换)
然后在修改下面的内容:

image-20240312210613015

创建数据库:

/etc/init.d/oracledb_itpuxdb-19c configure

检查环境:

su - oracle
ps -ef|grep smon
echo $ORACLE_HOME
lsnrctl status

测试停止、启动
/etc/init.d/oracledb itpuxdb-19c

Usage: /etc/init.d/oracledb_itpuxdb-19c {start|stoprestart|configure)

#/etc/init.d/oracledb_itpuxdb-19c stop

#/etc/init.d/oracledb_itpuxdb-19c start

环境变量配置

su - oracle
echo "export LANG=en_US" >>~/.bash_profile
echo "export ORACLE_BASE=/opt/oracle">>~/.bash_profile
echo "export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1">> ~/.bash_profile
echo "export ORACLE_UNQNAME=itpuxdb">> ~/.bash_profile
echo "export ORACLE_SID=itpuxdb">>~/.bash_profile
echo "NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG">>~/.bash_profile
echo "export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin">> ~/.bash_profile

source ~/.bash_profile
env |grep ORACLE

image-20240312211041640

image-20240312211113072

这样主库就搭建成功了。

2.备库的搭建

(前面一点都差不多,但是没有了**准备配置文件:创建数据库)

配置hosts

echo "192.168.199.51 xgedu51" >> /etc/hosts
echo "192.168.199.52 xgedu52" >> /etc/hosts
cat /etc/hosts

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

配置目录

mkdir /opt/oracle

这个是配置目录,如果有的话就不用创建啦

准备预先安装的包

先把下载的包传到soft目录下
mkdir /soft
rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86 64.rpm

注意:(这里会出现问题)
根据提示安装所需要的包:()

yum -y install compat-libcap1 ksh

修改密码:

passwd oracle

手工目录的授权

chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle

安装oracle-database-ee:

rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm

检查环境:

su - oracle
ps -ef|grep smon
echo $ORACLE HOME
lsnrctl status(这个会出错误没关系,下面会配好)

环境变量配置

su - oracle
echo "export LANG=en_US" >>~/.bash_profile
echo "export ORACLE_BASE=/opt/oracle">>~/.bash_profile
echo "export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1">> ~/.bash_profile
echo "export ORACLE_UNQNAME=itpuxdg">> ~/.bash_profile
echo "export ORACLE_SID=itpuxdg">>~/.bash_profile
echo "NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG" >>~/.bash_profile
echo "export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin" >> ~/.bash_profile

source ~/.bash_profile
env |grep ORACLE

备库的数据库环境装好了。

三、主备库的实施配置

准备备库监听配置
主库也要加SID_LIST_LISTENER

vi /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora

LISTENER =
(DESCRIPTION_LIST =
	(DESCRIPTION =
		(ADDRESS =(PROTOCOL =TCP)(HOST =fgedu52)(PORT = 1521))
		(ADDRESS =(PROTOCOL=IPC)(KEY=EXTPROC1521))
	)
)

SID_LIST_LISTENER=
(SID_LIST=
	(SID_DESC=
		(GLOBAL_DBNAME=itpuxdg)
		(SID_NAME=itpuxdg)
		(ORACLE_HOME=/opt/oracle/product/19c/dbhome_1)
 )
)
:wq

然后检查监听是否配置成功
lsnrctl start
lsnrctl status

主库配置

1.打开强制日志

su - oracle 
sqlplus "/as sysdba"
alter database force logging;

2.设置为归档模式

alter system set db_recovery_file_dest_size=2g;
alter system set db_recovery_file_dest='/opt/oracle';
startup mount;
alter database archivelog;
alter database open;
alter system switch logfile;

可以出去查看一下是否有归档文件
cd /opt/oracle/ITPUXDB/archivelog/

3.创建日志文件 如果主库有三个了(那就要创建四个)

select * from v$log;
select * from v$logfile;

alter database add standby logfile group 4 '/opt/oracle/oradata/ITPUXDB/stredo04.10g' size 200m;
alter database add standby logfile group 5 '/opt/oracle/oradata/ITPUXDB/stredo05.log' size 200m;
alter database add standby logfile group 6 '/opt/oracle/oradata/ITPUXDB/stredo06.log' size 200m;
alter database add standby logfile group 7 '/opt/oracle/oradata/ITPUXDB/stredo07.log' size 200m;

主备库监听tnsnames.ora:

vi /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora


ITPUXDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xgedu51)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = itpuxdb)
    )
  )

ITPUXDG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xgedu52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = itpuxdg)
    )
  )

(主库只要加ITPUXDG,备库全加上)

测试
tnsping itpuxdb
tnsping itpuxdg

准备数据库密码文件

主库:

cd $ORACLE_HOME/dbs
rm -rf orapwitpuxdb
orapwd file='orapwitpuxdb' password=ITPUX-123

备库:

cd /opt/oracle/product/19c/dbhome_1/dbs
scp 192.168.199.51:/opt/oracle/product/19c/dbhome_1/dbs/orapwitpuxdb
mv orapwitpuxdb orapwitpuxdg

登录

主库:
sqlplus "sys/ITPUX-123@itpuxdg as sysdba"

准备参数文件了。

主库:

create pfile='/opt/oracle/pfile.ora' from spfile;
(等会有改参数,这个是备份一份,然后传到备库里面在改参数)
然后在把pfile传给备库
scp /opt/oracle/pfile.ora 192.168.199.52:/opt/oracle/

主库参数(重启生效):

alter system set db_unique_name='itpuxdb' scope=spfile;
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(itpuxdb,itpuxdg)' scope=both;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=itpuxdb' scope=both; 
alter system set LOG_ARCHIVE_DEST_2='SERVICE=itpuxdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=itpuxdg' scope=both;
alter system set fal_client='itpuxdb' scope=both;
alter system set FAL_SERVER='itpuxdg' scope=both;
alter system set DB_FILE_NAME_CONVERT='ITPUXDG','ITPUXDB'  scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='ITPUXDG','ITPUXDB' scope=spfile;
alter system set standby_file_management=AUTO scope=both;

#重启生效:
shutdown immediate
startup

备库参数:

cd /opt/oracle
vi pfile.ora    
#先把"*."前面的都删了,把itpuxdb改成itpuxdg,在添加下面的。
db_unique_name='itpuxdg'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(itpuxdg,itpuxdb)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=itpuxdg'
LOG_ARCHIVE_DEST_2='SERVICE=itpuxdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=itpuxdb' fal_client='itpuxdg'
FAL_SERVER='itpuxdb'
DB_FILE_NAME_CONVERT='ITPUXDB','ITPUXDG'
LOG_FILE_NAME_CONVERT='ITPUXDB','ITPUXDG'
standby_file_management=AUTO



备库创建需要的目录:

mkdir -p /opt/oracle/admin/itpuxdg/adump
mkdir -p /opt/oracle/oradata/ITPUXDG

启动到nomunt(备库);

sqlplus "sys/ITPUX-123@itpuxdg as sysdba"
startup pfile='/opt/oracle/pfile.ora' nomount;
create spfile from pfile='/opt/oracle/pfile.ora';
shutdown immediate;
startup nomount;

打开时出现了

ORA-00845: MEMORY_TARGET not supported on this system

那就是 memory_target大于了/dev/shm,重新调整数据库参数MEMORY_TARGET的大小,要下于/dev/shm的大小
查看/dev/shm的大小
df -h | grep shm

创建dataguard数据库(主库备库都可以)

rman target sys/ITPUX-123@itpuxdb auxiliary sys/ITPUX-123@itpuxdg
duplicate target database for standby from active database;

四、检查测试:

启动adg模式的备库:

上述备库的数据库是nomount状态,再执行完rman后
alter database open;
alter database recover managed standby database disconnect from session; 

主库测试:

alter system switch logfile;

主备库检查dataguard状态:

select NAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS from v$database;

dataguard数据同步测试

主库:

create tablespace xgedu66 datafile '/opt/oracle/oradata/ITPUXDB/xgedu66.dbf' size 10m autoextend off;
create user xgedu66 identified by xgedu66 default tablespace xgedu66;
grant dba to xgedu66;

conn xgedu66/xgedu66;
create table xgedu66.itpux01(c1 varchar2(10),c2 number);
insert into itpux01 values('itpux01','1');
insert into itpux01 values('itpux02','2');
commit;
select * from xgedu66.itpux01;
alter system switch logfile;

备库检查:

select * from xgedu66.itpux01;

查看dataguard状态:

select NAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS from v$database;

检查dataguard日志

tail -100f /opt/oracle/diag/rdbms/itpuxdb/itpuxdb/trace/alert_itpuxdg.log
tail -100f /opt/oracle/diag/rdbms/itpuxdg/itpuxdg/trace/alert_itpuxdg.log

本文章仅供参考,可能文章有点小问题,但是思路是可以的,如果给你带来不便,十分抱歉。

  • 49
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle 19c RAC DataGuard搭建是一种高可用性和容灾解决方案。RAC集群可以提供跨数据中心的集群解决方案。DataGuard技术可以帮助数据库管理员在灾难发生时迅速切换到备份数据库Oracle 19c RAC DataGuard搭建可以分为以下步骤: 1. 安装Oracle Grid Infrastructure和RAC数据库实例。 2. 配置RAC集群。这包括网络设置、存储设置和群集设置。确保所有节点能够相互通信,并且使用共享存储。 3. 创建主数据库和备份数据库。主备同步,备份数据库和主数据库位于不同的数据中心。 4. 配置DataGuard物理备份和逻辑备份。 5. 在主数据库和备份数据库之间配置DataGuard次级应用程序。 6. 测试DataGuard配置是否正常工作。测试主数据库的故障转移,确保在主数据库发生故障时可以切换到备份数据库Oracle 19c RAC DataGuard搭建需要谨慎计划和操作。在搭建过程中需要确保数据的一致性,并且需要考虑容灾策略,如灾难恢复和演练。只有通过正确的设置和测试,才能确保Oracle 19c RAC DataGuard搭建提供高可用性和容灾保护解决方案。 ### 回答2: Oracle 19c是一种强大的数据库管理系统,可用于构建高可用性环境。对于那些需要可靠数据保护和复制的企业来说,Oracle RAC和DataGuard功能是非常重要的。 首先,要构建Oracle 19c RAC集群,需要至少两台服务器。可以使用Oracle Grid Infrastructure安装程序轻松地将这些服务器组成集群。RAC集群是可以在多个服务器上运行的数据库实例,它们能够协同工作,处理更多的请求并提供更快的性能。安装后,可以将应用程序连接到集群,并使用透明应用程序故障转移(TAF)来实现应用程序的优化和可用性。 接下来就是使用DataGuard来进行数据保护。DataGuardOracle自带的一个功能,它可以实现数据镜像、备份和恢复。它需要在主数据库和备用数据库之间创建物理链接和转发。主数据库通过将其变更记录发送到备用数据库来保持它们同步。如果主库崩溃,则可以立即启动备用数据库来维护业务连续性。 通过上述的步骤,可以构建一个高可用、高性能、高可靠、高安全的Oracle 19c RAC集群和DataGuard数据保护系统。每一个组件的优点都可以为企业提供无可比拟的价值,并将使整个环境更加健壮和不易受到数据故障的影响。 ### 回答3: Oracle 19c RAC DataGuard搭建是一种高可用性和灾备性解决方案,它可以确保企业系统和数据在本地或异地灾害发生时仍能保持可用。 首先,需要建立两个物理服务器,安装Oracle 19c RAC数据库软件并创建RAC实例。然后,需要创建两个DataGuard实例并配置它们之间的数据传输。 在RAC集群环境下,每个节点上都需要安装Oracle软件,并使用Oracle ASM进行存储管理。用户需要创建一个ASM磁盘组来存储Oracle数据库,并为每个节点划分适当的ASM磁盘组。 接下来,建立数据保护服务器,并安装Oracle 19c DataGuard数据库软件。在数据保护服务器上创建一个新的实例,并配置DataGuard属性。 然后,开始配置主数据库和备份数据库DataGuard。将主数据库设为“主”模式,备份数据库设置为“备份”模式。配置主数据库的重做日志和备份数据库的重做日志的传输顺序,并指定主数据库的网络地址和备份数据库的网络地址及端口号。 最后,在主数据库上设置联机重做日志、数据文件和控制文件自动备份;并在备份数据库上设置数据文件和控制文件自动备份。测试系统中的故障转移、自动重试和网络连接性问题,以确保系统在灾难发生后可以无缝地进行切换和恢复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值