热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS6.5+Oracle11.2.0.4的ADG环境搭建

预先下载1.VMwareworkstation2.CentOS6.53.linuxOracle11.2.0.4链接:https:pan.baidu.coms1

预先下载

1.VMware workstation

2. CentOS 6.5

3. linux Oracle 11.2.0.4

链接:https://pan.baidu.com/s/1_VaYV-uFO06k_49A_U8y9A 提取码:iqax


安装

1.安装CentOS6.5虚拟机,IP 192.168.18.23,作为 primary(主机)

2.安装并配置单实例Oracle 11.2.0.4

3.完成以上两步后,关闭虚拟机,然后克隆新虚拟机,IP 192.168.18.24 作为standby(备机)

 


ADG安装


1. Primary主机配置

开启归档模式

SQL>shutdown immediate;SQL>startup mount;
设置强制日志模式
SQL>alter database force logging;
设置为归档模式
SQL>alter database archivelog;SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/oradata/orcl
Oldest online log sequence 17
Next log sequence to archive 19
Current log sequence 19
SQL>

添加standby redo log

       查看online redo log

select * from v$log;

      添加的standby redo log比online redo log多一组

alter database add standby logfile group 4 ('/opt/oracle/oradata/orcl/standby_log04.log') size 50M;
alter database add standby logfile group 5 ('/opt/oracle/oradata/orcl/standby_log05.log') size 50M;
alter database add standby logfile group 6 ('/opt/oracle/oradata/orcl/standby_log06.log') size 50M;
alter database add standby logfile group 7 ('/opt/oracle/oradata/orcl/standby_log07.log') size 50M;

      查看standby redo log

select * from v$standby_log;

2. TNS通信配置(主备)

主备分别配置listner.ora tnsname.ora

#表示主备机器的实际IP

listner.ora

# listener.ora Network Configuration File: /opt/oracle/product/OraHome/network/admin/listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /opt/oracle/product/OraHome)(SID_NAME = orcl)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.2#)(PORT = 1521))))ADR_BASE_LISTENER = /opt/oracle

tnsname.ora

# tnsnames.ora Network Configuration File: /opt/oracle/product/OraHome/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.LISTENER_ORCL =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.2#)(PORT = 1521))main =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.23)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))back =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.24)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))

重启监听

[oracle@cent6 admin]$ lsnrctl stopLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-NOV-2020 08:31:20Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
[oracle@cent6 admin]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-NOV-2020 08:31:26Copyright (c) 1991, 2013, Oracle. All rights reserved.Starting /opt/oracle/product/OraHome/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /opt/oracle/product/OraHome/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/cent6/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.18.23)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 30-NOV-2020 08:31:26
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/OraHome/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/cent6/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.18.23)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@cent6 admin]$

确认配置正确,相互之间能tnsping通

[oracle@cent6 admin]$ tnsping mainTNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 30-NOV-2020 08:30:17Copyright (c) 1997, 2013, Oracle. All rights reserved.Used parameter files:
/opt/oracle/product/OraHome/network/admin/sqlnet.oraUsed TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.23)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)

[oracle@cent6 admin]$ tnsping backTNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 30-NOV-2020 08:30:22Copyright (c) 1997, 2013, Oracle. All rights reserved.Used parameter files:
/opt/oracle/product/OraHome/network/admin/sqlnet.oraUsed TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.24)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (10 msec)
[oracle@cent6 admin]$

3.ADG配置文件准备(主备)

创建pfile

create pfile = '/opt/oracle/pfile' from spfile;

Primary(主)库修改pfile配置,添加如下部分

*.db_unique_name='main'
这个参数代表唯一名称,设置成刚刚tnsnames配置的别名名称
*.log_archive_config='dg_config=(main,back)'
归档配置,参数里面需要填写两个库的db_unique_name。
*.log_archive_dest_1='location=/opt/oracle/oradata/orcl valid_for=(all_logfiles,all_roles) db_unique_name=main'
这里dest_1 代表主库,localtion 代表主库归档日志存放路径
*.log_archive_dest_2='service=back lgwr async affirm valid_for=(online_logfiles,primary_role) db_unique_name=back'
这里dest_2代表备库,service代表备库的 db_unique_name,设置成刚刚tnsnames配置的别名名称
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_max_processes=4
*.fal_server='back'
*.fal_client='main'
*.db_file_name_convert='/opt/oracle/oradata/orcl','/opt/oracle/oradata/orcl'
*.log_file_name_convert='/opt/oracle/oradata/orcl','/opt/oracle/oradata/orcl'
*.standby_file_management='auto'

