Oracle新建數據庫,並導入dmp文件 Oracle修改表空間大小

1:安裝Oracle及新建數據庫html

Oracle 11g安裝圖解 mysql

http://www.cnblogs.com/qianyaoyuan/archive/2013/05/05/3060471.htmllinux

http://jingyan.baidu.com/article/380abd0aadb63a1d90192cec.html算法

Oracle圖形化新建數據庫 sql

http://jingyan.baidu.com/article/90bc8fc80c01f2f653640c1f.html數據庫

2:數據庫創建成功以後,新建表空間,臨時表空間,分區表空間服務器

  2.1:創建表空間,臨時表空間,分區表空間,路徑和大小根據實際狀況修改數據結構

  2.2:新建用戶 CCENSE/CCENSEoracle

--創建表空間,路徑和大小根據現場狀況修改
CREATE TABLESPACE "CCEN" 
    LOGGING 
    DATAFILE 'E:\oracle2\bus\CCEN.ora' SIZE 1000M 
    AUTOEXTEND ON NEXT 1000M MAXSIZE UNLIMITED 
    EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO 
/

--創建臨時表空間,路徑和大小根據現場狀況修改
CREATE 
    TEMPORARY TABLESPACE "CCEN_TMP" TEMPFILE 
    'E:\oracle2\bus\CCEN_TMP.ora' SIZE 1000M EXTENT 
    MANAGEMENT LOCAL UNIFORM SIZE 1M 
/
--創建分區表空間tbs_par1
CREATE TABLESPACE "TBS_PAR1" 
    LOGGING 
    DATAFILE 'E:\oracle2\bus\TBS_PAR1.ora' SIZE 1000M 
    AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT
  LOCAL SEGMENT SPACE MANAGEMENT AUTO
/
--創建用戶
CREATE USER "CCENSE"  PROFILE "DEFAULT" 
    IDENTIFIED BY "CCENSE" DEFAULT TABLESPACE "CCEN" 
    TEMPORARY TABLESPACE "CCEN_TMP" 
    ACCOUNT UNLOCK;
GRANT "CONNECT" TO "CCENSE";
GRANT "DBA" TO "CCENSE";
/

3:Oracle imp/impdp 導入dmp文件到數據庫app

使用EXPDPIMPDP時應該注意的事項:

EXPIMP是客戶端工具程序,它們既能夠在客戶端使用,也能夠在服務端使用

EXPDPIMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用

IMP只適用於EXP導出的文件,不適用於EXPDP導出文件;IMPDP只適用於EXPDP導出的文件,而不適用於EXP導出文件。

注意:EXP不會導出空表(可能會對存儲過程有影響)

3.1: exp/imp導出/導入數據

--exp導出數據
exp CCENSE/CCENSE@OracleDB file=D:\DBBackUp\oracleExp.dmp log=D:\DBBackUp\oracleExp20161103.log
--imp導入數據
imp CCENSE/CCENSE@OracleDB file=D:\DBBackUp\oracleExp.dmp log=D:\DBBackUp\oracleImp20161103.log FULL=y;

/* 說明:CCENSE/CCENSE@OracleDB --->用戶名/密碼@數據庫實例
        file="本地路徑+須要導入/導出的dmp文件全稱"
        log="日誌文件"
        FULL=y;
*/

 --給當前用戶追加connect,resource,dba [非必須] grant connect,resource,dba to CCENSE; 

數據導出:
 1 將數據庫TEST徹底導出,用戶名system 密碼manager 導出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
  2 將數據庫中system用戶與sys用戶的表導出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
  3 將數據庫中的表table1 、table2導出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 
  4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
   
      上面是經常使用的導出,對於壓縮我不太在乎,用winzip把dmp文件能夠很好的壓縮。
  不過在上面命令後面 加上 compress=y  就能夠了 
