Linux下Oracle数据库怎么导入或导出单个表
admin
2023-05-28 11:41:31
0

事情的原委是这样:用户的库,要在一个表里面进行标签替换,在写sql的时候,大意了,没注意字符转义,结果执行完sql,出事了,将一个内容表里的信息,全部替换成空了~还好有备份;

计划是这样,先备份目前的库,之后将前一天晚上的备份恢复进去,把该表里的数据导出,在将现在的备份恢复,用昨天晚上的单表备份,将现在的问题表替换,这样就保证的数据的相对完整,因为出事的时候,已经是快下班5点多,白天一天,用户已经完善了好多信息,但该表里的数据,就只能是昨天的了,估计会丢失几条数据,也没办法了~开始整;

首先,执行最新数据库备份,使用exp,将库做备份;

第二步,拿到昨天晚上的备份文件dmp文件,(我的项目都做有定时自动备份,这个是很有必要的,每天晚上2点半自动备份库,保留最新5天备份)这个时候,我的做法是将目前的库直接停掉,重新建库,因为你用imp恢复的时候,你现在的库里是有表的,执行imp会失败;

做法:停监听,停库,之后将oracle mv 为 oracle_日期,贴一下代码,

su - oracle    //登录oracle
lsnrctl stop  //停止监听
sqlplus "/as sysdba"  //进入数据库
shutdown immediate  //停止数据库
exit   //退出oracle
cd /oracle  //进入目录
mv oracle oracle_20170119  //重命名老的oracle

tar -zxvf oracle11g.tar.gz  //解压包

解压之后,重新登录库,修改配置文件

su - oracle    //登录oracle
vi  .bash_profile  //修改配置文件
以下为文件内容
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$ORACLE_HOME/bin:$PATH

保存完后执行 source .bash_profile
lsnrctl start 	//启监听
sqlplus "/as sysdba"  //进入数据库
startup     //启动数据库,然后执行下面4名命令,创建实例,一个一个执行

create tablespace oracle datafile '/oracle/oracle/oradata/orcl/oracle.dbf' size 2048M;
create user oracle identified by oracle default tablespace oracle;
grant connect,resource to oracle;
grant dba to oracle;

上面的4行命令,主要是新建表空间,之后建用户,我的账号密码都用的oracle,数据库也是oracle

执行完成,exit退出到oracle用户下,因为之前执行的都是sql,都是在sql>下进行的;

cp  前一天的备份,到当前目录,之后执行导入;

imp oracle/oracle  file=oracle_20170118.dmp  fromuser=oracle touser=oracle rows=y

导入之后,可以启动web服务看看是否读库正常,正常表示刚才的操作都是成功的;接下来进行最重要的一步,导出单个表;我要导出cms_gk这个表

exp oracle/oracle file=/oracle/backup/oracle_20170118_cms_gk.dmp tables=CMS_GK

这里,利用tables这个属性,就可以直接导出单个表了;

之后拿到cms_gk表,将数据库在恢复到下午出问题的时候,因为除了这个表,其他表里面的数据,都是最新的;继续执行停监听,停库,将刚才的oracle mv 为 oracle_20170118,将之前的oracle_日期文件夹mv为oracle,因为之前的库,没有动什么,里面的表什么都是完整的,所以将oracle恢复之后,就能直接起库了,起来后,登录数据库,在sql>里执行导入;

imp oracle/oracle file=oracle_20170118_cms_gk.dmp  fromuser=oracle touser=oracle tables=CMS_GK

导入之后,可以用Navicat链接数据库查看下,或者启动we'b服务,看下是否有信息,我操作到此时,已经将信息成功还原进去了;最后问题算是解决了,丢失了一个表里面的部分数据,算是最小损失了吧 !

相关内容

热门资讯

杨宝桢“宣布退出民众党”,独立... 杨宝桢昨(20)日宣布退出民众党,独立参选台中市东南区市议员选举。前民众党发言人杨宝桢有意角逐台中市...
司法部谈“饭店后厨装不装挡鼠板... ‍‍5月21日,国务院新闻办公室举行新闻发布会,介绍规范涉企行政执法专项行动有关情况。“‘执法标准不...
耿同学,一个退学博士是怎么用A... 2026年的春夏之交,中国学术圈和文学圈接连经历了两场“地震”。学术圈的震中,是一个叫“耿同学讲故事...
国网河南电力智能计量技术亮相2... 5月20日,第 27 个“世界计量日”中国主场活动在河南郑州举行。国网河南省电力公司展示的具身智能机...
原创 手... 上半年换新机的最好时间就是618。为了冲击销量,手机厂家会准备很多促销措施,包括发新机、降价,比如小...
中国汽车崛起,关于设计也该有一... 上个月的北京车展,在181台首发新车和71台概念车的集中呈现之下,汽车设计再次成为行业关注的焦点。 ...
又一大厂裁员8000人!员工连... 智东西 编译 | 佳扬 编辑 | 云鹏 智东西5月20日消息,据纽约时报报道,Meta 8000人裁...
三星罢工危机暂解,加薪6.2%... 三星电子在最后关头与工会达成初步协议,避免了一场可能严重冲击全球内存芯片供应链的大规模罢工。对于正处...
马办与调查小组撕破脸,李德维称... 马英九指控基金会前执行长萧旭岑、王光慈破坏财政纪律,并指派基金会董事组成三人小组调查,但基金会数度指...
潮涌伊滨向“新”行 魏书生中学的“AI创想家”未来教室。伊滨宣供图钢制家具智能化生产场景。张若含 摄宁德时代洛阳基地。张...