1. 程式人生 > >Oracle data guard 10g 搭建

Oracle data guard 10g 搭建

ora-01078 esc product dom rail des force swa 應用

Oracle data guard 10g 搭建

1系統常規參數檢查

硬盤

[root@localhost ~]# df -h

內核

[root@localhost ~]# uname -a

[root@localhost grs]# uname -a

版本

[root@localhost ~]# cat /etc/redhat-release

物理內存

[root@localhost ~]# grep MemTotal /proc/meminfo

虛擬內存

[root@localhost ~]# grep SwapTotal /proc/meminfo

主機名

[root@localhost ~]# hostname

ip地址

[root@localhost ~]# ifconfig

2.關閉防火墻服務iptables&SELinux安全策略&郵件服務 sendmail&時間同步服務 NTP

關閉防火墻服務

[root@localhost ~]# service iptables status

防火墻服務2345級別開機都啟動

[root@localhost ~]# chkconfig --list iptables

iptables 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉

chkconfig iptables off 關閉防火墻服務

關閉 SELinux安全策略

[root@localhost ~]# getenforce

a 永久關閉方法 – 需要重啟服務器

修改/etc/selinux/config文件中設置 SELINUX=disabled ,然後重啟服務器

[root@localhost ~]# vi /etc/selinux/config

6 SELINUX=disabled

b 臨時關閉方法 – 設置系統參數

使用命令 setenforce 0

setenforce 1 設置 SELinux 成為enforcing模式

setenforce 0 設置 SELinux 成為 permissive模式

[root@localhost ~]# setenforce 0

[root@localhost ~]# getenforce

Permissive

關閉郵件服務sendmail

[root@localhost ~]# service sendmail stop

service sendmail stop

chkconfig sendmail off

關閉 NTP時間同步服務

[root@localhost ~]# service ntpd status

ntpd is stopped

service ntpd stop

chkconfig --list ntpd

主庫: ip:10.0.1.103

數據庫sid:grs

Db_unique_name:grs

數據庫安裝路徑:/u01/app/oracle/product/10.2.0/db_1

數據文件路徑:/u01/app/oracle/oradata/grs/

本地歸檔路徑:/u01/app/oracle/archivelog/

備庫: ip:192.168.2.188

數據庫sid:grsdg

Db_unique_name:grsdg

數據庫安裝路徑:/mountdisk2/oracle/product/10.2.0/db_1

數據文件路徑:/mountdisk2/oracle/oradata/grsdg/-----

/mountdisk2/oracle/oradata/grsdg

本地歸檔路徑:/mountdisk2/oracle/archivelog/

2 準備工作

2.1 設置主庫的force logging模式

SQL> conn /as sysdba

Connected.

SQL> select force_logging from v$database;

FOR

---

NO

SQL> alter database force logging;

Database altered.

SQL> select force_logging from v$database;

FOR

---

YES

alter database no force logging

2.2確認主庫的歸檔模式

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/app/oracle/archivelog/

Oldest online log sequence 253

Next log sequence to archive 255

Current log sequence 255

如果是disable,需要啟動到mount,

然後SQL> alter database archivelog;/noarchivelog

2.3創建主庫密碼文件(如果不存在的話)

[root@localhost ~]# cd /u01/app/oracle/product/10.2.0/db_1/dbs/

[root@localhost dbs]# ll

-rw-r----- 1 oracle oinstall 1536 03-24 15:55 orapwgrs

不存在就創建

$ orapwd file=orapwgrs password="987064" entries=10 force=y;

2.4配置主庫standby redo log,並驗證結果

SQL> alter database add standby logfile group 4 (‘/u01/app/oracle/oradata/grs/redo04.log‘) size 100m;

Database altered.

--刪除該日誌組

SQL> alter database drop standby logfile group 4;

Database altered.

SQL> alter database add standby logfile group 4 (‘/u01/app/oracle/oradata/grs/redo04.log‘) size 50m;

alter database add standby logfile group 4 (‘/u01/app/oracle/oradata/grs/redo04.log‘) size 50m

*

ERROR at line 1:

ORA-00301: error in adding log file ‘/u01/app/oracle/oradata/grs/redo04.log‘ -

file cannot be created

ORA-27038: created file already exists

Additional information: 1

--需要物理刪除

----保證主庫與備庫的日誌大小一樣

