克隆ops的过程

来源:互联网 发布:js 获取classname 编辑:程序博客网 时间:2024/06/10 00:34

Digital UNIX (sce) (ttyp2)

 

login: oracle

Password:

Last login: Tue Oct 22 12:03:19 from 172.31.8.6

 

Digital UNIX V4.0F (Rev. 1229); Wed Aug 22 13:04:08 CST 2001

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:32:36 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> shutdown

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

oracle@sce> df -k

Filesystem 1024-blocks Used Available Capacity Mounted on

root_domain#root 262144 92876 169268 36% /

/proc 0 0 0 100% /proc

usr_domain#usr 2097152 1347333 692072 67% /usr

oracle_domain#u01 4954600 4138102 782080 85% /u01

oracle@sce> ORACLE_SID=NEW;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:33:45 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> shutdown

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

oracle@sce>

 

 

启动数据库SCEDB,然后做下面的操作

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=SCEDB

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:36:51 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

Database mounted.

Database opened.

SQL> exit

Disconnected

oracle@sce>

 

 

 

准备工作:

检查空间是否够用,然后做下面的操作

准备一些测试数据

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=SCEDB

oracle@sce>

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:05:03 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> select * from dba_data_files;

 

FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS

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

/u01/oracle/oradata/SCEDB/system01.dbf 1 SYSTEM 283115520 34560 AVAILABLE 1 YES 3435972198 4194302 1280 283107328 34559

/u01/oracle/oradata/SCEDB/tools01.dbf 2 TOOLS 8388608 1024 AVAILABLE 2 YES 3435972198 4194302 40 8380416 1023

/u01/oracle/oradata/SCEDB/rbs01.dbf 3 RBS 104857600 12800 AVAILABLE 3 YES 3435972198 4194302 640 104849408 12799

/u01/oracle/oradata/SCEDB/temp01.dbf 4 TEMP 71303168 8704 AVAILABLE 4 YES 3435972198 4194302 80 71294976 8703

/u01/oracle/oradata/SCEDB/users01.dbf 5 USERS 52428800 6400 AVAILABLE 5 YES 3435972198 4194302 160 52420608 6399

/u01/oracle/oradata/SCEDB/indx01.dbf 6 INDX 20971520 2560 AVAILABLE 6 YES 3435972198 4194302 160 20963328 2559

/u01/oracle/oradata/SCEDB/drsys01.dbf 7 DRSYS 88080384 10752 AVAILABLE 7 YES 3435972198 4194302 80 88072192 10751

/u01/oracle/oradata/SCEDB/lunar01.dbf 8 LUNAR 10485760 1280 AVAILABLE 8 NO 0 0 0 10477568 1279

 

8 rows selected

 

SQL> select * from v$controlfile;

 

STATUS NAME

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

/u01/oracle/oradata/SCEDB/control01.ctl

/u01/oracle/oradata/SCEDB/control02.ctl

/u01/oracle/oradata/SCEDB/control03.ctl

 

SQL> select * from v$logfile;

 

GROUP# STATUS MEMBER

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

1 /u01/oracle/oradata/SCEDB/redo01.log

2 /u01/oracle/oradata/SCEDB/redo02.log

3 STALE /u01/oracle/oradata/SCEDB/redo03.log

 

SQL> select sum(bytes) from dba_data_files;

 

SUM(BYTES)

----------

639631360

 

SQL>

SQL> select file_name Datafile_name

2 , tablespace_name

3 , to_char(bytes/1024/1024) || 'M' mbytes

4 from dba_data_files

5 order by file_name

6 , tablespace_name

7 /

 

DATAFILE_NAME TABLESPACE_NAME MBYTES

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

/u01/oracle/oradata/SCEDB/drsys01.dbf DRSYS 84M

/u01/oracle/oradata/SCEDB/indx01.dbf INDX 20M

/u01/oracle/oradata/SCEDB/lunar01.dbf LUNAR 10M

/u01/oracle/oradata/SCEDB/rbs01.dbf RBS 100M

/u01/oracle/oradata/SCEDB/system01.dbf SYSTEM 270M

/u01/oracle/oradata/SCEDB/temp01.dbf TEMP 68M

/u01/oracle/oradata/SCEDB/tools01.dbf TOOLS 8M

/u01/oracle/oradata/SCEDB/users01.dbf USERS 50M

 

8 rows selected

 

SQL>

SQL> select b.file_id file_ID,

2 b.tablespace_name tablespace_name,

3 b.bytes Bytes,

4 (b.bytes-sum(nvl(a.bytes,0))) used,

5 sum(nvl(a.bytes,0)) free,

6 sum(nvl(a.bytes,0))/(b.bytes)*100 Percent

7 from dba_free_space a,dba_data_files b

8 where a.file_id=b.file_id

9 group by b.tablespace_name,b.file_id,b.bytes

10 order by b.file_id

11 /

 

FILE_ID TABLESPACE_NAME BYTES USED FREE PERCENT

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

1 SYSTEM 283115520 269959168 13156352 4.64699074

2 TOOLS 8388608 40960 8347648 99.5117187

3 RBS 104857600 20979712 83877888 79.9921875

4 TEMP 71303168 8192 71294976 99.9885110

5 USERS 52428800 8192 52420608 99.984375

6 INDX 20971520 8192 20963328 99.9609375

7 DRSYS 88080384 4333568 83746816 95.0799851

8 LUNAR 10485760 49152 10436608 99.53125

 

8 rows selected

 

SQL> conn lunar/lunar

Connected.

SQL> select * from tab;

 

TNAME TABTYPE CLUSTERID

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

TEST TABLE

 

SQL> select * from test;

 

A

----------

1

 

SQL> insert into test values(2);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> insert into test values(3);

 

1 row created.

 

