Oracle数据库冷备份与热备份操作梳理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库冷备份与热备份操作梳理相关的知识,希望对你有一定的参考价值。
Oracle数据库的备份方式有冷备份和热备份两种,针对这两种备份的实施过程记录如下:
一、Oracle冷备份
概念
数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份
适合于非归档模式(noarchivelog)下,数据库处于一致性状态
步骤
- 首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库(shutdown)
- 再执行拷贝物理文家到备份路径或备份设备
- 备份完成后立即启动数据库让其提供正常的服务
冷备脚本的写法
首先应该在相关视图里查出数据库的数据文件,日志文件,控制文件,临时文件所在的位置
注意:不要直接在oradata下进行cp就行了,因为生产库里各个文件通常分布在不同的磁盘,不同的地方,所以在去视图里获得真实路径
冷备份操作
1)查看Oracle数据库的日志模式,如果是归档模式,将需要将数据库设置为noarchivelog模式(非归档模式),从而进行冷备份。
SQL> archive log list Database log mode No Archive Mode Automatic archival Enabled //Enabled表示为归档模式 Archive destination /u01/admin/denver/archdest Oldest online log sequence 1 Current log sequence 1 SQL> startup mount ORACLE instance started. Total System Global Area 422670336 bytes Fixed Size 1336960 bytes Variable Size 314575232 bytes Database Buffers 100663296 bytes Redo Buffers 6094848 bytes Database mounted. SQL> alter database noarchivelog Database altered. SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled //Disabled表示为归档模式 Archive destination /u01/admin/denver/archdest Oldest online log sequence 1 Current log sequence 1 SQL> alter database open; Database altered.
2)查看实例和数据库的相关信息
SQL> select instance_name,version,status,archiver,database_status from v$instance; INSTANCE_NAME VERSION STATUS ARCHIVE DATABASE_STATUS ---------------- ----------------- ------------ ------- ----------------- orcl 10.2.0.1.0 OPEN STOPPED ACTIVE SQL> select dbid,name,log_mode from v$database; DBID NAME LOG_MODE ---------- --------- ------------ 1242732291 ORCL NOARCHIVELOG
3)查看数据文件及状态信息
SQL> select file_name,tablespace_name,status,online_status from dba_data_files; FILE_NAME TABLESPACE STATUS ONLINE_ ------------------------------------------------------- ---------- --------- ------- /u01/app/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1 AVAILABLE ONLINE /u01/app/oracle/oradata/orcl/system01.dbf SYSTEM AVAILABLE SYSTEM /u01/app/oracle/oradata/orcl/sysaux01.dbf SYSAUX AVAILABLE ONLINE /u01/app/oracle/oradata/orcl/users01.dbf USERS AVAILABLE ONLINE /u01/app/oracle/oradata/orcl/example01.dbf EXAMPLE AVAILABLE ONLINE /u01/app/oracle/oradata/orcl/tbs1_1.dbf TBS1 AVAILABLE ONLINE /u01/app/oracle/oradata/orcl/tbs1_2.dbf TBS1 AVAILABLE ONLINE
4)查看数据文件
SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/oradata/orcl/undotbs01.dbf /u01/app/oracle/oradata/orcl/sysaux01.dbf /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/oradata/orcl/example01.dbf /u01/app/oracle/oradata/orcl/tbs1_1.dbf /u01/app/oracle/oradata/orcl/tbs1_2.dbf
5)查看临时文件
SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/orcl/temp01.dbf
6)查看日志文件
SQL> select member from v$logfile; MEMBER ------------------------------------------------------------ /u01/app/oracle/oradata/orcl/redo2a.rdo /u01/app/oracle/oradata/orcl/redo2b.rdo /u01/app/oracle/oradata/orcl/redo1a.rdo /u01/app/oracle/oradata/orcl/redo3a.rdo /u01/app/oracle/oradata/orcl/redo3b.rdo /u01/app/oracle/oradata/orcl/redo1b.rdo
7)查看控制文件
SQL> select name from v$controlfile; NAME ------------------------------------------------------------ /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control02.ctl
8)创建备份目录
SQL> ho mkdir /u01/app/oracle/coolbak
9)使用连接符生成复制文件命令
SQL> select ‘ho cp ‘ || name || ‘ /u01/app/oracle/coolbak‘ from v$controlfile; ‘HOCP‘||NAME||‘/U01/APP/ORACLE/COOLBAK‘ ---------------------------------------------------------------------------------- ho cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/coolbak ho cp /u01/app/oracle/oradata/orcl/control02.ctl /u01/app/oracle/coolbak
将上面的输入保存为tmpbak.sql
SQL> save /tmp/tmpbak.sql; Created file /tmp/tmpbak.sql
以上是关于Oracle数据库冷备份与热备份操作梳理的主要内容,如果未能解决你的问题,请参考以下文章