做我的世界壁纸的网站,福州哪家网站制作设计高端还实惠,汽车贸易网站建设方案,网站维护明细报价表1 说明
从Oracle10g开始#xff0c;引入了数据泵#xff08;Data Pump#xff09;#xff0c;是一种高效的数据传输工具#xff0c;它通过导出#xff08;Export#xff09;和导入#xff08;Import#xff09;的方式帮助用户迁移数据。
在Oracle的产品设计中#…1 说明
从Oracle10g开始引入了数据泵Data Pump是一种高效的数据传输工具它通过导出Export和导入Import的方式帮助用户迁移数据。
在Oracle的产品设计中数据泵Data Pump主要用于数据迁移。尽管它可以用于恢复特定时间点的数据库状态但它并不提供在指定时间段内的灵活恢复点选择功能。因此从严格意义上讲数据泵备份并不是一种全面的数据保护解决方案而更多地被视为一种临时性的最低限度保护措施。为了达到更好的数据保护效果建议将数据泵与RMANRecovery Manager结合使用。
下面介绍生产中一个常用的逻辑备份脚本。
2 准备工作
准备工作主要有备份空间分配、脚本路径创建等。
2.1 备份空间分配
数据泵主要在Server端工作导出的文件需要写入到Server端本地目录需要在数据库中创建一个DIRECTORY对应的是Server端的路径。
逻辑备份由于是生成在本地在生产环境中建议DIRECTORY创建在非数据路径下最好使用一个独立的磁盘挂载可以保障当磁盘发生故障时数据文件和备份文件不会同时损坏。
最保险的方式是将备份文件拷贝到网络盘中相当于异机备份。
2.1.1 创建备份目录
[rootoracle11g ~]# mkdir /expdp [rootoracle11g ~]# chown oracle:oinstall /expdp/ [rootoracle11g ~]# ll / | grep expdp drwxr-xr-x 2 oracle oinstall 4096 Sep 25 00:07 expdp
路径需要预留足够大的空间。
2.1.2 创建一个DIRECTORY
登录数据库创建
SQL create or replace directory expdp as /expdp;Directory created.查看创建结果
SQL
set lines 200
col DIRECTORY_PATH for a70
select * from dba_directories where directory_name EXPDP;OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------ ----------------------------------------------------------------------
SYS EXPDP /expdp2.2 脚本路径创建
使用oracle用户创建
[oracleoracle11g ~]$ cd /home/oracle
[oracleoracle11g ~]$ mkdir -p scripts/src
[oracleoracle11g ~]$ mkdir -p scripts/log/expdp
[oracleoracle11g ~]$ tree scripts
scripts
|-- log
| -- expdp
-- src
3 directories, 0 filessrc目录用于存放备份脚本log目录用于存放备份日志。
3 脚本部署
3.1 说明
此脚主要用于导出schemas参数指定的模式本例中为LU9UP、SCOTT备份文件和日志临时存放至 D M P B A S E / {DMP_BASE}/ DMPBASE/{DATE}目录备份文件和备份过程日志最终打包存放至仓库EXPDP目录/expdp下压缩后删除临时目录${DATE}最后清理七天前的压缩文件。
长期保存的日志路径位于/home/oracle/scripts/log/expdp/。
3.2 部署脚本
oracle用户进入/home/oracle/scripts/src目录编辑脚本
$ cd /home/oracle/scripts/src
$ vi expdp_schemas.sh脚本内容如下请根据实际情况修改参数值
#!/bin/bash#environment variablesexport NLS_LANGAMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMATyyyy-mm-dd hh24:mi:ssDBNAMEorcl
SCP_BASE/home/oracle/scripts
LOG_BASE/home/oracle/scripts/log
DMP_LOGDIR${LOG_BASE}/expdp
DMP_BASE/expdpif [ -f $HOME/.bash_profile ];
thenexport ORAENV_ASKNO. $HOME/.bash_profile
fi# commandDATEdate %Y%m%d%Hcd $DMP_BASE
RUN_LOG${DATE}_${DBNAME}_SCHEMAS.logexpdp / as sysdba \directoryEXPDP \dumpfile${DATE}_SCHEMAS%U.dmp \schemasLU9UP,SCOTT \parallel4 \logfile${RUN_LOG} \flashback_time\to_timestamp\(to_char\(sysdate, \yyyy-mm-dd hh24:mi:ss\\),\yyyy-mm-dd hh24:mi:ss\\)\# compressCURENTDIR${DMP_BASE}/${DATE}if [ ! -d ${CURENTDIR} ];
thenmkdir ${CURENTDIR}
ficd ${DMP_BASE}
mv ${DATE}_SCHEMAS*.dmp ${DATE}
cp ${RUN_LOG} ${DMP_LOGDIR}
mv ${RUN_LOG} ${DATE}
tar -zcvf ${DATE}.tar.gz ${DATE}
rm -rf ${DATE}# deleted 7 days ago filesfind /expdp -type f -name *.tar.gz -mtime 7 -exec rm -f {} \;保存并退出赋执行权限
$ chmod x expdp_schemas.sh4 脚本试运行
4.1 执行脚本
$ cd /home/oracle/scripts/src
$ ./expdp_schemas.sh4.2 检查备份日志
$ tail -20 /home/oracle/scripts/log/expdp/2024092502_orcl_SCHEMAS.log4.3 查看备份文件
$ ll /expdp
total 3116
-rw-r--r-- 1 oracle oinstall 3186906 Sep 25 02:47 2024092502.tar.gz5 配置定时任务
添加如下任务
[oracleoracle11g ~]$ crontab -l
#DB Logical Backup
0 1 * * * sh /home/oracle/scripts/src/expdp_schemas.sh /dev/null 21每天凌晨1点执行一次。