SQL> alter database add standby logfile group 4 (‘/u01/app/oracle/oradata/grs/redo04.log‘) size 50m;

Database altered.

SQL> alter database add standby logfile group 5 (‘/u01/app/oracle/oradata/grs/redo05.log‘) size 50m;

Database altered.

SQL> select group#, thread#, sequence#, archived, status from v$standby_log;

GROUP# THREAD# SEQUENCE# ARCHIV STATUS

---------- ---------- ---------- ------ --------------------

4 0 0 YES UNASSIGNED

5 0 0 YES UNASSIGNED

SQL> select group#,type,member from v$logfile;

GROUP# TYPE

---------- -------

MEMBER

--------------------------------------------------------------------------------

3 ONLINE

/u01/app/oracle/oradata/grs/redo03.log

2 ONLINE

/u01/app/oracle/oradata/grs/redo02.log

1 ONLINE

/u01/app/oracle/oradata/grs/redo01.log

GROUP# TYPE

---------- -------

MEMBER

--------------------------------------------------------------------------------

4 STANDBY

/u01/app/oracle/oradata/grs/redo04.log

2.5配置主庫初始化參數文件

SQL> create pfile =‘/u01/app/oracle/pfile_20140504‘ from spfile;

File created.

[root@localhost oracle]# cat pfile_20140506

j2grs.__db_cache_size=1509949440

grs.__db_cache_size=1644167168

grs.__java_pool_size=16777216

grs.__large_pool_size=16777216

grs.__shared_pool_size=452984832

grs.__streams_pool_size=0

*.audit_file_dest=‘/u01/app/oracle/admin/grs/adump‘

*.background_dump_dest=‘/u01/app/oracle/admin/grs/bdump‘

*.compatible=‘10.2.0.1.0‘

*.control_files=‘/u01/app/oracle/oradata/grs/control01.ctl‘,‘/u01/app/oracle/oradata/grs/control02.ctl‘,‘/u01/app/oracle/oradata/grs/control03.ctl‘

*.core_dump_dest=‘/u01/app/oracle/admin/grs/cdump‘

*.db_domain=‘‘

*.DB_FILE_NAME_CONVERT=‘/mountdisk2/oracle/oradata/grsdg‘,‘/u01/app/oradata/grs‘

*.db_name=‘grs‘

*.db_recovery_file_dest=‘/u01/app/oracle/flash_recovery_area‘

*.db_recovery_file_dest_size=2147483648

*.DB_UNIQUE_NAME=‘grs‘

*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=grsXDB)‘

*.FAL_CLIENT=‘grs‘

*.FAL_SERVER=‘grsdg‘

*.job_queue_processes=10

*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(grs,grsdg)‘

*.LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/archivelog/ arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=grs‘

*.LOG_ARCHIVE_DEST_2=‘SERVICE=grsdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=grsdg‘

*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘

*.log_archive_dest_state_2=‘DEFER‘

*.LOG_ARCHIVE_FORMAT=‘%t_%s_%r.arc‘

*.LOG_ARCHIVE_MAX_PROCESSES=30

*.LOG_FILE_NAME_CONVERT=‘/mountdisk2/oracle/oradata/grsdg‘,‘/u01/app/oradata/grs‘

*.open_cursors=300

*.pga_aggregate_target=1073741824

*.processes=150

*.remote_login_passwordfile=‘EXCLUSIVE‘

*.sga_target=2147483648

*.STANDBY_FILE_MANAGEMENT=‘AUTO‘

*.undo_management=‘AUTO‘

*.undo_tablespace=‘UNDOTBS1‘

*.user_dump_dest=‘/u01/app/oracle/admin/grs/udump‘

Arch只支持最高性能模式,

如果standby數據庫處於其他模式,就必須使用lgwr默認來傳輸redo數據

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> create spfile from pfile=‘/u01/app/oracle/pfile_20140504‘;

File created.

SQL> startup;

3 創建主庫相關文件的備份

3.1創建主庫數據文件的物理備份(這裏采用tar方式)

建立目錄

/u02/app/oracle/oradata/grs2

[oracle@localhost oradata]$ tar -cvf grs.tar grs/

grs/

3.2為備庫創建控制文件

SQL> startup mount;

ORACLE instance started.

Total System Global Area 2147483648 bytes

Fixed Size 2022144 bytes

Variable Size 486540544 bytes

Database Buffers 1644167168 bytes

