oracle 體系結構及內存管理 16_物理文件操做

1、表空間及數據文件
一、表空間數據文件操做
建立普通表空間
    create tablespace dits datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ZONGYANG\dits.dbf' 
    size 2000M reuse autoextend on next 50m;
建立undo表空間,通常建立實例時自動建立
    create undo tablespace undospace01 datafile '+DG1/ora55/datafile/undospace01.dbf' size 20M;
建立臨時表空間
    create temporary tablespace  temp01 tempfile '+DG1/ora55/datafile/tempfile01.dbf' size 20M;
    alter database default temporary tablespace temp01;
    drop tablespace temp01 including contents and datafiles;
    臨時數據文件不能重命名,臨時表空間視圖dba_temp_files
建立NK表空間
    查看當前的數據庫大小
        show parameter db_block_size
        show parameter db_16k_cache_size
    建立數據庫高速緩存區,即便修改時指定的是1M,修改以後系統會自動給出一個最小的默認大小。
        alter system set db_16k_cache_size=1M scope=both;
    使用「blocksize 16k」參數建立16K表空間。
        create tablespace DATA01 datafile '/u01/app/oracle/oradata/ipemsdb/datafile/nk_16k_01.dbf' size 20M 
        uniform size 4M blocksize 16K;
    未對db_16k_cache_size參數進行設置的ORA-29339報錯信息。
建立的表空間超過1個T時,使用bigfile,減小了數據文件的個數,管理方便,大的對象的存放獲得了優化,
bigfile只能存在一個數據文件一個小文件表空間(smallfile tablespace)最多能夠包含1024個數據文
件(datafile),而一個大文件表空間中只包含一個文件。
查詢默認的類型
    select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TBS%';
    CREATE [BIGFILE | SMALLFILE] TABLESPACE tablespace name DATAFILE datafile;
參考:http://blog.chinaunix.net/uid-20779720-id-3078273.html
刪除數據文件,10g 能夠刪除空的數據文件
    Alter tablespace USERS drop datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDB\USERS02.DBF';    
修改表的表空間
    alter table test move tablespace users;
刪除表空間(表空間中的數據存完整的對象)
    DROP TABLESPACE users1 INCLUDING CONTENTS AND DATAFILES;
得到建立語句
    SELECT dbms_metadata.get_ddl('TABLESPACE','SYSTEM') FROM dual;
查詢當前表空間使用狀況
  select b.file_name file_name,b.tablespace_name space_name,
  b.bytes/1024/1024 munM,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,
  substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) use%
  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;
二、擴展表空間
直接增大表空間大小
    ALTER DATABASE DATAFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFIRST\DITS.DBF' RESIZE 400M;
增長數據文件
    alter tablespace TBS_1 add datafile '/orainst/oracle/db/oradata/ora254/TBS_1.dbf' size 1024m 
    reuse  autoextend on next 5M;    
三、遷移表空間
查詢可搬移的操做系統
    select platform_name from v$transportable_platform;
脫機表空間,拷貝數據文件至新目錄,修改文件路徑,重啓恢復開庫,聯機
    alter tablespace EXAMPLE offline;
    ALTER DATABASE RENAME FILE 'C:\oracle\product\10.2.0\oradata\orcldb\EXAMPLE01.DBF' 
    to 'C:\oracle\product\10.2.0\oradata\yidonghou\EXAMPLE01.DBF';
    shutdown immediate;
    startup mount;
    recover datafile 'C:\oracle\product\10.2.0\oradata\yidonghou\EXAMPLE01.DBF';
    alter database open;
    alter tablespace EXAMPLE online;
四、相關視圖:
    v$tablespace
    dba_tablespaces
    dba_segments
    dba_extentshtml

2、控制文件的操做
修改控制文件的路徑,冗餘備份等,命令行和修改pfile文件中控制文件的信息
    startup nomount  在mount狀態下複製
    alter system set control_files='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl',
    '/u01/app/oracle/product/10.2.0/db_1/oradata/orcl/control03.ctl' scope=spfile;
    
3、參數文件的操做
    create pfile from spfile;
    create spfile from pfile;
    startup open pfile = 'C:\oracle\product\10.2.0\db_1\database\initorcldb.ora';
    
4、密碼文件
    orapwd file= password=  entries=最大數目,這裏的file命名規則在unix/linux下orapwsid,在windows下
爲pwdsid.ora 
    orapwd file=orapwipemsdb password=oracle entries=3 force=y
oracle的認證方式
    OS認證:當前用戶要在ORA_DBA組中,且sqlnet.ora文件中的配置SQLNET.AUTHENTICATION_SERVICES= (NTS)
時能夠直接使用conn / as sysdba登錄,注意ORA-01031: insufficient privileges 
    oracle認證:SQLNET.AUTHENTICATION_SERVICES= (NONE),須要提供完整的用戶名和密碼登錄
        
5、oracle鏈接操做
process:是服務器端概念,運行在服務器上提供服務的進程。process設置過小會間歇性的鏈接失敗報 ORA-12519 適當調大
    select count(1) from v$process;
    show parameter process;
    alter system set processes = 300 scope = spfile;
    windows 2003 server(32位)的操做系統,在安裝oracle 10g(10.2.0.1-10.2.0.3)時有問題,鏈接數不能達到設置的大小
報ORA-12518錯誤,可用64位解決。
查看當前有哪些用戶正在使用數據
    SELECT osuser, a.username,cpu_time/executions/1000000||'s', b.sql_text,machine   
    from v$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executions desc; 
session:客戶端概念,客戶端與服務器之間的鏈接,由processes的值決定,公式sessions=1.1*process + 5
        process大小設置後,系統會自動給算出session值
    select count(*) from v$session;
    Alter system kill session 'sid, serial#';    --殺死具體會話
    
6、Oracle Managed Files (OMF)
    全稱是Oracle_Managed Files,即Oracle文件管理,使用OMF能夠簡化管理員的管理工做,不用指定文件的
名字、大小、路徑,其名字,由oracle 自動分配。在刪除時,OMF也能夠自動刪除其對應的OS文件。
    要開啓OMF功能,須要設置默認存放路徑參數。
    ALTER SYSTEM SET db_create_file_dest ='/u01/app/oracle/oradata/orcl';
建立表空間:
    CREATE TABLESPACE s; 
    CREATE UNDO TABLESPACE tablespace_name ;
    CREATE TEMPORARY TABLESPACE tablespace_name;
    alter tablespace tbs_secooler add datafile;
    drop tablespace s;
    刪除表空間時,對於使用了OMF生成的數據文件將隨着表空間的刪除一塊兒被刪除,對於未採用OMF來建立的
表空間,在刪除表空間以後,只是從v$datafile視圖中被刪除,仍需從操做系統中刪除實際文件。
    OMF實用效果不佳,不方便表空間和數據文件對應等。
    
參考資料:
http://www.cnblogs.com/alex-blog/articles/2834806.html
http://www.linuxidc.com/Linux/2012-07/66292.htmlinux

相關文章
相關標籤/搜索