日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下oracle导出12705,llinux下Oracle数据库的单个表导出导入

發布時間:2023/12/19 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下oracle导出12705,llinux下Oracle数据库的单个表导出导入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨晚又是一個晚睡之夜,Oracle數據庫,真是不熟,操作也僅限簡單的導出導入,建庫等!其實只是一個很簡單的問題,卻一度讓我沉思..下面就寫下處理過程,供大家參考!

事情的原委是這樣:用戶的庫,要在一個表里面進行標簽替換,在寫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服務,看下是否有信息,我操作到此時,已經將信息成功還原進去了;最后問題算是解決了,丟失了一個表里面的部分數據,算是最小損失了吧 !

原文:http://thinkgang.blog.51cto.com/1987760/1893097

總結

以上是生活随笔為你收集整理的linux下oracle导出12705,llinux下Oracle数据库的单个表导出导入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。