克隆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 log为2777,
注意观察热备结束后的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.ora来nomount数据库
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.ora来nomount数据库
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 log为2777,
注意观察热备结束后的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 log为2777,
注意观察热备结束后的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.ora来nomount数据库
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.ora来nomount数据库
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 log为2777,
注意观察热备结束后的archive log,并记录下来,以便对照数据回复的情况。
)
结论:该热备份为有效数据库备份
- 克隆ops的过程
- centos7 克隆后的虚拟机配置过程
- centos7 克隆后的虚拟机配置过程
- pcie 对rc操作的ops
- 基于容器编排的Dev/Ops流程
- Oracle并行服务器(OPS)就是RAC的前身
- Android APP OPS移除应用程序项目的修改方法
- TensorFlow中的一个重要ops---MatMul的实现(二)
- 修改 Ops Manager 的安装和产品模板文件
- 沪江基于容器编排的Dev/Ops流程
- Linux CPU core的电源管理(3)_cpu ops
- dev-ops
- RDDTransformation Ops
- App Ops
- java的克隆(深克隆和浅克隆)
- 深克隆和浅克隆的概念
- java的深克隆与浅克隆
- Java的浅克隆与深克隆
- 好消息:SqlServer2005
- 成功人生的10个故事
- WebService 简捷开发接口发布
- 我的第一篇文章
- 在一个机器上建立standby database 的经历
- 克隆ops的过程
- kingofark关于学习C++和编程的50个观点
- 每个开发人员现在应该下载的十种必备工具
- dd命令的测试
- kingofark关于学习C++和编程的另外35个观点
- 让您的网站拥有MSDN资源库搜索功能
- 简单SQL语句总结
- 旧数据文件,旧控制文件,新日志,怎样恢复?
- Windows多线程多任务设计初步 vczxvc在线