SQL> select * from test;

 

A

----------

1

2

3

 

SQL>

注意 3是没提交的,2已经提交,但是2还没有被归档

也就是这两条数据都在redo中,但是状态不同

 

 

新开一个窗口作switch log

Digital UNIX (sce) (ttyp1)

 

login: oracle

Password:

Last login: Tue Oct 22 12:32:18 from 172.31.8.6

 

Digital UNIX V4.0F (Rev. 1229); Wed Aug 22 13:04:08 CST 2001

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:50:11 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2774

Next log sequence to archive 2776

Current log sequence 2776

SQL> alter system switch logfile;

 

System altered.

 

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2775

Next log sequence to archive 2777

Current log sequence 2777

SQL>

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

到现在为止,用户lunar的表test中有2条被归档,即 1 2

还有一条没有提交的在redo中,即3;

现在在新窗口(sqlplus internal)中做热备,当前的archive log2777

注意观察热备结束后的archive log,并记录下来,以便对照数据回复的情况。

 

 

 

一、确定ORACLE_SID

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:05:03 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

二、如果下列目录不存在,先创建下列目录

oracle@sce> cd /u01/oracle/backup2

 

/u01/oracle/backup2建立科隆数据库需要的目录

mkdir adhoc

mkdir bdump

mkdir cdump

mkdir arch

mkdir create

mkdir exp

mkdir udump

mkdir pfile

oracle@sce> ls

oracle@sce>

 

三、检查磁盘空间,如果够用,就创建热备

oracle@sce> df -k

Filesystem 1024-blocks Used Available Capacity Mounted on

root_domain#root 262144 92876 169268 36% /

/proc 0 0 0 100% /proc

usr_domain#usr 2097152 1347469 691936 67% /usr

oracle_domain#u01 4954600 4138277 781928 85% /u01

oracle@sce>

 

oracle@sce> cd /u01/oracle/back_script

oracle@sce> ls hotback2.sh

hotback2.sh

oracle@sce> hotback2.sh

Tue Oct 22 13:27:13 GMT+0700 2002

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 13:27:13 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

Tue Oct 22 13:27:13 GMT+0700 2002

 

 

 

 

Connected.

BEGINING ARCHIVE LOG NUMBER IS :

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2776

Next log sequence to archive 2778

Current log sequence 2778

 

 

 

Begin Backup Tablespace SYSTEM ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace TOOLS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace RBS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace TEMP ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace USERS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace INDX ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace DRSYS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace LUNAR ...

 

Successed End Backup This File .

 

 

 

Begin Backup CONTROLFILE to /u01/oracle/backup2/controlfile01.ctl ...

Successed End Backup The CONTROLFILE .

 

 

 

Begin Backup CONTROLFILE To Trace ...

Successed End Backup The CONTROLFILE .

 

 

 

Before Switch Log, The Current Log is:

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2776

Next log sequence to archive 2778

Current log sequence 2778

 

 

 

Begin Backup Switch Current Log ...

Successed End Switch Log .

 

 

 

After Switch Log, The Ending Archive Log Number Is :

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2777

Next log sequence to archive 2779

Current log sequence 2779

 

 

 

Tue Oct 22 13:29:35 GMT+0700 2002

 

Start Backup Archive log (arch1) ...

 

End Backup Archive log (arch1) ...

Tue Oct 22 13:29:35 GMT+0700 2002

 

 

 

 

Tue Oct 22 13:29:35 GMT+0700 2002

 

 

 

 

SQL>

SQL> --set termout on;

SQL>

SQL> exit;

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

Tue Oct 22 13:29:38 GMT+0700 2002

oracle@sce>

 

 

 

四、确认热备正确(包括检查热备的日志)

 

oracle@sce> cd /u01/oracle/backup2

oracle@sce> ls -l

total 629293

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 adhoc

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:29 arch

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 bdump

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 cdump

-rw-r----- 1 oracle dba 4628480 Oct 22 13:29 controlfile01.ctl

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 create

-rw-r----- 1 oracle dba 88088576 Oct 22 13:29 drsys01.dbf

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 exp

-rw-r----- 1 oracle dba 20979712 Oct 22 13:29 indx01.dbf

-rw-r--r-- 1 oracle dba 4664 Oct 22 11:10 initNEW2.ora

-rw-r----- 1 oracle dba 10493952 Oct 22 13:29 lunar01.dbf

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 pfile

-rw-r----- 1 oracle dba 104865792 Oct 22 13:28 rbs01.dbf

-rw-r----- 1 oracle dba 283123712 Oct 22 13:28 system01.dbf

-rw-r----- 1 oracle dba 71311360 Oct 22 13:28 temp01.dbf

-rw-r----- 1 oracle dba 8396800 Oct 22 13:28 tools01.dbf

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 udump

-rw-r----- 1 oracle dba 52436992 Oct 22 13:29 users01.dbf

oracle@sce>

 

 

 

五、设置新的ORACLE_SID

oracle@sce> ORACLE_SID=NEW2; export ORACLE_SID

oracle@sce>

 

六、准备科隆数据库需要的文件

创建 initNEW2.ora (/u01/oracle/backup/initNEW2.ora)

db_name = "NEW2"

instance_name = NEW2

service_names = NEW2

 

control_files = ("/u01/oracle/backup2/controlfile01.ctl")

 

log_archive_start = true

log_archive_dest="/u01/oracle/backup2/arch"

log_archive_format = arch_%t_%s.arc

background_dump_dest = /u01/oracle/backup2/bdump

core_dump_dest = /u01/oracle/backup2/cdump

user_dump_dest = /u01/oracle/backup2/udump

 

为了不重建口令文件,暂时注释掉下面一行:

#remote_login_passwordfile = exclusive

 

 

