Oracle DBA 必須掌握的 查詢腳本:

 

Oracle  DBA 必須掌握的 查詢腳本:

0:啓動與關閉

                       orcle 數據庫的啓動與關閉
1:鏈接數據庫html

 

  2:數據庫開啓狀態的實現步驟:
       2-1:啓動數據庫
          2-1-1正常啓動數據庫: SQL> startup
           
          特色:啓動數據庫,分配內存,打開實例,啓動後臺進程,數據庫處於open狀態
         2-1-2:進入nomount狀態 SQL> startup nomount
                 
             特色: 打開實例,分配內存,啓動後臺進程
             裝載數據庫:SQL> alter database mount;
             
             特色:
            查詢數據庫狀態:SQL> select status  from v$instance;java

             特色:數據庫處於mounted 狀態
                     打開數據庫 SQL>  alter database open;
             
              特色:數據庫處於打開狀態
              查看數據庫狀態:SQL> select status  from v$instance;
              
   startup nomount ---> alter database mount -->alter database open
   數據庫進入nomount狀態            數據庫進入mount狀態                       數據庫進入open狀態
   
     
                                 |   參數文件(讀取控制文件的物理位置)
  即:數據庫打開的三個過程用到了 |   控制文件(讀取數據文件、日誌文件的物理位置)
數據庫啓動過程
                                 |   數據文件、日誌文件
 
3:關閉數據庫  SQL> shutdown immediate
  
       
        數據庫關閉過程:linux

 

   強制的關閉而後在打開數據庫         sql>startup force
    執行命令時不會進行檢查點的監控
    在重啓時要進行實例的恢復操做;sql


 

            
                              當即          事務            常規
  數據庫關閉類型           abort       immediate    transactional   (shutdown )normal
不容許用於一個新的鏈接       No           No              No             No
等待當前會話結束             No           No              No             Yes
等待當前事務的結束           No           No              Yes            Yes
執行檢查點並關閉打開的文件   No           Yes             Yes            Yes數據庫


描述:何爲「執行檢查點並關閉打開的文件」的操做?《即:一致性關閉數據庫》
   即:當數據庫在執行關閉命令時,數據庫會去檢查日誌文件、數據文件、控制文件的數據保持一致後才進行數據庫的相應文件的關閉操做; 該寫入磁盤的數據都寫入磁盤。安全

在用shutdown abort 命令進行關閉數據時,沒有執行數據庫的監測點的一致性操做;當再一次打開數據庫時,當數據庫再一次啓動時候調用了smo系統進程進行了一次最近操做的實例恢復的操做。
查看smo 後臺進程
[root@localhost orcl]# ps -ef|grep ora_smo
   ruby

 


    4:數據庫啓動操做:示例
 
      查看如何打開nomoun狀態的參數文件的操做步驟:
  1:打開環境變量  cat .bash_profile
  2:打開oracle 安裝的dbs目錄
  bash

當oracle數據庫的參數文件丟失,oracle數據庫不能進入nomoun狀態;
當oracle數據庫的控制文件丟失,oracle數據庫不能進入moun狀態;
當oracle數據庫的數據文件或日誌文件丟失,oracle數據庫不能進入open狀態;session

練習一:當丟失參數文件,orcle數據庫不能進入nomoun狀態時,參數文件如何恢復:
  一:建立丟失場景
   1:先關閉數據庫
      
  2:修改配置文件的名稱,形成配置文件丟失額場景;
      2-1:形成文件丟失的假象
   
     2-2:啓動數據庫,顯示錯誤信息的狀態
     
二:處理相對應的問題的方法
二-1:若是隻是文件名被修改了,並且該文件的參數沒有被修改,則則須要把文件名
       以正確的命名修改回來便可啓動數據庫;
   操做:1:進入linux系統的dbs文件中:
          [root@localhost app]# cd oracle/product/11.2.0/db_1/dbs/
      
                2:修改文件名:
                  [root@localhost dbs]# mv pfileorcl.ora.bak    pfileorcl.ora
                
                3:啓動數據庫:SQL> startup nomount
                  
         二-2:整個文件丟失或則損壞,在沒有備份狀況下怎麼恢復?在有備份狀況下如何恢復?oracle

 

       練習二:丟失控制文件,oracle數據庫不能進入moun狀態,控制文件如何恢復?
         一:建立丟失場景:
          1:先關閉數據庫
      
  2:修改配置文件的名稱,形成配置文件丟失額場景;
    2-1:形成文件丟失的假象
    操做:進入系統中對應的文件位置
    
   修改文件名
   
  啓動數據庫
             
            二:處理相對應的問題的方法
            二-1:若是隻是文件名被修改了,並且該文件的參數沒有被修改,則則須要把文件名
       以正確的命名修改回來便可啓動數據庫;
             操做:1:進入linux系統的dbs文件中:
          [root@localhost app]# cd /u01/app/oracle/fast_recovery_area/orcl/
       
                2:修改文件名:
                  [root@localhost dbs]# mv control02.ctl.bak  control02.ctl
                 
                3:啓動數據庫:SQL> startup nomount
                   
     二-2:整個控制文件丟失或則損壞,在沒有備份狀況下怎麼恢復?在有備份狀況下如何恢復?


          練習場景三:數據文件(日誌文件)丟失,oracle數據庫不能進入open狀態,
                  數據文件(日誌文件)如何恢復?
            三-1:若是隻是文件名被修改了,並且該文件的參數沒有被修改,則則須要把文件                   名 以正確的命名修改回來便可啓動數據庫;
            操做:1:進入linux系統的/u01/app/oracle/oradata/orcl/文件中,並修改文件名稱
                     
                 2:啓動數據庫後,數據庫將不會進入open狀態,並提示oracle的數據文件丟失
                     
         二-1:若是隻是文件名被修改了,並且該文件的參數沒有被修改,則則須要把文件名
        以正確的命名修改回來便可啓動數據庫;
            操做:1:進入linux系統的/u01/app/oracle/oradata/orcl/文件中,並修改文件名稱
                
                2:從新啓動數據庫;
                
         同理,日誌文件也是這樣練習修改的;
二-2:整個數據文件或日誌文件丟失或則損壞,在沒有備份狀況下怎麼恢復?
      在有備份狀況下如何恢復?