Redo Buffers 14753792 bytes

Database mounted.

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘/u01/app/oracle/control01.ctl‘;

Database altered.

3.3為備庫創建初始化參數文件

SQL> CREATE PFILE=‘/u01/oracle/backup/initgrs2.ora‘ FROM SPFILE;

File created.

3.4 tar包以及主庫控制文件和參數文件cp到備庫

[root@localhost oradata]# scp -r /u01/app/oracle/oradata/grs [email protected]:/mountdisk2/oracle/oradata/

[root@localhost ~]# scp -r /u01/app/oracle/control01.ctl [email protected]:/mountdisk2/oracle/oradata/

4 設置備庫

4.1解壓主庫數據文件到備庫相應位置

[oracle@localhost oracle]$ tar -xvf grs.tar

grs/

grs/yhq_temp.dbf

grs/cmask01.dbf

grs/undotbs01.dbf

grs/exit

grs/backup

grs/rman_test.dbf

grs/redo04.log

grs/control_backup/

grs/control_backup/control01.ctl

grs/control_backup/control02.ctl

grs/control_backup/control03.ctl

grs/rman_catalog.dbf

[oracle@localhost ~]$ cd /mountdisk2/oracle/oradata/

[oracle@localhost oradata]$ ll

總計 6912

-rw-r----- 1 oracle oinstall 7061504 05-04 15:36 control01.ctl

drwxr-x--- 2 oracle oinstall 4096 05-04 14:31 grsdg

[oracle@localhost oradata]$ cp control01.ctl /mountdisk2/oracle/oradata/grsdg/control01.ctl

[oracle@localhost oradata]$ cd grsdg/

[root@localhost ~]# scp -r /u01/app/oracle/pfile_20140504 [email protected]:/mountdisk2/oracle/oradata/

[email protected]‘s password:

4.2創建相關沒有的目錄

[oracle@localhost oracle]$ mkdir -p archivelog/archivelog

[oracle@localhost oracle]$ mkdir -p /u02/app/oracle/flash_recovery_area/grs/onlinelog

[oracle@localhost oracle]$

[oracle@localhost oracle]$ pwd

/u02/app/oracle

QL> startup nomount;

ORA-09925: Unable to create audit trail file

Linux Error: 2: No such file or directory

Additional information: 9925

SQL> startup mount;

ORA-09925: Unable to create audit trail file

Linux Error: 2: No such file or directory

Additional information: 9925

SQL> show parameter audit_file_dest

ORA-01034: ORACLE not available

[oracle@localhost oracle]$ mkdir admin

[oracle@localhost oracle]$ cd admin/

[oracle@localhost admin]$ mkdir grs2

[oracle@localhost admin]$ cd grs2/

[oracle@localhost grs2]$ mkdir adump bdump cdump udump

4.3 修改備庫的參數文件

[oracle@localhost oradata]$ cp pfile_20140504 /u01/app/oracle/product/10.2.0/db_1/dbs

[root@localhost oradata]# cat pfile_20140506

j2grsdg.__db_cache_size=1509949440

grsdg.__db_cache_size=1644167168

grsdg.__java_pool_size=16777216

grsdg.__large_pool_size=16777216

grsdg.__shared_pool_size=452984832

grsdg.__streams_pool_size=0

*.audit_file_dest=‘/mountdisk2/oracle/admin/grsdg/adump‘

*.background_dump_dest=‘/mountdisk2/oracle/admin/grsdg/bdump‘

*.compatible=‘10.2.0.1.0‘

*.control_files=‘/mountdisk2/oracle/oradata/grsdg/grsdgcontrol01.ctl‘,‘/mountdisk2/oracle/oradata/grsdg/grsdgcontrol02.ctl‘,‘/mountdisk2/oracle/oradata/grsdg/grsdgcontrol03.ctl‘

*.core_dump_dest=‘/mountdisk2/oracle/admin/grsdg/cdump‘

*.db_domain=‘‘

*.DB_FILE_NAME_CONVERT=‘/u01/app/oradata/grs‘,‘/mountdisk2/oracle/oradata/grsdg‘

*.db_name=‘grs‘

*.db_recovery_file_dest=‘/mountdisk2/oracle/flash_recovery_area‘

*.db_recovery_file_dest_size=2147483648

*.DB_UNIQUE_NAME=‘grsdg‘

