设为首页 加入收藏

TOP

几种backup小结(一)
2015-11-21 01:48:58 来源: 作者: 【 】 浏览:2
Tags:几种 backup 小结
[oracle@localhost ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
SQL> select * from v$version where rownum=1; BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

下面介绍的是冷备份(完全脱机备份),部分脱机备份,部分联机备份,对于RMAN和逻辑备份(exp,imp|expdp,impdp)后面的篇幅会涉及。
完全脱机备份:(归档和非归档都适用,针对整个 数据库备份)
这个不用多说了,http://blog.itpub.net/29876893/viewspace-1607155/这篇说的很清楚
但是这种备份很有很多缺点:
1.要shutdown之后才可以,生产库是绝对不允许的
2.需要通过操作系统命令拷贝,这个对于很大的文件,很影响数据库性能,有时候不是一般的慢!
3.如果数据库的存储采取ASM,不可以直接拷贝,我们看不到文件系统的分区。
部分脱机备份:(针对表空间)
我们可以改变表空间的offline,online(需要归档)
SQL> select username,default_tablespace from dba_users where username='HR';

USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
HR USERS

SQL> alter tablespace users offline;

表空间已更改。
此时拷贝走users下的数据文件就行了。
SQL> select file_id,tablespace_name,online_status from dba_data_files where tablespace_name='USERS';


FILE_ID TABLESPACE_NAME ONLINE_
---------- ------------------------------ -------
4 USERS OFFLINE


此时把users online:

SQL> alter tablespace users online;
表空间已更改。
当然你也可以直接把数据文件离线:
SQL> alter database datafile 4 offline;
数据库已更改。
SQL> truncate table tt; 表被截断。

SQL> insert into tt values(1,dbms_flashback.get_system_change_number);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。


SQL> insert into tt values(2,dbms_flashback.get_system_change_number);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。


SQL> insert into tt values(3,dbms_flashback.get_system_change_number);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。

SQL> select * from v$log;


GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------- ------------ --------------
1 1 439 52428800 512 1 YES ACTIVE 7312260 28-4月 -15 7312279 28-4月 -15
2 1 440 52428800 512 1 NO CURRENT 7312279 28-4月 -15 2.8147E+14
3 1 438 52428800 512 1 YES ACTIVE 7312248 28-4月 -15 7312260 28-4月 -15


此时我们删除表空间user里的数据文件
此时只能启动到mount.
具体怎么恢复参考http://blog.itpub.net/29876893/viewspace-1607155/
可以先不恢复,把表空间离线,打开数据库,后恢复。

该种备份比较好的是不用shutdown备份表空间,但是我们不能离线system,undo,redo,temp表空间,很大的遗憾:

SQL> alter tablespace system offline;
alter tablespace system offline
*
第 1 行出现错误:
ORA-01541: 系统表空间无法脱机; 如有必要请关闭

注意是不能离线当前undo表空间!
SQL> alter tablespace UNDOTBS1 offline;
alter tablespace UNDOTBS1 offline
*
第 1 行出现错误:
ORA-30042: 无法使还原表空间脱机

如果不是当前使用的undo表空间:
SQL> alter tablespace UNDO_W online;
表空间已更改。

这种方式的缺点还有:
2.需要通过操作系统命令拷贝,这个对于很大的文件,很影响数据库性能,有时候不是一般的慢!
3.如果数据库的存储采取ASM,不可以直接拷贝,我们看不到文件系统的分区。
部分联机备份:这种方式的备份适用于归档模式。
oracle做了很大的改进,在联机状态就可以备份:
如:
SQL> select * from v$backup;


FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- --------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
5 NOT ACTIVE 0
6 NOT ACTIVE 0
7 NOT ACTIVE 0
8 NOT ACTIVE 0
9 NOT ACTIVE 0
11 NOT ACTIVE 0
12 NOT ACTIVE 0
已选择10行。

此时这些文件都不是活动状态

SQL> alter tablespace CHAO begin backup;
表空间已更改。
SQL> alter tablespace SYSTEM begin backup;
表空间已更改。

SQL> select * from v$backup;


FILE# STATUS CHANGE# TIM
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇RisingTemperature 下一篇mongodb学习(查询详解)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: