alter session
set
container=ORCLPDB1
;
create or replace directory backdir as
'/opt/oracle/oradata/backup'
grant read
,
write
on directory backdir to test
;
-
验证是否可以连接
expdp test/testpwd@127.0.0.1/orclpdb1 directory=backdir schemas=test dumpfile=test20230715.dmp logfile=test20230705.log
4.执行成功后编写脚本(脚本目录不要放在directory指定的目录下,30天后自己把自己删了,惨痛教训)
vim backupOracle.sh
DATE=$(date +%Y%m%d)
echo 'Oracle backup...'
expdp test/testpwd@127.0.0.1/orclpdb1 directory=backdir schemas=test dumpfile=test"$DATE".dmp logfile=test"$DATE".log
echo 'Oracle backup successfully.'
echo 'remove...'
directory="/opt/oracle/oradata/backup"
days=30
find "$directory" -type f -mtime +$days -exec rm {} \;
echo 'remove successsfully.'
crontab -e
0 1 * * * /bin/bash /opt/oracle/oradata/backup/backupOracle.sh
crontab -l
###在docker环境中运行crontab -e 可能会出现
no crontab for oracle - using an empty one
/bin/sh: /usr/bin/vi: No such file or directory
crontab: "/usr/bin/vi" exited with status 127
先单独运行vi ,如果没问题,执行下面两句
echo "export EDITOR=vim" >> ~/.bashrc
source ~/.bashrc
1.配置PDB tns,注意如果是rac,这个备份应该只写当前节点ip。如果是写scanip 可能会连接到其他节点,从而报无权限的问题。配置好tnsping 一下 确认都可以正常连通。2.连接到各个pdb 创建专门的备份用户。创建用户 和备份目录 并赋权。3.统一的多pdb备份脚本。
下载oracle19c
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
找到对应版本下载 然后上传到服务器/opt目录下
进入opt目录
下载依赖包:
wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86
19c中采用全局用户,必需用C##开头,导入导出类似。19C中不开启PDB,直接在CDB中导入用户库。保存成bat文件,在window计划任务中添加任务,定时执行备份。