1:經過v$parameter數據字段來查詢oracle標準數據塊的大小

  1 ----經過 v$parameter數據字典來查詢oracle標準數據塊的大小。
  2 SYS@orcl> startup
  3 ORACLE instance started.
  4 
  5 Total System Global Area 1221992448 bytes
  6 Fixed Size                  1344596 bytes
  7 Variable Size             771754924 bytes
  8 Database Buffers          436207616 bytes
  9 Redo Buffers               12685312 bytes
 10 Database mounted.
 11 Database opened.
 12 SYS@orcl> col name format a30;
 13 SYS@orcl> col value format a20;
 14 SYS@orcl> select name,value from v$parameter where name='db_block_size';
 15 
 16 NAME                           VALUE
 17 ------------------------------ --------------------
 18 db_block_size                  8192
 19 
 20 SYS@orcl> show parameter db_block
 21 
 22 NAME                                 TYPE        VALUE
 23 ------------------------------------ ----------- ------------------------------
 24 db_block_buffers                     integer     0
 25 db_block_checking                    string      FALSE
 26 db_block_checksum                    string      TYPICAL
 27 db_block_size                        integer     8192

 

2:經過 dict 查看數據庫中數據字典的信息

  1 SYS@orcl> col table_name for a30;
  2 SYS@orcl> col comments for a30;
  3 SYS@orcl> select * from dict;
  4 
  5 TABLE_NAME                     COMMENTS
  6 ------------------------------ ------------------------------
  7 DBA_CONS_COLUMNS               Information about accessible c
  8                                olumns in constraint definitio
  9                                ns
 10 
 11 DBA_LOG_GROUP_COLUMNS          Information about columns in l
 12                                og group definitions
 13 
 14 DBA_LOBS                       Description of LOBs contained
 15                                in all tables
 16 
 17 DBA_CATALOG                    All database Tables, Views, Sy

 

