一、数据库冷热备份
1.冷备份
冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被称为数据库完整备份。
冷备份过程:
1.将数据库关闭
2.复制数据库所有文件
数据库恢复:
1.数据放在原来的目录路径,如果目录有所改变则需要另外建立控制文件,修改pfile。
2.建立服务: cmd下: oradim -new -sid 数据库实例名
3.建立监听: net configuration assintant
4.打开数据库: SQL下执行:set oracle_sid=数据库实例名;
2.热备份
热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。当执行备份时,只能在数据文件级或表空间进行。
查看当前数据库归档状态:ARCHIVE LOG LIST
热备份过程:
1.查询要备份表空间对应的数据文件的详细信息
select file_name from dba_data_files where tablespace_name='USERS';
2.将表空间设为备份模式
ALTER TABLESPACE USERS BEGIN BACKUP;
3.查看处于备份模式的数据文件:
select * from v$backup;
4.使用操作系统命令备份表空间的数据文件
HOST COPY f:\BAK\ HOST COPY f:\oracle\oradata\orcl\*.dbf
//将前面ORACLE数据库热备份的文件拷贝到系统目录中
5.备份控制文件:
alter database backup controlfile to '/u01/oradata/prod/con.bak1';
6.最后关闭归档模式
ALTER TABLESPACE USERS END BACKUP;
另外可以用plsql代码热备份:
begin
for i in (select tablespace_name from dba_tablespaces) loop
dbms_output.put_line('alter tablespace '||i.tablespace_name||' begin backup;');
for j in (select file_name from dba_data_files where tablespace_name=i.tablespace_name) loop
dbms_output.put_line('host cp '||j.file_name||' /home/oracle/hot_backup');
end loop;
dbms_output.put_line('alter tablespace '||i.tablespace_name||' end backup;');
end loop;
end;
数据恢复过程:
模拟dbf 介质损坏:rm -rf /u01/oradata/prod/users01.dbf
ORA-01116: 打开数据库文件 4 时出错
ORA-01110: 数据文件 4: ‘/u01/oradata/prod/users01.dbf’
ORA-27041: 无法打开文件
解决:
alter system flush buffer_cache;
alter tablespace users offline immediate;
!cp /home/oracle/hot_backup/users01.dbf /u01/oradata/prod/
recover tablespace users;auto
alter tablespace users online;
二、OLAP与OLTP
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
- OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
- OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。
- 个人理解:
联机分析处理(OLAP,On-line Analytical Processing):数据量大,DML少。使用数据仓库模板
联机事务处理(OLTP,On-line Transaction Processing):数据量少,DML频繁,并行事务处理多,一般用时较短。
三、主流(关系型)数据库比较
列举SQL Server、oracle、DB2三个数据库之间的主要区别
方面 | SQL Server | Oracle | DB2 |
---|---|---|---|
语法及数据类型 | 用"+"连接 | 空值转换、创建类似表、decode、replace、DATE数据类型的区别 | coalesce |
开放性 | 只能在windows上运行 | 完全支持所有的工业标准 | 所有主流平台 |
安全性 | 没有获得任何安全证书 | 获得最高认证级别的ISO标准认证 | 获得最高认证级别的ISO标准认证 |
性能 | 多用户时性能不佳 | 性能最高 | 适用于数据仓库,在线事物处理性能较高 |
客户端支持及应用模式 | C/S结构,只支持windows客户,可以用ADO,DAO,OLEDB,ODBC连接 | 多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接 | 跨平台,多层结构,支持ODBC,JDBC等客户 |
操作难易度 | 操作简单,但只有图形界面 | 较复杂, 同时提供GUI和命令行 | 操作简单,同时提供GUI和命令行 |
应用范围 | 只适合个人使用或小型企业,成本低 | 企业应用多 | 最适用海量数据企业 |
数据粒度,是指数据仓库中数据的细化和综合程度。根据数据粒度细化标准:细化程度越高,粒度越小;细化程度越低,粒度越大