數據的導入
 1 將D:\daochu.dmp 中的數據導入 TEST數據庫中。
   imp system/manager@TEST  file=d:\daochu.dmp
    上面可能有點問題,由於有的表已經存在,而後它就報錯,對該表就不進行導入。
   在後面加上 ignore=y 就能夠了。
 2 將d:\daochu.dmp中的表table1 導入
 imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1) 
3: 只導出表結構,不導出表數據 添加 rows=n

3.2:expdp/impdp導出/導入數據

使用impdp命令,須要在oracle數據庫服務器操做:

使用sqlplus或者Oracle客戶端(PL/SQL) 連接到相應的Oracle數據庫實例(進行下面第一,第二兩步驟的操做)

1、建立邏輯目錄,該命令不會在操做系統建立真正的目錄,最好以system等管理員建立。

create directory dpdata1 as 'd:\test\dump';

(查看服務器上若沒有存在d:\test\dump目錄,則手動新建,把dmp備份文件放到d:\test\dump目錄下面)

2、查看管理理員目錄(同時查看操做系統是否存在,由於Oracle並不關心該目錄是否存在,若是不存在,則出錯)

select * from dba_directories;

3、導入數據庫

--expdp導出數據
expdp CCENSE/CCENSE@OracleDB directory = "dpdata1" dumpfile ="oracleExpdp.dmp" logfile = oracleExpdp20161103.log
--impdp導入數據
impdp CCENSE/CCENSE@OracleDB directory="dpdata1" dumpfile="oracleExpdp.dmp" logfile = oracleImpdp20161103.log FULL=y;

/* 說明:CCENSE/CCENSE@OracleDB --->用戶名/密碼@數據庫實例
        directory="在步驟一中建立的邏輯目錄"
        dumpfile="須要導入/導出的dmp文件全稱"
        logfile="日誌文件"
        FULL=y;
*/
--其餘SQL
--表空間[10G]和臨時表空間[1G]
/*表空間*/
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
FROM dba_tablespaces t, dba_data_files d 
WHERE t.tablespace_name = d.tablespace_name 
GROUP BY t.tablespace_name;

/*臨時表空間*/
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;

-- 查看端口是否被佔用
netstat -aon|findstr "1522"

-- 查看監聽狀態,啓動監聽,關閉監聽
lsnrctl status LISTENER2
lsnrctl start LISTENER2 
lsnrctl stop LISTENER2

--訪問地址
linux sqlplus ccense/ccense@//localhost:1521/OracleDB;
win sqlplus ccense/ccense@IP:1521/OracleDB;

 參考文檔:http://www.cnblogs.com/luluping/archive/2010/03/16/1687093.html

Oracle修改表空間大小

http://www.cnblogs.com/RoyYu/archive/2012/12/09/2810492.html

--查看錶空間的使用狀況
select b.file_name 物理文件名,
       b.tablespace_name 表空間,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
  from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id
 group by b.tablespace_name, b.file_name, b.bytes
 order by b.tablespace_name;

--表空間查詢
SELECT UPPER(F.TABLESPACE_NAME) TABLESPACE_NAME, --  表空間名,
       D.TOT_GROOTTE_MB TOT_GROOTTE_MB, --   表空間大小(G),
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES USEDMB, ---已使用空間(G),
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               '990.99') || '%' USAGERATIO, -- 使用比,
       F.TOTAL_BYTES, -- 空閒空間(G),
       d.MAXBYTES --表空間最大能擴到多大
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 3) TOTAL_BYTES
          FROM SYS.DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 3) TOT_GROOTTE_MB,
               ROUND(sum(dd.MAXBYTES) / (1024 * 1024 * 1024), 3) MAXBYTES
          FROM SYS.DBA_DATA_FILES DD
         GROUP BY DD.TABLESPACE_NAME) D
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
 ORDER BY 2 DESC;
