- 浏览: 1183357 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (361)
- java综合 (33)
- 项目管理 (10)
- 工作流 (6)
- spring (11)
- hibenate (17)
- struts (0)
- javascript,html,css,ajax,jquery (11)
- IDE (9)
- 生活 (0)
- 工作 (0)
- 杂记 (1)
- 数据库 (96)
- 服务器 (5)
- 可视编辑 (0)
- freemarker (6)
- 操作系统 windows (13)
- web页面 (6)
- jms (15)
- 调优 (4)
- 测试和bug管理 (2)
- 原理 (1)
- 項目-atf (17)
- 安全 (3)
- xml (4)
- 操作系统 liunx (21)
- 网络 (22)
- office (11)
- 设计 (2)
- 软件 (1)
- 数据库 mysql (6)
- 胖客户端-flex (1)
- 正则 (9)
- oracle- liunx (3)
- sql2000 (2)
- 模式 (1)
- 虚拟机 (2)
- jstl (2)
- 版本控制 打包工具 (0)
- AOP (1)
- demo (1)
- 小软件 (2)
- 感恩 (1)
- iphone 4 (1)
- 反欺诈业务经验整理 (0)
最新评论
-
sea0108:
mark
java内存模型 -
XingShiYiShi:
方便把:testPNR();具体实现发出来吗?谢谢
用正则表达式解析 航信的电子客票和pnr报文 -
wh359126613:
如果js和webservice不在同一个服务器上,有跨域问题如 ...
使用javascript调用webservice示例 -
雨飛雁舞:
...
oracle 动态性能(V$)视图 -
ouyang1224:
好东西
oracle 动态性能(V$)视图
1.创建表空间
SQL>create tablespace rmorcl
2 datafile '/home/oracle/oracle/oradata/test/rmorcl.dbf' size 20M;
2.创建用户
SQL> create user rmorcl identified by rmorcl default tablespace rmorcl temporary tablespace temp;
3.为用户授权
SQL> grant connect,resource,recovery_catalog_owner to rmorcl;
4.用rman连结目标数据库和恢复目录
[oracle@primary bin]$ ./rman target sys/oracle@primary catalog rmorcl/rmorcl@test
5.创建恢复目录表
RMAN>create catalog tablespace "RMORCL";
6.注册数据库
RMAN>register database;
练习备份
1.备份数据文件
run {
allocate channel d1 type disk maxpiecesize =1G;
backup format 'dbfile_%s_%p' filesperset 2
datafile '/home/oracle/oracle/product/10.2.0/oradata/orcl/users01.dbf',
'/home/oracle/oracle/product/10.2.0/oradata/orcl/users02.dbf';
}
2.备份表空间
run {
allocate channel d2 type disk;
backup format 'tablespace_%d_%s_%p'
(tablespace system,users,sysaux);
}
3.备份数据库
run {
allocate channel d3 type disk maxpiecesize=1G;
backup format 'database_%d_%s_%p'
database filesperset 2;
}
4.备份所有的归档日志文件
run {
allocate channel d4 type disk maxpiecesize=1G;
backup format '/u01/backup/archivelog_%t_%s_%p'
archivelog all;
}
练习恢复
1.恢复数据文件
run {
allocate channel d1 type disk;
restore datafile 4,6,7;
recover datafile 4,6,7;
}
2.恢复表空间(脱机)
run {
allocate channel d2 type disk;
restore tablespace users;
recover tablespace users;
}
3.恢复表空间(联机)
run {
allocate channel d3 type disk;
sql "alter tablespace users offline immediate";
restore tablespace users;
recover tablespace users;
sql "alter tablespace users online";
}
4.恢复数据库
run {
allocate channel d4 type disk;
restore database;
recover database;
}
7利用DBMS_METADATA包获取权限信息[记录后备用]
Oracle的9i增加了DBMS_METADATA包,从此在需要得到对象的创建脚本时,不再需要通过查询多张系统视图去自己拼凑结果了。只需要调用这个包中的GET_DDL过程就可以轻松的获取对象的创建脚本。
不过很多人对DBMS_METADATA包的了解仅限与此。当需要获取用户的权限时,往往还是采用通过到数据字典中读取的方式,其实DBMS_METADATA包本身就支持获取权限信息。
DBMS_METADATA的GET_GRANTED_DDL过程可以用于获取用户的授权信息。Oracle支持的授权相关信息类型包括:OBJECT_GRANT、SYSTEM_GRANT、ROLE_GRANT、DEFAULT_ROLE、TABLESPACE_QUOTA和PROXY。
由于使用十分简单,这里给一个简单的例子,就不详细描述了:
SQL> CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE YANGTK;
用户已创建
SQL> GRANT CONNECT TO TEST;
授权成功。
SQL> GRANT SELECT ANY TABLE TO TEST;
授权成功。
SQL> GRANT INSERT, UPDATE ON T TO TEST;
授权成功。
SQL> ALTER USER TEST QUOTA 10M ON YANGTK;
用户已更改。
SQL> CREATE ROLE R1;
角色已创建
SQL> GRANT R1 TO TEST;
授权成功。
SQL> ALTER USER TEST DEFAULT ROLE R1;
用户已更改。
SQL> ALTER USER TEST GRANT CONNECT THROUGH YANGTK;
用户已更改。
SQL> SET LONG 10000
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', 'TEST') FROM DUAL;
DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT','TEST')
----------------------------------------------------------------------
GRANT UPDATE ON "YANGTK"."T" TO "TEST"
GRANT INSERT ON "YANGTK"."T" TO "TEST"
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', 'TEST') FROM DUAL;
DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','TEST')
----------------------------------------------------------------------
GRANT SELECT ANY TABLE TO "TEST"
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', 'TEST') FROM DUAL;
DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','TEST')
----------------------------------------------------------------------
GRANT "CONNECT" TO "TEST"
GRANT "R1" TO "TEST"
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('DEFAULT_ROLE', 'TEST') FROM DUAL;
DBMS_METADATA.GET_GRANTED_DDL('DEFAULT_ROLE','TEST')
----------------------------------------------------------------------
ALTER USER "TEST" DEFAULT ROLE "R1"
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('TABLESPACE_QUOTA', 'TEST') FROM DUAL;
DBMS_METADATA.GET_GRANTED_DDL('TABLESPACE_QUOTA','TEST')
----------------------------------------------------------------------
ALTER USER "TEST" QUOTA 640 ON "YANGTK"
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('PROXY', 'TEST') FROM DUAL;
DBMS_METADATA.GET_GRANTED_DDL('PROXY','TEST')
----------------------------------------------------------------------
ALTER USER "TEST" GRANT CONNECT THROUGH "YANGTK"
需要注意的是,如果指定查询的授权不存在,并不是简单的返回未选定行,而是还会显示错误信息:
SQL> REVOKE SELECT ANY TABLE FROM TEST;
撤销成功。
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', 'TEST') FROM DUAL;
ERROR:
ORA-31608: 找不到类型为 SYSTEM_GRANT 的指定对象
ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 86
ORA-06512: 在"SYS.DBMS_METADATA", line 631
ORA-06512: 在"SYS.DBMS_METADATA", line 1339
ORA-06512: 在line 1
未选定行
最后还要说明一点,DBMS_METADATA的GET_GRANTED_DDL不会显示SYSDBA和SYSOPER权限。
9.闪回查询 在ORACLE 8I以下,可通过如下语句取得CURRENT SCN 系统检查点scn(v$database(checkpoint_change#)) 数据文件中存放的检查点 1、系统检查点scn 在安全关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn
(1).查询闪回
例如:
1)在删除员工smith记录后,希望查询到删除该行记录前的值,则可以查询emp在'2007-02-11 23:34:05'时的数据,查询方法如下:
select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss') where ename='SMITH';
2)查询当前时间
alter session set nls_date_format='yyyy-mm-dd hh24:mi;ss';
select sysdate from dual;
delete from emp;
commit;
select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');
可以将闪回的数据重新插入到表中:
insert into empbak (select * from empbak as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss'));
(2).表闪回
表闪回要求用户必须要有flash any table权限,首先,必须对表进行下以下操作:
alter table empbak enable row movement;
执行闪回操作
flashback table emp to timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');
注:如果表结构发生改变就没有办法闪回。
(3).删除闪回
删除闪回为删除oracle10g中的数据库实体提供了一个安全机制,当用删除一个表时,oracle10g 会将该表放到回收站中,回收站中的对象一真会保留,直到用户决定永久删除它们或出现表空间的空间不足时才会被删除。回收站是一个虚拟容器,用于存储所有被删除的对象。数据字典user_tables中的列dropped表示被删除的表.查询方法如下:
select table_name,dropped from user_tables;
也可以使用show命令显示回收站信息
sql>show recyclebin
或查询数据字典user_recyclebin获得回收站信息
SQL> select object_name,original_name,type,droptime from user_recyclebin;
例如;恢复被删除的表emp.
SQL>flashback table emp to before drop;
如果不知道原表名,可以直接使用回收站中的名称进行闪回。
SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop;
在回收的同时可以修改表名:
SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop rename to emp1;
真正删除某一个表,而不进入回收站,可以在删除表时增加purge选项.如将emp表彻底删除.
SQL>drop table emp purge;
也可以通过删除recyclebin区域来永久性删除表
SQL>purge table emp;
删除当前用户的回收站
SQL>purge recyclebin;
删除全体用户在回收站的数据.
SQL>purge dba_recyclebin
(4).数据库闪回
使用数据库闪回功能,可以使数据库回到过去某一状态, 语法如下:
SQL>alter database flashback on
SQL>flashback database to scn 46963;
SQL>flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-mm-dd hh24:mi:ss');10.SCN
select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;
在ORACLE 9I,使用如下语句取得CURRENT SCN
select dbms_flashback.get_system_change_number from dual;
数据文件检查点(v$datafile(checkpoint_change#))
数据文件终止scn(v$datafile(last_change#))
启动scn (v$datafile_header(checkpoint_change#)
当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中。
select checkpoint_change# from v$database
2、数据文件检查点scn
当一个检查点动作完成之后,Oracle就把每个数据文件的scn单独存放在控制文件
中。
select name,checkpoint_change# from v$datafile
3、启动scn
Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,
因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。
select name,checkpoint_change# from v$datafile_header
4、终止scn
每个数据文件的终止scn都存储在控制文件中。
select name,last_change# from v$datafile
在正常的数据库操作过程中,所有正处于联机读写模式下的数据文件的终止scn都为null.
5、在数据库运行期间的scn值
在数据库打开并运行之后,控制文件中的系统检查点、控制文件中的数据文件检查点scn
和每个数据文件头中的启动scn都是相同的。控制文件中的每个数据文件的终止scn都为null.
都会设置成数据文件头中的那个启动scn的值。在数据库重新启动的时候,
Oracle将文件头中的那个启动scn与数据库文件检查点scn进行比较,
如果这两个值相互匹配,oracle接下来还要比较数据文件头中的启动scn和控制文件
中数据文件的终止scn。如果这两个值也一致,就意味着所有数据块多已经提交,所有
对数据库的修改都没有在关闭数据库的过程中丢失,因此这次启动数据库的过程
也不需要任何恢复操作,此时数据库就可以打开了。当所有的数据库都打开之后,
存储在控制文件中的数据文件终止scn的值再次被更改为null,
这表示数据文件已经打开并能够正常使用了。
发表评论
-
并发行级锁超2秒报警监控sql
2010-07-20 16:18 1872并发行级锁超2秒报警监控sql -
数据设计规范v
2010-06-22 19:47 0数据设计规范v -
Oracle 有趣排序包括那些
2010-06-20 16:51 1396按拼音排序 select * from table ... -
Oracle sql 性能优化调整
2010-06-20 16:15 1360Oracle sql ... -
Delete、Drop、Truncate的比较(转)
2010-05-31 13:39 1439Delete、Drop、Truncate的比较 关键字: d ... -
Oracle误操作解决方案(转)
2010-05-31 13:35 1360Oracle误操作解决方案 文章分类:数据库 一.误删除数 ... -
一个递归调用的存储过程
2010-04-19 01:51 1802一个递归调用的存储过程 -
oracle index学习总结
2009-12-08 10:44 19580oracle index 1.index需要储存空间 ... -
Jdbc 和hibernate
2009-11-16 23:38 1836Jdbc 和hibernate 一、Jdbc是java ... -
去掉 powerDesigner 中表设计时的 name和code联动的功能
2009-11-16 17:04 3440去掉 powerDesigner 中表设计时的 name和co ... -
oracle数据库索引未被使用的问题及其解决2007
2009-11-15 01:42 2100一次,在进行WEB页面上进行历史数据文件检查时,发现数据库访问 ... -
误删除数据后怎么立即恢复(不考虑全库备份和利用归档日志)
2009-09-27 18:01 3353要达到删除数据,有以下几种方式都可以:1、delete2、dr ... -
IMP数据到指定的表空间
2009-09-27 12:47 9061IMP数据到指定的表空间 一直以来,我都认为只要指定用户的默 ... -
ORACLE UPDATE 语句语法与性能分析
2009-09-27 09:49 1845为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在 ... -
oracle job 例子
2009-09-22 12:38 3036一、设置初始化参 ... -
oracle 时间加减综合
2009-09-17 11:43 1957加法 select sysdate,add_mon ... -
详细介绍ORACLE sqlplus命令
2009-09-09 16:42 2021一、ORACLE的启动和关闭1、在单机环境下要想启动或关闭OR ... -
AWR介绍与SYSAUX空间关系 SYASAUX表空间满了 系统慢
2009-09-08 09:45 7841AWR介绍与SYSAUX空间关系 2007-11-05 14 ... -
to_char 'NLS_DATE_LANGUAG参数
2009-09-02 18:41 1438select to_char(sysdate, 'Day'), ... -
Oracle oracle 多语言排序
2009-08-17 14:43 1927Oracle9i之前,中文是按照二进制编码进行排序的。在ora ...
相关推荐
Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份
第六篇 RMAN恢复实例 24 6.1 对数据库进行完全介质恢复 24 6.2 恢复表空间 25 6.3 恢复数据文件 25 6.4 丢失控制文件的恢复 25 第七篇 实例:RMAN 备份 shell脚本 29 第八篇 恢复目录 32 7.1 创建恢复目录 33 7.2 ...
Oracle数据库RMAN备份与恢复.pdf
oracle RMAN管理的备份和恢复,oracle学习者必看的资料。
《Oracle Database 11g RMAN备份与恢复》PDF版本下载
rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1rman备份与还原1
《Oracle Database 11g RMAN备份与恢复》主要内容简介:《Oracle Database 11g RMAN备份与恢复》提供了在硬件、软件、操作发生故障时保护数据库的详细信息。详细解释了如何配置数据库,创建精确的归档以及如何执行...
相当经典,非常详细 RMAN管理的备份和恢复
rman备份与恢复备份数据库 备份表空间 归档重做日志
rman的备份与恢复 , 常见操作 1、切换服务器归档模式,如果已经是归档模式可跳过此步: %sqlplus /nolog (启动sqlplus) SQL> conn / as sysdba (以DBA身份连接数据库) SQL> shutdown immediate; (立即关闭数据库) ...
rman备份(教程与案例) rman恢复(教程与案例)
Oracle Database 11g RMAN备份与恢复,中文完整版
教程名称:傻瓜式实战Oracle RMAN数据库备份和恢复视频课程目录:【】数据库备份和恢复系列].ITBOBA_RMAN_1【】数据库备份和恢复系列].ITBOBA_RMAN_10【】数据库备份和恢复系列].ITBOBA_RMAN_2【】数据库备份和恢复...
顶级DBA漫谈Oracle Rman备份与恢复
RMAN备份与恢复步骤,对大家的学习很有帮助
Oracle数据库RMAN备份与恢复技术!
详细讲解了RMAN的备份机制以及如何备份
学习ORACLE很好的资料,不仅包括RMAN的原理,还包括动手实践部分,一步步教你完全掌握RMAN,在PDF中加入了目录,方便查找,是ORACLE DBA的必备手册。
Oracle 9i 培训资料:使用RMAN的高级备份和恢复 Oracle 9i 培训资料:使用RMAN的高级备份和恢复