1. 程式人生 > >oracle資料庫常見操作

oracle資料庫常見操作

--表分析
select 'analyze table '||table_name||' compute statistics;' from user_tables;
 
--查詢空表
select table_name,num_rows from user_tables where num_rows = 0;
 
--給空表分配空間
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows = 0 ;
 
*******************************************************************************************************************
*******************************************************************************************************************
--匯出dmp檔案
exp user/pass file=F:\hzfx20160419.dmp owner=(hzfx_dev) indexes=n statistics=none
 
exp user/
[email protected]
/orcl file=F:\a.dmp owner=hzfx_dev statistics=none

exp user/[email protected]/orcl file=F:\b.dmp owner=(hzfx_dev) indexes=n statistics=none

exp hztest/[email protected]/orcl file=F:\c.dmp owner=(hztest) indexes=n statistics=none

--匯入dmp檔案
imp user/[email protected] file=D:\JOYINTECH\ZCGLDB_20141026210820.dmp full=y  ignore=y

impbd user/
[email protected]
file=D:\JOYINTECH\ZCGLDB_20141026210820.dmp full=y  ignore=y

impdp user/[email protected] directory=DATA_PUMP_DIR dumpfile=D:\app\oracle\admin\orcl\dpdump\ZCGLDB_20141026210820.dmp

imp user/[email protected] file=D:\JOYINTECH\ZCGLDB_20141026210820.dmp fromuser=hzsc touser=hzsc
exp user/
[email protected]
  file=D:\ZCGLDB.dmp owner=ZCGLDB
*******************************************************************************************************************
*******************************************************************************************************************

刪除使用者drop user hzsc cascade;

1:建立臨時表空間
create temporary tablespace user_temp  
tempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_temp.dbf'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;
 
2:建立資料表空間
create tablespace user_data  
logging  
datafile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_data.dbf'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
第3步:建立使用者並指定表空間
create user user identified by user
default tablespace user_data  
temporary tablespace user_temp;  
 
第4步:給使用者授予許可權
grant connect,resource,dba to user

-Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m
*******************************************************************************************************************
*******************************************************************************************************************

在本地oracle建立資料泵
1、建立DIRECTORY
create directory dmp_dir as 'E:\oracle\win64_11gR2_database\database';
2、授權
grant read,write on directory DATABF to user;
然後執行
impdp user/[email protected] DIRECTORY=dmp_dir DUMPFILE=ZCGLDB_20141026210820.dmp

Alter user hzsc default tablespace hzsc quota unlimited on hzsc;

grant create session to hzsc;

grant connect to hzsc;

grant connect, resource, dba to hzsc;
grant create table to hzsc;

grant create view to hzsc;

grant create trigger to hzsc;

grant select any table to hzsc;
grant create sequence to hzsc;

grant create procedure to hzsc;

grant create role to hzsc;

grant create type to hzsc;

grant GRANT ANY PRIVILEGE to hzsc;

create directory dump_dir as 'D:\app\oracle\admin\orcl\dpdump';
IMPDP USERID='user/[email protected]' directory=DATA_PUMP_DIR schemas= ZCGLDB
dumpfile=ZCGLDB_20141026210820.dmp logfile=dag.log;
impdp user/pass directory=DATA_PUMP_DIR dumpfile=ZCGLDB_20141026210820.dmp sqlfile=sec_expdp.sql TRANSFORM=segment_attributes:n

*******************************************************************************************************************
*******************************************************************************************************************
select * from dba_directories

expdp與impdp命令
2014年10月27日
15:49
 
expdp與impdp命令
 
在cmd 環境中
連線資料庫
sqlplus username/[email protected]
連線後,建立目錄
SQL>create directory databf as 'd:\oracle\bf'
授權
SQL>grant read,write on directory databf to user
 
匯出整個資料庫
expdp user/user schemas=user DIRECTORY=databf DUMPFILE=ZCGLDB_2015.dmp full=y;
 
匯入整個資料庫
impdp user/pass DIRECTORY=databf DUMPFILE=ZCGLDB_20141026210820.dmp full=y;
 
若發現匯入時有錯誤時需用transform去掉表空間和儲存子句
impdp user/user DIRECTORY=databf DUMPFILE=ZCGLDB_20150227192901.dmp TRANSFORM=segment_attributes:n full=y;
*************************************************************匯出DMP檔案start*************************************************************

exp user/user owner=ZCGLDB file=E:\CHECKOUT_HZ\user.dmp
*************************************************************匯出DMP檔案  end*************************************************************

*************************************************************匯入DMP檔案start*************************************************************
imp lczcgl/lczcgl file=F:\app\bf\lczcgl20151021.dmp  fromuser=lczcgl touser=lczcgl ignore=y

1、建立使用者create user lczcgl identified by lczcgl
2、給使用者授予許可權grant connect,resource,dba to lczcgl
3、建立DIRECTORYcreate directory DATABF as 'F:\app\bf'  (將dmp檔案放入目標資料夾中)
4、授權grant read,write on directory DATABF to lczcgl;
4、匯入impdp lczcgl/lczcgl DIRECTORY=databf DUMPFILE=lczcgl20151021.dmp TRANSFORM=segment_attributes:n full=y;
*************************************************************匯入DMP檔案  end*************************************************************

*************************************************************解決空表問題    *************************************************************
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0


impdp cdtis2/cdtis2 DIRECTORY=DATABF DUMPFILE=cd20150721.dmp remap_schema=cdbk:cdtis2 remap_tablespace=CDBK_DATA:tis TRANSFORM=segment_attributes:n full=y;
/*
 *說明:cdbk是他原來的表空間和庫名,cdtis2是新建立的庫名,tis是這個庫名的表空間。
 */