问题:sql
1.逻辑备份是否包含表结构 shell
答案包含表结构数据库
2.Rman是逻辑备份仍是物理备份,属于也备份吗 oracle
答案物理备,属于热备份ide
3.热备份的方式是什么 工具
答案:SQL下的命令备份或是Rman备份spa
4.热备份能备份哪些文件日志
5.联机重作文件有什么做用 orm
答案:在Oracle数据库中,执行数据修改操做后,并非立刻写入数据文件,而是首先生成重作信息,并写入SGA中的一块叫LOG_BUFFER的固定区域,LOG_BUFFER有必定的触发条件,当知足触发条件后,会有相应进程将LOG_BUFFER中的内容写入数据块中。oracle联机日志做用:一、主要用来记录对数据库的改变,防止数据丢失。二、为了数据库操做快速反应。对象
备份的类型
按照备份方式的不一样,能够把备份分为两类:
逻辑备份:指经过逻辑导出对数据进行备份。逻辑备份使用导入导出工具:EXPDP/IMPDP或EXP/IMP,逻辑备份是物理备份的方式的一种补充,因为逻辑备份具备平台无关性,逻辑备份被做为数据迁移及移动的主要手段。
物理备份: 指经过物理文件拷贝的方式对数据库进行备份,物理备份又能够分为冷备份和热备份。
冷备份:是指对数据库进行关闭后的拷贝备份,这样的备份具备一致和完整的时间点数据,恢复时只须要恢复全部文件就能够启动数据库。
热备份:在生产系统中最多见的备份方式是热备份,进行热备份的数据库须要运行在归档模式,热备份时不须要关闭数据库,从而可以保证系统的持续运行,在进行恢复时,经过备份的数据文件及归档日志文件,数据库能够进行彻底恢复。热备份包括Rman备份,热备份也被称为联机备份。
逻辑备份:
导出
shell>exp 用户名/密码 file=/home/backup/ymq.dmp
导入
shell>imp 用户名/密码 full=y file=/home/backup/ymq.dmp ignore=y
物理备份
热备份
SQL下的命令备份
1.查看是否开启归档
ARCHIVE LOG LIST
2. 将须要备份的表空间(如user)设置为备份方式
shell>Alter tablespace user begin backup;
3.拷贝参数文件
shell>!cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
shell>cp /u01/oradata/prod/user01.ora /backup/prod/user01.ora
1.为目录建立一个单独的表空间
SQL>Create tablespace tools datafile ‘fielname’ size 50m;
2.建立RMAN用户
SQL>Create user RMAN identified by RMAN default tablespace tools temporary tablespace temp;
3.给RMAN授予权限
SQL>Grant connect , resource , recovery_catalog_owner to rman;
4.打开RMAN
$>RMAN
5.链接数据库
RMAN>connect catalog rman/rman
6.建立恢复目录
RMAN>Create catalog tablespace tools
注册目标数据库,恢复目录建立成功后,就能够注册目标数据库了,目标数据库就是须要备份的数据库,一个恢复目录能够注册多个目标数据库,注册目标数据库的命令为:
$>RMAN target internal/password catalog rman/rman@rcdb;
RMAN>Register database;
数据库注册完成,就能够用RMAN来进行备份了,更多命令请参考ORACLE联机手册或《ORACLE8i备份与恢复手册》。
注销数据库不是简单的在RMAN提示下反注册就能够了,须要运行一个程序包,过程以下:
1. 链接目标数据库,得到目标数据库ID
$> RMAN target internal/password catalog rman/rman@rcdb;
RMAN-06005: connected to target database: RMAN (DBID=1231209694)
2. 查询恢复目录,获得更详细的信息
SQL> SELECT db_key, db_id FROM db WHERE db_id = 1231209694;
DB_KEY DB_ID
---------- ---------------
1 1237603294
1 row selected.
3. 运行过程dbms_rcvcat.unregisterdatabase注销数据库,如
SQL> EXECUTE dbms_rcvcat.unregisterdatabase(1 , 1237603294)
RMAN使用脚原本备份数据库,如下是RMAN进行备份的几个例子。
1.备份整个数据库
backup full tag ‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;
2.备份一个表空间
backup tag ‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;
3.备份归档日志
backup tag ‘alog’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;
检查现有备份
RMAN>list backup
列出过时备份
RMAN>report obsolete
删除过时的备份
RMAN>allocate channel for maintenance type disk;
RMAN>change backupset id delete;
RMAN>release channel;
同步或重置Rman
若是目标数据库物理对象发生了变化,如添加了一个数据文件,须要用以下命令同步:
RMAN>resync catalog;
若是目标数据库reset了数据库,须要用以下命令同步
RMAN>reset database;
当手工删除了数据库的归档文件后,要执行如下脚本同步
RMAN>allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck;
RMAN>release channel;
当手工删除了数据库的RMAN备份后,要执行如下脚原本同步
RMAN>allocate channel for maintenance type disk;
RMAN>crosscheck backup;
RMAN>delete expire backup;
RMAN>release channel;
每半年作一个数据库的全备份(包括全部的数据和只读表空间)
每个月作一次零级备份(不包含只读表空间)
每一个星期作一次一级备份
天天作一次二级备份
任何数据库的更改须要从新同步CATALOG目录并从新备份(如添加数据文件)或从新备份(如修改表空间为只读)
每次备份后均可以备份归档日志或按期备份归档日志。
若是可能,能够直接备份到磁带上。
数据库全备份的脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database
include current controlfile;
sql ‘alter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #备份归档可选,能够单独按期备份
release channel c1;
release channel c2;
release channel c3;
}
零级备份的脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’
database skip readonly;
sql ‘alter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #备份归档可选,能够单独按期备份
release channel c1;
release channel c2;
release channel c3;
}
同理,咱们能够获得一级备份,二级备份的脚本,如一级备份的脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 tag ‘db1’ format ‘/u01/oradata/backup/db1%u_%s_%p’
database skip readonly;
sql ‘alter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #备份归档可选,能够单独按期备份
release channel c1;
release channel c2;
release channel c3;
}