欢迎光临
我们一直在努力

Data Guard实验-Physical Standby Database

一、基本环境配置

1.1 环境变量设置(由于主备库目录结构一致,SID要求相同,所以主备库的env一致)


1.2 实验环境没有DNS,需要添加host记录(主备库一致)


二、网络配置

2.1 listener.ora配置


Listener.ora的作用:启动lsnrctl后,监听1521端口是否有tns等客户端接入。

主备配置的差别只有host 信息不一样。

2.2 tnsnames 配置

Dataguard 通过ssl或者password file 验证后通过tnsname方式互相通讯,传送logfile等信息。

所以需互相配置对于得tnsname信息,主备的tns信息相同。

实验过程中发现service_name需要加上domain信息


2.3 验证net配置

2.3.1 [oracle@oraclelab2 admin]$ sqlplus /nolog

2.3.2 备库只安装了软件,没有instance,所以只能在备库上验证主库的tns配置


三、主库相关参数配置

3.1 enable forced loggin

使用physical standby database为保证所有事务都产生日志信息传递到备库,需要将主库数据库设置为force logging模式,将所有的操作传递到备库。

(由于需要等待unlogged direct write I/O 完成,该命令需要一些时间完成)


3.2 决策redo transport authentication

如果不满足以下三个条件,自动识别使用passwordfile模式

(passwordfile模式需要拷贝密码文件至备库,并且如果sysdba 或 sysoper权限用户修改了密码需要重新生成拷贝密码文件)

使用SSL的三个前提条件:

  • The databases are members of the same Oracle Internet Directory (OID) enterprise domain and it allows the use of current user database links

  

  • The LOG_ARCHIVE_DEST_n, and FAL_SERVER database initialization parameters that correspond to the databases use Oracle Net connect descriptors configured for SSL

  

  • Each database has an Oracle wallet or supported hardware security module that contains a user certificate with a distinguished name (DN) that matches the DN in the OID entry for the database

3.3 primary database initialization parameters

Parameter

主库

primary

备库

standby

  

Db_name

Orcl


 

  

Db_unique

_name

Orcl

orcl2

即使角色转换DB_UNIQUE_NAME不变,与TNS信息对应

Log_archive

_config

LOG_ARCHIVE_CONFIG=

‘DG_CONFIG=(orcl,orcl2)’


 

DG_CONFIG 两个属性分别为

Db_unique_name的两个值

Control_files

*.control_files=

‘/u01/app/oracle/

oradata/orcl/control01.ctl’

,’/u01/app/fast_

recovery_area/

orcl/control02.ctl’

目录结构相同

此项可根据spfile到pfile自动填写,备库与主库目录不一样则需要修改相关路径

Log_archive

_dest_n

LOG_ARCHIVE_DEST_1= ‘location=/u01/app/

oracle/oradata/arch

VALID_FOR=

