oracle11g搭建主从集群

devtools/2025/2/12 7:22:33/

安装oracle11g参考:centos安装oracle11g数据库-CSDN博客

一、主库操作

sqlplus / as sysdba

1、开启归档模式和强制日志模式

shutdown immediate
startup mount
#开启归档模式和强制日志模式
alter database archivelog;
alter database force logging;
#开启补充日志
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
#备库创建redo文件(比主库多一组,所以创建4个)
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo04.log') size 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log') size 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/u01/app/oracle/oradata/orcl/redo06.log') size 50M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/u01/app/oracle/oradata/orcl/redo07.log') size 50M;
#创建pfile文件
create pfile from spfile;
shutdown immediate
exit

2、创建文件夹

mkdir /u01/app/oracle/oradata/orcl/archivelog
mkdir /u01/app/oracle/oradata/orcl/backup

3、配置监听器

vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

增加内容 

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl.com)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl) 
    )
  )
解释:#SID_NAME = orcl 就是在安装oracle软件的配置文件db_install.rsp 和创建数据库的配置文件dbca.rsp 中配置的SID

4、配置tns

vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

增加

ORCL_SLAVE = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.16.4)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME =orcl) 
      (UR=A)
    ) 
  ) 
#该链接配置主库链接,和上面一样的
ORCL_MASTER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.16.13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME =orcl)
      (UR=A)
    )
  )

5、重启监听器并ping测试

lsnrctl stop
lsnrctl start

tnsping测试
tnsping ORCL_MASTER
tnsping ORCL_SLAVE

6、修改pfile配置文件

vim /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora

文件尾添加:

DB_UNIQUE_NAME=orcl_master 
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl_master,orcl_slave)' 
LOG_ARCHIVE_DEST_1= 
 'LOCATION=/u01/app/oracle/oradata/orcl/archivelog
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=orcl_master' 
LOG_ARCHIVE_DEST_2= 
 'SERVICE=orcl_slave ASYNC 
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=orcl_slave' 
LOG_ARCHIVE_DEST_STATE_1=ENABLE 
LOG_ARCHIVE_DEST_STATE_2=ENABLE 
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc 
FAL_SERVER=orcl_slave 
STANDBY_FILE_MANAGEMENT=AUTO

7、创建spfile

sqlplus / as sysdba

startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'
create spfile from pfile;
alter database mount;
alter database open;

8、传输口令验证文件和pfile文件到备库

scp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora oracle@172.21.16.4:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
scp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl oracle@172.21.16.4:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/

 二、备库操作

1、创建目录

mkdir /u01/app/oracle/oradata/orcl/backup

2、修改监听配置和tns配置(同主库)

vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

3、手动注册数据库实例到监听器

sqlplus / as sysdba

alter system register;

4、修改pfile文件

vim /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora 

文件尾修改:

*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
*.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
DB_UNIQUE_NAME=orcl_slave
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl_master,orcl_slave)'
LOG_ARCHIVE_DEST_1= 
 'LOCATION=/u01/app/oracle/oradata/orcl/archivelog
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=orcl_slave' 
LOG_ARCHIVE_DEST_2= 
 'SERVICE=orcl_slave ASYNC 
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=orcl_master' 
LOG_ARCHIVE_DEST_STATE_1=ENABLE 
LOG_ARCHIVE_DEST_STATE_2=ENABLE 
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=orcl_master
STANDBY_FILE_MANAGEMENT=AUTO

5、启动备库到nomount状态

sqlplus / as sysdba

shutdown immediate
startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'
quit

6、rman同步主库数据

rman target sys/123@orcl_master auxiliary sys/123@orcl_slave
开始同步
duplicate target database for standby from active database nofilenamecheck;
exit;

7、备库开启apply service

sqlplus / as sysdba

alter database open;
select open_mode from v$database;
alter database recover managed standby database disconnect from session;

8、修改成最大可用性模式(实时同步)

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orcl_slave ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_slave';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

停止同步

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

恢复同步

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE disconnect from session USING CURRENT LOGFILE;

三、测试


http://www.ppmy.cn/devtools/158143.html

相关文章

VertexList(顶点列表)里的 normal(法线)

含义 在三维空间里,每个顶点的法线是一个单位向量(长度为 1),它垂直于该顶点所在的表面。对于平面来说,平面上所有顶点的法线方向是相同的;而对于曲面,每个顶点的法线方向通常会根据曲面的局部…

代码随想录算法【Day40】

Day40 121. 买卖股票的最佳时机 class Solution { public:int maxProfit(vector<int>& prices) {int len prices.size();if (len 0) return 0;vector<vector<int>> dp(len, vector<int>(2));dp[0][0] - prices[0];dp[0][1] 0;for(int i 1; i…

Vue 3 中的 reactive 和 ref 有什么区别?

在 Vue 3 中,reactive 和 ref 是用于创建响应式状态的两个 API。虽然它们的目标都是使数据响应式,但它们的使用场景和实现方式有所不同。以下是它们之间的主要区别: 目录 何时使用 reactive 和 ref基本用法响应式对象的类型总结何时使用 reactive 和 ref reactive:适用于创…

Django在终端创建项目(pycharm Windows)

1.选择目录 选择或新建一个文件夹&#xff0c;作为项目保存的地方 2.右键在终端打开 3.确定django-admin.exe安装位置 找到自己安装django时&#xff0c;django-admin.exe安装的位置&#xff0c;例如 4.运行命令 使用django-admin.exe的绝对路径&#xff0c;在刚才打开的终端…

香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。

简介&#xff1a; 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas&#xff0c;这是一种简化的视频合成系统&#xff0c;用于电影镜头设计&#xff0c;提供整体运动控制&#xff0c;以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…

Unity使用iTextSharp导出PDF-04图形

坐标系 pdf文档页面的原点&#xff08;0&#xff0c;0&#xff09;在左下角&#xff0c;向上为y,向右为x。 文档的PageSize可获取页面的宽高数值 单位&#xff1a;像素 绘制矢量图形 使用PdfContentByte类进行绘制&#xff0c;注意文档打开后才有此对象的实例。 绘制方法 …

Anything llm Token数理解

Token context window参数解释 1. 定义与范围 Token context window&#xff08;上下文窗口&#xff09;参数同时包含输入和输出的token总数限制&#xff0c;表示模型单次交互中能够处理的最大token容量。例如&#xff1a;- GPT-4&#xff1a;典型窗口为32k tokens&#xff0c;…

使用 C++20 Modules 导入 Boost 模块的方法

使用 C20 Modules 导入 Boost 模块的方法 我的项目案例地址&#xff1a;https://github.com/yudaichen/coroutine_blog 引言 C20 引入的 Modules 特性为 C 开发带来了诸多好处&#xff0c;如加快编译速度、减少头文件重复包含等问题。Boost 作为一个广泛使用的 C 库集合&…