暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

oracle11G ADG搭建详解

IT那活儿 2021-10-25
1343

1. 准备

安装两台单实例11G,主库安装数据库,备库只安装软件。实例名称 orclpri    orclsla

2. 配置hosts文件(主备库都配置)

vi  etc/hosts192.168.100.110 dg_pri192.168.100.111 dg_sla

3. 主库设置为force   logging模式

SQL> alter database force logging;SQL>select force_logging from v$database;

4. 主库修改为归档模式

SQL> shutdown  immediateSQL> startup mount   SQL> alter database archivelog;   //开启归档模式SQL> alter database noarchivelog;    关闭归档模式SQL> alter system set log_archive_dest_1='location=/data/archive' scope=spfile;     修改归档路径SQL> archive log list;

5. 添加主库的standby redo log

主库添加 standby redo log:大小和 online redo 相同,比 online redo group 多一组。

SQL> ALTER  DATABASE  ADD  STANDBY  LOGFILE  GROUP  4  ('/data/oracle/oradata/orclpri/redo04.log')  size  50M; SQL> ALTER  DATABASE  ADD  STANDBY  LOGFILE  GROUP  5  ('/data/oracle/oradata/orclpri/redo05.log')  size  50M; SQL> ALTER  DATABASE  ADD  STANDBY  LOGFILE  GROUP  6  ('/data/oracle/oradata/orclpri/redo06.log')  size  50M; SQL> ALTER  DATABASE  ADD  STANDBY  LOGFILE  GROUP  7  ('/data/oracle/oradata/orclpri/redo07.log')  size  50M;  SQL>select group#,type,member from v$logfile;

6. 创建 Listener 并配置静态注册(主备库都做)

主库:

[oracle@dg_pri dbs]$ cd data/oracle/product/11.2.0/db_1/network/admin/[oracle@dg_pri admin]$ vi listener.ora# listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =      (GLOBAL_DBNAME = orclpri)      (ORACLE_HOME = /data/oracle/product/11.2.0/db_1)      (SID_NAME = orclpri)    )  )LISTENER =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.110)(PORT = 1521))  )ADR_BASE_LISTENER = /data/oracle[oracle@dg_pri admin]$ vi tnsnames.oraORCL_PRI=  (DESCRIPTION=     (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.110)(PORT=1521))     (CONNECT_DATA=        (SERVER=DEDICATED)        (SERVICE_NAME=orclpri)     )  )ORCL_SLA=  (DESCRIPTION=     (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.111)(PORT=1521))     (CONNECT_DATA=        (SERVER=DEDICATED)        (SERVICE_NAME=orclsla)     )  )

备库:

[oracle@dg_sla ~]$ cd /data/oracle/product/11.2.0/db_1/network/admin/[oracle@dg_sla admin]$ vi listener.oraSID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =      (GLOBAL_DBNAME = orclsla)      (ORACLE_HOME = /data/oracle/product/11.2.0/db_1)      (SID_NAME = orclsla)    )  )LISTENER =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.111)(PORT = 1521))  )ADR_BASE_LISTENER = /data/oracle[oracle@dg_sla admin]$ vi tnsnames.oraORCL_PRI=  (DESCRIPTION=     (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.110)(PORT=1521))     (CONNECT_DATA=        (SERVER=DEDICATED)        (SERVICE_NAME=orclpri)     )  )ORCL_SLA=  (DESCRIPTION=     (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.111)(PORT=1521))     (CONNECT_DATA=        (SERVER=DEDICATED)        (SERVICE_NAME=orclsla)     )  )

主备库使用tnsping测试是否相同

[oracle@dg_pri admin]$tnsping ORCL_PRI[oracle@dg_pri admin]$tnsping ORCL_SLA

 重启监听

lsnrctl stop

lsnrctl start

7. 在备库创建相关的目录

oracle用户创建:

mkdir -p /data/archivemkdir -p /data/oracle/adminmkdir -p /data/oracle/oradatamkdir -p /data/oracle/fast_recovery_area/orclslamkdir -p /data/oracle/fast_recovery_area/orclsla/onlinelogmkdir -p /data/oracle/oradata/orclslamkdir -p /data/oracle/admin/orclslamkdir -p /data/oracle/admin/adumpmkdir -p  /data/oracle/admin/orclsla/adump  mkdir -p  /data/oracle/admin/orclsla/dpdump  mkdir -p  /data/oracle/admin/orclsla/pfile  mkdir -p  /data/oracle/admin/orclsla/scriptsmkdir -p  /data/oracle/admin/orclpri/adump

