Oracle19c ADG搭建

发布于:2024-04-02 ⋅ 阅读:(112) ⋅ 点赞:(0)

一、环境配置

1、主机环境

类型 主机名 IP
主库 p19c 192.168.229.150
备库 p19cstd 192.168.229.151

这里选择做两个19c单机环境

tip:数据库服务名与主机名一致

  • 19c的安装可以参考以下教程,教程是以p19c为例,在安装p19cstd时,需要将所有的p19c替换成p19cstd
    Oracle 19c静默安装教程

2、host文件配置

配置hostname:

# 主库
hostnamectl set-hostname p19c
# 备库
hostnamectl set-hostname p19cstd

配置hosts文件:

cat <<EOF>>/etc/hosts
#Public IP
192.168.229.150     p19c
192.168.229.151     p19cstd
EOF

二、主库配置

1、 开启归档

  • 查看oracle归档状态
archive log list

在这里插入图片描述

  • 关闭数据库,并启动到mount状态
shutdown immediate;
startup mount;

在这里插入图片描述

  • 修改归档位置
mkdir -p /u01/app/archive
chown -R oracle:oinstall /u01/app/
# 在sql中执行,修改归档位置
alter system set log_archive_dest_1='location=/u01/app/archive';

在这里插入图片描述
在这里插入图片描述

  • 启用归档模式和强制归档
alter database archivelog;
alter database force logging;
alter database open;

在这里插入图片描述

  • 查看修改后的归档状态
archive log list;

在这里插入图片描述

  • 切换在线日志,验证归档是否正常
alter system switch logfile;
!ls /u01/app/archive

在这里插入图片描述

2、redo日志

  • 查询现有redo日志的数量
select group#,type,member from v$logfile;

在这里插入图片描述

  • 查询现有redo日志的容量
select group#,bytes/1024/1024 as MB,status from v$log;

在这里插入图片描述

  • 创建standby日志组,容量要和redo相同,数量是redo当前数量+1
mkdir -p /u01/app/oradata/P19C
chown -R oracle:oinstall /u01/app/
alter database add standby logfile
  group 6 ('/u01/app/oradata/P19C/standby_redo04.log') size 200m reuse,
  group 7 ('/u01/app/oradata/P19C/standby_redo05.log') size 200m reuse, 
  group 8 ('/u01/app/oradata/P19C/standby_redo06.log') size 200m reuse, 
  group 9 ('/u01/app/oradata/P19C/standby_redo07.log') size 200m reuse;

在这里插入图片描述

  • 确认状态
select group#,status,used from v$standby_log;

在这里插入图片描述

3、修改参数文件

# DG_CONFIG(主库名,备库名)
alter system set log_archive_config='DG_CONFIG=(p19c,p19cstd)';
# LOCATION是主库的归档日志,DB_UNIQUE_NAME是主库名
alter system set log_archive_dest_1='LOCATION=/u01/app/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=p19c';
# SERVICE=备库名,DB_UNIQUE_NAME=备库名
alter system set log_archive_dest_2='SERVICE=p19cstd VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=p19cstd';
alter system set log_archive_dest_state_1='enable';
alter system set log_archive_dest_state_2='enable';
# db_file_name_convert=新建的redo日志位置,主库和备库的,备库后边按照这个创建
alter system set db_file_name_convert='/u01/app/oradata/P19CSTD','/u01/app/oradata/P19C' scope=spfile;
# db_file_name_convert=新建的redo日志位置,主库和备库的,备库后边按照这个创建
alter system set log_file_name_convert='/u01/app/oradata/P19CSTD','/u01/app/oradata/P19C' scope=spfile;
# 备库名
alter system set fal_server='p19cstd';
# 主库名
alter system set fal_client='p19c';
alter system set standby_file_management='AUTO';
# 主库名
alter system set DB_UNIQUE_NAME='p19c' scope=spfile;

在这里插入图片描述
上面修改的参数有的需要重启数据库才能生效

shutdown immediate;
startup;

在这里插入图片描述

4、配置TNS文件

cd $ORACLE_HOME/network/admin/

netmgr,配置tns,监听

vim tnsnames.ora
LISTENER_P19C =
  (ADDRESS = (PROTOCOL = TCP)(HOST = p19c)(PORT = 1521))

P19C =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = p19c)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = p19c)
    )
  )

P19CSTD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = p19cstd)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = p19cstd)
    )
  )

重启监听

lsnrctl stop
lsnrctl start

在这里插入图片描述

  • 测试监听是否配资成功
tnsping p19c
tnsping p19cstd

在这里插入图片描述

5、静态监听

cd $ORACLE_HOME/network/admin
vi listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = p19c)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
     (GLOBAL_DBNAME = p19c)
     (ORACLE_HOME = /u01/app/oracle/product/19.3.0)
     (SID_NAME = p19c)
    )
   )

监听重载

lsnrctl reload

在这里插入图片描述

6、拷贝密码文件

# 如果下列命令找不到位置,就执行 cd $ORACLE_HOME/dbs
cd /u01/app/oracle/product/19.3.0/dbs
# 密码文件名字为orapw+实例名
scp orapwp19c oracle@p19cstd:/u01/app/oracle/product/19.3.0/dbs/

在这里插入图片描述
在这里插入图片描述
备库有两个密码文件,其中一个是主库的密码文件
在这里插入图片描述

三、备库配置

1、开启归档

  • 查看oracle归档状态
archive log list
  • 关闭数据库,并启动到mount状态
