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

ORACLE 11G 搭建DATAGUARD步骤

原创 Joy 2023-02-10
826

 

1         安装环境

在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例。

 

主机1

主机2

操作系统

redhat6.1 64位

redhat6.1 64位

主机名

dg1

db2

IP

192.168.132.3

192.168.132.4

数据库软件版本

oracle 11.2.0.1.0

oracle 11.2.0.1.0

ORACLE_BASE

/oracle/app/oracle/

/oracle/app/oracle/

ORACLE_HOME

$ORACLE_BASE/product/11.2.0/db_1

$ORACLE_BASE/product/11.2.0/db_1

ORACLE_SID

dbtest

 

闪回区

4G

 

归档

开启

 

 

2         主数据库配置

2.1              设置数据库强制归档

sqlplus / as sysdba

SQL> ALTER DATABASE FORCE LOGGING;

SQL> select force_logging from v$database;

FOR

---

YES

2.2              添加STANDBY日志文件

SQL>alter database add standby logfile group 4 ('/oradata/dbtest/redo04.log') size 50m;

SQL>alter database add standby logfile group 5 ('/oradata/dbtest/redo05.log') size 50m;

SQL>alter database add standby logfile group 6 ('/oradata/dbtest/redo06.log') size 50m;

SQL>alter database add standby logfile group 7 ('/oradata/dbtest/redo07.log') size 50m;

SQL> select * from v$logfile order by 1; 

2.3              修改参数文件

2.3.1        生成pfile

SQL>create pfile from spfile;

SQL>shutdown immediate;

2.3.2        修改pfile

vi $ORACLE_HOME/dbs/initdbtest.ora

在最后添加如下内容:

*.db_unique_name=dbtest1

*.fal_server='dbtest1'

*.fal_client='dbtest2'

*.standby_file_management=auto

*.db_file_name_convert='/oradata/dbtest/','/oradata/dbtest/'

*.log_file_name_convert='/oradata/dbtest/','/oradata/dbtest/'

*.log_archive_config='dg_config=(dbtest1,dbtest2)'

*.log_archive_dest_2='service=dbtest2 LGWR SYNC AFFIRM valid_for=(online_logfiles,primary_role) db_unique_name=dbtest2'

*.log_archive_dest_state_2='ENABLE'

2.3.3        生成spfile

SQL> create spfile from pfile;

File created.

2.4              修改监听配置文件

2.5              修改TNS配置文件

[oracle@dg1 admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

 

DBTEST =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbtest1)

    )

  )

DBTEST1 =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbtest1)

    )

  )

DBTEST2 =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbtest2)

    )

  )

EXTPROC_CONNECTION_DATA =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))

    )

    (CONNECT_DATA =

      (SID = PLSExtProc)

      (PRESENTATION = RO)

    )

  )

2.6              重启监听服务

lsnrctl stop

lsnrctl start

2.7              配置最大可用模式

SQL> startup

ORACLE instance started

SQL> alter database set standby database to maximize availability;

Database altered.

SQL> exit

2.8              备份数据库

[oracle@dg1 admin]$ rman target /

RMAN> backup database plus archivelog;

RMAN> backup current controlfile for standby;

RMAN> exit

备份完成后会在闪回区生产备份文件

 

3         备数据库配置

3.1              建立相应的文件目录

包括dump文件目录,闪回区,数据文件目录,可以通过 show parameter dest命令查看

mkdir -p /oracle/app/oracle/admin/dbtest/adump

mkdir -p /oracle/app/oracle/admin/dbtest/dpdump

mkdir -p /oracle/app/oracle/diag/rdbms/dbtest1/dbtest/trace

mkdir -p /oracle/app/oracle/diag/rdbms/dbtest1/dbtest/cdump

mkdir -p /oracle/app/oracle/flash_recovery_area

mkdir -p /oradata/dbtest

3.2              从主数据库服务器上拷贝文件

注意:下面命令在主数据库上执行

3.2.1        拷贝闪回区内容

[oracle@dg1 admin]$ cd /oracle/app/oracle/flash_recovery_area

scp -r ./* 192.168.132.4:/oracle/app/oracle/flash_recovery_area/

3.2.2        拷贝参数文件

[oracle@dg1 flash_recovery_area]$ cd $ORACLE_HOME/dbs

scp ./* 192.168.132.4:/oracle/app/oracle/product/11.2.0/db_1/dbs/

3.2.3        拷贝监听文件

[oracle@dg1 dbs]$ cd ../network/admin/

scp *.ora 192.168.132.4:/oracle/app/oracle/product/11.2.0/db_1/network/admin/

3.3              修改监听配置文件

修改ip地址

3.4              修改TNS配置文件

修改ip地址

3.5              重启监听服务

lsnrctl stop

lsnrctl start

3.6              恢复数据库

[oracle@dg2 admin]$ rman target sys/funo1234@dbtest1 auxiliary /

RMAN> duplicate target database for standby nofilenamecheck;

RMAN> exit

3.7              修改参数文件

[oracle@dg2 admin]$ sqlplus / as sysdba

SQL> shutdown immediate;

vi $ORACLE_HOME/dbs/initdbtest.ora

修改如下内容

*.db_unique_name=dbtest2

SQL> create spfile from pfile;

3.8              启动数据库

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> alter database add standby logfile;

SQL> alter database add standby logfile;

SQL> alter database add standby logfile;

SQL> alter database add standby logfile;

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

3.9              验证

主库备库均执行如下命令:

SQL> archive log list;

主库

备库

如果最后一行数字相同,说明配置成功

3.10        切换到只读模式

SQL> alter database recover managed standby database cancel;

SQL> alter database open read only;

3.11        切换到同步模式

SQL> shutdown immediate;

SQL> startup nomount;

SQL> alter database mount standby database;

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

 

 

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论