Oracle迁移数据库
2019獨角獸企業重金招聘Python工程師標準>>>
1.遷移方法概述:
使用Navicat Premium 分別與源數據庫和目標數據庫建立連接,然后借助Navicat Premium自帶的數據傳輸功能,實現Oracle數據庫的遷移.其實跟從MySQL數據庫遷移到Oracle數據庫是一個套路.
O(∩_∩)O~ 聽起來,是不是很簡單,其實就是很簡單!下邊我就講一下具體實現的細節流程:
2.實現步驟:
第一步:在目標數據庫中創建表空間和用戶
這點我再次向對Oracle數據庫不熟悉的同學強調一下,對于Oracle數據庫不像MySQL中,一個用戶可以管理多個數據庫,對Oracle來說,一個用戶只對應一個數據庫,而新創建的用戶是沒有任何資源和權限的,所以需要管理員用戶為其分配資源權限.
在控制臺以管理員權限登錄建立連接:
sqlplus system/admin@192.168.10.112:1521/orcl conn /as sysdba;?
如果你不小心忘記了密碼,可以參考我的另外一篇專門將創建表空間和用戶的博文:Oracle數據庫創建表空間和用戶及刪除數據庫(用戶)
創建表空間與用戶:
<!-- 創建表空間 datafile為你oracle安裝文件的路徑,其中casic_smart.dbf是自己隨便命名的 --> create tablespace casic_smart datafile 'E:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m; <!-- 創建用戶 并為其指定表空間 --> create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users; <!-- 授予權限 --> grant all privileges to tianzhi_smart;?
第二步:使用Navicat Premium 分別與源數據庫和目標數據庫建立連接
使用Navicat Premium連接Oracle數據庫時,可能會報出如下錯誤:
具體解決方案,可參考我的另外一篇博文: Navicat 提示Cannot create oci environment 解決方案
數據庫連接成功后如下圖:
進行數據輸出:
3.其他方法:
如果這種方法遷移不成功,那就來試試一個更簡單的方法:使用Oracel數據庫的imp,exp語句.
?
?
?
1.從源數據庫導出數據:
語法:
exp user1/pwd1@test1 file='E:test.dmp';?
示例:
?
exp tianzhi_smart/tianzhi_smart@192.168.56.60:1521/orcl file='E:\tianzhi_smart.dmp';?
應用截圖:
本人愚鈍,初次使用時,都不知道在哪里輸入這導出語句,所以專門貼出來,以備像我一樣的小伙伴,少走些彎路.
?
2.向目標數據庫導入數據:
語法:
imp user2/pwd@test2 file='E:test.dmp' full=y;?
示例:
?
imp tianzhi_smart/tianzhi_smart@192.168.10.129:1521/orcl file='E:\tianzhi_smart.dmp' full=y;?
應用截圖:
?
?
?
?
?
前言
?
關于dmp文件我們用的還是比較多的,dmp文件它是作為oracle導入和導出表使用的文件格式,今天就將dmp文件導出和導入進行學習。
?
dmp文件導出
?
dmp文件導出用的比較多的一般是三種,他們分別是:導出整個數據庫實例下的所有數據、導出指定用戶的所有表、導出指定表。
?
這里已我的數據庫為例,進行介紹,我的Oracle數據庫實例為"ORACLE",查看自己數據庫實例可以從"任務管理器-->服務"中進行查看,如下圖
?
?
打開命令行:
1,將數據庫ORACLE完全導出,用戶名system密碼manager 導出到c:\daochu.dmp中
exp system/manager@ORACLE file=c:\daochu.dmp full=y
?
2,將數據庫中RFD用戶與,JYZGCX用戶的表導出
exp system/manager@ORACLE file=d:\daochu.dmpowner=(RFD,JYZGCX)
?
3,將數據庫中的表T_USER、T_ROLE導出
expJYZGCX/JYZGCX@ORACLEfile= d:\data\newsmgnt.dmp tables=(T_USER,T_ROLE)
?
上面的system為用戶名,manager為密碼,ORACLE為數據庫實例名,其實不一定非的用system用戶,只要是擁有管理員權限的用戶都可以。
?
dmp文件導入
?
1,打開“開始”-->輸入cmd—> sqlplus /nolog;
2,輸入 conn / as sysdba管理員賬戶登錄;
3,需要創建表空間,如果我們知道需要導入的數據庫的表空間直接創建就可以,如果不不知道,也沒有關系,我們可以用txt打開dmp文件,使用快捷鍵ctrl+F,查找tablespace,就可以找到這個dmp文件所對應數據庫的表空間,然后創建我們找到的表空間就可以;
步,不創建的表空間,創建用戶,并分配權限;
5,打開“開始”-->輸入cmd(注意:這里是cmd窗口,不是sqlplus窗口!!!),輸入以下語句:“imp kang/123456@localhost/ORACLEfile="C:\daochu.dmp"full=y ignore=y”
上述語句說明如下:
kang是創建的登錄數據庫用戶名;
123456是登錄數據庫的密碼;
localhost:代表當前數據庫的地址是本機,如果是遠程導入,替換成對應的ip地址就行
ORACLE:是實例名稱)
file:后面的是你當前dmp文件存放的路徑
full=y,這個貌似是全部
ignore=y,忽略一些錯誤
?
備注:關于數據庫實例、表空間、用戶等基本概念和創建的語句可參考前面的文章“Oracle學習——掃盲篇”
?
小結
?
本篇文章主要講述了,oracle數據導出和導入的具體步驟,其中導入dmp文件的時候即便不知道表空間、用戶名和密碼也可以進行導入。Oracle的學習確實是路漫漫其修遠兮啊!
?
1.創建Oracle表空間與用戶
Oracle數據庫不像MySQL數據庫,一個用戶可以管理多個數據庫,對Oracle來說,一個用戶只對應一個數據庫,而新創建的用戶是沒有任何資源和權限的,所以需要管理員用戶為其分配資源權限.而創建用戶時,需要為用戶指定表空間.
(1) 由于scott權限不夠,不能創建用戶,另外因為其他較高權限的賬號密碼忘記了,所以這里補充一下Oracle更改密碼的方法:
A.在控制臺輸入`sqlplus scott/tiger@192.168.56.6:1521/orcl `連接Oracle; B.輸入`conn /as sysdba`以DBA角色登錄; C.連接成功后,輸入“select username from all_users”查看用戶列表。 D.若修改某一個用戶密碼, 修改用戶口令 格式為:alter user 用戶名 identified by 新密碼;(2) 使用用戶system登錄PL/SQL Developer,創建表空間和用戶
create tablespace casic_smart datafile 'C:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m; create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users; grant all privileges to tianzhi_smart;- 1
- 2
- 3
- 1
- 2
- 3
2.刪除Oracle數據庫(用戶)
刪除oracle數據庫其實也就是刪除oracle用戶,因為在oracle中數據庫與用戶是一一對應的.而刪除數據庫(用戶)之后,再創建用戶,就相當于清空了數據庫里面的數據.
<!-- 以管理員用戶登錄 --> sqlplus /nolog conn /as sysdba; <!-- 刪除數據庫(用戶) --> drop user test1 cascade; <!-- 創建表空間 --> create tablespace casic_smart datafile 'C:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m; <!-- 創建用戶,并指定表空間 --> <!-- 有些是沒有指定表空間的,不知是否可行,未嘗試,保險起見還是按下面方式來 --> create user test1 identified by pwd1 default tablespace casic_smart quota 500m on users; <!-- 授予權限 --> grant all privileges to test1 ;轉載于:https://my.oschina.net/u/2822116/blog/887755
總結
以上是生活随笔為你收集整理的Oracle迁移数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开小车戴帽子扣分吗
- 下一篇: 《PHP和MySQL Web开发从新手到