修改原来的 listener.ora (/u01/oracle/OraHome1/network/admin/listener.ora)

加入:

LISTENER2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = sce)(PORT = 1522))

)

)

)

 

SID_LIST_LISTENER2 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = NEW2)

(ORACLE_HOME = /u01/oracle/OraHome1)

(SID_NAME = NEW2)

)

)

 

 

修改原来的 tnsnames.ora (/u01/oracle/OraHome1/network/admin/listener.ora)

加入:

NEW2 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = sce)(PORT = 1522))

)

(CONNECT_DATA =

(SERVICE_NAME = NEW2)

)

)

 

七、启动新数据库的监听

oracle@sce> lsnrctl

 

LSNRCTL for DEC OSF/1 AXP: Version 8.1.7.0.0 - Production on 22-OCT-2002 13:36:03

 

(c) Copyright 1998 Oracle Corporation. All rights reserved.

 

Welcome to LSNRCTL, type "help" for information.

 

LSNRCTL> start listener2

Starting /u01/oracle/OraHome1/bin/tnslsnr: please wait...

 

TNSLSNR for DEC OSF/1 AXP: Version 8.1.7.0.0 - Production

System parameter file is /u01/oracle/OraHome1/network/admin/listener.ora

Log messages written to /u01/oracle/OraHome1/network/log/listener2.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sce)(PORT=1522)))

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sce)(PORT=1522)))

STATUS of the LISTENER

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

Alias listener2

Version TNSLSNR for DEC OSF/1 AXP: Version 8.1.7.0.0 - Production

Start Date 22-OCT-2002 13:36:14

Uptime 0 days 0 hr. 0 min. 1 sec

Trace Level off

Security OFF

SNMP OFF

Listener Parameter File /u01/oracle/OraHome1/network/admin/listener.ora

Listener Log File /u01/oracle/OraHome1/network/log/listener2.log

Services Summary...

NEW2 has 1 service handler(s)

The command completed successfully

LSNRCTL> exit

oracle@sce>

 

 

====================================================================

======================这步不做===================================

====================================================================

八、用initNEW2.oranomount数据库

oracle@sce> ORACLE_SID=NEW2; export ORACLE_SID

oracle@sce> sqlplus /nolog

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:26:39 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

SQL> conn internal

Connected to an idle instance.

SQL> startup nomount pfile=/u01/oracle/backup2/initNEW2.ora

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

SQL>

 

 

====================================================================

=========================下面照做==============================================

====================================================================

九、在主数据库上用backup controlfile to trace备份控制文件

(即,创建控制文件的跟踪文件。这个是为了以后创建新数据库的控制文件用的)

oracle@sce> ORACLE_SID=SCEDB; export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 13:36:58 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> alter database backup controlfile to trace;

 

Database altered.

 

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

oracle@sce>

 

十、编辑那个跟踪文件,保存为一个sql脚本(准备创建新数据库的跟踪文件)

注意3个地方:

(1). SET DATABASE "NEW2" RESETLOGS

(2). LOGFILE

GROUP 1 '/u01/oracle/backup2/redo01.log' SIZE 500K,

GROUP 2 '/u01/oracle/backup2/redo02.log' SIZE 500K,

GROUP 3 '/u01/oracle/backup2/redo03.log' SIZE 500K

(3). DATAFILE

'/u01/oracle/backup2/system01.dbf',

'/u01/oracle/backup2/tools01.dbf',

'/u01/oracle/backup2/rbs01.dbf',

'/u01/oracle/backup2/temp01.dbf',

'/u01/oracle/backup2/users01.dbf',

'/u01/oracle/backup2/indx01.dbf',

'/u01/oracle/backup2/drsys01.dbf',

'/u01/oracle/backup2/lunar01.dbf'

 

完整的创建新控制文件的脚本如下:

CREATE CONTROLFILE SET DATABASE "NEW2" RESETLOGS ARCHIVELOG

MAXLOGFILES 32

MAXLOGMEMBERS 2

MAXDATAFILES 254

MAXINSTANCES 8

MAXLOGHISTORY 3630

LOGFILE

GROUP 1 '/u01/oracle/backup2/redo01.log' SIZE 500K,

GROUP 2 '/u01/oracle/backup2/redo02.log' SIZE 500K,

GROUP 3 '/u01/oracle/backup2/redo03.log' SIZE 500K

DATAFILE

'/u01/oracle/backup2/system01.dbf',

'/u01/oracle/backup2/tools01.dbf',

'/u01/oracle/backup2/rbs01.dbf',

'/u01/oracle/backup2/temp01.dbf',

'/u01/oracle/backup2/users01.dbf',

'/u01/oracle/backup2/indx01.dbf',

'/u01/oracle/backup2/drsys01.dbf',

'/u01/oracle/backup2/lunar01.dbf'

CHARACTER SET US7ASCII

;

 

十一、执行这个脚本,创建控制文件

====================================================================

======================这步不做===================================

====================================================================

(1).修改initNEW.ora,重新指定控制文件的名字

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

control_files = ("/u01/oracle/backup2/control01.ctl")

 

====================================================================

已经证明,如果不做这一步,下面创建控制文件就会出错:

做到第十一步的(4),就会出错

SQL> @/u01/oracle/back_script/ora_1381.sql

CREATE CONTROLFILE SET DATABASE "NEW2" RESETLOGS ARCHIVELOG

*

ERROR at line 1:

ORA-01503: CREATE CONTROLFILE failed

ORA-00200: controlfile could not be created

ORA-00202: controlfile: '/u01/oracle/backup2/controlfile01.ctl'

ORA-27038: skgfrcre: file exists

 

 

SQL>

 

如果出错,就shutdown,然后回来从这一步重新做

 

====================================================================