shutdown immediate;
startup mount;

在这里插入图片描述

  • 修改归档位置
mkdir -p /u01/app/archive
chown -R oracle:oinstall /u01/app/
# 在sql中执行,修改归档位置
alter system set log_archive_dest_1='location=/u01/app/archive';
  • 启用归档模式和强制归档
alter database archivelog;
alter database force logging;
alter database open;

在这里插入图片描述

  • 查看修改后的归档状态
archive log list;

在这里插入图片描述

  • 切换在线日志,验证归档是否正常
alter system switch logfile;
!ls /u01/app/archive

在这里插入图片描述

2、redo日志

  • 查询现有redo日志的数量
select group#,type,member from v$logfile;

在这里插入图片描述

  • 查询现有redo日志的容量
select group#,bytes/1024/1024 as MB,status from v$log;

在这里插入图片描述

  • 创建standby日志组,容量要和redo相同,数量是redo当前数量+1
mkdir -p /u01/app/oradata/P19CSTD
chown -R oracle:oinstall /u01/app/
alter database add standby logfile
  group 6 ('/u01/app/oradata/P19CSTD/standby_redo04.log') size 200m reuse,
  group 7 ('/u01/app/oradata/P19CSTD/standby_redo05.log') size 200m reuse, 
  group 8 ('/u01/app/oradata/P19CSTD/standby_redo06.log') size 200m reuse, 
  group 9 ('/u01/app/oradata/P19CSTD/standby_redo07.log') size 200m reuse;

在这里插入图片描述

  • 确认状态
select group#,status,used from v$standby_log;

在这里插入图片描述

3、修改参数文件

备库要创建/u01/app/oracle/admin/oraclestd/adump文件,要不然无法启动

mkdir -p /u01/app/oracle/admin/p19cstd/adump
# DG_CONFIG(备库名,主库名)
alter system set log_archive_config='DG_CONFIG=(p19cstd,p19c)';
# LOCATION是备库的归档日志,DB_UNIQUE_NAME是备库名
alter system set log_archive_dest_1='LOCATION=/u01/app/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=p19cstd';
# SERVICE=主库名,DB_UNIQUE_NAME=主库名
alter system set log_archive_dest_2='SERVICE=p19c VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=p19c';
alter system set log_archive_dest_state_1='enable';
alter system set log_archive_dest_state_2='enable';
# db_file_name_convert=新建的redo日志位置,主库和备库的,备库后边按照这个创建
alter system set db_file_name_convert='/u01/app/oradata/P19C','/u01/app/oradata/P19CSTD' scope=spfile;
# db_file_name_convert=新建的redo日志位置,主库和备库的,备库后边按照这个创建
alter system set log_file_name_convert='/u01/app/oradata/P19C','/u01/app/oradata/P19CSTD' scope=spfile;
# 主库名
alter system set fal_server='p19c';
# 备库名
alter system set fal_client='p19cstd';
alter system set standby_file_management='AUTO';
# 备库名
alter system set DB_UNIQUE_NAME='p19cstd' scope=spfile;

在这里插入图片描述
上面修改的参数有的需要重启数据库才能生效

shutdown immediate;
startup;

4、配置TNS文件

cd $ORACLE_HOME/network/admin/

netmgr,配置tns,监听

vim tnsnames.ora
LISTENER_P19CSTD =
  (ADDRESS = (PROTOCOL = TCP)(HOST = p19cstd)(PORT = 1521))

P19CSTD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = p19cstd)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)	
      (SERVICE_NAME = p19cstd)
    )
  )


P19C =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = p19c)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = p19c)
    )
  )

重启监听

lsnrctl stop
lsnrctl start

在这里插入图片描述

  • 测试监听是否配资成功
tnsping p19c
tnsping p19cstd

在这里插入图片描述

5、配置静态监听

cd $ORACLE_HOME/network/admin
vi listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = p19cstd)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
     (GLOBAL_DBNAME = p19cstd)
     (ORACLE_HOME = /u01/app/oracle/product/19.3.0)
     (SID_NAME = p19cstd)
    )
   )

监听重载

lsnrctl reload

在这里插入图片描述
再次测试监听
在这里插入图片描述

在这里插入图片描述

四、构建DG

1、验证监听

主库:

sqlplus sys/123@p19c as sysdba
sqlplus sys/123@p19cstd as sysdba

备库:

sqlplus sys/123@p19c as sysdba
sqlplus sys/123@p19cstd as sysdba

在这里插入图片描述

在这里插入图片描述

2、主库登入rman,复制数据库至备库

  • 先将备库置为nomount状态
sqlplus sys/123@p19cstd as sysdba
shutdown immediate;
startup nomount;
# 修改参数standby_file_management
alter system set standby_file_management=MANUAL;

在这里插入图片描述

rman target sys/123@p19c auxiliary sys/123@p19cstd

构建备库

duplicate target database for standby from active database nofilenamecheck using compressed backupset;

在这里插入图片描述
在这里插入图片描述

3、开启实时同步

  • 备库
# 查询备库状态是否已经mount:
select open_mode from v$database;

在这里插入图片描述

# 打开数据库
alter database open;

alter database recover managed standby database using current logfile disconnect from session;

关闭同步:即停止 mgr 进程(这里不用关闭,了解就行)

alter database recover managed standby database cancel;

查看数据库打开状态:
READ ONLY WITH APPLY代表ADG启动成功

select open_mode from v$database;

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到