ORACLE高级操作

delete数据恢复

1.打开Flash存储的权限

   ALTER TABLE tablename ENABLE row movement ;

2.把表还原到指定时间点

   flashback table tablename to timestamp to_timestamp('2008-02-28 10:40:00','yyyy-mm-dd hh24:mi:ss');

drop数据恢复(未重建同名的表时才有用)

flashback table tbl_corpinfo to before drop;

用户密码效期

1.查看用户的密码情况

SELECT username,PROFILE FROM dba_users;

2.查看默认的密码有效时间是多少天

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

3.修改默认的密码有效日期为永远有效

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

自动聚合表空间(类似于清理碎片)

alter tablespace EXAMPLE coalesce;

oracle 11g 空表分配空间后才能导出到dmp

1.先查询哪些表是空表:

select table_name from user_tables where NUM_ROWS=0;

2.再生成分配空间的语句:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

3.最后执行生成出来的所有语句,导出的时候就包含了空表了。

dblink处理远端数据

1.本地数据库用户demo登录,查询dblink权限

select * from user_sys_privs t where t.privilege like upper('%link%');

2.用sys登录,给本地数据库用户demo赋dblink权限

grant CREATE PUBLIC DATABASE LINK to demo;--demo为本地数据库用户名
grant DROP PUBLIC DATABASE LINK to demo;--demo为本地数据库用户名

3.然后以demo用户登录本地数据库

创建dblink(远端服务名:ORCL_253,link名:LINK_TO_253)

注意: 服务器上必须去配一个ORCL_253的监听

create public database link

LINK_TO_253connect to "DEMO" identified by "DEMO" using 'ORCL_253';

或者

不配监听,用以下语句直接搞定

create public database link

LINK_TO_253

connect to "DEMO" identified by "DEMO"

using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.90.253)(PORT=1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';

4.查询远端数据

select * from rda_corp_info@LINK_TO_253;

5.删除dblink

DROP PUBLIC DATABASE LINK LINK_TO_253;

修改oracle数据库的最大连接数

需在commandSql下执行

1.查询连接数

show parameter processes;

show parameter sessions;

2.修改连接数

alter system set processes=500 scope=spfile;

alter system set sessions=500 scope=spfile;

3.重启服务   修改的连接数就会生效。

你可能感兴趣的:(ORACLE高级操作)