8. 在主库创建 pfile 文件并修改pfile 内容

主库:

SQL> create pfile='/home/oracle/pfile' from spfile;在/home/oracle/pfile新增下内容*.db_unique_name=orclpri*.log_archive_config='dg_config=(orclpri,orclsla)'*.log_archive_dest_1='location=/data/archive  valid_for=(all_logfiles,all_roles) db_unique_name=orclpri'*.log_archive_dest_2='service=orcl_sla valid_for=(online_logfiles,primary_role) db_unique_name=orclsla'*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enableREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVELOG_ARCHIVE_FORMAT=%t_%s_%r.arc*.standby_file_management='auto'*.fal_server='orcl_sla'*.fal_client='orcl_pri'*.log_file_name_convert='/data/oracle/oradata/orclpri','/data/oracle/oradata/orclsla'*.db_file_name_convert= '/data/oracle/oradata/orclpri','/data/oracle/oradata/orclsla'SQL> shutdown immediateSQL>create spfile from pfile='/home/oracle/pfile';SQL>  shutdown abort;SQL> startup

备库:

将主库的参数文件copy到备库到修改

scp /home/oracle/pfile  192.168.100.111:/data/oracle/product/11.2.0/db_1/dbs*.db_unique_name=orclsla*.log_archive_config='dg_config=(orclpri,orclsla)'*.log_archive_dest_1='location=/data/archive  valid_for=(all_logfiles,all_roles) db_unique_name=orclsla'*.log_archive_dest_2='service=orcl_pri valid_for=(online_logfiles,primary_role) db_unique_name=orclpri'*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enableREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVELOG_ARCHIVE_FORMAT=%t_%s_%r.arc*.standby_file_management='MANUAL'*.fal_server='orcl_pri'*.fal_client='orcl_sla'*.log_file_name_convert='/data/oracle/oradata/orclpri','/data/oracle/oradata/orclsla'*.db_file_name_convert= '/data/oracle/oradata/orclpri','/data/oracle/oradata/orclsla'SQL> startup nomount;    //可能会出现LRM-00109,根据提示的文件名修改刚才拷贝的参数文件名字SQL> alter system set log_archive_dest_1 = 'location=/data/archive  valid_for=(all_logfiles,all_roles) db_unique_name=orclsla' scope=spfile;  //nomount启动报ORA-16024错误时用此方法修改,先注释参数文件log_archive_dest_1这一行,然后nomount启动执行此修改命令。nomount正常启动则不需要执行SQL> create spfile from pfile='/data/oracle/product/11.2.0/db_1/dbs/initorclsla.ora';SQL> shutdown abort;SQL> startup nomount;


9. 拷贝密码文件

[root@dg_pri ~]# cd /data/oracle/product/11.2.0/db_1/dbs/[root@dg_pri dbs]#scp orapworclpri 192.168.100.111:/data/oracle/product/11.2.0/db_1/dbs修改密码文件名:mv orapworclpri orapworclsla


10. 使用rman同步数据文件

[oracle@dg_pri dbs]$ rman target sys/123456@orcl_pri auxiliary sys/123456@orcl_sla;RMAN>duplicate target database for standby from active database;


11. 开启备库并验证 数据是否能同步

备库:

SQL> alter database recover managed standby database cancel;  #取消实时同步SQL> shutdown immediateSQL> startup mountSQL> alter database flashback on;  #开始flashback闪回SQL> alter database open read only;   #只读open数据库SQL> alter database recover managed standby database using current logfile disconnect from session; #开始实时同步

主库:

create table test(id int);

备库:

select * from test;--有这边就说明搭建成功

查看主备库状态

SQL>select switchover_status,database_role from v$database;

查看日志

[root@dg_sla ~]# cd /data/oracle/diag/rdbms/orclsla/orclsla/trace[root@dg_sla trace]# cat alert_orclsla.log[root@dg_sla trace]# ls -lrt *arc1*


备库启动步骤:先启备库再启主库

startup nomount;挂载数据库alter database mount standby database;启用应用重做alter database recover managed standby database disconnect from session;取消备库的自动恢复alter database recover managed standby database cancel;启动到只读状态alter database open read only;在“READ ONLY”状态下进一步启动备库的恢复,实时应用主库日志。alter database recover managed standby database using current logfile disconnect;

END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论