加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 11g 冷备和热备

发布时间:2020-12-12 14:16:14 所属栏目:百科 来源:网络整理
导读:通过手工管理数据库备份的方式通常是在对数据库进行文件方面的操作,这个过程需要管理员全面参与并且手工完成。与使用RMAN不同的是手工管理不再完全依赖系统定义的参数进行配置。 手工冷备步骤 在完全关闭数据库的情况下,我们可以通过拷贝数据库的数据文件

通过手工管理数据库备份的方式通常是在对数据库进行文件方面的操作,这个过程需要管理员全面参与并且手工完成。与使用RMAN不同的是手工管理不再完全依赖系统定义的参数进行配置。


手工冷备步骤

在完全关闭数据库的情况下,我们可以通过拷贝数据库的数据文件,控制文件和重做日志文件来完整的备份数据库。

首先查看文件位置:

SQL>selectfile_namefromdba_data_files;
SQL>selectnamefromv$controlfile;
SQL>selectgroup#,member,statusfromv$logfile;

安全关闭数据库:

SQL>shutdownimmediate;

然后依次创建datafile,controlfile,redofile三个备份目录,将对应文件一次拷贝到这三个目录即可。

对数据库恢复也只需要将备份的数据拷贝到原来的位置,然后启动数据库即可。


手工热备步骤

在使用联机热备功能的时候需要将数据置于归档模式.

SQL>archiveloglist;
Databaselogmode	ArchiveMode
Automaticarchival	Enabled
Archivedestination	USE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence27
Nextlogsequencetoarchive29
Currentlogsequence	29
SQL>

显示处于开启状态。查看进程状态正常:

[root@temp-test~]#ps-ef|greparc
oracle872410Nov06?00:00:02ora_arc0_orcl
oracle872610Nov06?00:00:04ora_arc1_orcl
oracle872810Nov06?00:00:02ora_arc2_orcl
oracle873010Nov06?00:00:02ora_arc3_orcl

设置归档日志文件的冗余,保证数据安全:

查看归档日志相关参数:

SQL>showparameterlog_archive_dest;

新建三个目录,分别存放三分相同的归档日志作为冗余备份:

[oracle@temp-test~]$mkdir-p/data/app/backup/arc{1..3}
[oracle@temp-test~]$ll/data/app/backup/
total0
drwxr-xr-x2oracleoinstall6Nov713:44arc1
drwxr-xr-x2oracleoinstall6Nov713:44arc2
drwxr-xr-x2oracleoinstall6Nov713:44arc3

设置3个归档目录:

SQL>altersystemsetlog_archive_dest_1='location=/data/app/backup/arc1mandatory';
Systemaltered.
SQL>altersystemsetlog_archive_dest_2='location=/data/app/backup/arc2optional';
Systemaltered.
SQL>altersystemsetlog_archive_dest_3='location=/data/app/backup/arc3';
Systemaltered.

查看设置信息:

SQL>showparameterlog_archive;

mandatory表示强制日志归档的目录,要求日志数据必须归档成功后才可以切换,optional是可选的归档不成功也可以切换日志,如果optional目录损坏,不影响日志归档。

执行日志切换,归档文件会保存到指定的目录中:

SQL>altersystemswitchlogfile;
Systemaltered.

生成三份相同的归档文件:

[oracle@temp-testbackup]$tree/data/app/backup/
/data/app/backup/
├──arc1
│└──1_29_959021937.dbf
├──arc2
│└──1_29_959021937.dbf
└──arc3
└──1_29_959021937.dbf

设置最少必须归档成功的日志数量,必须成功两份:

SQL>altersystemsetlog_archive_min_succeed_dest=2;
Systemaltered.
SQL>showparameterlog_archive_min_succeed_Dest;
NAMETYPEVALUE
-----------------------------------------------------------------------------
log_archive_min_succeed_destinteger2

由于总共只有三个冗余文件,如果设置的数量大于3会报错。

备份数据,查看表空间对应的数据文件:

SQL>colfile_namefora47
SQL>coltablespace_namefora10
SQL>selectfile_id,file_name,tablespace_namefromdba_data_files;
FILE_IDFILE_NAMETABLESPACE
-------------------------------------------------------------------
4/data/app/oracle/oradata/orcl/users01.dbfUSERS
3/data/app/oracle/oradata/orcl/undotbs01.dbfUNDOTBS1
2/data/app/oracle/oradata/orcl/sysaux01.dbfSYSAUX
1/data/app/oracle/oradata/orcl/system01.dbfSYSTEM
5/data/app/oracle/oradata/orcl/example01.dbfEXAMPLE

这里我们备份USER表,ID为4,将表置于备份模式:

SQL>altertablespaceusersbeginbackup;
Tablespacealtered.

查看备份状态,ID为4的user表显示为active:

SQL>select*fromv$backup;
FILE#STATUSCHANGE#TIME
-----------------------------------------------
1NOTACTIVE0
2NOTACTIVE0
3NOTACTIVE0
4ACTIVE152962407-NOV-17
5NOTACTIVE0

然后直接使用系统的cp命令,拷贝对应目录下的数据文件,到备份目录即可。然后结束备份模式:

SQL>altertablespaceusersendbackup;
Tablespacealtered.
SQL>select*fromv$backup;
FILE#STATUSCHANGE#TIME
-----------------------------------------------
1NOTACTIVE0
2NOTACTIVE0
3NOTACTIVE0
4NOTACTIVE152962407-NOV-17
5NOTACTIVE0

将当前重做日志信息写入归档日志文件:

SQL>altersystemarchivelogcurrent;
Systemaltered.
#一段时间后,检查点恢复一致
SQL>selectcheckpoint_change#,file#fromv$datafile;
CHECKPOINT_CHANGE#FILE#
----------------------------
15306031
15306032
15306033
15306034
15306035

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读