oracle 学习 热备份 冷备份

时间:2022-09-23 15:15:50
冷备份就是把数据库停掉 然后把数据拷   热备份 就是在数据库运行时备份
下面是我操作的一点备份
 
把你敲的命令输出到文件 可以这样
首先: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