=========================下面照做==============================================

====================================================================

(2).设置ORACLE_SID=NEW2

oracle@sce> ORACLE_SID=NEW2; export ORACLE_SID

 

(3).pfile=/u01/oracle/backup2/initNEW2.oranomount数据库

oracle@sce> sqlplus /nolog

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:26:39 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

SQL> conn internal

Connected to an idle instance.

SQL> startup nomount pfile=/u01/oracle/backup2/initNEW2.ora

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

SQL>

 

确定是新的数据库

SQL> host

$ env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=NEW2

$ exit

 

SQL>

 

 

(4).执行创建控制文件的脚本

SQL> @/u01/oracle/back_script/ora_9413.sql

 

Control file created.

 

SQL>

这一步执行完,数据库会在initNEW2.ora中指定的位置创建控制文件

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

control_files = ("/u01/oracle/backup2/control01.ctl")

 

SQL> host

$ cd /u01/oracle/backup2

$ ls

$

可见,已经创建了control01.ctl

 

(6). shutdown数据库

SQL> shutdown immediate

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

SQL>

 

====================================================================

======================这步不做===================================

====================================================================

(7).修改initNEW2.ora中的控制文件的位置和名字

修改为

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

#control_files = ("/u01/oracle/backup2/control01.ctl")

control_files = ("/u01/oracle/backup2/control02.ctl")

 

====================================================================

=========================下面照做==============================================

====================================================================

 

(8).重新nomount pfile=/u01/oracle/backup2/initNEW2.ora

$ exit

 

SQL> startup nomount pfile=/u01/oracle/backup2/initNEW2.ora

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

SQL>

 

====================================================================

======================这步不做===================================

====================================================================

(9).再次执行那个创建控制文件的脚本

SQL> @/u01/oracle/back_script2/ora_9413.sql

 

Cluster altered.

 

SQL>

这一步执行完,数据库会在initNEW.ora中指定的位置创建控制文件

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

#control_files = ("/u01/oracle/backup2/control01.ctl")

control_files = ("/u01/oracle/backup2/control02.ctl")

 

SQL> host

$ cd /u01/oracle/backup2

$ ls

$

可见,已经创建了control02.ctl

 

 

 

