为了保证表空间数据完整性,在进行数据库逻辑备份操作时,可以将表空间设置到只读模式。只读表空间中的表不能进行INSERT、UPDATE、DELETE 等操作。也
就是说连接的用户不能执行以上操作。也可以将用户锁住,导出完后在解锁。这样在导出的过程中,如果有用户连接上数据,但是也不能执行INSERT、UPDATE、DELETE
操作,就保证了数据完整性。
一、设置表空间为只读模式
1、通知现场连接数据库的人员停止连接数据库。
2、停止业务程序连接数据库。
如:要导出SDE 下的相关数据,要保证没有SDE 用户连接
SELECT S.SID,S.SERIAL#,S.OSUSER,MACHINE FROM V$SESSION S WHERE USERNAME='SDE';
在没有SDE 连接情况下,
设只读模式:ALTER TABLESPACE SDE READ ONLY;
二、锁用户方式
如果不设表空间为只读模式可以通过锁定用户
1、通知现场连接数据库的人员停止连接数据库;
2、停止业务程序连接数据库;
ALTER USER SDE ACCOUNT LOCK;
二、用 EXPDP、IMPDP 进行逻辑备份
1、创建转储文件和日志文件所在的目录
SQL>CREATE DIRECTORY SDE_DUMP AS ‘D:UDMP’;
SQL >GRANT READ, WRITE ON DIRECTORY SDE_DUMP TO SDE;
SQL>ALTER TABLESPACE 要导出的表空间 READ ONLY;
2、导出数据
EXPDP SDE/SDE DIRECTORY =SDE_DUMP DUMPFILE= DATETIME_SDE_%U.DMP SCHEMAS=SDE LOGFILE=XX.LOG
三、改回表空间为读写模式或解锁
ALTER TABLESPACE SDE READ READ WRITE
ALTER USER SDE ACCOUNT UNLOCK;
四、优化 expdp,提搞导入导出效率
对 expdp 进行优化,但也有可能优化后变的更慢,这个可以做适当的测试,找到最适合的参数(主要是和数据大小有关)。
优化参数:parallel 并行执行,关联参数 filesize
EXPDP SDE/SDE DIRECTORY =SDE_DUMP DUMPFILE= DATETIME_SDE_%U.DMP SCHEMAS=SDE LOGFILE=XX.LOG filesize=10g parallel=10
Filesize 是设定了最大dmp 文件大小parallel 是线程数,如果数据有90G,会生成10 个dmp 文件,并有10 个线程数来并行执行任务。[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12591949/viewspace-1031506/
,如需转载,请注明出处,否则将追究法律责任。