oracle flashback
1,闪回数据库到之前某时间点(在安装时需要开放闪回功能)
不支持表空间删除
select name from v$database;
--看是否打开闪回功能
select flashback_on,name from v$database;
select name from v$bgprocess where paddr<>'00' order by 1;
打开闪回功能
SQL> shutdown immediat(该命令必须在sqlplus下执行)
SQL> startup mount (数据库所在主机:cmd-->conn / as sysdba-->)
SQL> alter database flashback on(如果有错,执行-->archive log list-->alter database archivelog-->);
SQL> alter database open;
修改闪回时间(默认是一天1440)
SQL> alter system set db_flashback_retention_target=2880
RMAN> backup recovery files;--执行此程序,必须要有磁带
执行数据库闪回,必须是在mount,readonly状态
如果重建了控制文件,则修改控制文件以前的数据是不可以闪回的。
例子;
create table t2( a int);
insert into t2 values(1);
insert into t2 values(2);
insert into t2 values(5);
alter system switch logfile;
t2 10:35
insert into t2 values(100);
alter system switch logfile;
insert into t2 values(200);
闪回到某时间点
FLASHBACK DATABASE TO TIME = TO_DATE('2004-05-27 16:00:00','YYYY-MM-DD HH24:MI:SS');
FLASHBACK DATABASE 2 TO TIMESTAMP(SYSDATE-1/24);
查日志进程
select * from v$log;
恢复到某过程sequence为查询的sequence,THREAD
把状态置为mount状态
flashback database to sequence=58 thread=1;
打开数据库
alter database open resetlogs;
2,闪回drop表,数据(普通用户都可以操作)
原理:是把放到数据库回收站的对象,数据拉回来
凡不放回收站的对象都不能闪回.
SQL>create table t1(a int);
SQL>drop table t1;
闪回后,把删除的表,及索引都会恢复
SQL>flashback table t1 to before drop;
语法:FLASHBACK TABLE <table_name> TO BEFORE DROP [RENAME TO <new_name>]
可以用下面的命令或查询查看删除的表;
show recyclebin;
select * from recyclebin --where ORIGINAL_NAME='T1';
DBA的回收站
SELECT owner, original_name, object_name,
type, ts_name, droptime, related
相关文档:
有如下表Test
City People Make
广州 1 A
广州 2 B
广州 3 C
上海 4 A
上海 5 ......
由于数据库原始安装的原因造成数据库或整个操作系统的不安全或者由于磁盘空间变化再或者由于业务变化造成的I/O性能需要调整等等原因需要数据库管理员进行数据库文件位置的调整.下面通过一个WINDOWS平台的ORACLE数据文件移动为例子讨论一下数据库文件移动的方法,请大家指正.
一.移动数据文件
移动数据文件笔者目前使用的有 ......
重装操作系统后,如果数据文件,控制文件,日志文件都完好的话(在itpub看过很多人提过这个话题,多数人都是将这3个文件放在同一目录oradata),只需重新安装oracle(跟重装操作系统前同版本)到原目录后,重建实例服务和密码文件,配置一下listener和tns即可正常启动数据库.
过程如下(假设原实例名为orcl,版本为9i):
1.将原来的or ......
Mysql方式:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MysqlDB {
private String strClass = "com.mysql.jdbc.Driver";
private String strDriver = "jdbc:mysql://localhost: ......
Oracle与SQL Server事务处理的比较
事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大
精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异。
事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的一个问题,对这个问题的疏忽可能会导致应用程序逻辑错 ......