*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=grsXDB)‘

*.FAL_CLIENT=‘grsdg‘

*.FAL_SERVER=‘grs‘

*.job_queue_processes=10

*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(grs,grsdg)‘

*.LOG_ARCHIVE_DEST_1=‘LOCATION=/mountdisk2/oracle/archivelog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=grsdg‘

*.LOG_ARCHIVE_DEST_2=‘SERVICE=grs LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=grs‘

*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘

*.log_archive_dest_state_2=‘DEFER‘

*.LOG_ARCHIVE_FORMAT=‘%t_%s_%r.arc‘

*.LOG_ARCHIVE_MAX_PROCESSES=30

*.LOG_FILE_NAME_CONVERT=‘/u01/app/oradata/grs‘,‘/mountdisk2/oracle/oradata/grsdg‘

*.open_cursors=300

*.pga_aggregate_target=1073741824

*.processes=150

*.remote_login_passwordfile=‘EXCLUSIVE‘

*.sga_target=2147483648

*.STANDBY_FILE_MANAGEMENT=‘AUTO‘

*.undo_management=‘AUTO‘

*.undo_tablespace=‘UNDOTBS1‘

*.user_dump_dest=‘/mountdisk2/oracle/admin/grsdg/udump‘

[root@localhost oradata]#

4.4創建備庫密碼文件

[root@localhost ~]# scp -r /u01/app/oracle/product/10.2.0/db_1/dbs/orapwgrs [email protected]:/mountdisk2/oracle/oradata/

復制密碼文件到備庫

[oracle@localhost oradata]$ mv orapwgrs /u01/app/oracle/product/10.2.0/db_1/dbs/orapwgrsdg

[oracle@localhost grs2]$ orapwd file=/u02/app/oracle/product/10.2.0/db_1/dbs/orapwgrs2 password="987064" entries=10 force=y;

5創建主備庫監聽及tnsnames文件

5.1創建文件

[oracle@localhost admin]$ cp -p /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora /u02/app/oracle/product/10.2.0/db_1/network/admin/

[oracle@localhost admin]$ cp -p /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora /u02/app/oracle/product/10.2.0/db_1/network/admin/

修改監聽文件

[oracle@localhost admin]$ vi listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u02/app/oracle/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = Oracle8)

(ORACLE_HOME = /u02/app/oracle/product/10.2.0/db_1)

(SID_NAME = grs2)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

[oracle@localhost admin]$ vi tnsnames.ora

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

# Generated by Oracle configuration tools.

GRS2 =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = grs2)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

主庫

[oracle@localhost ~]$ tnsping 192.168.2.188

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-MAY-2014 15:57:47

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:

Used HOSTNAME adapter to resolve the alias

Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=192.168.2.188))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.188)(PORT=1521)))

OK (40 msec)

[oracle@localhost ~]$ tnsping grsdg

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-MAY-2014 17:49:16

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.188)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = grsdg)))

OK (10 msec)

備庫

[oracle@localhost admin]$ tnsping 10.0.1.103

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-MAY-2014 15:56:57

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:

/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora

Used HOSTNAME adapter to resolve the alias

Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=10.0.1.103))(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.1.103)(PORT=1521)))

OK (0 msec)

[oracle@localhost dbs]$ tnsping grs

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-MAY-2014 17:53:47

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:

/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora

TNS-03505: Failed to resolve name

[oracle@localhost admin]$ vi tnsnames.ora

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

# Generated by Oracle configuration tools.

GRS =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = grs)

)

)

GRS2 =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = grsdg)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

5.2分別啟動主備庫監聽

為什麽要先啟動備庫再啟動主庫呢?

DG 原理:主庫啟動後會主動探測備庫,如果此時備庫沒有啟動那麽主庫探測不到備庫的存在,就會等待若幹分鐘之後再次探測,你會在 alert 日誌中看到大量 ORA 報錯引起恐慌,為了避免這種情況發生。可以先啟動備庫,此時備庫會等待來自主庫的日誌,當備庫啟動之後主庫再啟動會在第一時間探測到備庫存在,就不會看到大量報錯信息了。

為什麽在操作primary standby 庫時建議始終打開alert日誌 這樣可以實時監控數據庫啟動 關閉 切換 操作的狀態,查看到日誌是否應用,角色是否切換完畢,數據庫是否read only 打開等,主要是為了方便我們監控主備庫同步狀態。

