一:先构建数据库冷备份脚本文件
SQL> spool c:bk.log
SQL> select 'host copy ' || name ||' E:\oracleCopy\' from v$datafile
2 union
3 select 'host copy ' || name ||' E:\oracleCopy\' from v$controlfile
4 union
5 select 'host copy ' || name ||' E:\oracleCopy\' from v$tempfile
6 union
7 select 'host copy ' || member ||' E:\oracleCopy\' from v$logfile;
'HOSTCOPY'||NAME||'E:\ORACLECOPY\'
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
host copy F:\ORACLE\PRODUCT\10.1.0\ORACONTROL\CONTROL01.CTL E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORACONTROL\CONTROL02.CTL E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORACONTROL\CONTROL03.CTL E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\DUQ_TEST_TBS01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\SYSAUX01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\SYSTEM01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\TEMP01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\UNDOTBS01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\USERS01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORALOG\REDO01.LOG E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORALOG\REDO02.LOG E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORALOG\REDO03.LOG E:\oracleCopy\
已选择12行。
SQL> spool off;
已用时间: 00: 00: 00.06
二:修改备份脚本文件中的部分内容。
然后在脚本文件bk.log的开始部分添加shutdown immediate,在该文件的结束部分添加startup,另外加上参数文件(服务器参数文件和初始化参数文件)和密码文件(路径:oracle_home\database,名称格式:pwd+sid.ora)的备份命令。
查看服务器参数文件所在路径:
SQL> SHOW PARAMETER SPF
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string F:\ORACLE\PRODUCT\10.1.0\DB_1\
DATABASE\SPFILEOAMIS.ORA
注意:E盘下的oracleCopy目录必须存在,不然的话在copy的时候系统会提示:‘系统找不到指定的路径。’
三:执行冷备份脚本命令
SQL> @c:\bk1.log
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
数据库已经打开。
所有被备份的文件在E:\oracleCopy\目录下。以后如果需要恢复数据库
只需要把该目录下的所有文件分别copy到数据库对象的目录下即可。
SQL> spool c:bk.log
SQL> select 'host copy ' || name ||' E:\oracleCopy\' from v$datafile
2 union
3 select 'host copy ' || name ||' E:\oracleCopy\' from v$controlfile
4 union
5 select 'host copy ' || name ||' E:\oracleCopy\' from v$tempfile
6 union
7 select 'host copy ' || member ||' E:\oracleCopy\' from v$logfile;
'HOSTCOPY'||NAME||'E:\ORACLECOPY\'
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
host copy F:\ORACLE\PRODUCT\10.1.0\ORACONTROL\CONTROL01.CTL E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORACONTROL\CONTROL02.CTL E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORACONTROL\CONTROL03.CTL E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\DUQ_TEST_TBS01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\SYSAUX01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\SYSTEM01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\TEMP01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\UNDOTBS01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\OAMIS\USERS01.DBF E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORALOG\REDO01.LOG E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORALOG\REDO02.LOG E:\oracleCopy\
host copy F:\ORACLE\PRODUCT\10.1.0\ORALOG\REDO03.LOG E:\oracleCopy\
已选择12行。
SQL> spool off;
已用时间: 00: 00: 00.06
二:修改备份脚本文件中的部分内容。
然后在脚本文件bk.log的开始部分添加shutdown immediate,在该文件的结束部分添加startup,另外加上参数文件(服务器参数文件和初始化参数文件)和密码文件(路径:oracle_home\database,名称格式:pwd+sid.ora)的备份命令。
查看服务器参数文件所在路径:
SQL> SHOW PARAMETER SPF
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string F:\ORACLE\PRODUCT\10.1.0\DB_1\
DATABASE\SPFILEOAMIS.ORA
注意:E盘下的oracleCopy目录必须存在,不然的话在copy的时候系统会提示:‘系统找不到指定的路径。’
三:执行冷备份脚本命令
SQL> @c:\bk1.log
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
数据库已经打开。
所有被备份的文件在E:\oracleCopy\目录下。以后如果需要恢复数据库
只需要把该目录下的所有文件分别copy到数据库对象的目录下即可。