/**
我如今採用了一個新的方式,從新搭建數據庫。sql
步驟:數據庫
一、先導出數據庫,但不包含表數據。rows=Noracle
二、查詢數據小於50M的表。ide
三、導出小於50M的表數據,包含對象。rows=y parfile=d:\useingdb\table.txt spa
四、導入數據庫。對象
五、導入表數據。
**/table
--1.統計用戶db_user下的表空間查詢出。file
--2.用plsql 導出用戶對象(job 要另外創建);
--db_user.sql
--3.查詢小於50M表 tables=(table1,table2,table3) 保存在table.txt中;
select t.segment_name, sum(t.bytes) / 1024 / 1024select
from user_segments t
WHERE t.segment_type LIKE 'TABLE%'
group by t.segment_name
having sum(t.bytes) / 1024 / 1024 <50
--4.導出數據 表數據小於50M tables=(table1,table2,table3) 保存在table.txt中;
exp db_user/db_user@to_192.168.1.103 file=D:\useingdb\db_user.dmp log=D:\useingdb\db_user.log buffer=20480000 rows=Y parfile=d:\useingdb\table.txt
--db_user.dmp
--3.單獨導出大於50M表
------------------------------------導入-----------------------------------------
--1.建立用戶+密碼
create user db_user identified by db_user;
--2.受權
grant connect,resource,dba to db_user;
--3.根據導入狀況須要創建表空間
create tablespace mytbs datafile 'd:\oracle\oradata\mytbs01.dbf' size 500M autoextend on next 2M;
--4.執行db_user.sql 建立用戶對象(job除外)
--5 導入小於50的表
imp db_user/db_user@to_192.168.1.103 file=D:\useingdb\db_user.dmp full=y buffer=20480000
--6 導入大於50的表,(建立job)
imp db_user/db_user@to_192.168.1.103 file=D:\useingdb\db_other.dmp tables=(table1,table2,table3) rows='y' buffer=20480000密碼