啟動備庫

備庫的啟動

[oracle@localhost admin]$ export ORACLE_SID=grsdg

[oracle@localhost dbs]$ cp initgrs2.ora /u01/app/oracle/product/10.2.0/db_1/dbs/initgrs2.ora

[oracle@localhost dbs]$ sqlplsu /nolog

-bash: sqlplsu: command not found

[oracle@localhost dbs]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 31 17:16:24 2014

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba

Connected to an idle instance.

SQL> create spfile from pfile=‘/mountdisk2/oracle/oradata/pfile_20140504‘;

File created.

SQL> startup nomount;

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file ‘/u01/app/oracle/product/10.2.0/db_1/dbs/initgrsdg.ora

[oracle@localhost dbs]$ cp pfile_20140504 initgrsdg.ora

SQL> startup nomount;

ORACLE instance started.

Total System Global Area 285212672 bytes

Fixed Size 1218992 bytes

Variable Size 92276304 bytes

Database Buffers 188743680 bytes

Redo Buffers 2973696 bytes

SQL> alter database mount standby database;

Database altered.

SQL> show parameter convert;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_file_name_convert string /mountdisk2/oracle/oradata/grs

dg, /u01/app/oradata/grs

log_file_name_convert string /mountdisk2/oracle/oradata/grs

dg, /u01/app/oradata/grs

SQL> set linesize 1000

SQL> set pagesize 1000

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------------------

/u01/app/oracle/oradata/grs/system01.dbf

/u01/app/oracle/oradata/grs/undotbs01.dbf

/u01/app/oracle/oradata/grs/sysaux01.dbf

/u01/app/oracle/oradata/grs/users01.dbf

/u01/app/oracle/oradata/grs/example01.dbf

/u01/app/oracle/oradata/grs/yyhhqq.dbf

/u01/app/oracle/oradata/grs/grsv501.dbf

/u01/app/oracle/oradata/grs/starhub.dbf

/u01/app/oracle/oradata/grs/starhub01.dbf

/u01/app/oracle/oradata/grs/starhub02.dbf

/u01/app/oracle/oradata/grs/starhub03.dbf

/u01/app/oracle/oradata/grs/starhub04.dbf

/u01/app/oracle/oradata/grs/starhub05.dbf

/u01/app/oracle/oradata/grs/cmask01.dbf

/u01/app/oracle/oradata/grs/ais01.dbf

/u01/app/oracle/oradata/grs/ais02.dbf

/u01/app/oracle/oradata/grs/ipfingo02.dbf

/u01/app/oracle/oradata/grs/ipfiingo01.dbf

/u01/app/oracle/oradata/grs/ipfingo03.dbf

/u01/app/oracle/oradata/grs/SPICEI2I02.dbf

切換到主庫

SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;

System altered --開始打開遠程的歸檔

--SQL> alter database recover managed standby database disconnect from session;

Database altered.

6.主備庫狀態檢查

1 主庫

select db_unique_name,open_mode,database_role,switchover_status,

dataguard_broker,protection_mode,remote_archive,guard_status from

v$database;

grs READ WRITE PRIMARY SESSIONS ACTIVE DISABLED MAXIMUM PERFORMANCE ENABLED NONE

主庫:可讀寫 沒有啟動broker 主庫角色

主庫:

SQL> select group#,bytes,status from v$standby_log;

GROUP# BYTES STATUS

---------- ---------- --------------------

4 52428800 UNASSIGNED

5 52428800 UNASSIGNED

主庫的 standby_log沒有使用

SQL> select * from v$archive_gap;

no rows selected

主庫沒有遺漏

SQL> col standby_dest for a12

SQL> col archived for a10

SQL> col applied for a10

SQL> col status for a10

SQL> select sequence#,standby_dest,archived,applied,status from v$archived_log;

SEQUENCE# STANDBY_DEST ARCHIVED APPLIED STATUS

---------- ------------ ---------- ---------- ----------

245 NO YES NO X

246 NO YES NO X

247 NO YES NO X

248 NO YES NO X

249 NO YES NO A

250 NO YES NO A

251 NO YES NO A

252 NO YES NO A

253 NO YES NO A

254 NO YES NO A

255 NO YES NO A

SEQUENCE# STANDBY_DEST ARCHIVED APPLIED STATUS

---------- ------------ ---------- ---------- ----------

