Oracle恢复误删的数据或表,解除锁定SQL或table
来源:互联网 发布:apache ab get参数 编辑:程序博客网 时间:2024/05/17 22:11
Oracle恢复误删的数据或表,解除锁定SQL或table
转载于:
注意:数据库版本是10g,不过大部分9i的也适用,闪回9i就没有.
1.曾经不小心把开发库的数据库表全部删除,当时吓的要死。结果找到下面的语句恢复到了1个小时之前的数据!很简单。
注意使用管理员登录系统:
select * from 表名 as of timestamp sysdate-1/12
如果drop了表,怎么办??见下面:
drop table 表名;
数据库误删除表之后恢复:(
flashback table 表名 to before drop;
2.查询得到当前数据库中锁,以及解锁:
查锁
SELECT s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL;
解锁
alter system kill session 'sid,serial';
如果解不了。直接倒os下kill进程kill -9 spid
因为密码输入错误多次用户自动被锁定.
解决办法:alter user user_name account unlock;
3.关于查询数据库用户,权限的相关语句:
1.查看所有用户:
select * from dba_user;
select * from all_users;
select * from user_users;
2.查看用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
4.几个经常用到的oracle视图:注意表名使用大写....................
1. 查询oracle中所有用户信息
6.查询全部索引
select * from user_indexes;
查询全部表格
5.查看当前数据库中正在执行的语句,然后可以继续做很多很多事情,例如查询执行计划等等
(1).查看相关进程在数据库中的会话
6.查询表的结构:表名大写!!
select t.COLUMN_NAME,
7.行列互换:
建立一个例子表:
CREATE TABLE t_col_row(
ID INT,
c1 VARCHAR2(10),
c2 VARCHAR2(10),
c3 VARCHAR2(10));
INSERT INTO t_col_row VALUES (1, 'v11', 'v21', 'v31');
INSERT INTO t_col_row VALUES (2, 'v12', 'v22', NULL);
INSERT INTO t_col_row VALUES (3, 'v13', NULL, 'v33');
INSERT INTO t_col_row VALUES (4, NULL, 'v24', 'v34');
INSERT INTO t_col_row VALUES (5, 'v15', NULL, NULL);
INSERT INTO t_col_row VALUES (6, NULL, NULL, 'v35');
INSERT INTO t_col_row VALUES (7, NULL, NULL, NULL);
COMMIT;
下面的是列转行:创建了一个视图
CREATE view v_row_col AS
SELECT id, 'c1' cn, c1 cv
FROM t_col_row
UNION ALL
SELECT id, 'c2' cn, c2 cv
FROM t_col_row
UNION ALL
SELECT id, 'c3' cn, c3 cv FROM t_col_row;
下面是创建了没有空值的一个竖表:
CREATE view v_row_col_notnull AS
SELECT id, 'c1' cn, c1 cv
where c1 is not null
UNION ALL
SELECT id, 'c2' cn, c2 cv
where c2 is not null
UNION ALL
SELECT id, 'c3' cn, c3 cv
where c3 is not null;
imp 用户名/密码@数据库 ignore=y file=备份文件 log=D:\DBtest\db_bak\imp.log
exp system/manager@TEST file=d:\daochu.dmp full=y
12.大对象字段blob:查看blob字段的大小:
13.下面收集的是有意思的sql语句,说不定正是你需要的:
--创建一个只允许在工作时间访问的视图
create or replace view newviewemp
as
select * from 表名
Create Or Replace Procedure My_Proc As
Sqlddl Varchar2(1000);
Begin
Sqlddl := 'create table MyTable(ID Number(5), Name Varchar2(20))';
Dbms_Output.Put_Line(Sqlddl);
Execute Immediate Sqlddl;
End;
- Oracle恢复误删的数据或表,解除锁定SQL或table
- Oracle恢复误删的数据或表,解除锁定SQL或table
- 【总结】oracle恢复误删除数据,解除锁定的等sql语句
- 【总结】oracle恢复误删除数据,解除锁定的等sql语句
- 【总结】oracle恢复误删除数据,解除锁定的等sql语句
- oracle恢复误删除数据,解除锁定的等sql语句
- oracle恢复误删除数据,解除锁定的等sql语句
- zz:【总结】oracle恢复误删除数据,解除锁定的等sql语句
- flock(锁定文件或解除锁定)
- oracle恢复误删除数据,解除锁定等非常经典实用方法
- 解除oracle表锁定
- 解除oracle表锁定
- oracle 解除表锁定
- oracle 解除表锁定
- oracle解除表锁定
- 恢复ORACLE被误更新或删除数据的办法
- 恢复ORACLE被误更新或删除数据的方法
- 恢复ORACLE被误更新或删除数据的方法
- The Cow Lexicon(POJ_3267)
- Distinct Subsequences
- Fighting Girl——那个IT女孩
- MySQL 连接本地数据库、远程数据库命令
- Linux下gcc编译生成动态链接库*.so文件并调用它
- Oracle恢复误删的数据或表,解除锁定SQL或table
- MFC 车牌识别 小学期作业 part3
- HDU 5288 OO’s Sequence (2015 MUT#1 数学+质因子分解)
- iOS工程适配64-bit经验分享
- android 学习笔记 数据存储到文件中
- 鼓励自己成为一名合格程序设计师
- UI_NavigationController
- STL vector的使用(三)遍历
- json