十二、恢复数据库(用auto

$ exit

 

====================================================================

=========================下面照做==============================================

====================================================================

SQL> alter database mount;

 

Database altered.

 

SQL>

SQL> recover database using backup controlfile;

ORA-00279: change 557654 generated at 10/22/2002 13:27:13 needed for thread 1

ORA-00289: suggestion : /u01/oracle/backup2/arch/arch_1_2778.arc

ORA-00280: change 557654 for thread 1 is in sequence #2778

 

 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

auto ------------ " auto "

ORA-00279: change 557671 generated at 10/22/2002 13:29:34 needed for thread 1

ORA-00289: suggestion : /u01/oracle/backup2/arch/arch_1_2779.arc

ORA-00280: change 557671 for thread 1 is in sequence #2779

ORA-00278: log file '/u01/oracle/backup2/arch/arch_1_2778.arc' no longer needed

for this recovery

 

 

ORA-00308: cannot open archived log '/u01/oracle/backup2/arch/arch_1_2779.arc'

ORA-27037: unable to obtain file status

Compaq Tru64 UNIX Error: 2: No such file or directory

Additional information: 3

 

 

SQL>

 

十三、再次恢复(用cancel

与前面热备值日中的"After Switch Log"对比日志号,确保几经把全部日志都恢复了:

After Switch Log, The Ending Archive Log Number Is :

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2777

Next log sequence to archive 2779

Current log sequence 2779

 

当前是2779,那么恢复到2778完成,提示2779的时候敲"cancel"

 

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 557671 generated at 10/22/2002 13:29:34 needed for thread 1

ORA-00289: suggestion : /u01/oracle/backup2/arch/arch_1_2779.arc

ORA-00280: change 557671 for thread 1 is in sequence #2779

 

 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

cancel ------------ " cancel "

Media recovery cancelled.

SQL>

 

十四、用open resetlogs打开数据库

这一步建立了initNEW.ora中指定的redo log file,并且打开数据库

SQL> alter database open resetlogs;

 

Database altered.

 

SQL>

 

十五、验证数据是否恢复

为了方便,可以新开一个session(窗口),

并设置ORACLE_SID=SCEDB; export ORACLE_SID

然后打开老数据库,和新数据库作对比。

 

在窗口一(老数据库):

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=SCEDB

oracle@sce> sqlplus lunar/lunar

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:47:23 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

SQL> select * from test;

 

A

----------

1

2

3

 

SQL>

 

在窗口2(新数据库):

 

SQL> conn lunar/lunar

Connected.

SQL> select * from test;

 

A

----------

1

2

 

SQL>

 

 

已经验证数据库除了redo的没有回复,凡是归档的全部回复了

(参考最初的假设:

到现在为止,用户lunar的表test中有2条被归档,即 1 2

还有一条没有提交的在redo中,即3;

现在在新窗口(sqlplus internal)中做热备,当前的archive log2777

注意观察热备结束后的archive log,并记录下来,以便对照数据回复的情况。

 

结论:该热备份为有效数据库备份

 

先把刚才的两个数据库都down下来,一面空间或者资源不够,再做下面的操作:

Digital UNIX (sce) (ttyp2)

 

login: oracle

Password:

Last login: Tue Oct 22 12:03:19 from 172.31.8.6

 

Digital UNIX V4.0F (Rev. 1229); Wed Aug 22 13:04:08 CST 2001

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:32:36 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> shutdown

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

oracle@sce> df -k

Filesystem 1024-blocks Used Available Capacity Mounted on

root_domain#root 262144 92876 169268 36% /

/proc 0 0 0 100% /proc

usr_domain#usr 2097152 1347333 692072 67% /usr

oracle_domain#u01 4954600 4138102 782080 85% /u01

oracle@sce> ORACLE_SID=NEW;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:33:45 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> shutdown

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

oracle@sce>

 

 

启动数据库SCEDB,然后做下面的操作

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=SCEDB

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:36:51 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

Database mounted.

Database opened.

SQL> exit

Disconnected

oracle@sce>

 

 

 

准备工作:

检查空间是否够用,然后做下面的操作

准备一些测试数据

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=SCEDB

oracle@sce>

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:05:03 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> select * from dba_data_files;

 

FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS

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

/u01/oracle/oradata/SCEDB/system01.dbf 1 SYSTEM 283115520 34560 AVAILABLE 1 YES 3435972198 4194302 1280 283107328 34559

/u01/oracle/oradata/SCEDB/tools01.dbf 2 TOOLS 8388608 1024 AVAILABLE 2 YES 3435972198 4194302 40 8380416 1023

/u01/oracle/oradata/SCEDB/rbs01.dbf 3 RBS 104857600 12800 AVAILABLE 3 YES 3435972198 4194302 640 104849408 12799

/u01/oracle/oradata/SCEDB/temp01.dbf 4 TEMP 71303168 8704 AVAILABLE 4 YES 3435972198 4194302 80 71294976 8703

/u01/oracle/oradata/SCEDB/users01.dbf 5 USERS 52428800 6400 AVAILABLE 5 YES 3435972198 4194302 160 52420608 6399

/u01/oracle/oradata/SCEDB/indx01.dbf 6 INDX 20971520 2560 AVAILABLE 6 YES 3435972198 4194302 160 20963328 2559

/u01/oracle/oradata/SCEDB/drsys01.dbf 7 DRSYS 88080384 10752 AVAILABLE 7 YES 3435972198 4194302 80 88072192 10751

/u01/oracle/oradata/SCEDB/lunar01.dbf 8 LUNAR 10485760 1280 AVAILABLE 8 NO 0 0 0 10477568 1279

 

8 rows selected

 

SQL> select * from v$controlfile;

 

STATUS NAME

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

/u01/oracle/oradata/SCEDB/control01.ctl

/u01/oracle/oradata/SCEDB/control02.ctl

/u01/oracle/oradata/SCEDB/control03.ctl

 

SQL> select * from v$logfile;

 

GROUP# STATUS MEMBER

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

1 /u01/oracle/oradata/SCEDB/redo01.log

2 /u01/oracle/oradata/SCEDB/redo02.log

3 STALE /u01/oracle/oradata/SCEDB/redo03.log

 

SQL> select sum(bytes) from dba_data_files;

 

SUM(BYTES)

----------

639631360

 

SQL>

SQL> select file_name Datafile_name

2 , tablespace_name

3 , to_char(bytes/1024/1024) || 'M' mbytes

4 from dba_data_files

5 order by file_name

6 , tablespace_name

7 /

 

DATAFILE_NAME TABLESPACE_NAME MBYTES

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

/u01/oracle/oradata/SCEDB/drsys01.dbf DRSYS 84M

/u01/oracle/oradata/SCEDB/indx01.dbf INDX 20M

/u01/oracle/oradata/SCEDB/lunar01.dbf LUNAR 10M

/u01/oracle/oradata/SCEDB/rbs01.dbf RBS 100M

/u01/oracle/oradata/SCEDB/system01.dbf SYSTEM 270M

/u01/oracle/oradata/SCEDB/temp01.dbf TEMP 68M

/u01/oracle/oradata/SCEDB/tools01.dbf TOOLS 8M

/u01/oracle/oradata/SCEDB/users01.dbf USERS 50M

 

8 rows selected

 

SQL>

SQL> select b.file_id file_ID,

2 b.tablespace_name tablespace_name,

3 b.bytes Bytes,

4 (b.bytes-sum(nvl(a.bytes,0))) used,

5 sum(nvl(a.bytes,0)) free,

6 sum(nvl(a.bytes,0))/(b.bytes)*100 Percent

7 from dba_free_space a,dba_data_files b

8 where a.file_id=b.file_id

9 group by b.tablespace_name,b.file_id,b.bytes

10 order by b.file_id

11 /

 

FILE_ID TABLESPACE_NAME BYTES USED FREE PERCENT

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

1 SYSTEM 283115520 269959168 13156352 4.64699074

2 TOOLS 8388608 40960 8347648 99.5117187

3 RBS 104857600 20979712 83877888 79.9921875

4 TEMP 71303168 8192 71294976 99.9885110

5 USERS 52428800 8192 52420608 99.984375

6 INDX 20971520 8192 20963328 99.9609375

7 DRSYS 88080384 4333568 83746816 95.0799851

8 LUNAR 10485760 49152 10436608 99.53125

 

8 rows selected

 

SQL> conn lunar/lunar

Connected.

SQL> select * from tab;

 

TNAME TABTYPE CLUSTERID

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

TEST TABLE

 

SQL> select * from test;

 

A

----------

1

 

SQL> insert into test values(2);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> insert into test values(3);

 

1 row created.

 

SQL> select * from test;

 

A

----------

1

2

3

 

SQL>

注意 3是没提交的,2已经提交,但是2还没有被归档

也就是这两条数据都在redo中,但是状态不同

 

 

新开一个窗口作switch log

Digital UNIX (sce) (ttyp1)

 

login: oracle

Password:

Last login: Tue Oct 22 12:32:18 from 172.31.8.6

 

Digital UNIX V4.0F (Rev. 1229); Wed Aug 22 13:04:08 CST 2001

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:50:11 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2774

Next log sequence to archive 2776

Current log sequence 2776

SQL> alter system switch logfile;

 

System altered.

 

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2775

Next log sequence to archive 2777

Current log sequence 2777

SQL>

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

到现在为止,用户lunar的表test中有2条被归档,即 1 2

还有一条没有提交的在redo中,即3;

现在在新窗口(sqlplus internal)中做热备,当前的archive log2777

注意观察热备结束后的archive log,并记录下来,以便对照数据回复的情况。

 

 

 

一、确定ORACLE_SID

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:05:03 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

二、如果下列目录不存在,先创建下列目录

oracle@sce> cd /u01/oracle/backup2

 

/u01/oracle/backup2建立科隆数据库需要的目录

mkdir adhoc

mkdir bdump

mkdir cdump

mkdir arch

mkdir create

mkdir exp

mkdir udump

mkdir pfile

oracle@sce> ls

oracle@sce>

 

三、检查磁盘空间,如果够用,就创建热备

oracle@sce> df -k

Filesystem 1024-blocks Used Available Capacity Mounted on

root_domain#root 262144 92876 169268 36% /

/proc 0 0 0 100% /proc

usr_domain#usr 2097152 1347469 691936 67% /usr

oracle_domain#u01 4954600 4138277 781928 85% /u01

oracle@sce>

 

oracle@sce> cd /u01/oracle/back_script

oracle@sce> ls hotback2.sh

hotback2.sh

oracle@sce> hotback2.sh

Tue Oct 22 13:27:13 GMT+0700 2002

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 13:27:13 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

Tue Oct 22 13:27:13 GMT+0700 2002

 

 

 

 

Connected.

BEGINING ARCHIVE LOG NUMBER IS :

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2776

Next log sequence to archive 2778

Current log sequence 2778

 

 

 

Begin Backup Tablespace SYSTEM ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace TOOLS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace RBS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace TEMP ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace USERS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace INDX ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace DRSYS ...

 

Successed End Backup This File .

 

 

 

Begin Backup Tablespace LUNAR ...

 

Successed End Backup This File .

 

 

 

Begin Backup CONTROLFILE to /u01/oracle/backup2/controlfile01.ctl ...

Successed End Backup The CONTROLFILE .

 

 

 

Begin Backup CONTROLFILE To Trace ...

Successed End Backup The CONTROLFILE .

 

 

 

Before Switch Log, The Current Log is:

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2776

Next log sequence to archive 2778

Current log sequence 2778

 

 

 

Begin Backup Switch Current Log ...

Successed End Switch Log .

 

 

 

After Switch Log, The Ending Archive Log Number Is :

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2777

Next log sequence to archive 2779

Current log sequence 2779

 

 

 

Tue Oct 22 13:29:35 GMT+0700 2002

 

Start Backup Archive log (arch1) ...

 

End Backup Archive log (arch1) ...

Tue Oct 22 13:29:35 GMT+0700 2002

 

 

 

 

Tue Oct 22 13:29:35 GMT+0700 2002

 

 

 

 

SQL>

SQL> --set termout on;

SQL>

SQL> exit;

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

Tue Oct 22 13:29:38 GMT+0700 2002

oracle@sce>

 

 

 

四、确认热备正确(包括检查热备的日志)

 

oracle@sce> cd /u01/oracle/backup2

oracle@sce> ls -l

total 629293

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 adhoc

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:29 arch

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 bdump

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 cdump

-rw-r----- 1 oracle dba 4628480 Oct 22 13:29 controlfile01.ctl

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 create

-rw-r----- 1 oracle dba 88088576 Oct 22 13:29 drsys01.dbf

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 exp

-rw-r----- 1 oracle dba 20979712 Oct 22 13:29 indx01.dbf

-rw-r--r-- 1 oracle dba 4664 Oct 22 11:10 initNEW2.ora

-rw-r----- 1 oracle dba 10493952 Oct 22 13:29 lunar01.dbf

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 pfile

-rw-r----- 1 oracle dba 104865792 Oct 22 13:28 rbs01.dbf

-rw-r----- 1 oracle dba 283123712 Oct 22 13:28 system01.dbf

-rw-r----- 1 oracle dba 71311360 Oct 22 13:28 temp01.dbf

-rw-r----- 1 oracle dba 8396800 Oct 22 13:28 tools01.dbf

drwxr-xr-x 2 oracle dba 8192 Oct 22 13:03 udump

-rw-r----- 1 oracle dba 52436992 Oct 22 13:29 users01.dbf

oracle@sce>

 

 

 

五、设置新的ORACLE_SID

oracle@sce> ORACLE_SID=NEW2; export ORACLE_SID

oracle@sce>

 

六、准备科隆数据库需要的文件

创建 initNEW2.ora (/u01/oracle/backup/initNEW2.ora)

db_name = "NEW2"

instance_name = NEW2

service_names = NEW2

 

control_files = ("/u01/oracle/backup2/controlfile01.ctl")

 

log_archive_start = true

log_archive_dest="/u01/oracle/backup2/arch"

log_archive_format = arch_%t_%s.arc

background_dump_dest = /u01/oracle/backup2/bdump

core_dump_dest = /u01/oracle/backup2/cdump

user_dump_dest = /u01/oracle/backup2/udump

 

为了不重建口令文件,暂时注释掉下面一行:

#remote_login_passwordfile = exclusive

 

 

修改原来的 listener.ora (/u01/oracle/OraHome1/network/admin/listener.ora)

加入:

LISTENER2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = sce)(PORT = 1522))

)

)

)

 