256 NO YES NO A

257 NO YES NO A

257 YES YES NO A

258 NO YES NO A

258 YES YES NO A

260 NO YES NO A

261 NO YES NO A

262 NO YES NO A

262 YES YES NO A

20 rows selected.

一共有20個歸檔日誌, 257 257 262 傳輸到standby

全部歸檔,全部未應用,狀態A

A - Available

D - Deleted

U - Unavailable

X - Expired

select dest_name,database_mode,recovery_mode,archived_seq#,applied_seq# from

v$archive_dest_status;

LOG_ARCHIVE_DEST_1 OPEN IDLE 262 0

LOG_ARCHIVE_DEST_2 UNKNOWN UNKNOWN 262 261

LOG_ARCHIVE_DEST_3 OPEN IDLE 0 0

SQL> select process,status,sequence#,delay_mins from v$managed_standby;

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

LNS WRITING 263 0

備庫狀態

SQL> conn /as sysdba

Connected.

SQL> select db_unique_name,open_mode,database_role,switchover_status,

2 dataguard_broker,protection_mode,remote_archive,guard_status from

3 v$database;

DB_UNIQUE_NAME

------------------------------------------------------------

OPEN_MODE DATABASE_ROLE

-------------------- --------------------------------

SWITCHOVER_STATUS DATAGUARD_BROKER

---------------------------------------- ----------------

PROTECTION_MODE REMOTE_ARCHIVE GUARD_STATUS

---------------------------------------- ---------------- --------------

grsdg

MOUNTED PHYSICAL STANDBY

RECOVERY NEEDED DISABLED

MAXIMUM PERFORMANCE ENABLED NONE

SQL> select group#,bytes,status from v$standby_log;

no rows selected

SQL> select * from v$archive_gap;

no rows selected

SQL> col standby_dest for a12

SQL> col archived for a10

SQL> col applied for a10

SQL> col status for a10

SQL> select sequence#,standby_dest,archived,applied,status from v$archived_log;

SEQUENCE# STANDBY_DEST ARCHIVED APPLIED STATUS

---------- ------------ ---------- ---------- ----------

262 NO YES NO A

select dest_name,database_mode,recovery_mode,archived_seq#,applied_seq# from v$archive_dest_status;

SQL> select process,status,sequence#,delay_mins from v$managed_standby;

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

ARCH CONNECTED 0 0

RFS IDLE 263 0

RFS IDLE 0 0

7 .日誌應用與切換

7 驗證歸檔文件的情況

1 通過數據字典視圖驗證

--主庫執行

[oracle@localhost ~]$ export ORACLE_SID=grs

