1、ORACLE数据库碎片整理的方法
1. 停应用,停通讯
2. 查看对数据的SESSION有没有结束
TOAD工具-DATABASE-monitor-session browser
把其他session杀掉
3. 确认有没有DP_DIR的目录
select * from dba_directories;
4.建立数据导出目录dp_dir
create directory dp_dir as '/expdata';
4. 给SYSTEM用户授权
用SYS用户SYSDBA模式登录数据库
grant read , write on direct
2、ory dp_dir to system;
5. 判断哪些表需要做碎片整理
Toad-database-Administer-Tablespaces-Objects-选择表空间
6. 用oracle用户登入当前操作系统(不删除数据条数)
先对需要做碎片整理的表做一次全备份,例如这次对hgl0.text3表
前台方式:
expdp system/oracle@hgl0 tables=hgl0.text3 directory=dp_dir dumpfile=xcomdevtable2.dmp logfile=xcomdevtable2.log
后台方式:WINDOWS下不
3、能使用,其他操作系统前面加nohup,结尾加&
Truncate 数据表
Toad下truncate table xcomdev.sentmessagebufferlog_bak;
导入数据,用ORACLE用户登录操作系统
impdp system/oracle@hgl0 tables=hgl0.text3 directory=dp_dir dumpfile=xcomdevtable2.dmp logfile=impdpxcomdevtable2.log TABLE_EXISTS_ACTION=truncate
关注导入导出之后的记录数是否不一致
P
4、S:如果需要对数据库表进行条目的清理
应该在一次完整备份之后,进行DELETE操作,然后对DELETE之后的表,进行第二次备份,再导入
7. 在导入数据的时候,关注归档日志
归档日志到一定量,比如说80%,删除归档日志
8. 删除归档日志以后,会导致第二天备份软件备份的不成功,所以需要进行crosscheck
使用ORACLE用户登录操作系统(每次删除归档日志,都需要做crosscheck)
登入RMAN:rman target / nocatalog
检查无效归档日志:crosscheck archivelog all;
删除无效归档日志:delete noprompt expired archivelog all;
最后,启动应用和通讯