SID_LIST_LISTENER2 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = NEW2)

(ORACLE_HOME = /u01/oracle/OraHome1)

(SID_NAME = NEW2)

)

)

 

 

修改原来的 tnsnames.ora (/u01/oracle/OraHome1/network/admin/listener.ora)

加入:

NEW2 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = sce)(PORT = 1522))

)

(CONNECT_DATA =

(SERVICE_NAME = NEW2)

)

)

 

七、启动新数据库的监听

oracle@sce> lsnrctl

 

LSNRCTL for DEC OSF/1 AXP: Version 8.1.7.0.0 - Production on 22-OCT-2002 13:36:03

 

(c) Copyright 1998 Oracle Corporation. All rights reserved.

 

Welcome to LSNRCTL, type "help" for information.

 

LSNRCTL> start listener2

Starting /u01/oracle/OraHome1/bin/tnslsnr: please wait...

 

TNSLSNR for DEC OSF/1 AXP: Version 8.1.7.0.0 - Production

System parameter file is /u01/oracle/OraHome1/network/admin/listener.ora

Log messages written to /u01/oracle/OraHome1/network/log/listener2.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sce)(PORT=1522)))

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sce)(PORT=1522)))

STATUS of the LISTENER

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

Alias listener2

Version TNSLSNR for DEC OSF/1 AXP: Version 8.1.7.0.0 - Production

