公司机房搬迁,Data Guard环境需要修改IP地址。提前整理顺便测试一下。虽然只有几步,但怕晚上头晕了出了纰漏。整理好了,晚上直接按文档,一步一步操作就可以了。
一.IP及数据库信息
修改之前:
主库:192.168.2.242
备库:192.168.2.243
修改之后:
主库:192.168.2.22
备库:192.168.2.23
数据库版本:10.2.0.5
操作系统版本:Redhat 5.5
二. Shutdown主备库实例及监听
2.1 shutdown主库
SQL> select db_unique_name,open_mode from v$database;
DB_UNIQUE_NAMEOPEN_MODE
------------------------------ ----------
xezf_pdREAD WRITE
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
2.2 shutdown备库
SQL>select db_unique_name,open_mode from v$database;
DB_UNIQUE_NAMEOPEN_MODE
------------------------------ ----------
xezf_stMOUNTED
SQL>shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
2.3停主备库的监听
[oracle@dg1 ~]$ lsnrctl stop
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 20-DEC-2010 09:49:43
Copyright (c) 1991, 2010, Oracle.All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg1)(PORT=1521)))
The command completed successfully
[oracle@dg1 ~]$
[oracle@dg2 ~]$ lsnrctl stop
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 20-DEC-2010 09:49:50
Copyright (c) 1991, 2010, Oracle.All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg2)(PORT=1521)))
The command completed successfully
[oracle@dg2 ~]$
三.修改服务器IP信息
3.1主库操作
3.1.1修改IP
[root@dg1 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1localhost.localdomain localhost
#::1localhost6.localdomain6 localhost6
192.168.2.22dg1
[root@dg1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dg1
GATEWAY=192.168.2.1
[root@dg1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.2.255
HWADDR=84:2B:2B:67:43:B9
IPADDR=192.168.2.22
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
3.1.2重启network
[root@dg1 ~]# service network restart
3.1.3修改监听信息
[oracle@dg1 admin]$ cat 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 = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = xezf)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = xezf)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
)
[oracle@dg1 admin]$ cat 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.
XEZF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xezf)
)
)
XEZF_PD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xezf)
)
)
XEZF_ST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.23)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xezf)
)
)
LISTENER_XEZF =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
3.2备库操作
3.2.1修改IP
[root@dg2 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1localhost.localdomain localhost
#::1localhost6.localdomain6 localhost6
192.168.2.23dg2
[root@dg2 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dg2
GATEWAY=192.168.2.1
[root@dg2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.2.255
HWADDR=00:1E:C9:DA:AE:95
IPADDR=192.168.2.23
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
3.2.2重启network
[root@dg2 ~]# service network restart
3.2.3修改监听信息
[oracle@dg2 admin]$ cat 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 = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = xezf)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = xezf)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
)
)
[oracle@dg2 admin]$ cat 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.
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
xezf_pd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xezf)
)
)
xezf_st =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.23)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xezf)
)
)
四.启动Data Guard并验证同步
4.1启动备库监听和实例
4.1.1启动监听
[oracle@dg2 ~]$lsnrctl start
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 20-DEC-2010 10:11:47
Copyright (c) 1991, 2010, Oracle.All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.5.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg2)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg2)(PORT=1521)))
STATUS of the LISTENER
------------------------
AliasLISTENER
VersionTNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date20-DEC-2010 10:11:47
Uptime0 days 0 hr. 0 min. 0 sec
Trace Leveloff
SecurityON: Local OS Authentication
SNMPOFF
Listener Parameter File/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg2)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "xezf" has 1 instance(s).
Instance "xezf", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@dg2 ~]$
4.1.2启动实例至mount状态
[oracle@dg2 ~]$sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Dec 20 10:12:34 2010
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
SQL>conn / as sysdba;
Connected to an idle instance.
SQL>startup nomount;
ORACLE instance started.
Total System Global Area 5251268608 bytes
Fixed Size2103600 bytes
Variable Size939525840 bytes
Database Buffers4294967296 bytes
Redo Buffers14671872 bytes
SQL>alter database mount standby database;
Database altered.
SQL>alter database recover managed standby database disconnect from session;
Database altered.
SQL>
4.2启动主库监听和实例
4.2.1启动主库监听
[oracle@dg1 ~]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 20-DEC-2010 10:15:23
Copyright (c) 1991, 2010, Oracle.All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.5.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg1)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg1)(PORT=1521)))
STATUS of the LISTENER
------------------------
AliasLISTENER
VersionTNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date20-DEC-2010 10:15:23
Uptime0 days 0 hr. 0 min. 0 sec
Trace Leveloff
SecurityON: Local OS Authentication
SNMPOFF
Listener Parameter File/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg1)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "xezf" has 1 instance(s).
Instance "xezf", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
4.2.2启动主库实例至open状态
[oracle@dg1 ~]$sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Dec 20 10:15:51 2010
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
SQL>conn / as sysdba;
Connected to an idle instance.
SQL>startup
ORACLE instance started.
Total System Global Area 5251268608 bytes
Fixed Size2103600 bytes
Variable Size939525840 bytes
Database Buffers4294967296 bytes
Redo Buffers14671872 bytes
Database mounted.
Database opened.
SQL>
4.3验证主备库同步
4.3.1检查归档目录是否有误
SQL> select error from v$archive_dest;
ERROR
-----------------------------------------------------------------
10 rows selected.
SQL>
正常,没有错误。
4.3.2在主库手工切换归档
SQL> alter system switch logfile;
System altered.
4.3.3查看主库归档情况
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
25
4.3.4查看备库归档情况
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APP
---------- ---
1 YES
2 YES
3 YES
4 YES
4 YES
5 YES
5 YES
6 YES
6 NO
7 YES
8 YES
SEQUENCE# APP
---------- ---
9 YES
10 YES
11 YES
12 YES
13 YES
14 YES
15 YES
16 YES
17 YES
18 YES
19 YES
SEQUENCE# APP
---------- ---
20 YES
21 YES
22 YES
23 YES
24 YES
25 YES
28 rows selected.
主备一致,同步正常。IP修改成功。
------------------------------------------------------------------------------