--查看錶佔用表空間的大小,查看各表數據的行數 SELECT t.table_name, t.NUM_ROWS, s.BYTES, t.OWNER, t.TABLESPACE_NAME FROM dba_tables t, user_segments s where t.TABLE_NAME = s.segment_name ORDER BY 3 DESC; --給sde表空間再添加數據文件 ALTER TABLESPACE CCEN ADD DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\NEWBUS2\CCEN.ORA' SIZE 2048M;
--AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED [待驗證]

--擴展示有表空間數據文件
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 32000M;
--查詢數據庫錶行數
select t.table_name,t.num_rows from user_tables t

--修改數據文件大小
alter database datafile 'H:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\USERS01.DBF' RESIZE 10240M; 


--查詢某表空間下有哪些數據文件
select * from dba_data_files where tablespace_name='ARCHIVES';

--刪除某個數據文件
alter tablespace tablespace_name drop datafile 'd:\sp01.dbf';

 --移動數據文件 有時,若是你的數據文件所在的磁盤損壞時,該數據文件將不能在使用,爲了可以從新使用,須要將這些文件的副本移動到其餘的磁盤,而後恢復。

   下面以移動數據文件sp01.dbf爲例來講明:

 --1.肯定數據文件所在的表空間

     select tablespace_name from dba_data_files where fille_name='d:\sp01.dbf';

 --2.使表空間脫機,確保數據文件的一致性,將表空間轉變爲offline的狀態。

     alter tablespace sp01 offline;

 --3.使用命令移動數據文件到指定的目標位置

     host move d:\sp01.dbf c:\sp01.dbf;

 --4.執行alter tablespace命令 --在物理上移動了數據以後,還必須執行alter tablespace命令對數據庫文件進行邏輯修改

    alter tablespace sp01 rename datafile 'd:\sp01.dbf' to 'c:\sp01.dbf';

 --5.使表空間聯機

    alter tablespace sp01 online;

 imp 只導入數據,不導入表結構,在命令里加上ignore=y就能夠了

       ignore=y至關於,若是沒有的表,建立並倒入數據,若是已經有的表,忽略建立的,但不忽略倒入。

       在使用IMP導入並使用ignore=y參數時,Oracle根本不檢查要導入的數據結構和現存在數據庫中表的結構是否相同

       DESTROY=Y 覆蓋已存在的表

exp 命令導出表結構,不導出表數據。只需在命令行里加一個參數rows=n便可。表示不導出表數據

---------------------------------------------------------------------------------------------------------------------------------

--查看指定的表空間是否爲自動擴展
select file_name,autoextensible,increment_by from dba_data_files where tablespace_name = '表空間名'; 

--若是不是自動擴展想修改成自動擴展的話須要操做
alter database datafile '/u01/app/oracle/oradata/XXX/XXXX01.dbf' autoextend on;

alter database datafile '/u01/app/oracle/oradata/XXX/XXXX01.dbf' autoextend on next xxx maxsize xxxx;

--關閉自動擴展
alter database datafile '/u01/app/oracle/oradata/XXX/XXXX01.dbf' autoextend off;

--開啓自動擴展功能語法:
alter database datafile '對應的數據文件路徑信息' autoextend on;

--關閉自動擴展功能語法:
alter database datafile '對應的數據文件路徑信息' autoextend off;
dba_tables : 系統裏全部的表的信息,須要DBA權限才能查詢
all_tables : 當前用戶有權限的表的信息(只要對某個表有任何權限,便可在此視圖中看到表的相關信息)
user_tables: 當前用戶名下的表的信息

select * from dba_tables where TABLESPACE_NAME='CCENSE'--'SYSTEM'--'SYSAUX';
--oracle查詢全部表格數據量(行數)
select t.table_name,t.num_rows from user_tables t;
--查詢行數小於100W的表,並用逗號分隔轉換爲一行
select wm_concat(t.table_name) from user_tables t
WHERE t.num_rows<1000000
order by t.num_rows desc;
因此以上3個視圖中,user_tables的範圍最小,all_tables看到的東西稍多一些,而dba_tables看到最多的信息
相關文章
相關標籤/搜索