standby(备)库修改pfile配置,添加如下部分

*.db_unique_name='back'
*.log_archive_config='dg_config=(main,back)'
*.log_archive_dest_1='location=/opt/oracle/oradata/orcl valid_for=(all_logfiles,all_roles) db_unique_name=main'
*.log_archive_dest_2='service=main lgwr async affirm valid_for=(online_logfiles,primary_role) db_unique_name=main'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_max_processes=4
*.fal_server='main'
*.fal_client='back'
*.db_file_name_convert='/opt/oracle/oradata/orcl','/opt/oracle/oradata/orcl'
*.log_file_name_convert='/opt/oracle/oradata/orcl','/opt/oracle/oradata/orcl'
*.standby_file_management='auto'

Primary(主)库使用pfile重启

SQL>shutdown immediate;
SQL>startup pfile='/opt/oracle/pfile';

Standby(备)库使用pfile重启至nomount状态

SQL>shutdown immediate;
SQL>startup nomount pfile='/opt/oracle/pfile';

4.RMAN复制(仅Standby(备)库)

RMAN连接主备库

[oracle@cent6 admin]$ rman target sys/schina@main auxiliary sys/schina@backRecovery Manager: Release 11.2.0.4.0 - Production on Mon Nov 30 05:29:28 2020Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (DBID=1585353176)
connected to auxiliary database: ORCL (not mounted)

使用RMAN开始复制

RMAN> duplicate target database for standby from active database nofilenamecheck;Starting Duplicate Db at 30-NOV-20
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=129 device type=DISKcontents of Memory Script:
{backup as copy reusetargetfile '/opt/oracle/product/OraHome/dbs/orapworcl' auxiliary format '/opt/oracle/product/OraHome/dbs/orapworcl' ;
}
executing Memory ScriptStarting backup at 30-NOV-20
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=201 device type=DISK
Finished backup at 30-NOV-20
省略部分。。。。

复制完成后,Standby默认处于mount状态,需要手动打开

SQL>alter database open;
数据库已更改。启用备库日志文件
SQL>alter database recover managed standby database using current logfile disconnect from session;
关闭备库日志文件
SQL>alter database recover managed standby database cancel;

5.确认日志序号(主备)

分别在主备执行archive log list,确保主备的Current log sequence(当前日志序列)一致

SQL>archive log list

6.数据同步

在主库创建表T并插入数据,然后在备库查看,确认是否已同步

CREATE TABLE t(cno INT PRIMARY KEY,NAME VARCHAR2(20),sex CHAR(5),birthday DATE);
INSERT INTO t VALUES(1,'宋爱梅','女',SYSDATE-1000);
INSERT INTO t VALUES(2,'王志芳','女',SYSDATE-1234);
INSERT INTO t VALUES(3,'贾隽仙','女',SYSDATE-1034);
INSERT INTO t VALUES(4,'刘振杰','男',SYSDATE-1340);
INSERT INTO t VALUES(5,'郭卫东','男',SYSDATE-1312);
INSERT INTO t VALUES(6,'崔红宇','男',SYSDATE-1888);
INSERT INTO t VALUES(7,'马福平','男',SYSDATE-1777);
INSERT INTO t VALUES(8,'冯红','女',SYSDATE-1666);
INSERT INTO t VALUES(9,'穆增志','男',SYSDATE-1555);
INSERT INTO t VALUES(10,'付金旺','男',SYSDATE-1444);
COMMIT;

登录Standby(备)库,查询T表


7.修改数据库启动为spfile

将pfile转换为spfile

SQL>create spfile from pfile='/opt/oracle/pfile'

重启数据库

SQL>shutdown immediate;SQL>startup;

8.备份虚拟机

将主备虚拟机关机,然后创建快照

 

问题排查

1.ORA-01153: an incompatible media recovery is active

2.ORA-16014: not archived, no available destinations

 


推荐阅读
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
author-avatar
HANK_LIU刘浩象_862
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有