当前位置:首页 » 操作系统 » linux自动备份oracle数据库

linux自动备份oracle数据库

发布时间: 2022-05-27 04:05:13

1. 在java代码中怎么是实现linux操作系统下oracle数据库的备份工作

这个你要懂得socket编程以及
系统编程
才行啊(系统编程不用很深入,知道怎么能够启动一个
系统进程
就可以了,主要还是调用一个备份用的shell)。
1.
首先要编写一个客户端,和服务端。(具体的编写过程就靠自己了)
2.
服务端部署在
linux服务器
上,客户端部署在本地电脑
3.
服务端监听某个端口,等待
客户机
发送的命令,并且能够启动系统进程进行备份。

2. linux oracle 自动备份详解

写个备份脚本,然后将脚本添加到crontab中,就可以自动执行备份了。

3. linux下怎么定时备份oracle数据库

如果是sql server,定期备份可以利用sql server的management studio来做,比较方便。但要做oracle的定期备份,那就需要我们写导出命令,并设置linux的定时任务。
首先创建一个数据库作为测试。
--创建数据表空间
create tablespace test_data
logging
datafile '/u01/app/oradata/test/TEST.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

--创建用户并指定表空间
create user TEST identified by 123
default tablespace test_data
temporary tablespace temp;

--给用户授予权限
grant connect,resource to TEST;
用Test用户登录,创建一个表,并插入两条数据:
create table t1(
Id varchar(50) primary key,
title varchar(50)
);

insert into t1 values(sys_guid(),'t1');
insert into t1 values(sys_guid(),'t2');
commit;
先写一个导出的脚本文件:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=TEST
export PATH=$ORACLE_HOME/bin:$PATH
d=$(date '+%Y%m%d')
exp TEST/123@TEST file=/home/oracle/backup/$d.dmp log=/home/oracle/backup/$d.log owner=TEST
zip -m /home/oracle/backup/$d.zip /home/oracle/backup/$d.dmp /home/oracle/backup/$d.log
前4句是设置环境变量,因为crontab定时调用时,不会使用oracle用户的环境变量,所以要先把它们导进来。第6行以当前日期作为导出的文件名,例如20120626.dmp和20120626.log。第7行把这两个文件打成一个zip包,并删掉这两个文件。
要用chmod命令把这个sh标记为可执行:
chmod +x backup.sh

用oracle用户,输入crontab -e命令,编辑oracle用户的任务计划:
[oracle@localhost backup]$ crontab -e
42 13 * * * /home/oracle/backup/backup.sh
这样就添加了一个计划,在每天的13点42分运行/home/oracle/backup/backup.sh。

另外,每天运行完之后,会收到mail通知,可以在mail里看出到底有没有正确运行。

4. linux oracle数据库备份的数据有哪些

步骤如下:
一、编写备份数据库的shell
1、创建保存shell文件的文件夹
2、文件内容为:
#!/bin/sh
PATH=$PATH:$HOME/bin
export PATH
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export ORACLE_HOME
ORACLE_SID=HRDB
export ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
exp fact/fact file=/backup/fact`date +%y%m%d`.dmp
log=/backup/factlog`date +%y%m%d`.log

shell文件编写完毕
一、运行以上的shell文件
看是否能生成备份的.dmp文件,如果能则表示shell文件编写成功

二、然后在此shell
文件的所在终端输入命令,将此文件授权让root用户可以执行:

三、命令为:chmod +x backup.sh
四、然后到root终端编写定时备份的语句
五、语句为:crontab –e
六、输入i
七、输入10 17 ,,,/home/backupscript/backup.sh
八、按下esc建,输入:wq 退出并保存即可。

5. linux系统上怎样备份oracle数据库

