这两天看完物理STANDBY环境的建立,感觉建立过程还是比较容易的,简单记录一下操作步骤。
由于是第一次建立STANDBY环境,就不搞那么复杂了,主库和从库分别在两台服务器上,而且所有的路径完全一致。
STANDBY数据库一般都是通过主库的备份建立的。这里只介绍DATA GUARD的建立过程,详细的准备工作就不介绍了。比如:两个服务器Oracle数据库软件的安装,以及主库的建立等。
首先需要对主库进行设置,为建立STANDBY进行准备。需要将主库置于FORCE LOGGING状态,并处于归档模式下:
SQL> SELECT DBID, NAME, LOG_MODE, FORCE_LOGGING FROM V$DATABASE;
DBID NAME LOG_MODE FOR
---------- --------- ------------ ---
2270762593 TESTDATA NOARCHIVELOG NO
SQL> ALTER DATABASE FORCE LOGGING;
Database altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/data/oradata/testdata/archive';
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = ENABLE;
System altered.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_START = TRUE SCOPE = SPFILE;
System altered.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT
ORACLE instance started.
Total System Global Area 1175525576 bytes
Fixed Size 452808 bytes
Variable Size 335544320 bytes
Database Buffers 838860800 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> ALTER DATABASE ARCHIVELOG;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> SELECT DBID, NAME, LOG_MODE, FORCE_LOGGING FROM V$DATABASE;
DBID NAME LOG_MODE FOR
---------- --------- ------------ ---
2270762593 TESTDATA ARCHIVELOG YES
下面进行STANDBY的建立,首先检查数据库中所有的数据文件和日志文件:
SQL> SELECT NAME FROM V$DATAFILE
2 UNION ALL
3 SELECT NAME FROM V$TEMPFILE
4 UNION ALL
5 SELECT MEMBER FROM V$LOGFILE;
IXDBA.NET社区论坛NAME
------------------------------------------------------------
/data/oradata/testdata/system01.dbf
/data/oradata/testdata/undotbs01.dbf
/data/oradata/testdata/drsys01.dbf
/data/oradata/testdata/indx01.dbf
/data/oradata/testdata/tools01.dbf
/data/oradata/testdata/users01.dbf
/data/oradata/testdata/xdb01.dbf
.
.
.
/data/oradata/testdata/ndindex1.dbf
/data/oradata/testdata/ndmain01.dbf
/data/oradata/testdata/ndmain02.dbf
/data/oradata/testdata/temp01.dbf
/data/oradata/testdata/redo01.log
/data/oradata/testdata/redo02.log
/data/oradata/testdata/redo03.log
31 rows selected.
然后关闭数据库,将上面查询的所有数据文件和日志文件ftp到STANDBY数据库所在服务器的相同目录下:
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> HOST
[oracle@demo2 testdata]$ ftp 172.25.88.92
Connected to 172.25.88.92 (172.25.88.92).
220 (vsFTPd 1.1.3)
Name (172.25.88.92:root): oracle
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bin
200 Switching to Binary mode.
ftp> prompt
Interactive mode off.
ftp> cd /data/oradata/testdata
250 Directory successfully changed.
ftp> mput *.dbf *.log
.
.
.
ftp> quit
221 Goodbye.
[oracle@demo2 testdata]$ exit
exit
如果停库时间有限,可以先使用cp拷贝至别的地方,打开数据库,然后再将cp的数据文件等