Start Date 22-OCT-2002 13:36:14

Uptime 0 days 0 hr. 0 min. 1 sec

Trace Level off

Security OFF

SNMP OFF

Listener Parameter File /u01/oracle/OraHome1/network/admin/listener.ora

Listener Log File /u01/oracle/OraHome1/network/log/listener2.log

Services Summary...

NEW2 has 1 service handler(s)

The command completed successfully

LSNRCTL> exit

oracle@sce>

 

 

====================================================================

======================这步不做===================================

====================================================================

八、用initNEW2.oranomount数据库

oracle@sce> ORACLE_SID=NEW2; export ORACLE_SID

oracle@sce> sqlplus /nolog

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:26:39 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

SQL> conn internal

Connected to an idle instance.

SQL> startup nomount pfile=/u01/oracle/backup2/initNEW2.ora

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

SQL>

 

 

====================================================================

=========================下面照做==============================================

====================================================================

九、在主数据库上用backup controlfile to trace备份控制文件

(即,创建控制文件的跟踪文件。这个是为了以后创建新数据库的控制文件用的)

oracle@sce> ORACLE_SID=SCEDB; export ORACLE_SID

oracle@sce> sqlplus internal

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 13:36:58 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

 

SQL> alter database backup controlfile to trace;

 

Database altered.

 

SQL> exit

Disconnected from Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

oracle@sce>

 

十、编辑那个跟踪文件,保存为一个sql脚本(准备创建新数据库的跟踪文件)

注意3个地方:

(1). SET DATABASE "NEW2" RESETLOGS

(2). LOGFILE

GROUP 1 '/u01/oracle/backup2/redo01.log' SIZE 500K,

GROUP 2 '/u01/oracle/backup2/redo02.log' SIZE 500K,

GROUP 3 '/u01/oracle/backup2/redo03.log' SIZE 500K

(3). DATAFILE

'/u01/oracle/backup2/system01.dbf',

'/u01/oracle/backup2/tools01.dbf',

'/u01/oracle/backup2/rbs01.dbf',

'/u01/oracle/backup2/temp01.dbf',

'/u01/oracle/backup2/users01.dbf',

'/u01/oracle/backup2/indx01.dbf',

'/u01/oracle/backup2/drsys01.dbf',

'/u01/oracle/backup2/lunar01.dbf'

 

完整的创建新控制文件的脚本如下:

CREATE CONTROLFILE SET DATABASE "NEW2" RESETLOGS ARCHIVELOG

MAXLOGFILES 32

MAXLOGMEMBERS 2

MAXDATAFILES 254

MAXINSTANCES 8

MAXLOGHISTORY 3630

LOGFILE

GROUP 1 '/u01/oracle/backup2/redo01.log' SIZE 500K,

GROUP 2 '/u01/oracle/backup2/redo02.log' SIZE 500K,

GROUP 3 '/u01/oracle/backup2/redo03.log' SIZE 500K

DATAFILE

'/u01/oracle/backup2/system01.dbf',

'/u01/oracle/backup2/tools01.dbf',

'/u01/oracle/backup2/rbs01.dbf',

'/u01/oracle/backup2/temp01.dbf',

'/u01/oracle/backup2/users01.dbf',

'/u01/oracle/backup2/indx01.dbf',

'/u01/oracle/backup2/drsys01.dbf',

'/u01/oracle/backup2/lunar01.dbf'

CHARACTER SET US7ASCII

;

 

十一、执行这个脚本,创建控制文件

====================================================================

======================这步不做===================================

====================================================================

(1).修改initNEW.ora,重新指定控制文件的名字

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

control_files = ("/u01/oracle/backup2/control01.ctl")

 

====================================================================

已经证明,如果不做这一步,下面创建控制文件就会出错:

做到第十一步的(4),就会出错

SQL> @/u01/oracle/back_script/ora_1381.sql

CREATE CONTROLFILE SET DATABASE "NEW2" RESETLOGS ARCHIVELOG

*

ERROR at line 1:

ORA-01503: CREATE CONTROLFILE failed

ORA-00200: controlfile could not be created

ORA-00202: controlfile: '/u01/oracle/backup2/controlfile01.ctl'

ORA-27038: skgfrcre: file exists

 

 

SQL>

 

如果出错,就shutdown,然后回来从这一步重新做

 

====================================================================

=========================下面照做==============================================

====================================================================

(2).设置ORACLE_SID=NEW2

oracle@sce> ORACLE_SID=NEW2; export ORACLE_SID

 

(3).pfile=/u01/oracle/backup2/initNEW2.oranomount数据库

oracle@sce> sqlplus /nolog

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 08:26:39 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

SQL> conn internal