步骤以下:1、编写备份数据库的shell
1、创建保存shell文件的文件夹,2、文件内容为:#!/bin/sh
PATH=$PATH:$HOME/bin
export
PATH
ORACLE_BASE=/u01/app/oracle
export
ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export
ORACLE_HOME
ORACLE_SID=HRDB
export
ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export
PATH
exp
fact/fact
file=/backup/fact`date
+%y%m%d`.dmp
log=/backup/factlog`date
+%y%m%d`.log
shell文件编写终了1、运行以上的shell文件看是不是能生成备份的.dmp文件,如果能则表示shell文件编写成功
2、然后在此shell文件的所在终端输入命令,将此文件授权让root用户可以履行:
3、命令为:chmod
+x
backup.sh
4、然后到root终端编写定时备份的语句5、语句为:crontab
–e
6、输入i
7、输入10
17
,,,/home/backupscript/backup.sh
8、按下esc建,输入:wq
退出并保存便可。

6. linux环境下oracle数据库冷备份问题

1. 复制旧的数据库文件

(1) 用SQLPlus连接数据库:sqlplus 用户名/密码 as sysdba
(2) 关闭DB :shutdown immediate;
(3) 复制文件到其他地方存储实现备份
1)复制三个文件夹admin;oradata(datafile,controlfile,redo【注:数据文件, 控制文件,redo】);flash_recovery_area三个文件夹。2)dbhome_1下的内容database(PWDfile、pfile);dbs(spfile);NETWORK/ADMIN(listener.ora、tnsnames.ora)。

2. Oracle重新建库恢复

(1)创建一个和原来一样的数据库。(安装路径和数据库名必须和原来一致)
(2)停止数据库shutdown immediate;
(3)复制安装目录下的admin、oradata、flash_recovery_area覆盖,复制database(PWDfile、pfile) 覆盖
(4)启动数据库startup;

备注:

无归档模式:将备份文件拷贝回原来的目录即可,然后启动数据库。
归档模式:
①将数据文件、控制文件拷贝回原来目录
②SQL>startup mount;
SQL>recover database using backup controlfile;
③将相应的归档日志和联机日志拖到CMD命令窗口进行跑日志。
④SQL>alter database open resetlogs;

3. 软件重装恢复

此时,操作系统重装,如果做冷备恢复,要保证相同操作系统,相同的数据库版本。形势如同异机恢复。

A、不创建实例:(源机上的数据库名字为orcl)

(1)恢复oradata/orcl目录

在目标机上的oradata目录下建立orcl文件夹,然后进行数据覆盖。

包括数据文件、参数文件、控制文件、日志文件、pwd文件,放在与原系统相同的目录。如果目录有所改变,则需要另外建立控制文件,修改pfile。(2) 恢复admin/orcl目录在目标机上的admin目录下建立orcl文件夹,然后在orcl里面再建立amp、bmp、cmp、ump、dpmp、pfile六个文件夹
(3) 建立服务把源机的密码文件拷贝到目标机的database目录下。使用oradim命令在cmd下oradim -new -sid orcl表示建立一个服务,sid为orcl(最好名字和源机备份的数据库名字一致,就不需要重建密码文件)。如果是在linux下,不需要此步。(4) 重建创建参数文件、控制文件拷贝源机的pfile到目标机的一个目录下,修改pfile里面相关文件的路径。然后通过SQL>create spfile from pfile=‘文件路径'来创建参数文件。重建控制文件命令:SQL>alter database backup controlfile to trace;然后会在ump文件夹下产生一个追踪文件,打开文件找到如下一段,复制到文本中,修改相应路径然后保存为:createctl.sql文件(sql脚本文件),复制到目标机上。注意:SQL>alter database backup controlfile to trace as 'F:/DB_RECOVERY/CONTROL_FILE_TRACE.TXT';复制的原始导出txt中的,相应代码片段如下:修改oracle_homeoradataorcl下及相关文件的路径

(6) TNSNAMES设置在networkadmin下的tnsnames.ora中添加如下片段

123456789 ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))


(7) 建立监听用net configuration为orcl实例新建监听至此,冷备份恢复成功。即使你现在用oem打开数据库时发现提示找不到sid ,但实际上你已经成功了,此时只需要重启一下的你的服务器就可以。

B、创建实例方式(实例SID与源机数据库SID一致)