[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 31 17:07:31 2014

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area 285212672 bytes

Fixed Size 1218992 bytes

Variable Size 96470608 bytes

Database Buffers 184549376 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;

ORACLE instance started.

Total System Global Area 285212672 bytes

Fixed Size 1218992 bytes

Variable Size 100664912 bytes

Database Buffers 180355072 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.

SQL> select sequence#, first_time, next_time, applied, fal from v$archived_log order by sequence#;

SEQUENCE# FIRST_TIME NEXT_TIME APP FAL

---------- ------------------ ------------------ --- ---

1 25-MAR-14 25-MAR-14 NO NO

1 25-MAR-14 25-MAR-14 NO YES

2 25-MAR-14 26-MAR-14 NO NO

2 25-MAR-14 26-MAR-14 NO YES

3 26-MAR-14 26-MAR-14 NO YES

3 26-MAR-14 26-MAR-14 NO NO

4 26-MAR-14 27-MAR-14 NO NO

4 26-MAR-14 27-MAR-14 NO YES

5 27-MAR-14 27-MAR-14 NO NO

5 27-MAR-14 27-MAR-14 NO YES

6 27-MAR-14 27-MAR-14 NO NO

SEQUENCE# FIRST_TIME NEXT_TIME APP FAL

---------- ------------------ ------------------ --- ---

6 27-MAR-14 27-MAR-14 NO YES

6 24-MAR-14 24-MAR-14 NO NO

7 27-MAR-14 27-MAR-14 NO YES

7 27-MAR-14 27-MAR-14 NO NO

7 24-MAR-14 24-MAR-14 NO NO

7 24-MAR-14 24-MAR-14 NO NO

8 24-MAR-14 25-MAR-14 NO NO

8 27-MAR-14 28-MAR-14 NO NO

8 27-MAR-14 28-MAR-14 NO YES

9 28-MAR-14 31-MAR-14 NO NO

9 25-MAR-14 25-MAR-14 NO NO

SEQUENCE# FIRST_TIME NEXT_TIME APP FAL

---------- ------------------ ------------------ --- ---

9 28-MAR-14 31-MAR-14 YES YES

10 31-MAR-14 31-MAR-14 NO NO

10 25-MAR-14 25-MAR-14 NO NO

10 31-MAR-14 31-MAR-14 NO YES

11 31-MAR-14 31-MAR-14 NO YES

11 25-MAR-14 25-MAR-14 NO NO

11 31-MAR-14 31-MAR-14 NO NO

12 31-MAR-14 31-MAR-14 NO NO

12 31-MAR-14 31-MAR-14 NO YES

12 25-MAR-14 25-MAR-14 NO NO

32 rows selected.

2 查看告警日誌文件

--備庫上有類似的信息

[oracle@localhost bdump]$ tail -f -n 100 /u02/app/oracle/admin/grs2/bdump/alert_grs2.log

Errors in file /u02/app/oracle/admin/grs2/bdump/grs2_mrp0_25231.trc:

ORA-01110: data file 1: ‘/u01/app/oracle/oradata/grs/system01.dbf‘

Errors in file /u02/app/oracle/admin/grs2/bdump/grs2_mrp0_25231.trc:

ORA-01110: data file 1: ‘/u01/app/oracle/oradata/grs/system01.dbf‘

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

ORA-01110: data file 1: ‘/u01/app/oracle/oradata/grs/system01.dbf‘

Mon Mar 31 17:17:35 2014

MRP0: Background Media Recovery process shutdown (grs2)

Mon Mar 31 17:17:36 2014

Completed: alter database recover managed standby database disconnect from session

Mon Mar 31 17:18:14 2014

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[3]: Assigned to RFS process 25253

RFS[3]: Identified database type as ‘physical standby‘

Mon Mar 31 17:18:17 2014

Redo Shipping Client Connected as PUBLIC

主庫

1 主庫上建測試表

SQL> conn

Enter user-name: scott

Enter password:

Connected.

SQL> create table randy (id number);

Table created.

SQL> insert into randy values(1);

1 row created.

SQL> /

1 row created.

SQL> /

1 row created.

SQL> /

1 row created.

SQL> commit;

Commit complete.

SQL> select * from randy;

ID

----------

1

1

1

1

2 主庫上模擬日誌切換

SQL> alter system archive log current;

備庫上的日誌

db_recovery_file_dest_size of 2048 MB is 0.00% used. This is a

user-specified limit on the amount of space that will be used by this

database for recovery-related files, and does not reflect the amount of

space available in the underlying filesystem or ASM diskgroup.

Mon Mar 31 17:43:20 2014

RFS[2]: Possible network disconnect with primary database

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[15]: Assigned to RFS process 26201

RFS[15]: Identified database type as ‘physical standby‘

Primary database is in MAXIMUM PERFORMANCE mode

Primary database is in MAXIMUM PERFORMANCE mode

RFS[15]: Successfully opened standby log 4: ‘/u01/app/oracle/oradata/grs/redo04.log‘

Mon Mar 31 17:43:39 2014

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[16]: Assigned to RFS process 26211

RFS[16]: Identified database type as ‘physical standby‘

RFS[16]: No standby redo logfiles of size 6761 blocks available

RFS[16]: Archived Log: ‘/u02/app/oracle/archivelog/archivelog/1_13_843150133.arc‘

以只讀模式打開備庫,驗證數據

SQL> alter database recover managed standby database cancel;

同一臺機器上進行dg

主庫的參數文件

[oracle@localhost backup]$ vi initgrs.ora

grs.__db_cache_size=184549376

grs.__java_pool_size=4194304

grs.__large_pool_size=4194304

grs.__shared_pool_size=83886080

grs.__streams_pool_size=4194304

*.audit_file_dest=‘/u01/app/oracle/admin/grs/adump‘

*.background_dump_dest=‘/u01/app/oracle/admin/grs/bdump‘

*.compatible=‘10.2.0.1.0‘

*.control_files=‘/u01/app/oracle/oradata/grs/control01.ctl‘,‘/u01/app/oracle/oradata/grs/control02.ctl‘,‘/u01/app/oracle/oradata/grs/control03.ctl‘

*.core_dump_dest=‘/u01/app/oracle/admin/grs/cdump‘

*.db_block_size=8192

*.db_domain=‘‘

*.db_file_multiblock_read_count=16

*.DB_FILE_NAME_CONVERT=‘/u01/app/oracle/oradata/grs‘,‘/u02/app/oracle/oradata/grs2‘

*.db_name=‘grs‘

*.db_recovery_file_dest=‘/u01/app/oracle/flash_recovery_area‘

*.db_recovery_file_dest_size=2147483648

*.DB_UNIQUE_NAME=‘grs‘

*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=grsXDB)‘