Connected to an idle instance.

SQL> startup nomount pfile=/u01/oracle/backup2/initNEW2.ora

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

SQL>

 

确定是新的数据库

SQL> host

$ env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=NEW2

$ exit

 

SQL>

 

 

(4).执行创建控制文件的脚本

SQL> @/u01/oracle/back_script/ora_9413.sql

 

Control file created.

 

SQL>

这一步执行完,数据库会在initNEW2.ora中指定的位置创建控制文件

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

control_files = ("/u01/oracle/backup2/control01.ctl")

 

SQL> host

$ cd /u01/oracle/backup2

$ ls

$

可见,已经创建了control01.ctl

 

(6). shutdown数据库

SQL> shutdown immediate

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

SQL>

 

====================================================================

======================这步不做===================================

====================================================================

(7).修改initNEW2.ora中的控制文件的位置和名字

修改为

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

#control_files = ("/u01/oracle/backup2/control01.ctl")

control_files = ("/u01/oracle/backup2/control02.ctl")

 

====================================================================

=========================下面照做==============================================

====================================================================

 

(8).重新nomount pfile=/u01/oracle/backup2/initNEW2.ora

$ exit

 

SQL> startup nomount pfile=/u01/oracle/backup2/initNEW2.ora

ORACLE instance started.

 

Total System Global Area 241939428 bytes

Fixed Size 103396 bytes

Variable Size 82542592 bytes

Database Buffers 159113216 bytes

Redo Buffers 180224 bytes

SQL>

 

====================================================================

======================这步不做===================================

====================================================================

(9).再次执行那个创建控制文件的脚本

SQL> @/u01/oracle/back_script2/ora_9413.sql

 

Cluster altered.

 

SQL>

这一步执行完,数据库会在initNEW.ora中指定的位置创建控制文件

#control_files = ("/u01/oracle/backup2/controlfile01.ctl")

#control_files = ("/u01/oracle/backup2/control01.ctl")

control_files = ("/u01/oracle/backup2/control02.ctl")

 

SQL> host

$ cd /u01/oracle/backup2

$ ls

$

可见,已经创建了control02.ctl

 

 

 

十二、恢复数据库(用auto

$ exit

 

====================================================================

=========================下面照做==============================================

====================================================================

SQL> alter database mount;

 

Database altered.

 

SQL>

SQL> recover database using backup controlfile;

ORA-00279: change 557654 generated at 10/22/2002 13:27:13 needed for thread 1

ORA-00289: suggestion : /u01/oracle/backup2/arch/arch_1_2778.arc

ORA-00280: change 557654 for thread 1 is in sequence #2778

 

 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

auto ------------ " auto "

ORA-00279: change 557671 generated at 10/22/2002 13:29:34 needed for thread 1

ORA-00289: suggestion : /u01/oracle/backup2/arch/arch_1_2779.arc

ORA-00280: change 557671 for thread 1 is in sequence #2779

ORA-00278: log file '/u01/oracle/backup2/arch/arch_1_2778.arc' no longer needed

for this recovery

 

 

ORA-00308: cannot open archived log '/u01/oracle/backup2/arch/arch_1_2779.arc'

ORA-27037: unable to obtain file status

Compaq Tru64 UNIX Error: 2: No such file or directory

Additional information: 3

 

 

SQL>

 

十三、再次恢复(用cancel

与前面热备值日中的"After Switch Log"对比日志号,确保几经把全部日志都恢复了:

After Switch Log, The Ending Archive Log Number Is :

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/admin/SCEDB/arch

Oldest online log sequence 2777

Next log sequence to archive 2779

Current log sequence 2779

 

当前是2779,那么恢复到2778完成,提示2779的时候敲"cancel"

 

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 557671 generated at 10/22/2002 13:29:34 needed for thread 1

ORA-00289: suggestion : /u01/oracle/backup2/arch/arch_1_2779.arc

ORA-00280: change 557671 for thread 1 is in sequence #2779

 

 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

cancel ------------ " cancel "

Media recovery cancelled.

SQL>

 

十四、用open resetlogs打开数据库

这一步建立了initNEW.ora中指定的redo log file,并且打开数据库

SQL> alter database open resetlogs;

 

Database altered.

 

SQL>

 

十五、验证数据是否恢复

为了方便,可以新开一个session(窗口),

并设置ORACLE_SID=SCEDB; export ORACLE_SID

然后打开老数据库,和新数据库作对比。

 

在窗口一(老数据库):

oracle@sce> ORACLE_SID=SCEDB;export ORACLE_SID

oracle@sce> env | grep ORACLE

ORACLE_BASE=/u01/oracle

ORACLE_HOME=/u01/oracle/OraHome1

ORACLE_SID=SCEDB

oracle@sce> sqlplus lunar/lunar

 

SQL*Plus: Release 8.1.7.0.0 - Production on Tue Oct 22 12:47:23 2002

 

(c) Copyright 2000 Oracle Corporation. All rights reserved.

 

 

Connected to:

Oracle8i Release 8.1.7.0.0 - Production

JServer Release 8.1.7.0.0 - Production

SQL> select * from test;

 

A

----------

1

2

3

 

SQL>

 

在窗口2(新数据库):

 

SQL> conn lunar/lunar

Connected.

SQL> select * from test;

 

A

----------

1

2

 

SQL>

 

 

已经验证数据库除了redo的没有回复,凡是归档的全部回复了

(参考最初的假设:

到现在为止,用户lunar的表test中有2条被归档,即 1 2

还有一条没有提交的在redo中,即3;

现在在新窗口(sqlplus internal)中做热备,当前的archive log2777

注意观察热备结束后的archive log,并记录下来,以便对照数据回复的情况。

 

结论:该热备份为有效数据库备份

 

原创粉丝点击