-
2021-11-10 14:07:44
#!/bin/bash #:本脚本自动备份7天的数据库,每次备份完成后,删除7天之前的数据。 #加载oracle的相关参数 #如果oracle参数不明确,请使用命令查看 # su - oracle # echo $ORACLE_HOME export ORACLE_BASE=/db/app/oracle export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin #oracle字符集 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #获取当前时间,格式:20150210 DATE=`date +%Y%m%d` #获取7天之前的时间,格式:20150203 DATE_RM=`date -d "7 days ago" +%Y%m%d` #设置备份目录, export DIR=/home/oracle/oracledata/backup echo $DIR #创建日期目录 mkdir -p $DIR/$DATE #开始备份,此处采用exp方式导出,根据实际情况可选用expdb数据方式导出 echo 'Oracle backup...' exp xxxxxx/xxxxxx@xxxxxxxxx:1521/orcl file=$DIR/$DATE'/C8DBData_'$DATE'.dmp' # exp cs_prod/quickdone@CSIC8 file=$DIR/$DATE'/csprod_'$DATE'.dmp' log=$DIR/$DATE'/csprod_log_'$DATE'.log' echo 'Oracle backup successfully.' echo 'remove...' rm -rf $DIR/$DATE_RM echo 'remove successsfully.'
更多相关内容 -
Linux中Oracle数据库备份
2020-12-16 05:55:50先来介绍一些不使用脚本我们直接使用命令备份与还原oracle数据库Oracle数据备份:步骤 1 备份用户数据。1.使用linux系统下的数据库管理员账号连接linux终端。2. 执行以下语句,创建“bak_dir”文件夹。 代码如下: ... -
Linux 自动备份oracle数据库详解
2020-12-16 09:24:46Linux 自动备份oracle数据: 曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的。 所以,在工作中,不管是开发还是... -
Linux oracle 自动备份脚本
2019-01-16 21:02:04Linux oracle 自动备份脚本,学习了 -
Linux下Oracle设置定时任务备份数据库的教程
2021-01-10 16:47:16数据库的字符集必须和Linux下设置的环境变量一致,不然会有乱码。 以下两个sql语句都可以查到: select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; select * from v$nls_parameters ... -
linux下oracle11g 数据库备份异机还原
2018-11-09 17:48:09inux下oracle11g 数据库冷备份异机还原,适用于可以停机备份的数据库,方便数据库文件过大还原,本人测试的数据库文件有一百多G -
linux下远程定时备份oracle数据库
2022-03-02 14:39:161.在没有安装oracle数据库的linux环境下,远程定时备份oracle数据库。 2.并且提供安装包,以及操做文档。 -
Linux下Oracle备份与恢复
2014-09-18 17:20:51Linux下Oracle备份与恢复,其中包括shell命令文件,详细描述了可能出现的问题,如何解决等情况 -
Oracle在Linux环境下全盘备份与恢复
2020-12-14 18:39:29备份文件大小:3.8TB 数据库路径:CT:/oracle1/app/oracle/oradata/CT PF:/oracle1/app/oracle/oradata/PF LA:/oracle2/app/oracle/oradata/LA PL:/oracle2/app/oracle/oradata/PL (二)恢复数据库环境 操作... -
Linux下oracle数据库备份方案
2022-03-03 09:54:18#新建Oracle数据库备份目录 mkdir -p /backup/oracledata #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的) chown -R oracle:oinstall /backup/oracledata ...1、root用户登录服务器
#新建Oracle数据库备份目录 mkdir -p /backup/oracledata #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的) chown -R oracle:oinstall /backup/oracledata -R
2、新建Oracle数据库备份脚本
vi /backup/oracledata/ordatabak.sh #新建文件,输入以下代码 #!/bin/sh export ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=C export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK # oracle用户的系统环境变量路径:/home/oracle/.bash_profile date=`date +%Y_%m_%d` #获取系统当前日期时间 days=7 #设置删除7天之前的备份文件 orsid=`192.168.0.198:1521/orcl` #Oracle数据库服务器IP、端口、SID orowner=OSYUNWEI #备份此用户下面的数据 bakuser=OSYUNWEI #用此用户来执行备份,必须要有备份操作的权限 bakpass=OSYUNWEI #执行备注的用户密码 bakdir=/backup/oracledata #备份文件路径,需要提前创建好 bakdata=$orowner"_"$date.dmp #备份数据库名称 baklog=$orowner"_"$date.log #备份执行时候生成的日志文件名称 ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件 cd $bakdir #进入备份目录 mkdir -p $orowner #按需要备份的Oracle用户创建目录 cd $orowner #进入目录 exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #执行备份 tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件 find $bakdir/$orowner -type f -name "*.log" -exec rm {} \; #删除备份文件 find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \; #删除日志文件 find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除7天前的备份(注意:{} \中间有空格) :wq #保存退出 chmod +x /backup/oracledata/ordatabak.sh #添加脚本执行权限
3、设置定时
vi /etc/crontab #编辑系统任务计划,添加以下代码到最后一行 30 2 * * * oracle /backup/oracledata/ordatabak.sh #每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件 :wq! #保存退出 service crond restart #重启crond
每天凌晨2点30分,会自动备份数据库到/backup/oracledata/OSYUNWEI目录中,保存为.tar.gz压缩文件,并且删除7天前的备份,即只保留最近7天的数据。
备注:以上所有的代码都是在英文半角状态下输入。
-
LINUX下Oracle数据导入导出的方法详解
2020-12-16 14:56:57本文讲述了LINUX下Oracle数据导入导出的方法。分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制... -
linux命令及oracle备份
2021-05-07 07:49:251.linux下查看占用空间 df -h2.gzip 压缩文件 gzip xx.dmp xx.dmp.gz3.解压缩 gzip -d xx.dmp.gz4.查看tomcat进程ps -ef |grep tomcat5.杀死进程kill -9 pid6.导出数据exp nciclccd_e/nciclccd_e@LCC buffer=9999999...1.linux下查看占用空间 df -h
2.gzip 压缩文件 gzip xx.dmp xx.dmp.gz
3.解压缩 gzip -d xx.dmp.gz
4.查看tomcat进程
ps -ef |grep tomcat
5.杀死进程
kill -9 pid
6.导出数据
exp nciclccd_e/nciclccd_e@LCC buffer=9999999 file=/opt/oracle/backup/exp/trans/20100709140000.dmp
exp user/password file=/home/oracle/ccode_20110526_bak.dmp tables=CCODE CONSTRAINTS=N INDEXES=N
7.数据导入
1.只列出导入文件内容:no
2.创建忽略错误:yes
3.导入权限:yes
4.导入表数据:yes
5.导入整个导出文件:yes
exp userid=user_name/user_pwd@net_service_name owner=user_name file=exp_user_name.dmp buffer=67108864 statistics=none grants=n consistent=y
8.冷备份和热备份
一、冷备份
1.停止数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
2.拷贝路径下:E:/oracle/product/10.2.0/oradata/orcl的文件到备份,目录下
3.在oracle数据,控制,log发生损害时,复制到原地,覆盖原文件
4.重新开启数据库startup
二、热备份
1.热备份必须在日志归档的模式下,进行。
2.查看日志模式
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 9
当前日志序列 11
3.启动归档日志模式
SQL> alter system set log_archive_start=true scope=spfile;
系统已更改。
4.关闭数据库
SQL> shutdown immediate;
5.启动数据库(只启动控制文件不启动数据文件)
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 100663976 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
6.更改数据库为归档方式
SQL> alter database archivelog;
数据库已更改。
7.启动数据文件
SQL> alter database open;
数据库已更改。
8.再次查看log模式
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 9
下一个存档日志序列 11
当前日志序列 11
SQL>
9.
SQL> alter tablespace tab begin backup;
表空间已更改。
10.拷贝 E:/oracle/product/10.2.0/oradata/orcl相应的表空间文件(tab)到备份目录下
11.拷贝结束
SQL> alter tablespace tab end backup;
表空间已更改。
12.将当前日志归档
SQL> alter system archive log current;
系统已更改。
13.归档(执行两次,因为3个log文件)
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
14.关闭数据库
SQL> shutdown immediate
15.删掉数据文件(包含tab表空间的数据文件),重新打开,报错
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 109052584 bytes
Database Buffers 176160768 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TABS.DBF'
16.drop掉6号错误文件
SQL> alter database datafile 6 offline drop;
数据库已更改。
17.加载其它数据
SQL> alter database open;
数据库已更改。
18.拷回备份文件(Itabs.dbf)
19.恢复错误文件
SQL> recover datafile 6;
20.挂载文件
SQL> alter database datafile 6 online;
数据库已更改。
三、控制文件缺失
1. 备份控制文件
SQL> alter database backup controlfile to trace;
数据库已更改。
2.控制文件备份到E:/oracle/product/10.2.0/admin/orcl/udump下,最新的一个
3.打开文件,提取控制文件脚本
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG' SIZE 50M,
GROUP 2 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG' SIZE 50M,
GROUP 3 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF',
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF',
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF',
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF',
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF',
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TABS.DBF'
CHARACTER SET ZHS16GBK
;
-- Commands to re-create incarnation table
-- Below log names MUST be changed to existing filenames on
-- disk. Any one log file from each branch can be used to
-- re-create incarnation records.
-- ALTER DATABASE REGISTER LOGFILE 'E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVELOG/2010_07_23/O1_MF_1_1_%U_.ARC';
-- ALTER DATABASE REGISTER LOGFILE 'E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ORCL/ARCHIVELOG/2010_07_23/O1_MF_1_1_%U_.ARC';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE
-- All logs need archiving and a log switch is needed.
ALTER SYSTEM ARCHIVE LOG ALL;
-- Database can now be opened normally.
ALTER DATABASE OPEN;
存储为文件trl.txt
3.创建控制文件
SQL> @c:/trl.txt
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 113246888 bytes
Database Buffers 171966464 bytes
Redo Buffers 7139328 bytes
控制文件已创建。
ORA-00283: ??????????
ORA-00264: ?????
系统已更改。
数据库已更改。
四、log文件的损坏
重做日志:SQL> alter dabase open resetlog
-
linux下oracle定时备份
2021-11-11 15:52:59通过以下两条命令在数据库创建目录名exp_dir映射到刚才创建的备份路径/opt/oracle/oadbbak目录。 create directory exp_dir as '/opt/oracle/oadbbak'; grant read,write on directory exp_dir to public; Exit...进入oracle账户后创建备份目录
通过mkdir oadbbak命令创建了备份目录oadbbak目录
通过sqlplus 账号/密码 as sysdba登陆数据库
通过以下两条命令在数据库创建目录名exp_dir映射到刚才创建的备份路径/opt/oracle/oadbbak目录。
create directory exp_dir as '/opt/oracle/oadbbak';
grant read,write on directory exp_dir to public;
Exit退出sql
创建 BackUp.sh文件输入以下命令
expdp 账号/密码@ip:1521/portaldb directory=exp_dir dumpfile=`date +%Y%m%d%H%M%S`portaldb.dmp logfile=`date +%Y%m%d%H%M%S`portaldb.log
创建 rootBackUp.sh文件
su -c /opt/oracle/BackUp.sh - oracle
创建DeleteUp.sh文件
删除5天前的备份
find /opt/oracle/oadbbak -maxdepth 1 -type f -mtime +5 -name "*.dmp" | xargs rm -rf
find /opt/oracle/oadbbak -maxdepth 1 -type f -mtime +5 -name "*.log" | xargs rm -rf上传完成之后切换root用户
在root用户下执行crontab -e 添加以下内容:
00 23 * * * /opt/oracle/rootBackUp.sh //每天23点执行
00 02 * * * /opt/oracle/DeleteUp.sh //每天凌晨2点执行
备份时间及次数可根据项目需求自行设置
可以通过tail -n 20 /var/log/cron 查看最近20条的定时任务执行记录
-
linux下oracle数据库自动备份方案
2022-06-09 15:54:54linux自动备份oracle数据库脚本 -
linux下Oracle数据库常见备份策略
2021-05-07 03:15:15常见备份策略:数据库每天自动备份数据需求第一:每天自动备份当天的数据库的数据信息 。第二:把当天备份的数据和日志一起打成.tar.gz包,这样会减少所占硬盘的空间。第三:用FTP把当天的数据.tar.gz包上传到外面的... -
linux下oracle异地备份清除过期文件
2021-09-06 20:04:54linux下自动备份并删除过期文件,同时文件备份到指定异地服务器中 -
Linux oracle数据库自动备份自动压缩脚本代码
2020-09-10 17:29:53主要介绍了Linux oracle数据库备份完成后可以自动压缩脚本代码,大家参考使用 -
Linux系统上Oracle数据库备份和还原操作说明
2021-04-30 10:02:55原标题:Linux系统上Oracle数据库备份和还原操作说明Oracle数据库备份和还原操作说明使用Oralce数据库导出(expdp)、数据库导入(impdp)程序在Oracle数据库之间传输数据对象,进行数据库的备份和还原。数据泵程序需要... -
怎样在Linux系统中备份Oracle数据库
2021-05-04 04:42:59在Linux中Oracle数据库备份的方法有很多,就像mysql一样可以使用不同方法进行备份oracle数据库先来介绍一些不使用脚本我们直接使用命令备份与还原oracle数据库Oracle数据备份:步骤 1 备份用户数据。1.使用linux系统... -
Linux定时备份oracle数据库
2021-12-19 15:43:29Linux用shell脚本+crontab定时备份数据库 -
linux用expdp备份oracle数据库
2022-02-25 13:51:06#创建逻辑目录Oracle_expdp,存放数据物理目录为/orabakdir create or replace directory Oracle_expdp as '/orabakdir'; #查询逻辑目录是否成功 select * from dba_directories #赋权 Grant read,write on ... -
linux-oracle定时备份
2017-11-02 17:27:58在linux操作系统下,使oracle实现定时备份,避免数据丢失 -
Linux下oracle数据库expdp备份脚本含异地备份
2021-08-23 11:09:19文章目录前言一、expdp备份脚本详解二、设置计划任务 前言 日常运维工作中有很多要做数据库备份的工作,除rman备份外最常用的就数数据泵的导出了,下面就把我自己脚本做一个分析 提示:以下是本篇文章正文内容,... -
Linux下实现Oracle数据库自动备份的脚本
2013-04-10 13:44:30Linux下实现Oracle数据库自动备份的脚本 -
linux环境下Oracle自动备份说明
2021-05-06 01:15:37linux环境下Oracle自动备份说明前提Orable已经在linux环境下正确安装使用crontab服务已经正确安装并且启动用户有足够的执行权限配置过程首先创建一个shell文件,名为backuporacle.sh,拷贝以下脚本内容,并保存。...