(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl’

LOG_ARCHIVE_DEST_2=

‘SERVICE=orcl2 ASYNC

VALID_FOR=

(ONLINE_LOGFILES,

PRIMARY_ROLE) DB_UNIQUE_NAME=orcl2′

LOG_ARCHIVE_DEST_1= ‘location=/u01/app/

oracle/oradata/arch

VALID_FOR=

(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl2′

LOG_ARCHIVE_DEST_2=

‘SERVICE=orcl2

ASYNC VALID_FOR=

(ONLINE_LOGFILES,

PRIMARY_ROLE) DB_UNIQUE_NAME=orcl’

Location/service

Valid_for

Db_unique_name

async

Log_archive

_dest_state_n

LOG_ARCHIVE_

DEST_STATE_1=ENABLE

LOG_ARCHIVE_

DEST_STATE_2=ENABLE


 

  

Remote_login

_passwordfile

*.remote_login_

passwordfile=’EXCLUSIVE’


 

  

Log_archive

_format

*.log_archive_format=

‘arc_%t_%s_%r.arc’



 

  

Log_archive

_max_

processes

*.log_archive_

max_processes=30


 

  

Fal_server

FAL_SERVER=orcl

  

Db_file_

name_convert

  

DB_FILE_NAME

_CONVERT=‘orcl’,’orcl2′

  

Log_file_

name_convert

  

LOG_FILE_NAME_CONVERT=
/arch1/orcl/‘,’/arch1/orcl2/,

‘/arch2/orcl/’,’/arch2/orcl2/’

  

Standby_file

_management

STANDBY_FILE_

MANAGEMENT=AUTO


 

  

3.4 enable archiving


验证:

SQL> select log_mode from v$database;

LOG_MODE

————

ARCHIVELOG

 
 

四、文件创建和复制

4.1 datafiles

确认datafile的位置,以下结果


orcl下包含以下日志文件、控制文件、以及datafile文件,所以该目录需要全备份到备库,另外可能存在datafile没有保存到实例目录下,需要特别注意对应备份。


复制拷贝(注意test001*的拷贝)


4.2 controlfiles

4.2.1确认控制文件位置(建议备库的参数文件关于controlfile保持一致)


4.2.2 create control file

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘/tmp/standby.ctl’;
SQL> ALTER DATABASE OPEN;

4.2.3 拷贝scp创建的ctl文件到备库对应的目录下,并修改成与主库对应的文件名(如果上一步骤已经拷贝了旧控制文件先删除)

 
 

4.3 parameter file

4.3.1在主库上创建pfile文件

SQL> CREATE PFILE=’/tmp/initorcl.ora’ FROM SPFILE;

4.3.2 scp pfile到备库的dbs目录

修改pfile内容(具体参数参考3.3)

4.3.3 备库创建spfile(也可指定pfile启动后创建)

SQL> CREATE SPFILE FROM PFILE=’initorcl.ora’;

4.4 password file

在主库上创建密码文件

[oracle@oraclelab dbs]$ orapwd file=orapworcl password=oracle entries=5

拷贝密码文件到备库的dbs目录下

4.5 相关文件目录总结

项目

位置

Datafile

$ORACLE_BASE/oradata/ORACLE_SID(可能还有其他自定义路径)

Control file

v$controlfile 确认

Parameter file

$ORACLE_HOME/dbs

Password file

$ORACLE_HOME/dbs

Net

$ORACLE_HOME/network/admin (listener.ora,tnsnames.ora)

Admin 目录

$ORACLE_BASE/admin/ (整个目录需要拷贝,里面包含了日志等相关信息)

五、备库启动

5.1备库启动listeners服务

[oracle@oraclelab2 ~]$ lsnrctl start

5.2 启动物理备库

[oracle@oraclelab2 ~]$ sqlplus / as sysdba

SQL> STARTUP MOUNT;

5.3 create online redo log

5.3.1在主库上确认日志数量和大小


5.3.2 备库创建online redo log

SQL> ALTER DATABASE ADD STANDBY LOGFILE group 4(‘$oracle_base/oradata/slog1.rdo) SIZE 50M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE group 5 (‘$oracle_base/oradata/slog2.rdo) SIZE 50M;

SQL>ALTER DATABASE ADD STANDBY LOGFILE group 6 (‘$oracle_base/oradata/slog3.rdo) SIZE 50M;

5.3.3 start redo apply

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

六、测试验证

6.1在备库上查询归档日志传递


6.2 在主库上强制切换日志,触发日志传输,并在备库上验证日志是否传送





6.3 在主库上创建表格并在备库上查看redo是否应用以及语句是否 有效


SQL> create table datatest ( id varchar2(12),name varchar2(12));

Table created.

SQL> insert into datatest values(1,’tangkai’);

1 row created.

SQL> insert into datatest values(2,’pallas’);

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> /



七、相关概念

相关服务

Redo transport services

Apply services

Redo apply

Sql apply

Role management service

Switchover

failover

模式

物理备库

逻辑备库

 
 

未经允许不得转载:SRE空间 » Data Guard实验-Physical Standby Database

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

oracle