Oracle dataguard 容灾技术实战(笔记)

本文详细介绍了如何在Oracle19c环境下搭建单机DG,包括主机准备、操作系统配置、yum源设置、Oracle安装、数据文件管理、监听配置、数据同步以及dataguard状态监控等关键步骤。
摘要由CSDN通过智能技术生成

容灾:

创建一个备份数据库,当正在使用的数据库坏了,使用容灾技术,可以将备份数据库当成主数据库使用,(我当成克隆)

Oracle数据库运行环境准备(单机版dg 搭建)

1.准备2台主机

2.安装2个linux系统  (7.6 x86_64)

3.下载Oracle19c版本

后面还有rac搭建dg  所以空出两个ip  正好不需要更改配置文件的ip

ip主机名主/备
192.168.238.10p19c01

192.168.238.13

p19cdg

 

Oracle19c DG环境准备

配置hosts文件

echo "ip 主机名" >> /etc/host  (节点一)

echo "ip 主机名" >> /etc/host  (节点二)

 关闭防火墙(两节点)

systemctl stop firewalled.service

systemctl disable firewalled.service

配置目录(两节点)

umount  /oracle

mkdir /opt/oracle  (备)

mount /dev/sda1 /opt/oracle

vi /etc/fstab

mount /dev/sda1 /opt/oracle xfs defaults        0 0

配置yum环境

最好网上搜一下yum网络源配置

http://t.csdnimg.cn/0QAbA(链接)

这个视频学的

mkdir /mnt/linux

mount /dev/cdrom /mnt/linux

cd /etc/yum.repos.d

mkdir br

mv *.repo bk/

echo "[EL]" >> /etc/yum.repos.d/itpux.repo

echo "name = Linux 7.x DVD" >> /etc/yum.repos.d/itpux.repo

echo "baseurl=file:///mnt/linux" >> /etc/yum.repos.d/itpux.repo

echo "gpgcheck=0" >> /etc/yum.repos.d/itpux.repo

echo "enabled=1" >> /etc/yum.repos.d/itpux.repo

cat /etc/yum.repos.d/itpux.repo

准备预先安装的包:(备)

rpm -ivh oracle-database-preinstall-19c-1.0-1.e17.x86_64.rpm

Oracle Linux 7 (x86_64) Latest | Oracle, Software. Hardware. Complete.(下载连接)

根据提示安装所需要的包

yum -y install compat-libstdc++-33 ksh libaio-devel

修改密码

passwd Oracle

手工目录授权

chown -R oracle:oinstall /opt/oracle

chmod -R 775 /opt/oracle

安装oracle-database-servrer:

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

检查环境:
 

su - oracle

ps -ef|grep smon

echo $ORACLE_HOME

lsnrctl status

环境变量配置:

su - oralce

echo "export LANG=en_US" >> ~/.bash_prefile

echo "export ORACLE_BASE=/opt/oracle" >> ~/.bash_prefile

echo "export ORACLE_HOEM=$ORACLE_BASE/product/19c/dbhome_1" >> ~/.bash_prefile

echo "export ORACLE_UNQNAME=itpuxdg" >> ~/.bash_prefile

echo "export ORACLE_SID=itpuxdb1" >> ~/.bash_prefile

echo "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG" >> ~/.bash_prefile

echo "exoprt PATH=.:$PATH:$HOME:/bin:$ORACLE_HOME/bin" >> ~/.bash_prefile

source ~/.bash_profile

env |grep ORACLE

准备备库监听配置

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

LISTNER = 

  (DESCRIPTION_LIST =

     (DESCRIPTION =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521)

        (ADDRESS = (PROTOCOL = TCP)(KEY = EXTPROC1521)

      )

SID_LIST_LISTENER=

    (SID_LIST =

                        (SID_DESC =

                (GLOBAL_DBNAME = 数据库名)

                (SID_NAME = 数据库实例名)

                (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)

               )

        )

oracle19c DB创建过程

01.enable force logging

alter database force logging;

  

02.enable archivelog mode

alter system set db_recovery_file_dest_size=10g;

alter system set db_recovery_file_dest='/opt/oracle';

startup mount;

alter database archivelog;

alter database open;

alter system swtch logfile;

03.create standby redolog

alter database add stan logfile group 4 '/opt/oracle/oradata/ITPUXDB/strdo04.log'

size 200m;

 alter database add stan logfile group 5 '/opt/oracle/oradata/ITPUXDB/strdo05.log'

size 200m;

alter database add stan logfile group 6 '/opt/oracle/oradata/ITPUXDB/strdo06.log'

size 200m;

alter database add stan logfile group 7 '/opt/oracle/oradata/ITPUXDB/strdo07.log'

size 200m;

主备库监听tnsnames.ora :

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

itpuxdb = 

  (DESCRIPTION = 

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

        (CONNECT_DATA = 

          (SERVER = DEDICATED)

          (SERVER_NAME = 实例名)

        )

   )

备库

itpuxdb = 

  (DESCRIPTION = 

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

        (CONNECT_DATA = 

          (SERVER = DEDICATED)

          (SERVER_NAME = 实例名)

        )

   )

准备数据库密码文件

主库:

orapwd file=/opt/oracle/product/19c/dbhome_1/dbs/orapwitpuxdb password=ITPUX-123

备库:

cd /opt/oracle/product/19c/dbhome_1/dbs/

scp IP:/opt/oracle/product/19c/dbhome_1/dbs/orapwitpuxdb

mv orapwitpuxdb orapwitpuxdg

登录

sqlplus "sys/ITPUX-123@itpuxdg as sysdba"

主库:

create pflie = '/opt/oracle/pfile.ora' from spfile

主库参数(重启生效)(itpuxdb主库  itpuxdg备库)

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=itpuxdgscope=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;

备库参数:

cd /opt/oracle
vi pfile.ora    

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

oracle19c DG创建过程

创建目录

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;

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

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

检查测试:(主)

检查dataguard状态:

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

启动dataguard数据同步:

sqlplus "/as sysdba"
alter database recover managed standby database disconnect from session; 开启同步

关闭dataguard数据同步:

alter database recover managed standby database cancel;

启动adg模式的备库:

alter dataabse 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;

备库检查:(fgedu66)

select * from fgedu66.itpux01;

检查dataguard状态:

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

检查dataguard日志

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

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值