冷备份就是把数据库停掉 然后把数据拷 热备份 就是在数据库运行时备份
下面是我操作的一点备份
把你敲的命令输出到文件 可以这样
首先:spool c:/test.txt将 spool打开 并制定一个文件 在你 想关闭的时候 spool off 就ok了
下面是命令
SQL> archive log lisg;
SP2-0718: 非法的 ARCHIVE LOG 选项
SQL> archive log list //要想热备份 必须确定数据库是归档模式的
数据库日志模式 存档模式 //此数据库是归档模式的
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 62
下一个存档日志序列 64
当前日志序列 64
SQL> edit c:/archive.cvs
SQL> alter system set log_archive_start=false scope=spfile // 归档模式的转换 systme用户 设为归档
2 ;
系统已更改。
SQL> startup mount
ORA-32004: 指定了废弃/过时的参数
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown immediate; //关闭数据库
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup database mount //打开数据库 只打开控制文件 不打开数据文件
SP2-0714: 无效的 STARTUP 选项组合
SQL> startup mount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 150994944 bytes
Fixed Size 787888 bytes
Variable Size 124516944 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
SQL> alter database noarchivelog //将数据库设为非归档模式
2 ;
数据库已更改。
SQL> alter database open; //打开数据文件
数据库已更改。
SQL> alter system set log_archive_log=true scope=spfile;
alter system set log_archive_log=true scope=spfile
*
第 1 行出现错误:
ORA-02065: 非法的 ALTER SYSTEM 选项
SQL>
alter system set log_archive_start=true scope=spfile; //下面是设为归档模式
系统已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 150994944 bytes
Fixed Size 787888 bytes
Variable Size 124516944 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 62
下一个存档日志序列 64
当前日志序列 64
SQL>
alter tablespace system begin backup; //开始备份system表空间
表空间已更改。
//这时你就可以copy了 呵呵
SQL>
alter tablespace system end backup; //结束备份
表空间已更改。
SQL>
alter system archive log current; //将system 归档开始
系统已更改。
SQL>
alter system switch logfile; //并切换三个非归档文件
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> shutdown immediate; //关闭数据库
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup //下面做了个测试 将system。dbf文件删掉了 呵呵 出错了
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 150994944 bytes
Fixed Size 787888 bytes
Variable Size 124516944 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1: 'F:/ORACLE/PRODUCT/10.1.0/ORADATA/ORCL/SYSTEM01.DBF' //找不到文件1 路径是。。。
SQL> select * from v$recover_file; //从归档的文件中查看一下错误
1 ONLINE ONLINE
FILE NOT FOUND 0
SQL>
alter database datafile 1 offline drop; //一般情况下将错误的文件 脱机 就不会影响其他的使用 但是system好 //像不可以 ,将其offerline 然后恢复
数据库已更改。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01147: SYSTEM 表空间文件 1 处于脱机状态
ORA-01110: 数据文件 1: 'F:/ORACLE/PRODUCT/10.1.0/ORADATA/ORCL/SYSTEM01.DBF'
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01147: SYSTEM 表空间文件 1 处于脱机状态
ORA-01110: 数据文件 1: 'F:/ORACLE/PRODUCT/10.1.0/ORADATA/ORCL/SYSTEM01.DBF'
SQL>
recover datafile 1; //恢复文件1
ORA-00279: 更改 1263612 (在 07/29/2008 16:16:15 生成) 对于线程 1 是必需的
ORA-00289: 建议:
F:/ORACLE/PRODUCT/10.1.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVELOG/2008_07_29/O1_MF_1_
64_%U_.ARC
ORA-00280: 更改 1263612 (用于线程 1) 在序列 #64 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 1263657 (在 07/29/2008 16:17:54 生成) 对于线程 1 是必需的
ORA-00289: 建议:
F:/ORACLE/PRODUCT/10.1.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVELOG/2008_07_29/O1_MF_1_
65_%U_.ARC
ORA-00280: 更改 1263657 (用于线程 1) 在序列 #65 中
ORA-00278: 此恢复不再需要日志文件
'F:/ORACLE/PRODUCT/10.1.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVELOG/2008_07_29/O1_MF_1
_64_48XNKM2G_.ARC'
已应用的日志。
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01147: SYSTEM 表空间文件 1 处于脱机状态
ORA-01110: 数据文件 1: 'F:/ORACLE/PRODUCT/10.1.0/ORADATA/ORCL/SYSTEM01.DBF'
SQL>
alter datafile 1 online; //将文件设为 online 问题解决 呵呵
alter datafile 1 online
*
第 1 行出现错误:
ORA-00940: 无效的 ALTER 命令
SQL> alter database datafile 1 online;
数据库已更改。
SQL> database open;
SP2-0734: 未知的命令开头 "database o..." - 忽略了剩余的行。
SQL> alter database open;
数据库已更改。
SQL> spool off;
总结一下 :热备份 及 恢复错误文件
热备份
1 归档模式
2 备份
恢复
1 设为offline
2 恢复
3 设为online