*.FAL_CLIENT=‘grs2‘

*.FAL_SERVER=‘grs‘

*.job_queue_processes=10

*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(grs,grs2)‘

*.LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/archivelog/archivelog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=grs‘

*.LOG_ARCHIVE_DEST_2=‘SERVICE=grs2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=grs2‘

*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘

*.LOG_ARCHIVE_DEST_STATE_2=‘ENABLE‘

*.LOG_ARCHIVE_FORMAT=‘%t_%s_%r.arc‘

*.LOG_ARCHIVE_MAX_PROCESSES=30

*.LOG_FILE_NAME_CONVERT=‘/u01/app/oracle/oradata/grs‘,‘/u02/app/oracle/oradata/grs2‘

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile=‘EXCLUSIVE‘

*.sga_target=285212672

*.STANDBY_FILE_MANAGEMENT=‘AUTO‘

*.undo_management=‘AUTO‘

*.undo_tablespace=‘UNDOTBS1‘

*.user_dump_dest=‘/u01/app/oracle/admin/grs/udump‘

備庫的參數文件

[oracle@localhost dbs]$ vi initgrs2.ora

grs.__db_cache_size=184549376

grs.__java_pool_size=4194304

grs.__large_pool_size=4194304

grs.__shared_pool_size=83886080

grs.__streams_pool_size=4194304

*.audit_file_dest=‘/u02/app/oracle/admin/grs2/adump‘

*.background_dump_dest=‘/u02/app/oracle/admin/grs2/bdump‘

*.compatible=‘10.2.0.1.0‘

*.control_files=‘/u02/app/oracle/oradata/grs2/control01.ctl‘,‘/u02/app/oracle/oradata/grs2/control02.ctl‘,‘/u02/app/oracle/oradata/grs2/control03.ctl‘

*.core_dump_dest=‘/u02/app/oracle/admin/grs2/cdump‘

*.db_block_size=8192

*.db_domain=‘‘

*.db_file_multiblock_read_count=16

*.DB_FILE_NAME_CONVERT=‘/u02/app/oracle/oradata/grs2‘,‘/u01/app/oracle/oradata/grs‘

*.db_name=‘grs‘

*.db_recovery_file_dest=‘/u02/app/oracle/flash_recovery_area‘

*.db_recovery_file_dest_size=2147483648

*.DB_UNIQUE_NAME=‘grs2‘

*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=grsXDB)‘

*.FAL_CLIENT=‘grs‘

*.FAL_SERVER=‘grs2‘

*.job_queue_processes=10

*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(grs,grs2)‘

*.LOG_ARCHIVE_DEST_1=‘LOCATION=/u02/app/oracle/archivelog/archivelog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=grs2‘

*.LOG_ARCHIVE_DEST_2=‘SERVICE=grs LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=grs‘

*.LOG_ARCHIVE_DEST_STATE_1=‘ENABLE‘

*.LOG_ARCHIVE_DEST_STATE_2=‘ENABLE‘

*.LOG_ARCHIVE_FORMAT=‘%t_%s_%r.arc‘

*.LOG_ARCHIVE_MAX_PROCESSES=30

*.LOG_FILE_NAME_CONVERT=‘/u02/app/oracle/oradata/grs2‘,‘/u01/app/oracle/oradata/grs‘

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile=‘EXCLUSIVE‘

*.sga_target=285212672

*.STANDBY_FILE_MANAGEMENT=‘AUTO‘

*.undo_management=‘AUTO‘

*.undo_tablespace=‘UNDOTBS1‘

*.user_dump_dest=‘/u02/app/oracle/admin/grs2/udump‘

Oracle data guard 10g 搭建