- 查看归档模式状态
ARCHIVE LOG LIST - 冷备份.
a.) 查询v$controlfile获取控制文件信息
b.) 查询v$logfile获取重做日志信息
c.) 查询dba_data_files, v$datafile, v$tablespace获取数据文件与表空间对应关系,和文件信息.
d.) 使用show parameter pfile获取参数文件信息.
e.) 如果是归档模式下的冷备份,使用show parameter log_archive_;获取归档日志的目录信息.
f.) 如果pfile使用的是spfile,使用CREATE PFILE = "路径" FROM SPFILE;生成
g.)关闭数据库
h)复制所有文件,最好包含口令文件.
i.)启动数据库 - 冷恢复
a.)关闭数据库
b.)复制所有备份的文件到原来位置
c.)启动数据库 - 文件原位置不可用时.
在mount状态下使用 ALTER DATABASE RENAME FILE 'xxx' TO 'yyy';
之后启动数据库即可 - 控制文件原位置不可用时.
修改参数文件相应信息,并以修改后的参数文件启动.
- 启动归档模式,改变模式后需要做全数据库冷备份.在MOUNT状态下使用:
ALTER DATABASE ARCHIVELOG;
10g之前需要手动启动归档进程,10g之后自动就会启动.手动启动进程:
ALTER SYSTEM ARCHIVE LOG START;
或设置静态参数ALTER SYSTEM SET LOG_ARCHIVE_START = TRUE SCOPE=SPFILE; (10g之后被舍弃) - 立即进行归档
ALTER SYSTEM ARCHIVE LOG CURRENT - 设置可启动的归档进程数
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = n; - 设置归档日志储存路径.(最多十个). 如果不做设置的话,默认使用系统参数DB_RECOVERY_FILE_DEST对应的目录.
ALTER SYSTEM SET LOG_ARCHIVE_DEST_n = "路径"; (n = 1至10)
路径后加" MANDATORY"如 = "c:/backup/ MANDATORY" 意思是本路径下的归档文件为必须,对应文件没写成功之前相应重做日志不可被覆盖.
加" OPTIONAL"则为可选,也是默认模式.
建议至少有两组必须的归档日志(可通过下面的另一参数灵活设置其位置) - 查询归档目录信息
SHOW PARAMETER LOG_ARCHIVE_DEST_;
其中log_archive_dest_state_n 是目录是否启用的信息
也可以用一下SQL查询:
SELECT DESTINATION, BINDING, TARGET, STATUS FROM v$archive_dest; - 设置最小成功备份路径.除强制需要备份成功的路境外,系统保证至少有相应数量的路径下的归档日志成功生成.否则相应重做日志不可被覆盖.
ALTER SYSTEM SET LOG_ARCHIVE_MIN_SUCCEED_DEST = n; - 停用设定好的某一归档路径.注意暂时停用的归档路径在恢复后需要手工补上中间缺失的归档日志文件.
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER;
恢复: ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = ENABLE;
- 查询当前是否有文件在联机备份.
SELECT * FROM v$backup; - 备份某个表空间
a.) ALTER TABLESPACE xxx BEGIN BACKUP;
b.) 复制文件
c.) ALTER TABLESPACE xxx END BACKUP;
d.) 查询 v$backup, dba_data_files, dba_tablespaces
e.) 立即执行归档 ALTER SYSTEM ARCHIVE LOG CURRENT
f.) 确认归档成功 SELECT sequence#, first_change#, to_char(first_time, 'RR-MM-DD HH:MM:SS'), next_change#,stamp FROM v$log_history;
如果在备份过程中系统崩溃,这时因为之前表空间对应的数据文件被锁住,造成版本不一致而无法启动数据库.此时在MOUNT状态下执行:
ALTER DATABASE DATAFILE '对应文件' END BACKUP;
或
ALTER DATABASE END BACKUP;
注意此时之前进行中的备份不可信赖,应重新操作.
- 确认当前表空间和数据文件状态
SELECT file_id, file_name, online_status, tablespace_name FROM dba_data_files;
和
SELECT tablespace_name,status FROM dba_tablespaces; - 查询存在问题的表空间或文件.
SELECT * FROM v$recovery_file;
和
SELECT * FROM v$recovery_log; - 联机恢复
a.)脱机有问题的表空间或数据文件
ALTER TABLESPACE xxx OFFLINE;
或
ALTER DATABASE DATAFILE 'xxx'|编号 OFFLINE;
b.)执行以上四个查询确认状态
c.)复制文件
d.)上线表空间或数据文件
ALTER TABLESPACE xxx ONLINE;
或
ALTER DATABASE DATAFILE 'xxx'|编号 ONLINE;
如有需要介质恢复(recover)的,执行:
recover datafile 相应文件名或编号;
或
recover tablespace 表空间名;
或
recover database;
并再次执行上线.
e.) 再次确认状态 - 重建无备份文件
ALTER DATABASE CREATE DATAFILE '原文件名';
或
ALTER DATABASE CREATE DATAFILE '原文件名' AS '新文件名';
并执行recover - 数据库无法开始时,可以先将有问题的表空间或数据文件offline之后先开启数据库提供服务.然后进行联机恢复.
- 文件原位置不可用时.
在mount状态下使用 ALTER DATABASE RENAME FILE 'xxx' TO 'yyy';
然后在新的位置对文件进行联机恢复.
Oracle常用备份与恢复操作
最新推荐文章于 2023-09-11 08:32:33 发布