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標準數據塊的大小。 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
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
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
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> selectfile_name,tablespace_name
fromdba_data_files
whererownum<=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>
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:
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>
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
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
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
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>
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>
1 SYS@orcl> select name ,value,ismodified from v$parameter where ismodified = 'true' ; 2 3 no rows selected 4 5 SYS@orcl>
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 */
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
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
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
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>
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>
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>
1 SYS@orcl> show parameter pga; 2 3 NAME TYPE VALUE 4 ------------------------------------ ----------- ------------------------------ 5 pga_aggregate_target big integer 0 6 SYS@orcl>
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
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
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>
注:本段內容來自: 《 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;
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;
1 SQL>select tablespace_name,AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files; 2 3 -- 若是爲自動擴展那麼AUTOEXTENSIBLE字段的值應爲 YES,是否爲NO;INCREMENT_BY 這個爲每次自動擴展的空間大小。 4
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
注:本段內容來自於:《 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、爲system表空間另外新增一個數據文件。
2、更改system表空間的數據文件SYSTEM.dbf分配空間。3、truncate掉AUD$表並關閉審計功能(我是使用的這種,效果立竿見影,不過若是不關閉此功能, 須要按期清理此表):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; 31 SQL> alter system set audit_trail=none scope=spfile; 2 3 SQL>shutdown immediate; 4 5 SQL>startup; 64、將AUD$默認表空間由system移出。
注:本段內容來自: 《 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 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 --更換數據庫默認表空間: 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表空間權限會正常導入,不然報錯
額外權限和用戶默認表空間是一個的話能夠正常導入,不然知道表結構到用戶默認表空間
-----------------