使用exp和imp命令是oracle對數(shù)據(jù)進(jìn)行遷移備份的一種最簡單最常用的一種方式,。在此記錄下使用的方法步驟,,以備后用,。 首先,,在老庫上使用命令: exp userid=username/password@database OWNER=xxx file=xxx.dmp log=xxx.log 其中@后面的database是數(shù)據(jù)庫連接字符串,。可以是ip:port/servicename的形式,。例如192.168.1.10:1521/orcl 如果配置了tnsname,,那么@后面可以直接寫配置的tnsname。例如ORCL,。 這里順便說一下使用PL/SQL登錄時(shí),,Database文本框中需要填寫的連接字符串的含義。如圖 里面可以直接填寫在tnsnames.ora中配置的tnsname,。例如ORCL,。這樣就可以直接根據(jù)tnsname來獲取ip、端口號,、servicename等值,,然后就可以得到連接字符串。 ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 但是如果沒有在tnsnames.ora中配置的話,,而是直接使用PL/SQL來進(jìn)行連接,。那么這時(shí)候就需要在PL/SQL的Database中直接填寫連接字符串了。例如填寫:192.168.1.10:1521/orcl,。這兩種方式都是可以的,。這樣經(jīng)過第一步,dmp文件就已經(jīng)導(dǎo)出成功了,。下面需要的是建立新庫的表空間和owner,。 對于表空間,一般情況下在老庫上可以看到,。但是如果現(xiàn)在只有一個(gè)dmp文件,,不知道里面的表空間是什么,,怎么辦呢。這里有一個(gè)簡單的方法來獲取相關(guān)的信息,。 就是在新庫上隨便找一個(gè)管理員賬戶來執(zhí)行imp命令導(dǎo)入dmp文件,。但是由于OWNER不正確,會(huì)導(dǎo)致導(dǎo)入的表和數(shù)據(jù)會(huì)跳過,,并不會(huì)真正的導(dǎo)入,。但是這樣會(huì)生成log文件。從log文件中就可以查看出表空間等信息,。例如: imp userid=system/manager file=xxx.dmp full=y ignore=y show=y log=xxx.log 查看相關(guān)的log,,查看相關(guān)的表空間等信息。如果新庫沒有相關(guān)的表空間,,就需要進(jìn)行創(chuàng)建表空間。創(chuàng)建命令如下: CONNECT / AS SYSDBACREATE TABLESPACE xxx DATAFILE 'D:\app\oradata\ORCL\XXX01.DBF' SIZE 200M AUTOEXTEND ON NEXT 20M MAXSIZE 4G; 創(chuàng)建好表空間后,,然后進(jìn)行創(chuàng)建用戶:CREATE USER 然后就可以真正的導(dǎo)入dmp文件了: imp USERID= 這樣庫也就遷移成功了,。 另外再附上將庫全部刪除的命令: CONNECT / AS SYSDBADROP TABLESPACE xxx INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;DROP USER
|
|