3 : 經過 v$fixed_view_definition 查看數據庫中內部系統表的信息

  1 SYS@orcl> col view_name format a15;
  2 SYS@orcl> col view_definition format a30000;
  3 SYS@orcl>  select * from v$fixed_view_definition where rownum<=10;
  4 
  5 VIEW_NAME              VIEW_DEFINITION
  6 ----------------------------------------------------------------------------------------------
  7 GV$WAITSTAT             select inst_id,decode(indx,1,'data block',2,'sort block',3,'save undo block', 4,
  8 'segment header',5,'save undo header',6,'free list',7,'extent map', 8,'1st level
  9  bmb',9,'2nd level bmb',10,'3rd level bmb', 11,'bitmap block',12,'bitmap index b
 10 lock',13,'file header block',14,'unused', 15,'system undo header',16,'system und
 11 o block', 17,'undo header',18,'undo block'), count,time from x$kcbwait where ind
 12 x!=0

 

4:經過查詢 dba_data_files  數據來了解Oracle系統的數據文件信息

  1 [oracle@localhost ~]$ sqlplus / as sysdba;
  2 
  3 SQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 8 23:27:12 2016
  4 
  5 Copyright (c) 1982, 2011, Oracle.  All rights reserved.
  6 
  7 
  8 Connected to:
  9 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
 10 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 11 
 12 SYS@orcl> col file_name format a50;
 13 SYS@orcl> set linesize3000;
 14 SYS@orcl> select
file_name,tablespace_name
from
dba_data_files
where
rownum<=10;
 15 
 16 FILE_NAME                                          TABLESPACE_NAME
 17 -------------------------------------------------- ------------------------------
 18 /u01/app/oracle/oradata/orcl/users01.dbf           USERS
 19 /u01/app/oracle/oradata/orcl/undotbs01.dbf         UNDOTBS1
 20 /u01/app/oracle/oradata/orcl/sysaux01.dbf          SYSAUX
 21 /u01/app/oracle/oradata/orcl/system01.dbf          SYSTEM
 22 /u01/app/oracle/oradata/orcl/example01.dbf         EXAMPLE
 23 
 24 SYS@orcl>

5:查看 臨時文件信息:  dba_temp_files 、v$tempfile;

  1 SYS@orcl> col file_name format a50;
  2 SYS@orcl> col tablespace_name format a20;
  3 SYS@orcl> select file_name,tablespace_name from dba_temp_files;
  4 
  5 FILE_NAME                                          TABLESPACE_NAME
  6 -------------------------------------------------- --------------------
  7 /u01/app/oracle/oradata/orcl/temp01.dbf            TEMP
  8 
  9 SYS@orcl> 4:
View Code
  1 
  2 SYS@orcl> select * from  v$tempfile;
  3 
  4      FILE# CREATION_CHANGE# CREATION_        TS#     RFILE# STATUS  ENABLED         BYTES     BLOCKS CREATE_BYTES BLOCK_SIZE NAME
  5 ---------- ---------------- --------- ---------- ---------- ------- ---------- ---------- ---------- ------------ ---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  6          1           788143 30-NOV-16          3          1 ONLINE  READ WRITE   30408704       3712     20971520       8192 /u01/app/oracle/oradata/orcl/temp01.dbf
  7 
  8 SYS@orcl>
View Code

6:獲取控制文件信息: v$controlfile 數據字典

  1 SYS@orcl> col name fromat a60;
  2 SYS@orcl> col name format a60;
  3 SYS@orcl> col status format a20;
  4 SYS@orcl> col block_size format a60;
  5 SYS@orcl> col is_recoveris_recover format a60 ;
  6 SYS@orcl> col block_size format a150 ;
  7 SYS@orcl> select * from v$controlfile;
  8 
  9 STATUS               NAME                                                         IS_ BLOCK_SIZE FILE_SIZE_BLKS
 10 -------------------- ------------------------------------------------------------ --- ---------- --------------
 11                      /u01/app/oracle/oradata/orcl/control01.ctl                   NO  ##########            594
 12                      /u01/app/oracle/fast_recovery_area/orcl/control02.ctl        NO  ##########            594
View Code

7:查看日誌文件信息: v$logfile;

  1 SYS@orcl> col member for a50;
  2 SYS@orcl> select * from v$logfile;
  3 
  4     GROUP# STATUS               TYPE    MEMBER                                             IS_
  5 ---------- -------------------- ------- -------------------------------------------------- ---
  6          3                      ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
  7          2                      ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
  8          1                      ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
  9 
 10 SYS@orcl>
 11 
View Code

8: 查看oacle 系統是否採用歸檔模式: v$database

  1 
  2 SYS@orcl> col name format a30;
  3 SYS@orcl> select dbid,name,log_mode from v$database;
  4 
  5       DBID NAME                           LOG_MODE
  6 ---------- ------------------------------ ------------
  7 1457025880 ORCL                           ARCHIVELOG
View Code

9:查詢歸檔日誌文件的所在路勁信息: show parameter log_archive_desc

  1 
  2 SYS@orcl> set pagesize 30;
  3 SYS@orcl> show parameter log_archive_dest;
  4 
  5 NAME                                 TYPE        VALUE
  6 ------------------------------------ ----------- ------------------------------
  7 log_archive_dest                     string
  8 log_archive_dest_1                   string
  9 log_archive_dest_10                  string
 10 log_archive_dest_11                  string
 11 log_archive_dest_12                  string
 12 log_archive_dest_13                  string
 13 log_archive_dest_14                  string
 14 log_archive_dest_15                  string
 15 log_archive_dest_16                  string
 16 log_archive_dest_17                  string
 17 log_archive_dest_18                  string
 18 log_archive_dest_19                  string
 19 log_archive_dest_2                   string
 20 log_archive_dest_20                  string
 21 log_archive_dest_21                  string
 22 log_archive_dest_22                  string
 23 log_archive_dest_23                  string
 24 log_archive_dest_24                  string
 25 log_archive_dest_25                  string
 26 log_archive_dest_26                  string
 27 log_archive_dest_27                  string
 28 log_archive_dest_28                  string
 29 log_archive_dest_29                  string
 30 log_archive_dest_3                   string
 31 log_archive_dest_30                  string
 32 log_archive_dest_31                  string
 33 log_archive_dest_4                   string
 34 
 35 NAME                                 TYPE        VALUE
 36 ------------------------------------ ----------- ------------------------------
 37 log_archive_dest_5                   string
 38 log_archive_dest_6                   string
 39 log_archive_dest_7                   string
 40 log_archive_dest_8                   string
 41 log_archive_dest_9                   string
 42 log_archive_dest_state_1             string      enable
 43 log_archive_dest_state_10            string      enable
 44 log_archive_dest_state_11            string      enable
 45 log_archive_dest_state_12            string      enable
 46 log_archive_dest_state_13            string      enable
 47 log_archive_dest_state_14            string      enable
 48 log_archive_dest_state_15            string      enable
 49 log_archive_dest_state_16            string      enable
 50 log_archive_dest_state_17            string      enable
 51 log_archive_dest_state_18            string      enable
 52 log_archive_dest_state_19            string      enable
 53 log_archive_dest_state_2             string      enable
 54 log_archive_dest_state_20            string      enable
 55 log_archive_dest_state_21            string      enable
 56 log_archive_dest_state_22            string      enable
 57 log_archive_dest_state_23            string      enable
 58 log_archive_dest_state_24            string      enable
 59 log_archive_dest_state_25            string      enable
 60 log_archive_dest_state_26            string      enable
 61 log_archive_dest_state_27            string      enable
 62 log_archive_dest_state_28            string      enable
 63 log_archive_dest_state_29            string      enable
 64 
 65 NAME                                 TYPE        VALUE
 66 ------------------------------------ ----------- ------------------------------
 67 log_archive_dest_state_3             string      enable
 68 log_archive_dest_state_30            string      enable
 69 log_archive_dest_state_31            string      enable
 70 log_archive_dest_state_4             string      enable
 71 log_archive_dest_state_5             string      enable
 72 log_archive_dest_state_6             string      enable
 73 log_archive_dest_state_7             string      enable
 74 log_archive_dest_state_8             string      enable
 75 log_archive_dest_state_9             string      enable
 76 SYS@orcl>
View Code

10:查詢視圖v$parameter 進行肯定參數的默認值是否修改過

  1 SYS@orcl> col name for a30;
  2 SYS@orcl> col value for a30;
  3 SYS@orcl> select name ,value,ismodified from v$parameter where rownum <=20;
  4 
  5 NAME                           VALUE                          ISMODIFIED
  6 ------------------------------ ------------------------------ ----------
  7 lock_name_space                                               FALSE
  8 processes                      150                            FALSE
  9 sessions                       248                            FALSE
 10 timed_statistics               TRUE                           FALSE
 11 timed_os_statistics            0                              FALSE
 12 resource_limit                 FALSE                          FALSE
 13 license_max_sessions           0                              FALSE
 14 license_sessions_warning       0                              FALSE
 15 cpu_count                      4                              FALSE
 16 instance_groups                                               FALSE
 17 event                                                         FALSE
 18 sga_max_size                   1224736768                     FALSE
 19 use_large_pages                TRUE                           FALSE
 20 pre_page_sga                   FALSE                          FALSE
 21 shared_memory_address          0                              FALSE
 22 hi_shared_memory_address       0                              FALSE
 23 use_indirect_data_buffers      FALSE                          FALSE
 24 lock_sga                       FALSE                          FALSE
 25 processor_group_name                                          FALSE
 26 shared_pool_size               0                              FALSE
 27 
 28 20 rows selected.
 29 
 30 SYS@orcl>
View Code
  1 SYS@orcl> select name ,value,ismodified from v$parameter where  ismodified = 'true' ;
  2 
  3 no rows selected
  4 
  5 SYS@orcl>
View Code

 

11:修改系統參數:

  1 --查看Cursor相關參數
  2 SYS@orcl> show parameter cursor;
  3 
  4 NAME                                 TYPE        VALUE
  5 ------------------------------------ ----------- ------------------------------
  6 cursor_bind_capture_destination      string      memory+disk
  7 cursor_sharing                       string      EXACT
  8 cursor_space_for_time                boolean     FALSE
  9 open_cursors                         integer     300
 10 session_cached_cursors               integer     50
 11 
 12 ---修改相關參數 
 13 SYS@orcl> alter system set open_cursors=350 scope=both;
 14 
 15 System altered.
 16 
 17 SYS@orcl> alter system set session_cached_cursors=100 scope=spfile;
 18 
 19 System altered.
 20 
 21 SYS@orcl> alter system set cursor_space_for_time=true scope=spfile;
 22 
 23 System altered.
 24 /*
 25 scope 參數值有三個選項。
 26 scope=memory: 只改變當前實例運行,亦即初始化參數改變了只對當前實例有效,當實例重啓以後,初始化參數值還原。
 27 scope=spfile:只改變spfile的設置。亦即改變初始化參數文件內容。實例重啓後參數生效。
 28 scope=both:既改變實例也改變spfile。須要注意的是,若是修改靜態參數,必須指定SPFILE參數(scope=spfile),不然會報錯。
 29 */
View Code

12:建立 一個密碼文件 其sys 口令爲:oracle

  1 [oracle@localhost dbs]$ ls
  2 hc_orcl.dat  init.ora  initPROD1.ora  lkORCL  orapworcl  spfileorcl.ora
  3 [oracle@localhost dbs]$ pwd
  4 /u01/app/oracle/product/11.2.0/db_1/dbs
  5 [oracle@localhost dbs]$ orapwd file=dbsorapwPROD1 entries=30
  6 
  7 Enter password for SYS:  ---oracle
  8 [oracle@localhost dbs]$
  9 
View Code

13:查詢 警告文件位置

  1 SYS@orcl> show parameter backg
  2 
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------------------------------
  5 background_core_dump                 string      partial
  6 background_dump_dest                 string      /u01/app/oracle/diag/rdbms/orc
  7                                                  l/orcl/trace
View Code

14:查看 跟蹤文件的位置:

  1 SYS@orcl> show parameter user_dump
  2 
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------------------------------
  5 user_dump_dest                       string      /u01/app/oracle/diag/rdbms/orc
  6                                                  l/orcl/trace
  7 SYS@orcl>
  8 
View Code

15:查看 並修改共享池大小

  1 SYS@orcl> show parameter shared_pool
  2 
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------------------------------
  5 shared_pool_reserved_size            big integer 10905190
  6 shared_pool_size                     big integer 0
  7 SYS@orcl> alter system set shared_pool_size=30m;
  8 
  9 System altered.
 10 
 11 SYS@orcl> show parameter shred_pool
 12 SYS@orcl> show parameter shared_pool
 13 
 14 NAME                                 TYPE        VALUE
 15 ------------------------------------ ----------- ------------------------------
 16 shared_pool_reserved_size            big integer 10905190
 17 shared_pool_size                     big integer 32M
 18 SYS@orcl>
 19 SYS@orcl>
View Code

16:查看並修改大池的大小;

  1 SYS@orcl> show parameter large_pool
  2 
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------------------------------
  5 large_pool_size                      big integer 0
  6 SYS@orcl> alter system set large_pool_size=16m;
  7 
  8 System altered.
  9 
 10 SYS@orcl> show parameter large_pool
 11 
 12 NAME                                 TYPE        VALUE
 13 ------------------------------------ ----------- ------------------------------
 14 large_pool_size                      big integer 16M
 15 SYS@orcl>
View Code

17:查看Java 池信息

  1 SYS@orcl> show parameter java_pool
  2 
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------------------------------
  5 java_pool_size                       big integer 0
  6 SYS@orcl> alter system set java_pool_size=10m;
  7 
  8 System altered.
  9 
 10 SYS@orcl> show parameter java_
 11 
 12 NAME                                 TYPE        VALUE
 13 ------------------------------------ ----------- ------------------------------
 14 java_jit_enabled                     boolean     TRUE
 15 java_max_sessionspace_size           integer     0
 16 java_pool_size                       big integer 16M
 17 java_soft_sessionspace_limit         integer     0
 18 SYS@orcl>
View Code

18:顯示當前用戶進程PGA 信息:

  1 SYS@orcl> show parameter pga;
  2 
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------------------------------
  5 pga_aggregate_target                 big integer 0
  6 SYS@orcl>
View Code

19:查看當前實例數據庫進程

  1 SYS@orcl> set pagesize 50;
  2 SYS@orcl> select name,description from v$bgprocess;
  3 

`20: 全部經常使用字典表

  1 -----基本數據字典及其說明
  2 select  * from dba_tablespaces;---關於表空間的信息
  3 select  * from dba_ts_quotas ;---全部用戶表空間的限額
  4 select  * from dba_free_space;--全部表空間中自由分區
  5 select * from  dba_segments;--描述數據庫中全部段的儲存空間;
  6 select * from  dba_extents;--數據庫中全部分區的信息
  7 select  * from  dba_tables;---數據庫中全部數據表的描述
  8 select * from  dba_tab_columns;---全部表、視圖 及簇的列
  9 select * from dba_views ;--數據庫中全部的視圖信息;
 10 select * from synonyms;--關於同義詞的信息查詢;
 11 select * from dba_sequences;--全部用戶序列號信息
 12 select * from dba_constraints;--全部用戶表的約束信息;
 13 select *  from dba_indexes;--關於數據庫索引的描述;
 14 select * from dba_ind_columns;--在全部表及簇上壓縮索引的列
 15 select * from dba_triggers;--全部用戶的觸發器信息 
 16 select  * from dba_source;--全部用戶儲存過程的信息;
 17 select * from dba_data_files;--查詢關於數據庫文件的信息;
 18 select  * from dba_tab_privs;--查詢關於對象受權的信息
 19 select  * from  dba_objects;--數據庫中全部的對象;
 20 select * from  dba_users;--關於數據庫中全部用戶的信息;
 21 
 22 
 23 ------------經常使用動態性能視圖
 24 select * from v$database ;---描述關於數據庫的相關信息
 25 select  * from v$datafile;--數據庫使用的數據文件信息
 26 select * from v$log;--從控制文件中提取有關重作日誌組的信息
 27 select * from v$logfile;--有關實例重置日誌組文件名及其位置的信息
 28 select * from v$archived_log;--記錄歸檔日誌文件的基本信息
 29 select * from v$archive_dest;--記錄歸檔日誌文件的路徑信息
 30 select * from v$controlfile ;--描述控制文件的相關信息
 31 select * from v$instance ; ---記錄實例的基本信息
 32 select * from v$system_parameter;--顯示實例當前有效的參數信息
 33 select * from v$sga;--顯示實例的SGA區的大小
 34 select * from v$sgastat;--統計SGA使用狀況的信息
 35 select * from v$parameter ;-- 記錄初始化參數文件中全部項的值
 36 select * from v$lock ;--經過訪問數據庫會話,設置對象鎖的全部信息
 37 select * from v$session;--有關會話的信息
 38 select * from v$sqltext;--記錄SQL語句的信息
 39 select * from v$sql;--記錄SQL語句的詳細信息
 40 select * from  v$bgprocess;--顯示後臺進程信息;
 41 select * from v$process;--當前進程的信息
 42 
 43 

21:如何查詢oracle數據庫中的各類角色

  1   --1. 查詢oracle中全部用戶信息
  2   select * from dba_users;
  3   --2. 只查詢用戶和密碼
  4   select username,password from dba_users;
  5   --3. 查詢當前用戶信息
  6   select * from dba_ustats;
  7   --4. 查詢用戶能夠訪問的視圖文本
  8   select * from dba_varrays;
  9   ---5. 查詢數據庫中全部視圖的文本
 10   select * from dba_views;
 11   select distinct  tablespace_name from  SYS.DBA_FREE_SPACE  where tablespace_name like '%RB%';
 12 
 13   select * from   dba_objects where  object_name='JDE900_F0005';
 14 
 15   select  * from rbods.jde900_f0005;
 16   select * from  rbodm.dim_company;
 17 
 18     ---查看當前用戶的缺省表空間
 19     select username,default_tablespace from user_users
 20     ---查看當前用戶的角色
 21     select * from user_role_privs
 22     ---查看當前用戶的系統權限和表級權限
 23     select * from user_sys_privs
 24     select * from user_tab_privs
 25     ----查看用戶下全部的表
 26     select * from user_tables
 27     ---顯示用戶信息(所屬表空間)
 28     select default_tablespace,temporary_tablespace from dba_users
 29     --顯示當前會話所具備的權限
 30     select * from session_privs
 31    --- 顯示指定用戶所具備的系統權限
 32     select * from dba_sys_privs
 33    --- 顯示特權用戶
 34     select * from v$pwfile_users
 35    --- 查看名稱包含log字符的表
 36     select object_name,object_id from user_objects where instr(object_name,'log')>0
 37    --- 查看某表的建立時間
 38     select object_name,created from user_objects where object_name='ZW_YINGYEZ'
 39    --- 查看某表的大小
 40     select sum(bytes)/(1024*1024) tablesize from user_segments
 41     where segment_name='ZW_YINGYEZ'
 42    --- 查看放在ORACLE的內存區裏的表
 43     select table_name,cache from user_tables where instr(cache,'Y')>0
 44    --- 查看索引個數和類別
 45     select index_name,index_type,table_name from user_indexes order by table_name
 46    --- 查看索引被索引的字段
 47     select * from user_ind_columns where table_name='CB_CHAOBIAOSJ201004'
 48    --- 查看索引的大小
 49     select sum(bytes)/(1024*1024) as indexsize from user_segments
 50     where segment_name=upper('AS_MENUINFO')
 51    --- 查看視圖信息
 52     select * from user_views
 53    --- 查看同義詞的名稱
 54     select * from user_synonyms
 55    -- 查看函數和過程的狀態
 56     select object_name,status from user_objects where object_type='FUNCTION'
 57     select object_name,status from user_objects where object_type='PROCEDURE'
 58    --- 查看函數和過程的源代碼
 59     select text from all_source where owner=user and name='SF_SPLIT_STRING'
 60    --- 查看錶字段
 61     select cname from col where tname='ZW_YINGYEZ'
 62     select column_name from user_tab_columns where table_name='ZW_YINGYEZ'
 63 
 64   ---查看oracle版本命令:
 65       select * from v$version

22:oracle 增長控制文件的方法:

 

   1: 查看參數文件存放位置,並關閉數據庫實例 orcl:

  1 [oracle@localhost orcl]$ sqlplus / as sysdba;
  2 
  3 SQL*Plus: Release 11.2.0.3.0 Production on Tue Jan 9 23:07:02 2018
  4 
  5 Copyright (c) 1982, 2011, Oracle.  All rights reserved.
  6 
  7 
  8 Connected to:
  9 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
 10 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 11 
 12 SYS@orcl> show parameter control_files;
 13 
 14 NAME                                 TYPE        VALUE
 15 ------------------------------------ ----------- ------------------------------
 16 control_files                        string      /u01/app/oracle/oradata/orcl/c
 17                                                  ontrol01.ctl, /u01/app/oracle/
 18                                                  fast_recovery_area/orcl/contro
 19                                                  l02.ctl
 20 
 21 
 22 SYS@orcl> select name from v$controlfile;
 23 
 24 NAME
 25 --------------------------------------------------------------------------------
 26 /u01/app/oracle/oradata/orcl/control01.ctl
 27 /u01/app/oracle/fast_recovery_area/orcl/control02.ctl
 28 
 29 SYS@orcl> shutdown immediate;
 30 Database closed.
 31 Database dismounted.
 32 ORACLE instance shut down.
 33 
 34 

 

2: 退出sqlplus, 複製文件。

 1 SYS@orcl> quit
 2 Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
 3 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 4 [oracle@localhost ~]$ cd  /u01/app/oracle/fast_recovery_area/orcl
 5 [oracle@localhost orcl]$ pwd
 6 /u01/app/oracle/fast_recovery_area/orcl
 7 [oracle@localhost orcl]$ ls
 8 control02.ctl
 9 [oracle@localhost orcl]$ cp control02.ctl control03.ctl
 10 [oracle@localhost orcl]$ ls
 11 control02.ctl  control03.ctl

3:登陸進入 sqplus  ,啓動數據庫實例進入 nomount狀態,並修改控制文件參數

 

  1 [oracle@localhost ~]$ sqlplus / as sysdba;
  2 
  3 SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 10 00:14:01 2018
  4 
  5 Copyright (c) 1982, 2011, Oracle.  All rights reserved.
  6 
  7 
  8 Connected to:
  9 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
 10 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 11 
 12 SYS@orcl> startup nomount;
 13 ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
 14 ORACLE instance started.
 15 
 16 Total System Global Area 1221992448 bytes
 17 Fixed Size                  1344596 bytes
 18 Variable Size             771754924 bytes
 19 Database Buffers          436207616 bytes
 20 Redo Buffers               12685312 bytes
 21 SYS@orcl> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl', '/u01/app/oracle/fast_recovery_area/orcl/control02.ctl', '/u01/app/oracle/fast_recovery_area/orcl/control03.ctl' scope=spfile;
 22 
 23 System altered.
 24 
 25 SYS@orcl> shutdown immediate;
 26 ORA-01507: database not mounted
 27 
 28 
 29 ORACLE instance shut down.
 30 SYS@orcl> startup
 31 ORACLE instance started.
 32 
 33 Total System Global Area 1221992448 bytes
 34 Fixed Size                  1344596 bytes
 35 Variable Size             771754924 bytes
 36 Database Buffers          436207616 bytes
 37 Redo Buffers               12685312 bytes
 38 Database mounted.
 39 Database opened.
 40 SYS@orcl> create pfile from spfile;
 41 
 42 File created.
 43 
 44 SYS@orcl> select name from v$controlfile;
 45 
 46 NAME
 47 --------------------------------------------------------------------------------
 48 /u01/app/oracle/oradata/orcl/control01.ctl
 49 /u01/app/oracle/fast_recovery_area/orcl/control02.ctl
 50 /u01/app/oracle/fast_recovery_area/orcl/control03.ctl
 51 
 52 SYS@orcl>
  1 SYS@orcl> shutdown immediate;
  2 Database closed.
  3 Database dismounted.
  4 ORACLE instance shut down.
  5 SYS@orcl> startup
  6 ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
  7 ORACLE instance started.
  8 
  9 Total System Global Area 1221992448 bytes
 10 Fixed Size                  1344596 bytes
 11 Variable Size             771754924 bytes
 12 Database Buffers          436207616 bytes
 13 Redo Buffers               12685312 bytes
 14 Database mounted.
 15 Database opened.
 16 SYS@orcl>

 

23:Oracle 查看錶空間的大小及使用狀況sql語句

注:本段內容來自: 《  Oracle 查看錶空間的大小及使用狀況sql語句  》

  1 --一、查看錶空間的名稱及大小 
  2 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
  3 FROM dba_tablespaces t, dba_data_files d
  4 WHERE t.tablespace_name = d.tablespace_name
  5 GROUP BY t.tablespace_name;
  6 --二、查看錶空間物理文件的名稱及大小 
  7 SELECT tablespace_name,
  8 file_id,
  9 file_name,
 10 round(bytes / (1024 * 1024), 0) total_space
 11 FROM dba_data_files
 12 ORDER BY tablespace_name;
 13 --三、查看回滾段名稱及大小 
 14 SELECT segment_name,
 15 tablespace_name,
 16 r.status,
 17 (initial_extent / 1024) initialextent,
 18 (next_extent / 1024) nextextent,
 19 max_extents,
 20 v.curext curextent
 21 FROM dba_rollback_segs r, v$rollstat v
 22 WHERE r.segment_id = v.usn(+)
 23 ORDER BY segment_name;
 24 --四、查看控制文件 
 25 SELECT NAME FROM v$controlfile;
 26 --五、查看日誌文件 
 27 SELECT MEMBER FROM v$logfile;
 28 --六、查看錶空間的使用狀況 
 29 SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
 30 FROM dba_free_space
 31 GROUP BY tablespace_name;
 32 SELECT a.tablespace_name,
 33 a.bytes total,
 34 b.bytes used,
 35 c.bytes free,
 36 (b.bytes * 100) / a.bytes "% USED ",
 37 (c.bytes * 100) / a.bytes "% FREE "
 38 FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
 39 WHERE a.tablespace_name = b.tablespace_name
 40 AND a.tablespace_name = c.tablespace_name;
 41 --七、查看數據庫庫對象 
 42 SELECT owner, object_type, status, COUNT(*) count#
 43 FROM all_objects
 44 GROUP BY owner, object_type, status;
 45 --八、查看數據庫的版本  
 46 SELECT version
 47 FROM product_component_version
 48 WHERE substr(product, 1, 6) = 'Oracle';
 49 --九、查看數據庫的建立日期和歸檔方式 
 50 SELECT created, log_mode, log_mode FROM v$database;
 51 --1G=1024MB 
 52 --1M=1024KB 
 53 --1K=1024Bytes 
 54 --1M=11048576Bytes 
 55 --1G=1024*11048576Bytes=11313741824Bytes 
 56 SELECT a.tablespace_name "表空間名",
 57 total "表空間大小",
 58 free "表空間剩餘大小",
 59 (total - free) "表空間使用大小",
 60 total / (1024 * 1024 * 1024) "表空間大小(G)",
 61 free / (1024 * 1024 * 1024) "表空間剩餘大小(G)",
 62 (total - free) / (1024 * 1024 * 1024) "表空間使用大小(G)",
 63 round((total - free) / total, 4) * 100 "使用率 %"
 64 FROM (SELECT tablespace_name, SUM(bytes) free
 65 FROM dba_free_space
 66 GROUP BY tablespace_name) a,
 67 (SELECT tablespace_name, SUM(bytes) total
 68 FROM dba_data_files
 69 GROUP BY tablespace_name) b
 70 WHERE a.tablespace_name = b.tablespace_name
 71 
 72 

查看錶空間使用狀況:

  1 --查看錶空間使用狀況: 
  2   SELECT tbs 表空間名,
  3          sum(totalM) 總共大小M,
  4          sum(usedM) 已使用空間M,
  5          sum(remainedM) 剩餘空間M,
  6          sum(usedM) / sum(totalM) * 100 已使用百分比,
  7          sum(remainedM) / sum(totalM) * 100 剩餘百分比
  8     FROM (SELECT b.file_id ID,
  9                  b.tablespace_name tbs,
 10                  b.file_name name,
 11                  b.bytes / 1024 / 1024 totalM,
 12                  (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 usedM,
 13                  sum(nvl(a.bytes, 0) / 1024 / 1024) remainedM,
 14                  sum(nvl(a.bytes, 0) / (b.bytes) * 100),
 15                  (100 - (sum(nvl(a.bytes, 0)) / (b.bytes) * 100))
 16             FROM dba_free_space a, dba_data_files b
 17            WHERE a.file_id = b.file_id
 18            GROUP BY b.tablespace_name, b.file_name, b.file_id, b.bytes
 19            ORDER BY b.tablespace_name)
 20    GROUP BY tbs
 21 
  1 select b.tablespace_name "表空間",
  2        b.bytes / 1024 / 1024 "大小M",
  3        (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 "已使用M",
  4        substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) "利用率"
  5   from dba_free_space a, dba_data_files b
  6  where a.file_id = b.file_id
  7    --and b.tablespace_name = 'SYSTEM'
  8  group by b.tablespace_name, b.file_name, b.bytes
  9  order by b.tablespace_name;

 

oracle 表空間不足解決辦法大全

  1 
  2 -- 【解決辦法-緣由一】
  3 --只要將表空間設置爲足夠大,並設置爲自增加便可。
  4 --一、擴展表空間 
  5  alterdatabase datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' resize 50m;
  6  -- 注:50m,是表空間大小,能夠根據實際須要加大,但最大不得超過32G
  7 --二、自動增加 
  8  alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' autoextend onnext 50m maxsize 500m;
  9 --【解決辦法-緣由二】
 10 --由於表空間中的數據文件已經足夠大(達到32G),因此,這時僅僅增長表空間大小是不行的。 這個時候,咱們能夠增長該表空間的數據文件,這樣表空間的大小即變爲64G了。
 11 ALTER TABLESPACE aaa ADD DATAFILE 'E:\APP\ORACLE11GR2\ORADATA\ORCL\aaa_DATA02.DBF' SIZE 32767M;

 

查看system和sysaux表空間是不是自動擴展的。

  1  SQL>select tablespace_name,AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files;
  2 
  3  -- 若是爲自動擴展那麼AUTOEXTENSIBLE字段的值應爲 YES,是否爲NO;INCREMENT_BY 這個爲每次自動擴展的空間大小。
  4 

image

開啓或者關閉 :表空間 是否 自動擴展

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

新增 表空間

  1  --oracle增長表空間數據文件大小
  2 --
  3 --1.增長數據文件
  4 
  5 ALTER TABLESPACE ljjgbs_east ADD DATAFILE '/home/oracle/app/oracle/oradata/ljjgbs/ljjgbs_east_data.dbf' SIZE 50M;
  6 
  7 --2.新增數據文件,並容許自動增加
  8 
  9 ALTER TABLESPACE ljjgbs_east ADD DATAFILE '/home/oracle/app/oracle/oradata/ljjgbs/ljjgbs_east_data.dbf' SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 10 
 11 --3.容許存在的數據文件自動增加
 12 
 13 ALTER DATABASE DATAFILE '/home/oracle/app/oracle/oradata/ljjgbs/ljjgbs_east_data.dbf' AUTOEXTEND ON NEXT 5M maxsize unlimited;
 14 
 15 --4.手動增長存在的數據文件的大小
 16 
 17 ALTER DATABASE DATAFILE '/home/oracle/app/oracle/oradata/ljjgbs/ljjgbs_east_data.dbf' RESIZE 20000M;
 18 

建立表空間

  1 create tablespace GFPORTAL
  2 datafile 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\PDBORCL\GFPORTAL.DBF' size 100M --生成數據文件並定義文件大小
  3 autoextend on next 100M maxsize unlimited logging    --設置自動擴展
  4 extent management local autoallocate
  5 segment space management auto;
  6 
  7 
  8 --建立 多個表空間文件
  9 
 10 create tablespace sync_plus_1   datafile
 11   '/u01/app/oracle/oradata/orcl/sync_plus_1_01.dbf' size 500M  autoextend on next 100M
 12  , '/u01/app/oracle/oradata/orcl/sync_plus_1_02.dbf' size 500M  autoextend on next 100M
 13  , '/u01/app/oracle/oradata/orcl/sync_plus_1_03.dbf' size 500M  autoextend on next 100M
 14  , '/u01/app/oracle/oradata/orcl/sync_plus_1_04.dbf' size 500M  autoextend on next 100M
 15  , '/u01/app/oracle/oradata/orcl/sync_plus_1_05.dbf' size 500M  autoextend on next 100M
 16  , '/u01/app/oracle/oradata/orcl/sync_plus_1_06.dbf' size 500M  autoextend on next 100M
 17  , '/u01/app/oracle/oradata/orcl/sync_plus_1_07.dbf' size 500M  autoextend on next 100M
 18  , '/u01/app/oracle/oradata/orcl/sync_plus_1_08.dbf' size 500M  autoextend on next 100M maxsize unlimited logging extent management local autoallocate segment space management auto
 19 
 20 

增長多個表空間

  1 --- 執行該語句給  TEST_SYNC  用戶受權,此時  TEST_SYNC  用戶就能夠登陸了。 
  2 
  3 ----給表空間增長數據文件
  4 ALTER TABLESPACE sync_plus_1 ADD DATAFILE  'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_01.dbf' size 500M  autoextend on next 100M
  5  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_02.dbf' size 500M  autoextend on next 100M
  6  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_03.dbf' size 500M  autoextend on next 100M
  7  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_04.dbf' size 500M  autoextend on next 100M
  8  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_05.dbf' size 500M  autoextend on next 100M
  9  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_06.dbf' size 500M  autoextend on next 100M
 10  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_07.dbf' size 500M  autoextend on next 100M
 11  , 'D:\SOFT\DEVELOP\DATABASE\ORACLE\ORADATA\ORCL\SYNC_PLUS_1_08.dbf' size 500M  autoextend on next 100M maxsize unlimited ;
 12 
 13 
 14 

刪除表空間

  1 ---刪除表空間:刪除數據文件語法:
  2  ALTER TABLESPACE 表空間名 DROP DATAFILE 數據文件名;
  3 ---刪除表空間:全部的數據文件
  4 
  5 

 

 

24: 因:審計 表佔用了大量資源 致使————》system表空間爆滿解決方法

注:本段內容來自於:《   system表空間爆滿解決方法  》

 

  1 --問題描述:
  2 --對數據庫作檢查,發現system表空間持續佔滿99%。使用以下語句查看:
  3 SQL> select 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 and b.tablespace_name='SYSTEM' group by b.tablespace_name,b.file_name,b.bytes order by b.tablespace_name;
  4 
  5 表空間            大小M        已使用M     利用率
  6 ------------- ----------     ----------     ----------
  7 SYSTEM             6770          6505         96.08%
  8 
  9 --從dba_segments中找出佔用SYSTEM表空間中排名前10位的大對象:
 10 SQL> col segment_name for a15;
 11 SQL> SELECT * FROM (SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 MB FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'SYSTEM' GROUP BY SEGMENT_NAME ORDER BY 2 DESC) WHERE ROWNUM < 10;
 12 
 13 SEGMENT_NAME     MB
 14 --------------------    ----------
 15 AUD$                         6016
 16 IDL_UB1$                    280
 17 SOURCE$                     80
 18 IDL_UB2$                     33
 19 C_TOID_VERSION#      24
 20 C_OBJ#_INTCOL#        18
 21 I_SOURCE1                   16
 22 ARGUMENT$               13
 23 C_OBJ#                         13
 24 JAVA$MC$                   12
 25 --發現是AUD$審計表佔用資源量大。爲了不對總體性能形成影響,決定把AUD$遷移到其餘表空間
 26 --解決步驟:
 27 --1,新建aud_space表空間和aud_index索引表空間
 28 --2,執行遷移命令,將AUD$表相關移到審計表空間中:
 29 SQL> alter table aud$ move tablespace aud_space;
 30 
 31 SQL> alter table audit$ move tablespace aud_space;
 32 
 33 SQL> alter index i_audit rebuild online tablespace aud_index;
 34 
 35 SQL> alter table audit_actions move tablespace aud_space;
 36 
 37 SQL> alter index i_audit_actions rebuild online tablespace aud_index;
 38 --3,再此查看SYSTEM表空間使用狀態:
 39 SQL> select 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 and b.tablespace_name='SYSTEM' group by b.tablespace_name,b.file_name,b.bytes order by b.tablespace_name;
 40 表空間            大小M        已使用M     利用率
 41 ------------- ----------     ----------     ----------
 42 SYSTEM             6770       792.3125     11.70
 43 可見SYSTEM表空間已經降下來了。
 44 --4,爲了安全起見,AUD$表數據目前3千多萬,數據量大,後期考慮truncate此表,清空數據。
 45 

        注:本段內容來自:《   system表空間用滿解決 方法 

若是system表空間不是自動擴展,空間用滿甚至會出現數據庫沒法登錄。使用任何用戶登陸均報出異常。

   系統表空間正常狀況下只存放了數據字典之類的東西,因此佔用的空間通常在500M如下。若是你的系統表空間佔用比較多的空間,可能有如下幾方面的緣由:
1)沒有爲用戶明確指定默認表空間,致使system系統表空間做爲用戶默認表空間
2)開啓了審計,請檢查此表的大小AUD$
你能夠運行如下查詢來檢查一下系統表空間哪些表比較大:
 

  1   SQL> select * from (select SEGMENT_NAME,sum(bytes)/1024/1024 sx from dba_segments
  2                 where tablespace_name='SYSTEM' group by segment_name)
  3                 where sx>100 order by sx desc;


  查看該表紀錄數
 

  1  select count(*) sum from AUD$;


解決方法大概可分爲如下幾種:
1、爲system表空間另外新增一個數據文件。

  1 alter tablespace system add datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;


2、更改system表空間的數據文件SYSTEM.dbf分配空間。

  1 1.alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' autoextend on;
  2 2.alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
  3 
3、truncate掉AUD$表並關閉審計功能(我是使用的這種,效果立竿見影,不過若是不關閉此功能, 須要按期清理此表):
  1 SQL> alter system set audit_trail=none scope=spfile;
  2 
  3              SQL>shutdown immediate;
  4 
  5              SQL>startup;
  6 

4、將AUD$默認表空間由system移出。

 

 

25:oracle刪除(釋放)數據文件/表空間流程

注:本段內容來自:  《  oracle刪除(釋放)數據文件/表空間流程   》

oracle刪除(釋放)數據文件/表空間流程

生產環境:數據庫裏空間不足,niptest 表空間251G,只使用了17G

再alter database datafile '...../niptest1' resize 10G; 的時候說超出了範圍要求

因爲表變更比較頻繁,高水位值比較大

(高水位 HWM 「High Water Mark 「:oracle中block有沒有使用的分界線,它會隨着數據的insert而上升,但它並不會隨數據的delete而降低,所以全表掃描的時間並不因數據的delete而減小,相反可能因爲塊清除反而全表掃描時間增長)

 

刪除表空間步驟:

 

1)  批量將niptest表空間中的表move 到USERS表空間,再刪除表空間niptest


首先看下此表空間內的表  move到其餘表空間 防止數據丟失

  1 select * from dba_tables where tablespace_name='NIPTEST';
  2 select * from dba_extents where tablespace_name='NIPTEST';
  3 select * from dba_segments where tablespace_name='NIPTEST';
  4 SELECT 'alter table '||owner||'.'||table_name||' move tablespace USERS;' FROM DBA_tables WHERE TABLESPACE_NAME='NIPTEST'; ---批量把表移動到其餘表空間

****** move (下降高水位)

優勢:能夠移動表到其餘表空間,在執行命令時不須要執行alter table table_name enable row movement

缺點:表move 會致使表中的索引失效,要rebuild;同時表會產生行級鎖......;在此若是表中有LOB字段時要用一下命令來實現表空間移動:alter table owner.table_name move tablespace tablespace_name lob (lob_column) store as lob segment  tablespace tablespace_name;也能夠單獨move lob,index要rebuild

******  shrink space

優勢:下降高水位時索引不會失效

缺點:不能將表移動到其餘表空間;高水位下降效果沒有move明顯;同時在執行命令前要先執行(alter table table_name enable row movement容許行移動)也會表會產生行級鎖.......,shrink比move更耗費cpu,產生不少current block這樣生成巨大的redo與undo 若是表中索引不多能夠建議使用move下降高水位

2) 移動完表發現 主鍵和索引仍是在源表空間

  1 SELECT * FROM DBA_extents WHERE TABLESPACE_NAME='USERS';   -->查看原表空間的主鍵和索引
  2 alter index XX rebuild tablespace ;

 

---> 批量執行索引重建

  1 SELECT 'alter index  '||owner||'.'||segment_name||' rebuild tablespace USERS;' FROM DBA_extents WHERE TABLESPACE_NAME='NIPTEST';  --- 批量將主鍵索引重建到其餘表空間
  2 select * from dba_segments where tablespace_name='NIPTEST';---弄完上面的操做,這裏還有數據,不要在乎,那是回收站的,無需修改直接刪表空間即清空

 

(3) 表都移動完了 以後 先把數據文件offline drop再刪除數據文件

  1 alter database datafile '/home/oracle/app/oracle/oradata/kfdb/niptest1' offline drop;

---> 查看下數據文件狀態

  1 select status from dba_tablespaces v$datafile where tablespace_name='NIPTEST'; -----offline


--> 再刪除表空間

  1 drop tablespace niptest; --> 刪除表空間,但不刪除其文件
  2 drop tablespace niptest including contents; -->刪除表空間同時刪除表空間的數據對象
  3 drop tablespace niptest including contents and datafiles;

 

--> 刪除表空間時刪除數據對象及其OS系統文件一塊兒刪除,,以便釋放空間,前提表空間不能是數據庫默認表空間
不然會 報錯:ORA-12919: Can not drop the default permanent tablespace

(4) 怎麼查看下數據庫的默認表空間是什麼:

  1 select * from database_properties where property_name = 'DEFAULT_PERMANENT_TABLESPACE';

 

若是您刪除的表空間是數據庫默認表空間要用一下命令來

  1 --更換數據庫默認表空間:
  2 alter database default tablespace users;
  3  --再執行:
  4  drop tablespace niptest including contents and datafiles;

[root@kfdb49 kfdb]# df -hl  --> 看下OS系統空間狀況  --- 表空間釋放

------建立表空間的語句:

  1 create tablespace niptest datafile '/home/oracle/app/oracle/oradata/kfdb/niptest1' size 10G autoextend on next XXM maxsize XXm extent management local;

有的人會想着再建立一個niptest 爲10G的表空間,避免後期imp時源表的表空間是niptest

: 其實不須要,若是庫中沒有niptest表空間,就算imp源表的表空間是niptest,也會導入到用戶的默認表空間,有niptest表空間的話則會導入到niptest表空間(若是後續不想擁有niptest表空間 就要斬草除根的將niptest刪除以後不要建立)

回收unlimited tablespace 給予額外權限niptest表空間權限會正常導入,不然報錯

額外權限和用戶默認表空間是一個的話能夠正常導入,不然知道表結構到用戶默認表空間

 

 

 

 

 

 

 

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

相關文章
相關標籤/搜索