(1) 替换和覆盖oradataorcl目录删除目标机的oradataorcl底下的所有文件,把源机的所有data文件、redo文件拷贝到此目录下
(2) 密码文件覆盖删除目标机的密码文件,拷贝源机密码文件到目标机下。
(3) 控制文件恢复在源机上重建目标机的控制文件:SQL>alter database backup controlfile to trace;然后会在ump文件夹下产生一个追踪文件,打开文件找到上面那段,复制到文本中,修改相应路径然后保存为:createctl.sql文件(sql脚本文件),复制到目标机上。
复制代码代码如下:

12345 c:>sqlplus"/as sysdba"SQL>@c:createctl.sql;SQL>shutdown immediate;SQL>startup;SQL>alterdatabaseopenresetlogs;


(4) 在networkadmin下的tnsnames.ora中添加如下片段
复制代码代码如下:

123456789 ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))

(5) 用net configuration为orcl实例新建监听

若是初学Linux的话建议看看《Linux就该这么学》这本书。

7. linux系统上怎么备份oracle数据库

exp适合oracle10g,从oracle 11g开始使用expdp工具。

8. 怎么执行oracle数据库自动备份 linux 脚本

Oracle自动备份数据库不外乎以下三种方式WINDOWS下的任务计划(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron
1、生成脚本文件,如backup.rcv 假定文件内容如下:
$>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; release channel c1; release channel c2; release channel c3; }

2、生成执行文件在windows上生成backup_archive.bat,内容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,内容包括oracle/ramn/rman cmdfile = backup.rcv
3、加入调度在windows中用任务计划向导即可,或使用at命令。在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23点对数据库备份
0 12,18 * * * backup_archive.sh
#表示每天12点,18点备份
Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来

9. Linux下备份oracle数据库的步骤 求解高手解决,小弟感激尽!

给的分太少了,不过还是帮帮你吧!

1、如果备份本机的数据库,比如本地数据库实例名为:orcl
那就使用:exp username/password@orcl file=bak.dmp log=bak.log buffer=10240
2、如果是备份另外一台Oralce,要分两步
(1)、配置datasource 比如本地服务器A的IP是192.168.1.101,要备份的服务器B的IP是192.168.1.102,实例名为:orcl 在oracle的tnsnames.ora中配置datasource
db102 = 这个名称随便起
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521)) 这里为机器B的地址及数据库端口号
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =orcl) 这个名称为机器B 数据库SID的值
)
)
测试数据库连通性,在机器A如下;
[oracle@localhost admin]$ tnsping db102
显示如下;
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Proction . 04-JAN-2009 16:53:23
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
/home/oracle/oracle/proct/10.2.0/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DE.ION = (ADDRESS = (PROTOCOL = TCP)(HOST = 61.172.197.197)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jjtdb)))
OK (10 msec)
测试通过
(2)写脚本 exp username/password@db102 file=bak.dmp log=bak.log buffer=10240

10. 怎样在Linux系统中备份Oracle数据库

1导入dmp文件,报 IMP-00013: only a DBA can import a file exported by another DBA 的问题,解决方法
首先应该登陆编辑模式sqlpluse / as sysdba.修改当前的用户的权限
SQL>grant sysdba to user;
SQL>grant imp_full_database to user;
2在导入的时候可能以前的这个用户是存在的并且表也是存在的,那么在导入的时候会报错
我的解决方法是两中新建用户另一种就是把但前的用户下面的表和数据全部删掉。

热点内容
java取系统时间 发布:2024-10-27 19:18:50 浏览:632
配置环境变量有什么坏处 发布:2024-10-27 19:14:28 浏览:532
5d4存储卡闪感叹号 发布:2024-10-27 19:11:10 浏览:444
android聊天工具 发布:2024-10-27 18:45:23 浏览:55
疯狂的android讲义第三版 发布:2024-10-27 18:44:01 浏览:66
我的世界好玩的服务器一开始就有钻石套装 发布:2024-10-27 18:30:14 浏览:489
androidstudiov4包 发布:2024-10-27 18:27:18 浏览:956
安卓手机电量为什么越充越少 发布:2024-10-27 18:24:20 浏览:191
linux输出文件 发布:2024-10-27 18:22:41 浏览:180
久益压缩机头 发布:2024-10-27 18:17:10 浏览:544